fix: disable GDPR compliance webhooks pending Protected Customer Data access
shopify app dev refused to push the 3 mandatory compliance-topic webhooks (customers/data_request, customers/redact, shop/redact) with "This app is not approved to subscribe to webhook topics containing protected customer data" — subscribing to these requires the org to first request and be granted Protected Customer Data Access in the Partner Dashboard, a manual approval step outside the CLI/config entirely. Commented out the three subscription blocks in shopify.app.toml (handlers are untouched and still fully wired) so dev can proceed now. README.md gets a new "Before public launch" section as the reminder to re-enable them once access is granted — this is a hard requirement for BfS/public submission per CLAUDE.md, not something to forget once dev is unblocked. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
parent
e116a6c87a
commit
cc3303d318
13
README.md
13
README.md
@ -38,6 +38,19 @@ runs the BullMQ worker (jobs/worker.ts) once Phase 4 makes it do anything.
|
|||||||
| `npm run test:functions` | Real WASM build + `function-runner` tests for both Shopify Functions, against fixtures |
|
| `npm run test:functions` | Real WASM build + `function-runner` tests for both Shopify Functions, against fixtures |
|
||||||
| `npm run typegen:functions` | Regenerate `extensions/*/generated/api.ts` from each Function's `schema.graphql` + `.graphql` query (also runs automatically before `npm run typecheck`) |
|
| `npm run typegen:functions` | Regenerate `extensions/*/generated/api.ts` from each Function's `schema.graphql` + `.graphql` query (also runs automatically before `npm run typecheck`) |
|
||||||
|
|
||||||
|
## Before public launch
|
||||||
|
|
||||||
|
The 3 mandatory GDPR compliance webhooks (`customers/data_request`,
|
||||||
|
`customers/redact`, `shop/redact`) are commented out in `shopify.app.toml`
|
||||||
|
— Shopify refuses to push them until the org requests and is granted
|
||||||
|
**Protected customer data access** in the Partner Dashboard (Apps → this
|
||||||
|
app → API access → Protected customer data), which is a manual
|
||||||
|
questionnaire/approval step. The handlers already exist and are fully
|
||||||
|
wired (`app/routes/webhooks.customers.*.tsx`, `webhooks.shop.redact.tsx`) —
|
||||||
|
once that access is granted, uncomment the three `[[webhooks.subscriptions]]`
|
||||||
|
blocks near the bottom of the webhooks section. **Required before any
|
||||||
|
public launch or Built-for-Shopify submission** — don't ship without it.
|
||||||
|
|
||||||
## Status
|
## Status
|
||||||
|
|
||||||
Phase 0 (scaffold & CI) through Phase 4 (enforcement Functions +
|
Phase 0 (scaffold & CI) through Phase 4 (enforcement Functions +
|
||||||
|
|||||||
@ -40,21 +40,28 @@ api_version = "2026-10"
|
|||||||
uri = "/webhooks/orders/cancelled"
|
uri = "/webhooks/orders/cancelled"
|
||||||
topics = ["orders/cancelled"]
|
topics = ["orders/cancelled"]
|
||||||
|
|
||||||
# Mandatory GDPR compliance topics — required for Built-for-Shopify / public app review.
|
# Mandatory GDPR compliance topics — required for Built-for-Shopify /
|
||||||
# Handled by: app/routes/webhooks.customers.data_request.tsx
|
# public app review. TEMPORARILY DISABLED: `shopify app dev`/`deploy`
|
||||||
[[webhooks.subscriptions]]
|
# refuses to push these until the org has requested and been granted
|
||||||
uri = "/webhooks/customers/data_request"
|
# "Protected customer data access" in the Partner Dashboard (Apps ->
|
||||||
compliance_topics = ["customers/data_request"]
|
# this app -> API access -> Protected customer data) — that's a manual
|
||||||
|
# questionnaire/approval step, not something the CLI or config can
|
||||||
|
# bypass. RE-ENABLE these three blocks (handlers already exist and are
|
||||||
|
# wired: app/routes/webhooks.customers.data_request.tsx,
|
||||||
|
# webhooks.customers.redact.tsx, webhooks.shop.redact.tsx) once that
|
||||||
|
# access is granted, and before any public launch/BfS submission.
|
||||||
|
|
||||||
# Handled by: app/routes/webhooks.customers.redact.tsx
|
# [[webhooks.subscriptions]]
|
||||||
[[webhooks.subscriptions]]
|
# uri = "/webhooks/customers/data_request"
|
||||||
uri = "/webhooks/customers/redact"
|
# compliance_topics = ["customers/data_request"]
|
||||||
compliance_topics = ["customers/redact"]
|
|
||||||
|
|
||||||
# Handled by: app/routes/webhooks.shop.redact.tsx
|
# [[webhooks.subscriptions]]
|
||||||
[[webhooks.subscriptions]]
|
# uri = "/webhooks/customers/redact"
|
||||||
uri = "/webhooks/shop/redact"
|
# compliance_topics = ["customers/redact"]
|
||||||
compliance_topics = ["shop/redact"]
|
|
||||||
|
# [[webhooks.subscriptions]]
|
||||||
|
# uri = "/webhooks/shop/redact"
|
||||||
|
# compliance_topics = ["shop/redact"]
|
||||||
|
|
||||||
# App proxy so the storefront Theme App Extension can call our backend
|
# App proxy so the storefront Theme App Extension can call our backend
|
||||||
# without CORS issues (see IMPLEMENTATION_PLAN.md §5.3). `shopify app dev`
|
# without CORS issues (see IMPLEMENTATION_PLAN.md §5.3). `shopify app dev`
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user