@origins-digital/nestjs-aws-ssm
v1.2.1
Published
Origins Digital NestJS AWS SSM Module
Readme
@origins-digital/aws
A NestJS package for interacting with AWS services, currently supporting AWS Systems Manager Parameter Store.
Installation
npm install @origins-digital/awsFeatures
- AWS Systems Manager Parameter Store integration
- Secure parameter storage and retrieval
- Automatic JSON parsing/stringifying
- Type-safe parameter management
Usage
Basic Setup
import { Module } from '@nestjs/common';
import { AWSSystemManagerModule } from '@origins-digital/aws';
@Module({
imports: [AWSSystemManagerModule],
})
export class AppModule {}Using the Service
import { Injectable } from '@nestjs/common';
import { AWSSystemManagerService } from '@origins-digital/aws';
@Injectable()
export class YourService {
constructor(private readonly ssmService: AWSSystemManagerService) {}
async getConfig() {
// Get a parameter value
const value = await this.ssmService.getParameterValue(
'your-parameter-name',
);
// Get a secure parameter
const secureValue = await this.ssmService.getParameterValue(
'secure-param',
{
withDecryption: true,
},
);
// Set a parameter
await this.ssmService.setParameter('new-param', {
some: 'data',
});
// Set a secure parameter
await this.ssmService.setParameter('secure-param', 'sensitive-data', {
secured: true,
});
// Delete a parameter
await this.ssmService.deleteParameter('old-param');
}
}Parameter Store Features
- Get Parameters: Retrieve parameters with optional decryption
- Set Parameters: Store parameters with optional security
- Delete Parameters: Remove single or multiple parameters
- Automatic JSON Handling: Values are automatically parsed/stringified
- Version Support: Access specific versions of parameters
Configuration
The service is configured to use the eu-west-1 region by default. To change this, you'll need to extend the service and override the constructor.
Error Handling
The service includes error handling for AWS operations and will return null for non-existent parameters instead of throwing errors.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
