Skip to content

AppConfig: Get latest deployed configuration #29162

@0xBradock

Description

@0xBradock

Describe the feature

Add a command to AppConfig to retrieve a deployed configuration during CDK synthesize step.

Use Case

I have a CDK application that deploys stacks like this:

const clients = [/*...*/]

clients.forEach( client => new ClientShop(app, `${client.name}-shop`, { client } ) )

Problem

For now clients is an array stored in code. The clients information is managed by another team. So, every time they want to modify it, they need to open a ticket.

Goal

I want to give them the ability to edit themselves the information of client using an AWS resource. This will allow me to change the CDK application to this:

//                              👇
const clients = new GetClientsFromConfig(app, 'config')

clients.forEach( client => new ClientShop(app, `${client.name}-shop`, { client } ) )

This would separate the logic from data with a good user experience.

Proposed Solution

One option would be to implement it similar to the static method SSM fromStringParameterAttributes.

Other Information

Options I considered to deploy the clients and read from GetClientsFromConfig:

  • AppConfig: It has the best user experience and allows to validate the configuration. But, I can't find a way to read a deployed configuration in a Stack in my CDK app const config = deployment.readFromLastVersion(/*...*/) (do not exist)
  • DynamoDB: Less intuitive and still can't find method to read from within CDK
  • SSM Parameter Store: Can read from CDK, but is not so intuitive and error prone to the other team to manage its content
  • S3: Easy to setup, hard for users to configure

I am still open to other solutions, if they exist.
But, as far as I gather AppConfig would be the best alternative.

Acknowledgements

  • I may be able to implement this feature request
  • This feature might incur a breaking change

CDK version used

2.128.0

Environment details (OS name and version, etc.)

MacOS Apple M1 Pro

Metadata

Metadata

Assignees

No one assigned

    Labels

    @aws-cdk/aws-appconfigRelated to AWS AppConfigeffort/mediumMedium work item – several days of effortfeature-requestA feature should be added or improved.p3

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions