Skip to main content

template-id: T-PKG-RME template-version: 1.0 applies-to: README.md registry: package

platform-config

Package: cloud_dog_config
Standard: PS-80 (Configuration Management)
Version: 0.2.0
Status: Implemented

Purpose

Drop-in Python library implementing the PS-80 configuration management standard. Provides deterministic config loading, Vault secret resolution, safe expression evaluation, and an immutable GlobalConfig runtime object.

Key Features

  • Canonical precedence chain: os.environ → env-file(s) → config.yaml → defaults.yaml
  • Config compile phase: ${vault.*} lookups, ${ENV_VAR} references, || fallbacks, ?: ternaries, + string concatenation, ==/!= equality, ! negation
  • Escaped-placeholder compatibility for env/shell/docker: $${...} and \${...} are treated as ${...}
  • Vault object/bundle assignment (deep-merge entire secret groups)
  • Immutable GlobalConfig snapshot with version tracking
  • Safe expression evaluator (no arbitrary code execution)
  • Secret redaction utilities
  • Hot reload pipeline with audit events
  • Post-compile transform hook chain (transforms=[...])
  • Environment metadata accessor (get_env_metadata())
  • Legacy migration adapter (LegacyConfigAdapter)
  • Multi-profile resolver (resolve_profile)
  • Typed model binding (bind_model)
  • Structured config diff + redacted export utilities
  • Reload timeout protection (reload_config(timeout_s=...))
  • Pytest plugin with --env enforcement
  • Zero framework dependency (works with FastAPI, Flask, CLI, etc.)

Dependencies

  • Required: pyyaml
  • Optional: hvac (Vault client), pydantic (schema validation)

Expression Language

Config values support ${...} expressions with operators for URL composition and conditional logic:

# URL from parts with fallback defaults
api_url: ${SCHEME || 'https'}://${API_HOST}:${API_PORT || '8080'}/api/v1

# Conditional SSL
verify_ssl: ${ENV == 'production' ? true : false}

# Vault secret with env override
db_password: ${MY_DB_PASS || vault.dev.db.password || 'changeme'}

# String concatenation inside ternary
url: ${SSL ? 'https://' + HOST : 'http://' + HOST}

See Expression Language Reference for full documentation.

Documents

Quick Start

from cloud_dog_config import load_config, get_config

config = load_config(env_files=["private/env-test"])
model = get_config("llm.model")

Installation

pip install cloud-dog-config

API Overview

  • load_config(...) loads and compiles layered configuration input.
  • get_config(...) reads values from the active config snapshot.
  • bind_model(...) validates config into typed consumer models.

Examples

  • Load layered config from tests/env-UT, config.yaml, and defaults.yaml.
  • Resolve Vault-backed values through ${vault.*} expressions at runtime.
  • Bind compiled config into a typed model for service startup.

Validation Status (2026-02-18)

  • Package implemented and built: cloud_dog_config-0.2.0
  • Quality gates run in this uplift:
    • pytest tests --env tests/env-IT -q -> 103 passed, 3 skipped
    • pytest tests --env tests/env-UT -q -> 103 passed, 3 skipped
    • ruff check cloud_dog_config tests -> pass
    • ruff format --check cloud_dog_config tests -> pass
    • python -m build --no-isolation -> pass (sdist + wheel)

Licence

Apache-2.0 — Copyright (c) 2026 Cloud-Dog, Viewdeck Engineering Limited

Metadata

Release files for cloud-dog-config 0.3.6

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

Source distribution (sdist)

Source distribution for cloud-dog-config 0.3.6
File Size Uploaded Provenance
cloud_dog_config-0.3.6.tar.gz 81.0 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for cloud-dog-config 0.3.6
File Interpreter ABI Platform
cloud_dog_config-0.3.6-py3-none-any.whl Python 3 none any Details

Total release size: 150.6 kB

Release files / cloud_dog_config-0.3.6.tar.gz

Download URL cloud_dog_config-0.3.6.tar.gz
Size 81.0 kB
Tags Source
SHA-256 checksum
How to use checksums
ea28a6939c4230cb64d53fd30304d996cb26fda51af7486a384f2761b0bdf2ee
BLAKE2b-256 checksum
How to use checksums
7f65cc8552c662a4b87b6f8cf116930d8f00d6e41d4de1388a1a5156c96e39a2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.12

Release files / cloud_dog_config-0.3.6-py3-none-any.whl

Download URL cloud_dog_config-0.3.6-py3-none-any.whl
Size 69.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
187b3da0ffe0ff6f44f3acd3bb5b4c580b8617c5c639e030b46d4bea11b63590
BLAKE2b-256 checksum
How to use checksums
5ec79c30bda38a4da7b2e42110c21d5e444635d3c5608dae2ec1618faf4cad3b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.12

Security for cloud-dog-config 0.3.6

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