Skip to main content

Parser and validator for bluefox.yml app manifests

Project description

bluefox-yml

Parser and validator for bluefox.yml app manifests.

Define your application's compute, data, and in-memory primitives in a single YAML file. bluefox-yml validates the manifest and provides typed access to every field.

Part of the Bluefox Stack.

Documentation · PyPI


Install

uv add bluefox-yml

Quick start

Create a bluefox.yml in your project root:

version: 1
name: my-saas

compute:
  app:
    port: 8000
  worker: {}

data:
  engine: postgres
  version: 17
  migrate: "uv run alembic upgrade head"

Load and validate it:

from bluefox_yml import load_manifest

manifest = load_manifest("bluefox.yml")

print(manifest.name)                    # "my-saas"
print(manifest.compute["app"].port)     # 8000
print(manifest.data.engine)             # "postgres"
print(manifest.routable_process())      # ("app", ComputeProcess(...))

What it does

  • Schema validation — catches invalid manifests early with clear error messages.
  • DNS-safe names — enforces lowercase, alphanumeric, hyphenated names (3-63 chars).
  • Engine constraints — only allows supported engines (postgres, redis in v1).
  • Single routable process — ensures at most one compute process declares a port.
  • Healthcheck defaults — auto-injects /health for processes with a port.
  • Helper methodsservice_name(), image_tag(), db_image(), env_vars(), and more.
  • Reserved name guard — prevents bluefox-* prefixed names (reserved for platform services).

Error handling

from bluefox_yml import load_manifest, format_error, ManifestError

try:
    manifest = load_manifest("bluefox.yml")
except ManifestError as e:
    print(format_error(e))

Documentation

Full docs at bluefox-yml.bluefox.software/docs/

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

bluefox_yml-0.1.1.tar.gz (59.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bluefox_yml-0.1.1-py3-none-any.whl (5.6 kB view details)

Uploaded Python 3

File details

Details for the file bluefox_yml-0.1.1.tar.gz.

File metadata

  • Download URL: bluefox_yml-0.1.1.tar.gz
  • Upload date:
  • Size: 59.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for bluefox_yml-0.1.1.tar.gz
Algorithm Hash digest
SHA256 50adf8bbcaabd00da3a1e89414f2de08919dc2053e6bf1b4578a9831fdd603d4
MD5 c3204303f6328811f3a630665a456f3c
BLAKE2b-256 d93decb35351778d6604080e25cd8dae27e8e4205ec158fb1f9ffc39da3285e5

See more details on using hashes here.

Provenance

The following attestation bundles were made for bluefox_yml-0.1.1.tar.gz:

Publisher: publish.yml on blue-fox-software/bluefox-yml

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bluefox_yml-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: bluefox_yml-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 5.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for bluefox_yml-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 461e089dd5c516387f893f875daf51515a911a24a6622fd4b157308817198955
MD5 5215de349b2acd4ac8713dc6e8a9539b
BLAKE2b-256 beb182bc6153e767186c398b0b07b9d6d433d50410c04a8acc5e8bf17600d1a8

See more details on using hashes here.

Provenance

The following attestation bundles were made for bluefox_yml-0.1.1-py3-none-any.whl:

Publisher: publish.yml on blue-fox-software/bluefox-yml

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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