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

Uploaded Python 3

File details

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

File metadata

  • Download URL: bluefox_yml-0.1.2.tar.gz
  • Upload date:
  • Size: 59.7 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.2.tar.gz
Algorithm Hash digest
SHA256 39d5423f89672201e1a2f6d42bb4d4e5d079261e8252ae026d43c0e99b06d168
MD5 6bbbb28ac723f5a540a332db6c3ca61e
BLAKE2b-256 dfd96d01fbcfa508b1151aecf3915bfb7615a838dd6c0bd5c304148d864dd641

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: bluefox_yml-0.1.2-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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 8de17978b3be8f011b71737f2136af37c3bbf32cf4891593b346444ceadb3ea6
MD5 89bc25e6a3f617562ed04b4d890ecba3
BLAKE2b-256 d747bf971907cde0843137eadc77176712c1ac522450004fc31fe77427985ecb

See more details on using hashes here.

Provenance

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