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

1.7 KiB

Tasks — foundation-fix-gap-2-tenant-chain

  • Add slug: string REQUIRED + optional metadata to TenantRecord interface and tenantRecordSchema.
  • Update tenant-record.test.ts to assert slug presence/required/empty rejection and metadata round-trip.
  • Update runTenantProviderConformance harness's record() helper to include slug.
  • Update api-tenant-provider/src/provider/provider.test.ts literal records to include slug.
  • Update api-tenant-provider-memory/src/provider/provider.test.ts record() helper + INVALID_RECORD fixtures to include slug.
  • Add src/chain/{chain.ts,chain.md,chain.test.ts,index.ts} exporting tenantResolverChainFromProvider + recordToContext + supporting types.
  • Wire ./chain subpath export in api-tenant-provider/package.json.
  • Re-export recordToContext and tenantResolverChainFromProvider from api-tenant-provider/src/index.ts.
  • Update e2e/foundation-stack/src/server.ts to drop the hand-rolled chain and use the new factory; add slugs to in-line fixtures.
  • Add @suaveplan/api-tenant-provider dependency to e2e/foundation-stack/package.json.
  • 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.
  • Verify coverage: 100% across statements/branches/functions/lines on both packages.
  • E2E manual smoke: header-driven chain returns correct TenantContext.id.
  • 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/.