Roadmap
Now: the contract
- Done: Draft contract specification (
v1alpha1) - Done: CUE meta-schema with validation, policy, rendering and a test suite
- Done: Wire encodings for each language's list and duration formats
- Done: Config files and profiles (
appsettings, Spring profiles, Rails YAML) - Done: File inputs: config files, TLS, CA bundles, keystores, text and binary files
- Done: Injected values and files (Bank-Vaults,
op run, Vault Agent), with the pod annotations and labels that enable each injector - Done: Length limits counted in characters:
maxLengthonurlandjsonvalues,itemMinLengthanditemMaxLengthon string lists - Done: Generated docs:
descriptionanddetailson every input, and a versioned docs model - Done: Config-file overlays, such as a mounted
appsettings.Production.json - Done: Language-neutral conformance suite for variables
- To do: Conformance cases for file inputs, profiles and overlays
- To do: Settle the open questions in the specification
Next: the platform
- Done:
docuconfCLI:export,vet,render,helm - Done:
docuconf docs:CONFIG.mdfor developers andCONFIG.agents.mdfor coding and ops agents - Done:
docuconf checkanddocuconf exec: boot checks for programs in a language without an SDK - Done: Helm library chart and generated
values.schema.json - To do:
docuconf diff,pushandpull - To do: Crossplane composition function, with readable conditions
- To do: An end-to-end demo on a local cluster: one deploy succeeds; one with a bad value is rejected
Languages
- Done: Go on caarlos0/env v11
- Done: TypeScript (T3 Env) on T3 Env + Zod 4
- Done: TypeScript (NestJS) on @nestjs/config + class-validator
- Done: .NET on Options pattern + appsettings
- Done: Python on pydantic-settings 2
- Done: Ruby on anyway_config 2
- Done: Java (Spring Boot) on Spring Boot 3 / 4 @ConfigurationProperties
- Done: Kotlin on Hoplite 3
- Done: Rust on figment + serde
- Done: Swift on swift-configuration
- Done: Elixir on config/runtime.exs
- Done: Gleam on envoy + gleam/dynamic/decode
- Done: C++ on CLI11
- Done: PHP (Laravel) on Laravel config + vlucas/phpdotenv
- Done: PHP (Symfony) on Symfony config + %env()% processors
- Done: COBOL on GnuCOBOL copybooks + docuconf exec
- Done: Every SDK exports
descriptionanddetailsfrom the app's doc comments, for generated docs - Done: Every SDK checks the length limits, counted in characters
- Done: Release automation (release-please) in every SDK repository
- To do: First releases to each package registry
Later
- Platform-authored contracts for third-party images
- Roles, for one image that runs several processes
- Conditional requirements (
requiredIf) - A browser playground for contracts and values
- A neutral foundation home as the community grows
The detailed plan, with phases and risks, is in PLAN.md.