docs(readme): rewrite for v2 with progressive disclosure
The v0.3.0 README had real drift in places where new users land:
- Supported sources table listed
azure/gcp/cloudevents(pre-rename names) and omittedaws.sqs+kafkaentirely. A reader copying from it hit "unknown type" onvalidate. auth.token_envreferences survived the schema flatten.- Subcommand CLI (
run/validate/fire/version) wasn't surfaced as a contract; only visible in scattered code blocks.postern firewas completely undocumented. version: 1requirement appeared in code blocks but the schema-versioning story was never stated.- "Adding a new source" -- the central pluggability win of v2 -- was absent. Contributors had to read the source tree to find it.
- Base image listed by floating tag while the Dockerfile pins by
@sha256:...digest.
Restructured for progressive disclosure -- reader gets value at every depth and can stop at any level.
New shape
| Section | Why |
|---|---|
| Hero + tagline | Broadened beyond push-only framing |
| How it works | Diagram lists all 5 adapter types |
| Supported sources | Correct table with mode + auth columns |
| The 30-second example | Minimal config + one container run |
| Commands | Subcommand surface as a contract |
| Schema versioning | Explicit version: 1 callout |
| Per-source configuration | One section per adapter (azure.eventgrid, gcp.pubsub, aws.sqs, kafka, cloudevents) with YAML, behavior, auth model |
| Routing | Match patterns, envelope shortcuts vs gjson paths, variable injection |
| Configuration reference | Top-level keys + rate_limit semantics |
| Getting started end-to-end | Pull, write, validate, fire, run |
| Kubernetes deployment | Updated probe paths |
| Developer binaries | Already current |
| Observability | 4 endpoints + OTel; metric names enumerated |
| Config reload | Same |
| GitLab project setup | Same |
| Prescriptive errors | Same |
| Adding a new source | Layout, 3 steps, discipline rules, worked examples -- the contributor onboarding @graysongordon-gl asked for in his original decomp issue |
| Security model | Now includes SQS + Kafka rows |
| Image details | Mentions digest pinning, coverage, smoke test, byte-parity binary |
What did NOT change
- All the technically-accurate sections from the prior README are preserved verbatim (observability, GitLab project setup, prescriptive errors, config reload).
- The badge row, hero, license footer.
Verification
postern.yml.examplealready aligned with the new schema; no change needed.examples/*.cloudevent.jsonexercised by thepostern-fireCI job; consistent with the README'sfireexamples.chart/templates/deployment.yamlalready had/livez+/readyzprobes from v2 work.
For @graysongordon-gl
The "Adding a new source" section is the answer to the docs follow-up you mentioned in !9 (closed). If the section gives you what you need to land a sixth adapter, I'd love that signal -- if anything's missing, that's a real gap I want to close.