Skip to content

Project configuration

All authored configuration lives below .deliberate/. The Project pin defines identity and flow; every other YAML document declares one resource.

.deliberate/
├── project.yaml
├── app.yaml
└── storage.yaml

deliberate apply reads and validates the complete tree. Files are an authoring convenience: a file can contain several YAML documents separated by ---, and resources can be split across files without changing their meaning.

Dependencies are explicit. needs grants access; an expression places a dependency output where the consuming software expects it:

env:
DATABASE_URL: "${{ postgres.url }}"
needs:
databases:
- postgres

Authorization and configuration remain separate because different software ecosystems expect different variable names and connection formats.

YAML declares which secrets a Component consumes, but values are stored outside Git. Blueprint secret arguments follow the same boundary. Rotating a secret may restart its consumers but does not expose the stored value in the console.

Use an explicit route when you need a stable public, custom-domain, or Private Net entry point. A Component port alone is an internal network capability unless its configuration deliberately exposes it.

See the YAML reference for the authored vocabulary and the schema-tested complete example.