aws-secrets-manager-property-source

Kotlin library to resolve secrets in property files via AWS Secretsmanager in a Spring Boot application

License

License

Categories

Categories

AWS Container PaaS Providers
GroupId

GroupId

de.ottonow
ArtifactId

ArtifactId

aws-secrets-manager-property-source
Last Version

Last Version

0.1.0
Release Date

Release Date

Type

Type

jar
Description

Description

aws-secrets-manager-property-source
Kotlin library to resolve secrets in property files via AWS Secretsmanager in a Spring Boot application
Project URL

Project URL

https://github.com/ottonow/aws-secrets-manager-property-source
Source Code Management

Source Code Management

https://github.com/ottonow/aws-secrets-manager-property-source

Download aws-secrets-manager-property-source

How to add to project

<!-- https://jarcasting.com/artifacts/de.ottonow/aws-secrets-manager-property-source/ -->
<dependency>
    <groupId>de.ottonow</groupId>
    <artifactId>aws-secrets-manager-property-source</artifactId>
    <version>0.1.0</version>
</dependency>
// https://jarcasting.com/artifacts/de.ottonow/aws-secrets-manager-property-source/
implementation 'de.ottonow:aws-secrets-manager-property-source:0.1.0'
// https://jarcasting.com/artifacts/de.ottonow/aws-secrets-manager-property-source/
implementation ("de.ottonow:aws-secrets-manager-property-source:0.1.0")
'de.ottonow:aws-secrets-manager-property-source:jar:0.1.0'
<dependency org="de.ottonow" name="aws-secrets-manager-property-source" rev="0.1.0">
  <artifact name="aws-secrets-manager-property-source" type="jar" />
</dependency>
@Grapes(
@Grab(group='de.ottonow', module='aws-secrets-manager-property-source', version='0.1.0')
)
libraryDependencies += "de.ottonow" % "aws-secrets-manager-property-source" % "0.1.0"
[de.ottonow/aws-secrets-manager-property-source "0.1.0"]

Dependencies

compile (4)

Group / Artifact Type Version
org.jetbrains.kotlin : kotlin-stdlib-jdk8 jar 1.3.11
org.jetbrains.kotlin : kotlin-reflect jar 1.3.11
com.amazonaws : aws-java-sdk-secretsmanager jar 1.11.475
com.google.guava : guava jar 27.0.1-jre

Project Modules

There are no modules declared in this project.

This kotlin library allows an easy integration for AWS Secretsmanager in your Spring Boot application.

Maven Central License

Installation

Artifacts are published to maven central.

Gradle:

compile de.ottonow:aws-secrets-manager-property-source:0.1.0

Maven:

<dependency>
    <groupId>de.ottonow</groupId>
    <artifactId>aws-secrets-manager-property-source</artifactId>
    <version>0.1.0</version>
</dependency>

Usage

By including the dependency in your Spring Boot app, the library will be autoconfigured.

Secrets can be stored either as plain text or as JSON with multiple properties in AWS Secretsmanager.

For the property source to attempt resolving a property, the property name must start with /secret/.

The secrets are cached for one minute.

Plaintext

${/secret/<secret-name>}

Example: ${/secret/my-service/plaintext-property}

JSON Property

${/secret/<secret-name>.<json-property-name>}

Example:

Let's assume we have a secret with the path shipment-service/rds that has two JSON properties: username and password.

${/secret/shipment-service/rds.username}

${/secret/shipment-service/rds.password}

An example configuration of your application yaml might look like this:

spring:
  datasource:
    url: jdbc:postgresql://host:5432/shipment_service # host could retreived from secretsmanager aswell
    username: ${/secret/shipment-service/rds.username}
    password: ${/secret/shipment-service/rds.password}
    platform: POSTGRESQL
de.ottonow

OTTO NOW

Versions

Version
0.1.0