Cloudflare Resource Inventory
Generated: 2026-05-27 (account: JK.com, 07a1f8d207654fe5d838174af4813126)
Summary
| Metric | Count |
|---|
| Resource types attempted | 18 |
| Accessible | 12 |
| Not accessible (token permission missing) | 5 |
| Not accessible (plan limitation) | 1 |
| Total individual resources enumerated | 104 |
Naming Mismatch Count by Resource Type
| Resource Type | Total | ⚠️ Mismatched | ✅ Correct / Unrelated |
|---|
| Workers | 10 | 5 | 5 |
| KV Namespaces | 18 | 5 | 13 |
| R2 Buckets | 13 | 3 | 10 |
| D1 Databases | 7 | 2 | 5 |
| Queues | 16 | 6 | 10 |
| Workers Workflows | 6 | 5 | 1 |
| Durable Object Namespaces | 11 | 6 | 5 |
| Workers Custom Domains | 9 | 5 | 4 |
| Zones | 3 | 0 | 3 |
Accessible Resources
Workers
Critical note: Both bloqr-compiler and bloqr-backend are live Workers. bloqr-compiler is the currently active production backend (api.bloqr.dev points to it, all Workflows are registered against it, cron schedules run on it). bloqr-backend was freshly deployed 2026-05-03 and wrangler.toml already configures its api.bloqr.dev route (lines 55–57), cron triggers (lines 503–508), queue consumers (lines 409–438), and StripeWebhookProcessor DO binding + migration (lines 308–310, 347–349) — but these configs are not yet reflected in the Cloudflare dashboard. The root cause is deployment state drift: the checked-in wrangler.toml is ahead of what was last successfully deployed. A wrangler deploy is needed to sync the live account state.
| Name | Last Modified | Workers.dev | Cron Schedules | Notes |
|---|
bloqr-compiler | 2026-05-03 22:46 | ✅ enabled | 0 * * * *, 0 */6 * * * | ⚠️ MISMATCH — active production backend; should be bloqr-backend; still owns api.bloqr.dev domain |
adblock-email | 2026-04-25 22:41 | unknown | none | ⚠️ MISMATCH — should be bloqr-email; owns email.bloqr.dev |
adblock-frontend | 2026-04-25 22:41 | unknown | none | ⚠️ MISMATCH — should be bloqr-frontend (new bloqr-frontend script also exists) |
adblock-landing | 2026-04-25 22:41 | unknown | none | ⚠️ MISMATCH — owns bloqr.dev and mta-sts.bloqr.dev; no bloqr-landing rename target is defined in this repo — out of scope for this migration |
adblock-tail | 2026-04-25 22:41 | unknown | none | ⚠️ MISMATCH — should be bloqr-tail (new bloqr-tail script also exists); owns tail.bloqr.dev |
bloqr-backend | 2026-05-03 22:46 | ❌ disabled | none (dashboard) | ✅ correct name — wrangler.toml configures route, cron, queue consumers, and DO; deployment state drift means these aren’t live yet |
bloqr-docs | 2026-04-25 22:41 | unknown | none | ✅ correct name — owns docs.bloqr.dev |
bloqr-frontend | 2026-04-25 22:41 | unknown | none | ✅ correct name — owns app.bloqr.dev |
bloqr-tail | 2026-04-25 22:41 | unknown | none | ✅ correct name |
jk-dot-com | 2025-10-16 01:43 | unknown | none | Unrelated project — owns jaysonknight.com, www.jaysonknight.com |
KV Namespaces
| Name | Namespace ID | Notes |
|---|
bloqr-compiler-COMPILATION_CACHE | 7772628d… | ⚠️ MISMATCH — should be bloqr-backend-COMPILATION_CACHE; used by bloqr-compiler as COMPILATION_CACHE binding |
bloqr-compiler-METRICS | 025c3f10… | ⚠️ MISMATCH — should be bloqr-backend-METRICS; used by bloqr-compiler as METRICS binding |
bloqr-compiler-RATE_LIMIT | 5dc36da3… | ⚠️ MISMATCH — should be bloqr-backend-RATE_LIMIT; used by bloqr-compiler as RATE_LIMIT binding |
bloqr-compiler-TAIL-LOGS | 476d9c75… | ⚠️ MISMATCH — should be bloqr-backend-TAIL-LOGS or bloqr-tail-TAIL-LOGS |
adblock-landing-session | 3a4802a1… | ⚠️ MISMATCH — adblock-landing uses adblock-* prefix; no bloqr-landing rename target is defined in this repo |
__bloqr-compiler-workers_sites_assets | 350c14b2… | Static assets KV for bloqr-compiler; will become stale once cutover |
__hostlist-compiler-worker-workers_sites_assets | ba562a1f… | Very old static assets KV — likely stale, candidate for deletion |
BETTER_AUTH_KV | 343029e0… | ✅ generic name — used by both bloqr-compiler and bloqr-backend |
BLOQR_STRIPE_KV | db3c3780… | ✅ correct naming |
CACHE | 7349e2a7… | ✅ generic name |
CONFIG_STORE | fb5879d1… | ✅ generic name — used by both bloqr-compiler and bloqr-backend |
EMAIL_DEDUP | e6bd43ce… | ✅ generic name |
FEATURE_FLAGS | 532484fd… | ✅ generic name — used by both bloqr-compiler and bloqr-backend |
RULES_KV | b815efdc… | ✅ generic name — used by both bloqr-compiler and bloqr-backend |
bloqr-blog-session | f3d414e2… | ✅ correct naming |
jk-blog-session | d693f2e0… | Unrelated project |
jk-dot-com-session | a3b003ed… | Unrelated project |
knightly-build-session | 4eabe7ae… | Unrelated project |
R2 Buckets
Both old bloqr-compiler-* and new bloqr-backend-* buckets exist simultaneously. bloqr-compiler binds to the old ones; bloqr-backend binds to the new ones. Old buckets should be migrated/deleted after cutover.
| Name | Notes |
|---|
bloqr-compiler-error-logs | ⚠️ MISMATCH — should be bloqr-backend-error-logs; bloqr-compiler binds to this as ERROR_BUCKET |
bloqr-compiler-logs | ⚠️ MISMATCH — should be bloqr-backend-logs; bloqr-compiler binds to this as COMPILER_LOGS |
bloqr-compiler-r2-storage | ⚠️ MISMATCH — should be bloqr-backend-r2-storage; bloqr-compiler binds to this as FILTER_STORAGE |
ai-search-cold-rain-347d-5b231a | Auto-generated name — unrelated AI project |
ai-search-odd-smoke-c4af-e83dc2 | Auto-generated name — unrelated AI project |
bloqr-backend-error-logs | ✅ correct naming — bloqr-backend binds to this as ERROR_BUCKET |
bloqr-backend-logs | ✅ correct naming — bloqr-backend binds to this as COMPILER_LOGS |
bloqr-backend-r2-storage | ✅ correct naming — bloqr-backend binds to this as FILTER_STORAGE |
bloqr-blog-media | ✅ correct naming |
cloudflare-managed-3473eeb6 | Managed by Cloudflare — do not touch |
jk-blog-media | Unrelated project |
jk-media | Unrelated project |
knightly-build-media | Unrelated project |
D1 Databases
Critical: The two backend databases still carry the bloqr-compiler-* name in Cloudflare, but wrangler.toml references them by the bloqr-backend-* name. The UUID is what Cloudflare actually uses for binding, so deploys work — but the dashboard name creates confusion.
| Name (in CF dashboard) | UUID | wrangler.toml binding name | Notes |
|---|
bloqr-compiler-admin-d1 | 7d5a2704-5033-4433-911f-d8368f36dcdf | bloqr-backend-admin-d1 (ADMIN_DB) | ⚠️ MISMATCH — dashboard name ≠ wrangler name |
bloqr-compiler-d1-database | 3e8e7dfe-3213-452a-a671-6c18e6e74ce5 | bloqr-backend-d1-database (DB) | ⚠️ MISMATCH — dashboard name ≠ wrangler name |
bloqr-blog-d1 | 9546f7e9-… | — | ✅ correct naming |
bloqr-config-cache | 8d6153e2-… | — | ✅ correct naming |
bloqr-email | 662fc37a-… | — | ✅ correct naming |
jk-blog-d1 | ed4a0fbb-… | — | Unrelated project |
jk-emdash | c6beff50-… | — | Unrelated project |
Queues
Both old bloqr-compiler-* and new bloqr-backend-* queues exist. Old queues still have bloqr-compiler as both producer and consumer. wrangler.toml already declares [[queues.consumers]] for all four bloqr-backend-* queues (lines 409–438), but the Cloudflare dashboard shows no consumers registered against them — this is deployment state drift; bloqr-backend needs to be deployed to sync the consumers.
| Name | Producers | Consumers | Notes |
|---|
bloqr-compiler-dlq | none | bloqr-compiler | ⚠️ MISMATCH — dead-letter queue for old worker |
bloqr-compiler-email-dlq | none | bloqr-compiler | ⚠️ MISMATCH — email DLQ for old worker |
bloqr-compiler-email-queue | bloqr-compiler | bloqr-compiler | ⚠️ MISMATCH — should be bloqr-backend-email-queue |
bloqr-compiler-error-queue | bloqr-compiler | bloqr-compiler | ⚠️ MISMATCH — should be bloqr-backend-error-queue |
bloqr-compiler-worker-queue | bloqr-compiler | bloqr-compiler | ⚠️ MISMATCH — should be bloqr-backend-worker-queue |
bloqr-compiler-worker-queue-high-priority | bloqr-compiler | bloqr-compiler | ⚠️ MISMATCH — should be bloqr-backend-worker-queue-high-priority |
bloqr-backend-dlq | none | none | ✅ correct name — consumer config in wrangler.toml line 413; not yet deployed |
bloqr-backend-email-dlq | none | none | ✅ correct name — consumer config in wrangler.toml line 438; not yet deployed |
bloqr-backend-email-queue | none (via bloqr-backend binding) | none | ✅ correct name — consumer config in wrangler.toml lines 433–438; not yet deployed |
bloqr-backend-error-queue | none (via bloqr-backend binding) | none | ✅ correct name — consumer config in wrangler.toml lines 422–425; not yet deployed |
bloqr-backend-worker-queue | none (via bloqr-backend binding) | none | ✅ correct name — consumer config in wrangler.toml lines 409–413; not yet deployed |
bloqr-backend-worker-queue-high-priority | none (via bloqr-backend binding) | none | ✅ correct name — consumer config in wrangler.toml lines 415–419; not yet deployed |
default-queue | none | none | Created 2026-05-03 — likely from Stripe/test setup |
email-dlq | none | adblock-landing | Belongs to landing worker |
email-queue | adblock-landing | adblock-landing | Belongs to landing worker |
images-events | none | none | Older queue — stale candidate |
Workers Workflows
All five backend workflows are still registered under bloqr-compiler. The bloqr-backend worker was deployed 2026-05-03, but workflows have not been migrated. health-monitoring-workflow and cache-warming-workflow are actively running (748 and 125 completed instances).
| Workflow Name | Registered Script | Class Name | Status | Notes |
|---|
batch-compilation-workflow | bloqr-compiler | BatchCompilationWorkflow | 0 instances | ⚠️ MISMATCH — should be registered under bloqr-backend |
cache-warming-workflow | bloqr-compiler | CacheWarmingWorkflow | 125 completed | ⚠️ MISMATCH — actively running; should be bloqr-backend |
compilation-workflow | bloqr-compiler | CompilationWorkflow | 7 completed | ⚠️ MISMATCH — should be bloqr-backend |
email-delivery-workflow | bloqr-compiler | EmailDeliveryWorkflow | 0 instances | ⚠️ MISMATCH — should be bloqr-backend |
health-monitoring-workflow | bloqr-compiler | HealthMonitoringWorkflow | 748 completed | ⚠️ MISMATCH — actively running; should be bloqr-backend |
waitlist-signup | adblock-landing | WaitlistSignupWorkflow | 0 instances | ⚠️ Belongs to adblock-landing; no bloqr-landing rename target is defined in this repo — out of scope for this migration |
Durable Object Namespaces
Six namespaces belong to the old bloqr-compiler worker; five are already registered under bloqr-backend. StripeWebhookProcessor has no bloqr-backend namespace in the dashboard yet, but wrangler.toml already includes the binding (STRIPE_WEBHOOK_PROCESSOR, line 309) and migration tag v5 new_sqlite_classes = ["StripeWebhookProcessor"] (lines 347–349). The namespace will be created automatically on the next wrangler deploy.
| Name | Namespace ID | Script | Class | SQLite | Containers |
|---|
bloqr-compiler_BloqrCompiler | 9674e577… | bloqr-compiler | BloqrCompiler | ✅ | ✅ |
bloqr-compiler_CompilationCoordinator | 8374196a… | bloqr-compiler | CompilationCoordinator | ✅ | — |
bloqr-compiler_PlaywrightMcpAgent | d5beef67… | bloqr-compiler | PlaywrightMcpAgent | ✅ | — |
bloqr-compiler_RateLimiterDO | d924f0d7… | bloqr-compiler | RateLimiterDO | ✅ | — |
bloqr-compiler_StripeWebhookProcessor | 66dcb790… | bloqr-compiler | StripeWebhookProcessor | — | — |
bloqr-compiler_WsHibernationDO | c1ca982c… | bloqr-compiler | WsHibernationDO | ✅ | — |
bloqr-backend_BloqrCompiler | a42644d6… | bloqr-backend | BloqrCompiler | ✅ | ✅ |
bloqr-backend_CompilationCoordinator | f0b62b6b… | bloqr-backend | CompilationCoordinator | ✅ | — |
bloqr-backend_PlaywrightMcpAgent | ae8a6b0a… | bloqr-backend | PlaywrightMcpAgent | ✅ | — |
bloqr-backend_RateLimiterDO | 01e9e5e2… | bloqr-backend | RateLimiterDO | ✅ | — |
bloqr-backend_WsHibernationDO | 701e19b3… | bloqr-backend | WsHibernationDO | ✅ | — |
Workers Custom Domains
| Hostname | Zone | Worker Script | Environment | Notes |
|---|
api.bloqr.dev | bloqr.dev | bloqr-compiler | production | ⚠️ DEPLOYMENT DRIFT — wrangler.toml already declares this route for bloqr-backend (lines 55–57); live traffic still routes to bloqr-compiler because the config hasn’t been deployed yet |
bloqr.dev | bloqr.dev | adblock-landing | production | ⚠️ MISMATCH — adblock-landing uses adblock-* prefix; no bloqr-landing rename target is defined in this repo |
email.bloqr.dev | bloqr.dev | adblock-email | production | ⚠️ MISMATCH — adblock-email should be bloqr-email |
mta-sts.bloqr.dev | bloqr.dev | adblock-landing | production | ⚠️ MISMATCH — adblock-landing uses adblock-* prefix; no bloqr-landing rename target is defined in this repo |
tail.bloqr.dev | bloqr.dev | adblock-tail | production | ⚠️ MISMATCH — adblock-tail should be bloqr-tail |
app.bloqr.dev | bloqr.dev | bloqr-frontend | production | ✅ correct |
docs.bloqr.dev | bloqr.dev | bloqr-docs | production | ✅ correct |
jaysonknight.com | jaysonknight.com | jk-dot-com | production | Unrelated project |
www.jaysonknight.com | jaysonknight.com | jk-dot-com | production | Unrelated project |
Zones (Domains)
| Domain | Zone ID | Status | Plan | Notes |
|---|
bloqr.dev | a619a2e0… | Active | Pro | ✅ Primary project domain |
jaysonknight.com | 4caa9904… | Active | Pro | Unrelated — personal site |
knightlocked.com | 76e6a72e… | Active | Free | Unrelated |
Pages Projects
0 Pages projects found. Account uses Workers + Static Assets instead of Pages.
Pipelines
0 Pipelines found in the API listing. Note: A METRICS_PIPELINE binding exists in both bloqr-compiler and bloqr-backend pointing to pipeline ID c846e37117874905a94b1ef9da2e138e — this pipeline may exist but is not returned by the Pipelines list endpoint.
Workers Cron Schedules
| Worker | Cron | Frequency |
|---|
bloqr-compiler | 0 * * * * | Hourly |
bloqr-compiler | 0 */6 * * * | Every 6 hours |
bloqr-backend | (none registered in dashboard) | — |
⚠️ Deployment state drift. wrangler.toml already declares both cron triggers for bloqr-backend in [triggers] (lines 503–508). They are absent from the dashboard because bloqr-backend has not been successfully deployed with this config yet. A wrangler deploy will register them.
⚠️ Not Accessible (Token Permission Gaps and Plan Limitations)
| Resource Type | Error / Permission Required |
|---|
| Hyperdrive Configurations | Authentication error (code 10000) — token needs Hyperdrive: Read permission |
| AI Gateway | Authentication error (code 10000) — token needs AI Gateway: Read permission |
| Vectorize Indexes | Authentication error (code 10000) — token needs Vectorize: Read permission |
| Logpush Jobs | Authentication error (code 10000) — token needs Logs: Read permission |
| Email Routing Rules (Zone) | Authentication error (code 10000) — token needs Email Routing Rules: Read permission scoped to zone |
| Workers for Platforms (Dispatch Namespaces) | Plan limitation (code 10121): You do not have access to dispatch namespaces — requires Enterprise plan; not a token permission issue |
Critical Action Items
The following are the most impactful mismatches that must be resolved to complete the bloqr-compiler-* → bloqr-backend-* migration:
🔴 Blocking (production traffic affected)
api.bloqr.dev route — deployment state drift → wrangler.toml already declares [[routes]] pattern = "api.bloqr.dev" custom_domain = true for bloqr-backend (lines 55–57). The live domain still resolves to bloqr-compiler because bloqr-backend has not been deployed with this config. Action: run wrangler deploy; the custom domain will be transferred automatically.
- All 5 backend Workflows → still registered under
bloqr-compiler. After cutover, health monitoring and cache warming will fail if the old worker is retired.
- Cron schedules — deployment state drift →
wrangler.toml already declares [triggers] crons = ["0 */6 * * *", "0 * * * *"] for bloqr-backend (lines 503–508). No schedules appear in the dashboard for bloqr-backend because the config hasn’t been deployed. Action: run wrangler deploy.
🟡 Pre-cutover (required before retiring bloqr-compiler)
- Queue consumers — deployment state drift →
wrangler.toml already configures [[queues.consumers]] for all four bloqr-backend-* queues (lines 409–438). The Cloudflare dashboard shows no consumers registered because bloqr-backend has not been deployed with this config. Action: run wrangler deploy — no wrangler.toml changes needed.
StripeWebhookProcessor Durable Object — deployment state drift → wrangler.toml already binds STRIPE_WEBHOOK_PROCESSOR (line 309) and includes migration v5 new_sqlite_classes = ["StripeWebhookProcessor"] (lines 347–349). No bloqr-backend_StripeWebhookProcessor namespace appears in the dashboard because bloqr-backend has not been deployed with this migration. Action: run wrangler deploy — the namespace will be auto-created by the migration runner.
- KV namespaces → 5 KV namespaces carry
bloqr-compiler-* names; new equivalents need to be created and data migrated, or the names need to be updated in place via the CF dashboard.
- D1 database display names →
bloqr-compiler-admin-d1 and bloqr-compiler-d1-database should be renamed to bloqr-backend-admin-d1 / bloqr-backend-d1-database in the CF dashboard (the UUIDs already match in wrangler.toml).
🟢 Cleanup (after cutover)
- Delete old
bloqr-compiler-* R2 buckets after data migration.
- Delete old
bloqr-compiler-* queues after bloqr-backend consumers are verified.
- Retire
adblock-frontend, adblock-tail, adblock-email Worker scripts once their bloqr-frontend, bloqr-tail, bloqr-email counterparts are fully live.
adblock-landing — no bloqr-landing rename target is defined in this repo; its retirement is out of scope for this migration.
- Delete stale KV namespaces:
__bloqr-compiler-workers_sites_assets, __hostlist-compiler-worker-workers_sites_assets.