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.yamldeliberate 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 and outputs
Section titled “Dependencies and outputs”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: - postgresAuthorization and configuration remain separate because different software ecosystems expect different variable names and connection formats.
Secrets
Section titled “Secrets”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.
Routes
Section titled “Routes”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.