Skip to main content

acme-config

Description

System to store application configuration

Motivation

To support a release system that can store references to various application artifacts we need a config system that can store environment variables needed by a specific application (i.e. what is put into .env file). Specifically, we want to make the configurations immutable so once they are refered to from a release system they won't change.

Features

  • Uses AWS Parameter Store as a storage layer for parameters
  • Enforces each parameter needs to be assigned to an application identifier (app-name), an environment identifier (env) and a integer version (ver-number)
  • Once parameters are written with such combination of identifiers acme-config prevents from overwriting them.
  • Allows to retreive parameters for a given combination of (app-name, env and ver-number) and stores it in a local file in .env file format convenient for editing.
  • Allows to set parameters from .env file specified at a file path.
  • Each (app-name, env) combination can set a default version number. This can be set with set-version command
  • Default version can be retrieved with get-version command. Value will be put to stdout.

Example usage

Requires setup of a default AWS profile e.g. via aws sso login. Can be specified via AWS_PROFILE env var.

To set

ac set -app-name acme-config -env dev -ver-number 1 --params-path .env

To set default version

ac set-version -app-name acme-config -env dev -ver-number 1

To get default version

ac get-version -app-name acme-config -env dev

To fetch

ac fetch -app-name acme-config -env dev -ver-number 1

Will save parameters to a file acme-config.dev.1.env

Dev environment

The project comes with a python development environment. To generate it, after checking out the repo run:

chmod +x create_env.sh

Then to generate the environment (or update it to latest version based on state of uv.lock), run:

./create_env.sh

This will generate a new python virtual env under .venv directory. You can activate it via:

source .venv/bin/activate

If you are using VSCode, set to use this env via Python: Select Interpreter command.

Project template

This project has been setup with acme-project-create, a python code template library.

Required setup post use

  • Enable GitHub Pages to be published via GitHub Actions by going to Settings-->Pages-->Source
  • Create release environment for GitHub Actions to enable uploads of the library to PyPi
  • Setup auth to PyPI for the GitHub Action implemented in .github/workflows/release.yml: Link uv publish doc

Metadata

Release files for acme_config 0.0.14

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for acme_config 0.0.14
File Size Uploaded Provenance
acme_config-0.0.14.tar.gz 5.3 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for acme_config 0.0.14
File Interpreter ABI Platform
acme_config-0.0.14-py3-none-any.whl Python 3 none any Details

Total release size: 11.1 kB

Release files / acme_config-0.0.14.tar.gz

Download URL acme_config-0.0.14.tar.gz
Size 5.3 kB
Tags Source
SHA-256 checksum
How to use checksums
5d0ebdb435b113a1a828a4bc2436ffde454b47e0ecc0c2402ff5ae9661ec2a3b
BLAKE2b-256 checksum
How to use checksums
381e8209b017ee7aded320f813a27ff05aed8f866a24ae57f0c7cae28e7ad4d7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.8.8

Release files / acme_config-0.0.14-py3-none-any.whl

Download URL acme_config-0.0.14-py3-none-any.whl
Size 5.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e04e5de91e595efd0014fe2639f924ebf64b593197ebe285bb3f0aaefc82b00a
BLAKE2b-256 checksum
How to use checksums
05390d4150b8cddf18a6e3c244bb80bec3c2146fd240a8f4aec40c231eca8f79
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.8.8

Security for acme_config 0.0.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page