Template 0.6.0: platform-mode default + API cache safety #12

Merged
plat merged 1 commit from feat/edge-default-06 into main 2026-08-12 18:26:18 +00:00
Owner

The fleet edge is live (P1-P3 shipped + PLAT_FORWARD_AUTH on, validated end-to-end on a canary org: anon→login, header-spoof stripped, X-Plat-Teams reaches the viewer).

  • chart default auth.mode: platform — private-by-default, access in Forgejo, fail-closed without an edge (app-mode stays opt-in for per-user-token apps like warden)
  • global onSend hook: every /api/* response defaults to private, no-store (authed per-viewer JSON behind edge+CDN must never enter a shared cache); CI smoke asserts it

typecheck/lint/build green, 35/35 tests, cache behavior proven locally across 401/404/200.

The fleet edge is live (P1-P3 shipped + PLAT_FORWARD_AUTH on, validated end-to-end on a canary org: anon→login, header-spoof stripped, X-Plat-Teams reaches the viewer). - chart default `auth.mode: platform` — private-by-default, access in Forgejo, fail-closed without an edge (app-mode stays opt-in for per-user-token apps like warden) - global onSend hook: every `/api/*` response defaults to `private, no-store` (authed per-viewer JSON behind edge+CDN must never enter a shared cache); CI smoke asserts it typecheck/lint/build green, 35/35 tests, cache behavior proven locally across 401/404/200.
template 0.6.0: platform default + API cache safety (fleet edge is live)
Some checks failed
guard-ppt / no-ppt (push) Successful in 0s
check / check (push) Successful in 23s
guard-ppt / no-ppt (pull_request) Successful in 0s
check / check (pull_request) Successful in 23s
preview / preview (pull_request) Failing after 0s
fff51278d9
The forwardAuth edge is on fleet-wide (MCP PLAT_FORWARD_AUTH, plat-auth
HA, middlewares in ns mcp), so the chart default returns to
auth.mode=platform: a fresh app is private-by-default, access managed
in Forgejo, fail-closed without the edge (never silently public). Apps
needing a per-user Forgejo token (warden's fleet view) pin auth.mode=app.

Cache safety: a global onSend hook defaults every /api/* response to
'private, no-store' unless the route set its own directive — authed
per-viewer JSON must never enter a shared cache (edge + Cloudflare in
front). CI smoke asserts /api/me carries no-store. Proven locally
across 401/404/200 in platform mode; /version keeps its explicit
directive (hook defers). version 0.6.0.
plat merged commit 61420d09bb into main 2026-08-12 18:26:18 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
open-platform/app-template!12
No description provided.