Releases: guardian/anghammarad
v0.0.0-beta-20251112163222
Major Changes
-
6f5afad: Remove singleton implementation and require an
SNSClienton instantiation.Previously we were providing credentials via
fromNodeProviderChain.
This provider chain loads profile credentials before environment credentials when they're both set (e.g. within the AWS Lambda runtime),
resulting in the following log:@aws-sdk/credential-provider-node - defaultProvider::fromEnv WARNING: Multiple credential sources detected: Both AWS_PROFILE and the pair AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY static credentials are set. This SDK will proceed with the AWS_PROFILE value. However, a future version may change this behavior to prefer the ENV static credentials. Please ensure that your environment only sets either the AWS_PROFILE or the AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY pair.Within the AWS Lambda runtime, the
deployToolsprofile doesn't actually evaluate to valid credentials, therefore the AWS calls fail.
For this reason, anSNSClientis now required on instantiation.
This user provided client should have the credential provider relevant to the user's runtime, thus making@guardian/anghammaradruntime agnostic.Also in this change is a reversion of the singleton implementation.
The singleton was aimed at simplify the DX for users by automatically configuring the SNS topic via an SSM Parameter.
However, in reality this wasn't an issue as users already have the SNS topic in their CloudFormation template in order to providesns:Publishaccess.
Now, when instantiating the Anghammarad client, anSNSClientandtopicArnare required.
v0.0.0-beta-20251112143059
Major Changes
-
6f5afad: Remove singleton implementation and require an
SNSClienton instantiation.Previously we were providing credentials via
fromNodeProviderChain.
This provider chain loads profile credentials before environment credentials when they're both set (e.g. within the AWS Lambda runtime),
resulting in the following log:@aws-sdk/credential-provider-node - defaultProvider::fromEnv WARNING: Multiple credential sources detected: Both AWS_PROFILE and the pair AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY static credentials are set. This SDK will proceed with the AWS_PROFILE value. However, a future version may change this behavior to prefer the ENV static credentials. Please ensure that your environment only sets either the AWS_PROFILE or the AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY pair.Within the AWS Lambda runtime, the
deployToolsprofile doesn't actually evaluate to valid credentials, therefore the AWS calls fail.
For this reason, anSNSClientis now required on instantiation.
This user provided client should have the credential provider relevant to the user's runtime, thus making@guardian/anghammaradruntime agnostic.Also in this change is a reversion of the singleton implementation.
The singleton was aimed at simplify the DX for users by automatically configuring the SNS topic via an SSM Parameter.
However, in reality this wasn't an issue as users already have the SNS topic in their CloudFormation template in order to providesns:Publishaccess.
Now, when instantiating the Anghammarad client, anSNSClientandtopicArnare required.
v0.0.0-beta-20251112142941
Major Changes
-
5a5296b: Remove singleton implementation and require an
SNSClienton instantiation.Previously we were providing credentials via
fromNodeProviderChain.
This provider chain loads profile credentials before environment credentials when they're both set (e.g. within the AWS Lambda runtime),
resulting in the following log:@aws-sdk/credential-provider-node - defaultProvider::fromEnv WARNING: Multiple credential sources detected: Both AWS_PROFILE and the pair AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY static credentials are set. This SDK will proceed with the AWS_PROFILE value. However, a future version may change this behavior to prefer the ENV static credentials. Please ensure that your environment only sets either the AWS_PROFILE or the AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY pair.Within the AWS Lambda runtime, the
deployToolsprofile doesn't actually evaluate to valid credentials, therefore the AWS calls fail.
For this reason, anSNSClientis now required on instantiation.
This user provided client should have the credential provider relevant to the user's runtime, thus making@guardian/anghammaradruntime agnostic.Also in this change is a reversion of the singleton implementation.
The singleton was aimed at simplify the DX for users by automatically configuring the SNS topic via an SSM Parameter.
However, in reality this wasn't an issue as users already have the SNS topic in their CloudFormation template in order to providesns:Publishaccess.
Now, when instantiating the Anghammarad client, anSNSClientandtopicArnare required.
v0.0.0-beta-20251112115442
Minor Changes
-
c5038ae: Require a credential provider to be provided.
It appears that the
fromNodeProviderChainuses profile credentials before environment credentials.
With aprofilebeing passed tofromNodeProviderChain, using the library within an AWS Lambda function resulted in an authentication failure and the following log:@aws-sdk/credential-provider-node - defaultProvider::fromEnv WARNING: Multiple credential sources detected: Both AWS_PROFILE and the pair AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY static credentials are set. This SDK will proceed with the AWS_PROFILE value. However, a future version may change this behavior to prefer the ENV static credentials. Please ensure that your environment only sets either the AWS_PROFILE or the AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY pair.This update asks clients to provide their own credential provider allowing the library to become agnostic of the runtime environment.
v0.0.0-beta-20251111211405
Patch Changes
- 9104cd7: Change AWS credential order, loading from a profile last.
v0.0.0-beta-20251104102418
Major Changes
-
2430230: Releasing @guardian/anghammarad v2.0.0
This change updates to AWS SDK v3 and is published as ESM-only.
Additionally, theAnghammaradclass is now implemented as a singleton, with the SNS topic obtained from SSM Parameter Store; you no longer need to provide this.To send a message:
import { Anghammarad, type AnhammaradNotification, } from "@guardian/anghammarad"; const anghammarad = Anghammarad.getInstance(); const notification: AnghammaradNotification = {}; await anghammarad.notify("an important message for you", notification);
Patch Changes
- caf2058: no-op release to test migration to NPM trusted publishing
v0.0.0-beta-20251104095657
Major Changes
-
84c4469: Releasing @guardian/anghammarad v2.0.0
This change updates to AWS SDK v3 and is published as ESM-only.
Additionally, theAnghammaradclass is now implemented as a singleton, with the SNS topic obtained from SSM Parameter Store; you no longer need to provide this.To send a message:
import { Anghammarad, type AnhammaradNotification, } from "@guardian/anghammarad"; const anghammarad = Anghammarad.getInstance(); const notification: AnghammaradNotification = {}; await anghammarad.notify("an important message for you", notification);
Patch Changes
- caf2058: no-op release to test migration to NPM trusted publishing
v0.0.0-beta-20251104095319
Major Changes
-
84c4469: Releasing @guardian/anghammarad v2.0.0
This change updates to AWS SDK v3 and is published as ESM-only.
Additionally, theAnghammaradclass is now implemented as a singleton, with the SNS topic obtained from SSM Parameter Store; you no longer need to provide this.To send a message:
import { Anghammarad, type AnhammaradNotification, } from "@guardian/anghammarad"; const anghammarad = Anghammarad.getInstance(); const notification: AnghammaradNotification = {}; await anghammarad.notify("an important message for you", notification);
Patch Changes
- caf2058: no-op release to test migration to NPM trusted publishing
v0.0.0-beta-20251104095031
Major Changes
-
84c4469: Releasing @guardian/anghammarad v2.0.0
This change updates to AWS SDK v3 and is published as ESM-only.
Additionally, theAnghammaradclass is now implemented as a singleton, with the SNS topic obtained from SSM Parameter Store; you no longer need to provide this.To send a message:
import { Anghammarad, type AnhammaradNotification, } from "@guardian/anghammarad"; const anghammarad = Anghammarad.getInstance(); const notification: AnghammaradNotification = {}; await anghammarad.notify("an important message for you", notification);
Patch Changes
- caf2058: no-op release to test migration to NPM trusted publishing
v0.0.0-beta-20251104094529
Major Changes
-
84c4469: Releasing @guardian/anghammarad v2.0.0
This change updates to AWS SDK v3 and is published as ESM-only.
Additionally, theAnghammaradclass is now implemented as a singleton, with the SNS topic obtained from SSM Parameter Store; you no longer need to provide this.To send a message:
import { Anghammarad, type AnhammaradNotification, } from "@guardian/anghammarad"; const anghammarad = Anghammarad.getInstance(); const notification: AnghammaradNotification = {}; await anghammarad.notify("an important message for you", notification);
Patch Changes
- caf2058: no-op release to test migration to NPM trusted publishing