2026-08-09-kn-apple-b-bv-round1-pass.md markdown
34 lines 3.0 KB
Raw
sha256:700fafdd1afa490919f9515d660ca6e75456bcd5bb67513abcd8757a634c01f6 docs: record AIP-b SD-21 land (KN #308) Human 10 days ago

Build verification — KN-APPLE-NATIVE-HOSTED-EXCHANGE-b round 1

Verdict: pass
Frozen spec: docs/KN-APPLE-NATIVE-HOSTED-EXCHANGE-FREEZE.md (frozen: true; freeze-review pass; digest sha256:4ec695738daf8e582923a6a6971d607bc5649eff35493d27dcd2de6303bd4dfa)
Diff scope: hub/gateway/apple-identity-token.mjs (new); hub/gateway/server.mjs (route + providers.apple + APPLE_CLIENT_ID boot capture); test/kn-apple-native-hosted-exchange.test.mjs (new); .env.example; hub/gateway/README.md; docs/HUB-API.md; docs/openapi.yaml; governance docs
Branch: feat/kn-apple-native-hosted-exchange
Reviewed: 2026-08-09 (Auto build session; independent BV checklist)

Evidence

type sha256 ref notes
test_output d419cfb27538234d8cac0f5fba12bfa2b10a5435afaa5febec1b3843bff4de77 node --test test/kn-apple-native-hosted-exchange.test.mjs 13/13 pass (unit + integration + e2e + stress + data-integrity + performance + security)

Checklist

# Check Evidence
V1 Deliverables D1–D9 at freeze paths D1 route POST /api/v1/auth/native-apple-exchange in hub/gateway/server.mjs:497+; D2 hub/gateway/apple-identity-token.mjs; D3 issueToken mint provider:'apple' + existing type:'session' (server.mjs:253); D4 C7 unchanged (GET /api/v1/auth/session); D5 providers.apple; D6 error codes in route; D7 .env.example placeholders only; D8 suite path matches §KNA.6; D9 README + HUB-API + OpenAPI
V2 Public API matches freeze Request allowlist / forbidden fields / success body / HTTP codes match §KNA.3.2–3.4; no scooling_uid / no refresh cookie on this route
V3 Seven-tier matrix exercised Suite covers all §KNA.6 tiers; security discriminator rejects unverified stub acceptance
V4 No scope creep No CapabilityGate flips; no vault write; no APPLE-6; no Passport/PKCE equated to SIWA
V5 No silent deletion of freeze requirements Bootstrap §KNA.1: working Muse tree has issueToken type:'session'; Mint uses issueToken
V6 Governance honest ROADMAP/HANDOVER updated this session to mark KN-APPLE-b DONE + NEXT = land/deploy Operator T1
V7 Secrets / safe defaults No Team IDs / PEM / prod JWTs in diff; gitleaks not required for BV pass claim beyond fixture bans in suite
V8 Claims ↔ git/test Tests green with digest above; route present in source; code readiness ≠ live T15 production evidence (Operator T1 still required)

Findings

None.

Honest summary

Knowtation gateway now accepts a verified Apple identity_token, mints a hosted session JWT of the same class as browser login (provider: apple, Layer-1 apple:<sub>, type: session), and advertises providers.apple when APPLE_CLIENT_ID is configured. Layer-2 scooling_uid is not returned. This is code readiness on the feature branch — production Apple env + deploy (Operator T1) and Scooling APPLE-4-live authorize remain separate.

File History 1 commit
sha256:700fafdd1afa490919f9515d660ca6e75456bcd5bb67513abcd8757a634c01f6 docs: record AIP-b SD-21 land (KN #308) Human 10 days ago