Skip to content

Latest commit

 

History

History
 
 

secretsmanager

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

Secrets Manager

The Secrets Manager connector provides the following Actions:

 *  CreateSecret
 *  DeleteSecret
 *  GetSecretValue
 *  ListSecrets
 *  PutSecretValue
 *  UpdateSecret

Example usage

const val USE_REAL_CLIENT = false

fun main() {
    // we can connect to the real service or the fake (drop in replacement)
    val http: HttpHandler = if (USE_REAL_CLIENT) JavaHttpClient() else FakeSecretsManager()

    // create a client
    val client =
        SecretsManager.Http(Region.of("us-east-1"), { AwsCredentials("accessKeyId", "secretKey") }, http.debug())

    val secretId = SecretId.of("a-secret-id")

    // all operations return a Result monad of the API type
    val createdSecretResult: Result<CreatedSecret, RemoteFailure> =
        client.createSecret(secretId.value, UUID.randomUUID(), "value")
    println(createdSecretResult.valueOrNull())

    // get the secret value back
    println(client.getSecretValue(secretId).valueOrNull())
}

The client APIs utilise the http4k-aws module for request signing, which means no dependencies on the incredibly fat Amazon-SDK JARs. This means this integration is perfect for running Serverless Lambdas where binary size is a performance factor.

Default Fake port: 58194

To start:

FakeSecretsManager().start()