Skip to main content

Generate config files from AWS Secrets

Project description

PyPI version

sprinkles

Sprinkles makes it easy to share configuration files between local dev environments without leaking private information. No more passwords in Slack PMs, no more API keys in VCS.

Installation

pip install sprinkles-config

Please note that sprinkles has only been tested for Python versions >= 3.6.

Usage

Sprinkles reads secrets from AWS secrets manager, and binds them to a template you provide. The templating is based on Jinja2¹, making it flexible enough to work with any text-based configuration format you may be using. Anything from .env files, to Java properties, to yaml.

It has a simple param based CLI API, but can also be executed against a config file to encourage reuse. The config format is TOML-based².

NOTE: Sprinkles will use the AWS profile/credentials configured in the calling shell context, using the standard environment variables³.

CLI

  1. Output config to stdout
third.party.api.endpoint=https://example.com/api/v1
third.party.api.key={{THIRD_PARTY_API_KEY}}
sprinkles --template application.properties.j2 --secret-arn arn:aws:secretsmanager:<region>:<account-id-number>:secret:<secret-name>
  1. Output to file
sprinkles --template application.properties.j2 --secret-arn arn:aws:secretsmanager:<region>:<account-id-number>:secret:<secret-name> --output application.properties

Config file option

Sprinkles also makes it possible to have a set of defaults (tracked in VCS). Add a .sprinklesrc file in your project root. Simply run sprinkles in the project root to initialize the config.

.sprinklesrc

[secret]
arn = "arn:aws:secretsmanager:<region>:<account-id-number>:secret:<secret-name>"

[files]
  [files.docker-env]
    template = "sprinkles-templates/.env.sprinkles"
    target = ".env"
  [files.application-properties]
    template = "sprinkles-templates/application.properties.sprinkles"
    target = "src/main/com/example/resources/application-dev.properties"

References

  1. Jinja2: https://jinja.palletsprojects.com/en/2.11.x/
  2. TOML: https://github.com/toml-lang/toml
  3. AWS Configuration: https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sprinkles-config-0.1.4.tar.gz (4.0 kB view details)

Uploaded Source

Built Distribution

sprinkles_config-0.1.4-py3-none-any.whl (4.7 kB view details)

Uploaded Python 3

File details

Details for the file sprinkles-config-0.1.4.tar.gz.

File metadata

  • Download URL: sprinkles-config-0.1.4.tar.gz
  • Upload date:
  • Size: 4.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.10 CPython/3.6.11 Darwin/19.4.0

File hashes

Hashes for sprinkles-config-0.1.4.tar.gz
Algorithm Hash digest
SHA256 9955162caa49164c17cc685f2c44064c282065949029e08c36f114d4f0299a4f
MD5 42a8a80703742d3e316a58701a099374
BLAKE2b-256 da41df093abf78de076e92b0732fbb9cb087fbec474bf9f3089a81d071becefb

See more details on using hashes here.

File details

Details for the file sprinkles_config-0.1.4-py3-none-any.whl.

File metadata

File hashes

Hashes for sprinkles_config-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 42201f7a5d526d112b386d0314a6746a79c01d62629bf812cfd4670c9509832e
MD5 9ccebe6fe445085c02547e486c11ab56
BLAKE2b-256 db2e12b6a1e81b615ad674e2baa514971061eeb70f704e9599815bc9b378f720

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page