Skip to content
docuconf
docuconf on GitHub

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: maxLength on url and json values, itemMinLength and itemMaxLength on string lists
  • Done: Generated docs: description and details on 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: docuconf CLI: export, vet, render, helm
  • Done: docuconf docs: CONFIG.md for developers and CONFIG.agents.md for coding and ops agents
  • Done: docuconf check and docuconf exec: boot checks for programs in a language without an SDK
  • Done: Helm library chart and generated values.schema.json
  • To do: docuconf diff, push and pull
  • 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 description and details from 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.