Files
2026-05-27 23:29:53 +01:00

17 lines
1.7 KiB
Markdown

# Tasks — foundation-fix-gap-2-tenant-chain
- [x] Add `slug: string` REQUIRED + optional `metadata` to `TenantRecord` interface and `tenantRecordSchema`.
- [x] Update `tenant-record.test.ts` to assert slug presence/required/empty rejection and metadata round-trip.
- [x] Update `runTenantProviderConformance` harness's `record()` helper to include `slug`.
- [x] Update `api-tenant-provider/src/provider/provider.test.ts` literal records to include slug.
- [x] Update `api-tenant-provider-memory/src/provider/provider.test.ts` `record()` helper + INVALID_RECORD fixtures to include slug.
- [x] Add `src/chain/{chain.ts,chain.md,chain.test.ts,index.ts}` exporting `tenantResolverChainFromProvider` + `recordToContext` + supporting types.
- [x] Wire `./chain` subpath export in `api-tenant-provider/package.json`.
- [x] Re-export `recordToContext` and `tenantResolverChainFromProvider` from `api-tenant-provider/src/index.ts`.
- [x] Update `e2e/foundation-stack/src/server.ts` to drop the hand-rolled chain and use the new factory; add slugs to in-line fixtures.
- [x] Add `@suaveplan/api-tenant-provider` dependency to `e2e/foundation-stack/package.json`.
- [x] Verify gate: `bunx turbo lint typecheck test build --filter=@suaveplan/api-tenant-provider --filter=@suaveplan/api-tenant-provider-memory --filter=@suaveplan/api-tenant-resolver-jwt`.
- [x] Verify coverage: 100% across statements/branches/functions/lines on both packages.
- [x] E2E manual smoke: header-driven chain returns correct `TenantContext.id`.
- [x] Fold deltas into canonical `openspec/specs/api-tenant-provider/spec.md` and `openspec/specs/api-tenant-provider-memory/spec.md`; move folder to `openspec/archive/2026-05-26-foundation-fix-gap-2-tenant-chain/`.