A signed, dated, client-facing record of who owns each production account, who had access during the project, what was revoked at handoff, and what exceptions remain — prepared for Brushfire Coffee Roasters by Northshore Studio.
A non-technical summary of credential custody as of launch. Detailed per-service assertions follow on pages 3–9. Audit log on page 10. Methodology on page 11.
| Person | Role | Removed | Reason |
|---|---|---|---|
| maria.olson@northshorestudio.com | Engineer (Northshore) | 2026-05-15 | Engagement offboarding — production access no longer required. |
| ben.cho@freelancer.io | Contractor (DTC build) | 2026-05-08 | Contract complete — access removed at project conclusion. |
| Secret | Last rotated | Rotated by |
|---|---|---|
| STRIPE_SECRET_KEY | 2026-05-20 | mara.lindberg@northshorestudio.com |
| STRIPE_WEBHOOK_SECRET | 2026-05-20 | mara.lindberg@northshorestudio.com |
| Person | Role | Removed | Reason |
|---|---|---|---|
| maria.olson@northshorestudio.com | Engineer (Northshore) | 2026-05-15 | Engagement offboarding. |
| Secret | Last rotated | Rotated by |
|---|---|---|
| SUPABASE_SERVICE_ROLE_KEY | 2026-05-20 | mara.lindberg@northshorestudio.com |
| SUPABASE_DB_URL (db password) | 2026-05-20 | ana.kim@brushfirecoffee.com |
| SUPABASE_ANON_KEY | stable | — (anon key is public-by-design; no rotation) |
| Person | Role | Removed | Reason |
|---|---|---|---|
| ben.cho@freelancer.io | Contractor | 2026-05-08 | Contract complete — write access removed. |
| kareem.shah@freelancer.io | Contractor (design build) | 2026-04-30 | Project phase complete — repo access removed. |
| Secret | Last rotated | Rotated by |
|---|---|---|
| GITHUB_DEPLOY_KEY (production) | 2026-05-19 | mara.lindberg@northshorestudio.com |
| GITHUB_ACTIONS_PAT | 2026-05-19 | mara.lindberg@northshorestudio.com |
| Person | Role | Removed | Reason |
|---|---|---|---|
| maria.olson@northshorestudio.com | Engineer (Northshore) | 2026-05-15 | Engagement offboarding. |
| ben.cho@freelancer.io | Contractor | 2026-05-08 | Contract complete — preview deploy access removed. |
| Secret | Last rotated | Rotated by |
|---|---|---|
| VERCEL_DEPLOY_HOOK_PROD | 2026-05-20 | mara.lindberg@northshorestudio.com |
| VERCEL_TOKEN (CLI) | 2026-05-20 | mara.lindberg@northshorestudio.com |
None. The OpenAI account was created under the client's email on the first day of the engagement. Northshore Studio never held administrative access; all API usage during build was through scoped API keys, all of which were rotated to client-generated keys before launch.
| Secret | Last rotated | Rotated by |
|---|---|---|
| OPENAI_API_KEY (production) | 2026-05-20 | ops@brushfirecoffee.com |
| Person | Role | Removed | Reason |
|---|---|---|---|
| maria.olson@northshorestudio.com | Engineer (Northshore) | 2026-05-15 | Engagement offboarding. |
| Secret | Last rotated | Rotated by |
|---|---|---|
| RESEND_API_KEY | 2026-05-20 | mara.lindberg@northshorestudio.com |
| Person | Role | Removed | Reason |
|---|---|---|---|
| maria.olson@northshorestudio.com | Engineer (Northshore) | 2026-05-15 | Engagement offboarding — DNS access removed. |
| Secret | Last rotated | Rotated by |
|---|---|---|
| CLOUDFLARE_API_TOKEN | 2026-05-20 | mara.lindberg@northshorestudio.com |
Significant events between project kickoff (March 4, 2026) and report issue date (May 24, 2026). One row per material custody event. Reads and routine deployments are summarized rather than enumerated; full detail available on request.
| When | Actor | Service | Event |
|---|---|---|---|
| 2026-03-04 | mara.lindberg@northshorestudio.com | — | Engagement created · NS-2026-BCR-001 · kickoff. |
| 2026-03-04 | ops@brushfirecoffee.com | Stripe | Account created under client email; agency invited as restricted-key holder only. |
| 2026-03-04 | ops@brushfirecoffee.com | Supabase | Project created under client email; agency invited as developer. |
| 2026-03-05 | ops@brushfirecoffee.com | Vercel | Team created; brushfirecoffee.com domain attached. |
| 2026-03-05 | ops@brushfirecoffee.com | Cloudflare | Zone created; DNS migrated from previous host. |
| 2026-03-12 | kareem.shah@freelancer.io | GitHub | Granted write access to brushfirecoffee/dtc-storefront for design build. |
| 2026-04-02 | ben.cho@freelancer.io | GitHub, Vercel, Stripe | Granted scoped access for DTC integration work. |
| 2026-04-30 | mara.lindberg@northshorestudio.com | GitHub | kareem.shah@freelancer.io access removed — phase complete. |
| 2026-05-08 | mara.lindberg@northshorestudio.com | GitHub, Vercel, Stripe | ben.cho@freelancer.io access removed — contract complete. |
| 2026-05-15 | mara.lindberg@northshorestudio.com | Stripe, Supabase, Vercel, Resend, Cloudflare | maria.olson@northshorestudio.com offboarded across all services. |
| 2026-05-18 | mara.lindberg@northshorestudio.com | Resend, Cloudflare | SPF, DKIM, DMARC validated for brushfirecoffee.com. |
| 2026-05-19 | mara.lindberg@northshorestudio.com | Supabase | RLS policy audit across user-facing tables — clean. |
| 2026-05-19 | mara.lindberg@northshorestudio.com | GitHub | Deploy key and Actions PAT rotated for production. |
| 2026-05-20 | mara.lindberg@northshorestudio.com | Stripe | STRIPE_SECRET_KEY and STRIPE_WEBHOOK_SECRET rotated. Restricted key issued for events feed. |
| 2026-05-20 | ana.kim@brushfirecoffee.com | Supabase | SUPABASE_SERVICE_ROLE_KEY and DB password rotated. |
| 2026-05-20 | mara.lindberg@northshorestudio.com | Vercel, Resend, Cloudflare | Production secrets rotated across hosting, email, and DNS. |
| 2026-05-20 | ops@brushfirecoffee.com | OpenAI | OPENAI_API_KEY generated by client; agency keys revoked. Spend cap set $200/mo. |
| 2026-05-22 | mara.lindberg@northshorestudio.com | — | Launch ✓ — DTC storefront live at brushfirecoffee.com. |
| 2026-05-24 | mara.lindberg@northshorestudio.com | — | This custody record issued to client; engagement marked LAUNCHED. |
What this custody record asserts, what it doesn't, and the agency principal's signed attestation as of the issue date.