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.0.tar.gz (59.5 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.0-py3-none-any.whl (5.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: bluefox_yml-0.1.0.tar.gz
  • Upload date:
  • Size: 59.5 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.0.tar.gz
Algorithm Hash digest
SHA256 61d61b55b795694d87396f51cf7fb94f5b5eac9ebb64a55b9fcf759e6f454fb6
MD5 6b3c64eea50425399ba97d5d08c6ed6a
BLAKE2b-256 cefe4c3a1cfd11a51e4283f57b3347ec3b05b25eec573f348a93d16f8b978e4e

See more details on using hashes here.

Provenance

The following attestation bundles were made for bluefox_yml-0.1.0.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.0-py3-none-any.whl.

File metadata

  • Download URL: bluefox_yml-0.1.0-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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3999e8f60c77febb709d06a37e1c49a36c0dc9c2099e035067929e530d83fd16
MD5 fdb5bfbf01fc66722890fdd360c0dd9b
BLAKE2b-256 27766e1a7e688c638266a6e882c937aca044da50257936b1615204138c4d7548

See more details on using hashes here.

Provenance

The following attestation bundles were made for bluefox_yml-0.1.0-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