Skip to content

Ship runnable quickstart, REST walkthrough, and multi-tenant demos#45

Merged
zeevdr merged 1 commit into
mainfrom
feat/issue-44-ship-demos
Jun 10, 2026
Merged

Ship runnable quickstart, REST walkthrough, and multi-tenant demos#45
zeevdr merged 1 commit into
mainfrom
feat/issue-44-ship-demos

Conversation

@zeevdr

@zeevdr zeevdr commented Jun 10, 2026

Copy link
Copy Markdown
Member

Summary

  • quickstart, rest-walkthrough, and multi-tenant were already merged but had never been run end-to-end against a released decree server image — all three were broken.
  • decree-server requires INSECURE_LISTEN=1 to accept plaintext connections in this local-demo setup; without it the server exits immediately with a TLS configuration error.
  • Each demo's seed/init.sql had a stale schema_versions table missing the dependent_required and validations columns added in 001_initial_schema.sql, so schema import failed.
  • quickstart's payroll-service used an outdated SDK API (configclient/configwatcher with WithSubject) that no longer compiles against sdk/grpctransport.
  • rest-walkthrough's publish call was missing the required version field in the request body.
  • multi-tenant's run.sh/test.sh called non-existent /v1/config/{name}/snapshot and /v1/config/{name}/values/{path} endpoints instead of /v1/tenants/{id}/config[...] with the required x-subject header and tenant UUIDs.
  • README's "Coming soon" banner is removed and the Pick Your Path table now only links to shipped demos (unshipped rows marked *(planned)*).
  • CI now runs each demo's test.sh as a separate job (one per demo, since they share fixed ports).
  • CLAUDE.md and .agents/context/demos-setup.md updated to reflect shipped status.

Test plan

  • docker compose up + test.sh passes from a clean checkout for quickstart/
  • docker compose up + test.sh passes from a clean checkout for rest-walkthrough/
  • docker compose up + test.sh passes from a clean checkout for multi-tenant/
  • go build succeeds for quickstart/service after SDK API fix
  • CI workflow YAML validated with yaml.safe_load
  • Codespaces devcontainers (quickstart, rest-walkthrough) reference the fixed compose files, validated via the same test.sh runs

Closes #44

quickstart, rest-walkthrough, and multi-tenant were merged but never
verified against a real server image. Three issues blocked all of them:

- decree-server requires INSECURE_LISTEN=1 to accept plaintext
  connections; without it the server exits immediately with a TLS
  error.
- seed/init.sql's schema_versions table predates the
  dependent_required and validations columns added in 001_initial_schema.sql,
  so schema import failed with a missing-column error.
- quickstart's payroll-service used an outdated SDK API
  (configclient/configwatcher with WithSubject) that no longer
  compiles against sdk/grpctransport.

rest-walkthrough's publish call was missing the required `version`
field, and multi-tenant's run.sh/test.sh used non-existent
/v1/config/{name}/snapshot and /v1/config/{name}/values/{path}
endpoints instead of /v1/tenants/{id}/config[...] with the required
x-subject header and tenant UUIDs.

Also: removes the "coming soon" banner and updates the Pick Your Path
table to only link shipped demos, adds CI jobs that run each demo's
test.sh, and updates CLAUDE.md / .agents context to reflect shipped
status.

Closes #44.
@zeevdr zeevdr added this to the Beta Readiness milestone Jun 10, 2026
@zeevdr zeevdr added size: L Larger effort — multiple days, design decisions needed priority: P0 Blocks alpha or release labels Jun 10, 2026
@zeevdr zeevdr merged commit a6ad8e3 into main Jun 10, 2026
6 checks passed
@zeevdr zeevdr deleted the feat/issue-44-ship-demos branch June 10, 2026 10:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

priority: P0 Blocks alpha or release size: L Larger effort — multiple days, design decisions needed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Ship the runnable demos the front door promises

1 participant