Identity-graph drift report · Friday 2026-05-22
Source: identity-graph.json (schema xlab-identity-graph.v1, updated 2026-05-22T14:15)
Totals - identities: 3 - organizations: 4 - domains: 7 (+ 23 subdomains) - platforms: 29 - projects: 18 - credentials: 21
1. Unknowns (1)
? values in the graph. One row per gap. Resolve top-down; fill in identity-graph.json directly and bump updated.
| # | JSON path | Where to find the answer |
|---|---|---|
| 1 | platforms.gcp:xlab-co-projects-internal.project_id_immutable |
GCP Console → Project info → Project ID (immutable) |
2. Todos (27)
Open intent captured in graph. Cross-ref tasks board where ref cites one.
| ID | Task | Owner | Ref |
|---|---|---|---|
rename-gcp-project |
Rename GCP project display name dare-seo-audit → xlab-co-projects-internal | dan-workspace | task #54 |
bind-assets-domain |
Bind assets.gf.cx custom domain to cf-pages:assets-gf-cx | dan-personal | task #50 |
fill-cf-account-id |
Add cf:cf-dare account ID — visible in CDN, security layer, and DNS provider sitting in front of dare.co.uk." data-tip="Cloudflare — the CDN, security layer, and DNS provider sitting in front of dare.co.uk.">CF dashboard URL | dan-personal | — |
fill-gcp-project-id |
Add gcp project_id_immutable | dan-workspace | — |
audrey-email-providers |
Confirm Audrey’s email provider (Workspace? Fastmail?) | audrey-personal | — |
audreyinc-email-provider |
Confirm email provider for audreyinc.com domain | audrey-personal | — |
dogwood-www |
Confirm what serves www.dogwood.house + dogwood.house apex | dan-personal | — |
dognscarf-ownership |
Confirm dognscarf.com ownership + DNS — legacy 2023 project | dan-personal | — |
dare-time-repo |
Identify repo backing cf-pages:dare-time | dan-personal | — |
1p-service-account-write |
Either grant write to current service account, or document the GUI-only write workflow | dan-personal | — |
build-audit-script |
Build xlab_identity_audit.py — diffs this file against gh/wrangler/gcloud/op live state, flags drift nightly | dan-personal | — |
build-renderer |
Build identity-graph renderer at assets.gf.cx/identity/ (CDN, security layer, and DNS provider sitting in front of dare.co.uk." data-tip="Cloudflare — the CDN, security layer, and DNS provider sitting in front of dare.co.uk.">CF-Access-gated) — operator-only navigable view | dan-personal | — |
refactor-scripts-to-lookup |
Migrate hard-coded creds paths in pa_/ dare_/ scripts to use identity_graph.lookup(‘cred-id’) | dan-personal | — |
cf-login-migrate |
Migrate CDN, security layer, and DNS provider sitting in front of dare.co.uk." data-tip="Cloudflare — the CDN, security layer, and DNS provider sitting in front of dare.co.uk.">CF login alias cine@gf.cx → dan@gf.cx, then update cf:cf-dare.login_email in graph | dan-personal | scheduled for 2026-05-22 by user |
clarify-gcp-projects |
Clarify role of gcp:dare-devreports vs gcp:xlab-co-projects-internal — possibly merge or document distinct purposes | dan-workspace | discovered 2026-05-22 |
fill-ebay-creds |
Mint eBay Sell API credentials when listings reach 10 or seller integration enters scope | dan-personal | project_ebay_seller_api_integration_parked.md |
confirm-gsc-1p-location |
Confirm GSC OAuth credential 1P storage location + update gsc-readonly cred entry | dan-workspace | task #39 |
fill-sense-creds |
Mint Sense API credentials when home-energy ingest unparked | dan-personal | project_sense_energy_api_parked.md |
fill-privacy-creds |
Mint Privacy.com API key when agent-purchasing enters active scope | dan-personal | project_privacy_com_agent_purchasing_thesis.md |
amazon-gdpr-ingest |
Process Amazon GDPR ZIP when delivered (24-72hr from 2026-05-22) → pa_amazon_orders_pull.py | dan-personal | task #53 |
drift-pages-projects |
Add 12 live CDN, security layer, and DNS provider sitting in front of dare.co.uk." data-tip="Cloudflare — the CDN, security layer, and DNS provider sitting in front of dare.co.uk.">CF Pages projects to graph (missing project entries): audrey-health-landing, audreyinc-bookings, dare-ab-edge-health, dare-agent-stack-preview, dare-dashboard-v2-poc, dare-health, dare-time-poc, dash-edge-toggle-preview, dogwood-agent-stack-preview, dogwood-health, edge-sketch-preview, gfcx-id | dan-personal | discovered 2026-05-22 — live vs graph diff |
confirm-twilio-1p-location |
Confirm Twilio creds 1P storage location + minimal scope (SMS-only? voice?) | dan-personal | MCP connector active 2026-05-22 |
shopify-cred-fields |
Confirm Shopify cred field structure in 1P (admin API token? Storefront API? Theme API?) + populate shopify-audrey.fields | dan-personal | — |
confirm-dogs-kv-purpose |
Clarify CDN, security layer, and DNS provider sitting in front of dare.co.uk." data-tip="Cloudflare — the CDN, security layer, and DNS provider sitting in front of dare.co.uk.">CF KV namespace ‘DOGS’ purpose (likely dogwood-related but undocumented) | dan-personal | — |
confirm-cf-token-scope-overlap |
Audit 5 CDN, security layer, and DNS provider sitting in front of dare.co.uk." data-tip="Cloudflare — the CDN, security layer, and DNS provider sitting in front of dare.co.uk.">CF API tokens — confirm scope boundaries (workers-kv-deploy / portfolio-dns / dare-dns / portfolio-access / agent-edge-deploy) and consolidate if overlapping | dan-personal | — |
confirm-github-pat-storage |
Confirm github-pat-dan 1P storage (vs gh-CLI keychain) + scope (org-wide vs xlab-co only) | dan-personal | — |
xlabs-r2-purpose |
Clarify legacy R2 bucket ‘xlabs’ purpose (created 2023-02-26, oldest bucket — still in use?) | dan-personal | — |
3. Parked + pending integrations (6)
Named slots in graph, awaiting trigger to activate. resume_trigger tells you when to un-park.
| Platform | Status | Resume trigger | Ref |
|---|---|---|---|
ebay:gf-llc-seller |
pending-mint | listings >= 10 OR payout reconciliation matters OR sibling platform (Etsy/Mercari) in scope | project_ebay_seller_api_integration_parked.md |
sense:home-energy |
parked | 3rd ‘I wonder if X is drawing power’ OR electricity-bill anomaly OR pa/utilities/ section build | project_sense_energy_api_parked.md |
privacy:agent-purchasing |
parked | when an agent needs to spend on Dan’s behalf | project_privacy_com_agent_purchasing_thesis.md |
amazon:dan-personal |
no-api-available | — | task #53 |
sms.to:dan-personal |
pending-mint | when SMS use-case clarifies (cost-sensitive bulk or international) | — |
vapi:dan-personal |
parked | when phone-call capture pipeline enters scope (4th substrate after reddit/Q&A/email) | feedback_capture_at_source_durable_substrate.md |
4. Migrations in flight (1)
Fields where a _target counterpart exists — change in progress, update once flipped.
| Platform | Field | Current | Target | Note |
|---|---|---|---|---|
cf:cf-dare |
login_email |
cine@gf.cx |
dan@gf.cx |
Dan migrating cine@gf.cx → dan@gf.cx on 2026-05-22. Update login_email after CDN, security layer, and DNS provider sitting in front of dare.co.uk." data-tip="Cloudflare — the CDN, security layer, and DNS provider sitting in front of dare.co.uk.">CF auth refresh. |
Generated by bin/xlab_identity_drift_report.py on 2026-05-22.
Workflow for capture:
1. Open identity-graph.json
2. Resolve top-priority unknowns (rows 1-3 in §1) — one edit + bump updated
3. Re-run this report to confirm the row drops out
4. Commit + push
xlab_identity_drift_2026-05-22.md · Rendered Built with — component scripts
seo_render_html.py— wraps the source.mdin the dash.gf.cx design language (+anchor_enricher.pyfor inline-link promotion & rollover thumbnails)dare_dev_reports_publish.py— bundles the day’s reports into the catalog and ships to dash.gf.cx/reports