feat: self-serve tier — PR 11/12 — Proxy Trial Hard Lock
loading diff…
Stack order: Merge after PR 10 — Trial Lifecycle.
Adds trial enforcement at the MCP proxy level. When a trial org is expired or archived, all MCP tool calls are blocked with a clear error message.
trial-check.ts middleware runs on every MCP requesttier and trialExpiresAt from the databasetier === 'free_trial' and trial is expired/archived, returns 403trial-check.ts: Middleware that blocks expired trial MCP requeststrial-check.test.ts: Unit tests for all trial statesapp.ts / app-types.ts: Integration of trial check into request pipelineapp-mcp-routes.ts: MCP route updates for multi-tenant supportserver-factory-runtime.ts: Updated for self-serve tenant handlinge2e/real-mcp-fixture.ts: Test fixture updatesvitest.unit.config.ts: Proxy-specific vitest configuration| # | PR | Link |
|---|---|---|
| 1 | Foundation | #458 |
| 2 | Core orgId Resolution | #459 |
| 3 | Routers: orgs, audit, onboarding | #460 |
| 4 | Routers: teams, connections, me | #461 |
| 5 | Routers: apps, auth-configs, misc | #462 |
| 6 | Self-Serve Signup Flow | #463 |
| 7 | Sign-In & Auth Broker | #464 |
| 8 | Trial UI | #465 |
| 9 | Enterprise Tier Gates | #466 |
| 10 | Trial Lifecycle | #467 |
| 11 | Proxy Trial Lock | this PR |
| 12 | Tests & Fixtures | #469 |