Skip to content

Cloudflare Resource Inventory

Cloudflare Resource Inventory

Generated: 2026-05-27 (account: JK.com, 07a1f8d207654fe5d838174af4813126)

Summary

MetricCount
Resource types attempted18
Accessible12
Not accessible (token permission missing)5
Not accessible (plan limitation)1
Total individual resources enumerated104

Naming Mismatch Count by Resource Type

Resource TypeTotal⚠️ Mismatched✅ Correct / Unrelated
Workers1055
KV Namespaces18513
R2 Buckets13310
D1 Databases725
Queues16610
Workers Workflows651
Durable Object Namespaces1165
Workers Custom Domains954
Zones303

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.

NameLast ModifiedWorkers.devCron SchedulesNotes
bloqr-compiler2026-05-03 22:46✅ enabled0 * * * *, 0 */6 * * *⚠️ MISMATCH — active production backend; should be bloqr-backend; still owns api.bloqr.dev domain
adblock-email2026-04-25 22:41unknownnone⚠️ MISMATCH — should be bloqr-email; owns email.bloqr.dev
adblock-frontend2026-04-25 22:41unknownnone⚠️ MISMATCH — should be bloqr-frontend (new bloqr-frontend script also exists)
adblock-landing2026-04-25 22:41unknownnone⚠️ 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-tail2026-04-25 22:41unknownnone⚠️ MISMATCH — should be bloqr-tail (new bloqr-tail script also exists); owns tail.bloqr.dev
bloqr-backend2026-05-03 22:46❌ disablednone (dashboard)✅ correct name — wrangler.toml configures route, cron, queue consumers, and DO; deployment state drift means these aren’t live yet
bloqr-docs2026-04-25 22:41unknownnone✅ correct name — owns docs.bloqr.dev
bloqr-frontend2026-04-25 22:41unknownnone✅ correct name — owns app.bloqr.dev
bloqr-tail2026-04-25 22:41unknownnone✅ correct name
jk-dot-com2025-10-16 01:43unknownnoneUnrelated project — owns jaysonknight.com, www.jaysonknight.com

KV Namespaces

NameNamespace IDNotes
bloqr-compiler-COMPILATION_CACHE7772628d…⚠️ MISMATCH — should be bloqr-backend-COMPILATION_CACHE; used by bloqr-compiler as COMPILATION_CACHE binding
bloqr-compiler-METRICS025c3f10…⚠️ MISMATCH — should be bloqr-backend-METRICS; used by bloqr-compiler as METRICS binding
bloqr-compiler-RATE_LIMIT5dc36da3…⚠️ MISMATCH — should be bloqr-backend-RATE_LIMIT; used by bloqr-compiler as RATE_LIMIT binding
bloqr-compiler-TAIL-LOGS476d9c75…⚠️ MISMATCH — should be bloqr-backend-TAIL-LOGS or bloqr-tail-TAIL-LOGS
adblock-landing-session3a4802a1…⚠️ MISMATCHadblock-landing uses adblock-* prefix; no bloqr-landing rename target is defined in this repo
__bloqr-compiler-workers_sites_assets350c14b2…Static assets KV for bloqr-compiler; will become stale once cutover
__hostlist-compiler-worker-workers_sites_assetsba562a1f…Very old static assets KV — likely stale, candidate for deletion
BETTER_AUTH_KV343029e0…✅ generic name — used by both bloqr-compiler and bloqr-backend
BLOQR_STRIPE_KVdb3c3780…✅ correct naming
CACHE7349e2a7…✅ generic name
CONFIG_STOREfb5879d1…✅ generic name — used by both bloqr-compiler and bloqr-backend
EMAIL_DEDUPe6bd43ce…✅ generic name
FEATURE_FLAGS532484fd…✅ generic name — used by both bloqr-compiler and bloqr-backend
RULES_KVb815efdc…✅ generic name — used by both bloqr-compiler and bloqr-backend
bloqr-blog-sessionf3d414e2…✅ correct naming
jk-blog-sessiond693f2e0…Unrelated project
jk-dot-com-sessiona3b003ed…Unrelated project
knightly-build-session4eabe7ae…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.

NameNotes
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-5b231aAuto-generated name — unrelated AI project
ai-search-odd-smoke-c4af-e83dc2Auto-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-3473eeb6Managed by Cloudflare — do not touch
jk-blog-mediaUnrelated project
jk-mediaUnrelated project
knightly-build-mediaUnrelated 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)UUIDwrangler.toml binding nameNotes
bloqr-compiler-admin-d17d5a2704-5033-4433-911f-d8368f36dcdfbloqr-backend-admin-d1 (ADMIN_DB)⚠️ MISMATCH — dashboard name ≠ wrangler name
bloqr-compiler-d1-database3e8e7dfe-3213-452a-a671-6c18e6e74ce5bloqr-backend-d1-database (DB)⚠️ MISMATCH — dashboard name ≠ wrangler name
bloqr-blog-d19546f7e9-…✅ correct naming
bloqr-config-cache8d6153e2-…✅ correct naming
bloqr-email662fc37a-…✅ correct naming
jk-blog-d1ed4a0fbb-…Unrelated project
jk-emdashc6beff50-…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.

NameProducersConsumersNotes
bloqr-compiler-dlqnonebloqr-compiler⚠️ MISMATCH — dead-letter queue for old worker
bloqr-compiler-email-dlqnonebloqr-compiler⚠️ MISMATCH — email DLQ for old worker
bloqr-compiler-email-queuebloqr-compilerbloqr-compiler⚠️ MISMATCH — should be bloqr-backend-email-queue
bloqr-compiler-error-queuebloqr-compilerbloqr-compiler⚠️ MISMATCH — should be bloqr-backend-error-queue
bloqr-compiler-worker-queuebloqr-compilerbloqr-compiler⚠️ MISMATCH — should be bloqr-backend-worker-queue
bloqr-compiler-worker-queue-high-prioritybloqr-compilerbloqr-compiler⚠️ MISMATCH — should be bloqr-backend-worker-queue-high-priority
bloqr-backend-dlqnonenone✅ correct name — consumer config in wrangler.toml line 413; not yet deployed
bloqr-backend-email-dlqnonenone✅ correct name — consumer config in wrangler.toml line 438; not yet deployed
bloqr-backend-email-queuenone (via bloqr-backend binding)none✅ correct name — consumer config in wrangler.toml lines 433–438; not yet deployed
bloqr-backend-error-queuenone (via bloqr-backend binding)none✅ correct name — consumer config in wrangler.toml lines 422–425; not yet deployed
bloqr-backend-worker-queuenone (via bloqr-backend binding)none✅ correct name — consumer config in wrangler.toml lines 409–413; not yet deployed
bloqr-backend-worker-queue-high-prioritynone (via bloqr-backend binding)none✅ correct name — consumer config in wrangler.toml lines 415–419; not yet deployed
default-queuenonenoneCreated 2026-05-03 — likely from Stripe/test setup
email-dlqnoneadblock-landingBelongs to landing worker
email-queueadblock-landingadblock-landingBelongs to landing worker
images-eventsnonenoneOlder 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 NameRegistered ScriptClass NameStatusNotes
batch-compilation-workflowbloqr-compilerBatchCompilationWorkflow0 instances⚠️ MISMATCH — should be registered under bloqr-backend
cache-warming-workflowbloqr-compilerCacheWarmingWorkflow125 completed⚠️ MISMATCHactively running; should be bloqr-backend
compilation-workflowbloqr-compilerCompilationWorkflow7 completed⚠️ MISMATCH — should be bloqr-backend
email-delivery-workflowbloqr-compilerEmailDeliveryWorkflow0 instances⚠️ MISMATCH — should be bloqr-backend
health-monitoring-workflowbloqr-compilerHealthMonitoringWorkflow748 completed⚠️ MISMATCHactively running; should be bloqr-backend
waitlist-signupadblock-landingWaitlistSignupWorkflow0 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.

NameNamespace IDScriptClassSQLiteContainers
bloqr-compiler_BloqrCompiler9674e577…bloqr-compilerBloqrCompiler
bloqr-compiler_CompilationCoordinator8374196a…bloqr-compilerCompilationCoordinator
bloqr-compiler_PlaywrightMcpAgentd5beef67…bloqr-compilerPlaywrightMcpAgent
bloqr-compiler_RateLimiterDOd924f0d7…bloqr-compilerRateLimiterDO
bloqr-compiler_StripeWebhookProcessor66dcb790…bloqr-compilerStripeWebhookProcessor
bloqr-compiler_WsHibernationDOc1ca982c…bloqr-compilerWsHibernationDO
bloqr-backend_BloqrCompilera42644d6…bloqr-backendBloqrCompiler
bloqr-backend_CompilationCoordinatorf0b62b6b…bloqr-backendCompilationCoordinator
bloqr-backend_PlaywrightMcpAgentae8a6b0a…bloqr-backendPlaywrightMcpAgent
bloqr-backend_RateLimiterDO01e9e5e2…bloqr-backendRateLimiterDO
bloqr-backend_WsHibernationDO701e19b3…bloqr-backendWsHibernationDO

Workers Custom Domains

HostnameZoneWorker ScriptEnvironmentNotes
api.bloqr.devbloqr.devbloqr-compilerproduction⚠️ DEPLOYMENT DRIFTwrangler.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.devbloqr.devadblock-landingproduction⚠️ MISMATCHadblock-landing uses adblock-* prefix; no bloqr-landing rename target is defined in this repo
email.bloqr.devbloqr.devadblock-emailproduction⚠️ MISMATCHadblock-email should be bloqr-email
mta-sts.bloqr.devbloqr.devadblock-landingproduction⚠️ MISMATCHadblock-landing uses adblock-* prefix; no bloqr-landing rename target is defined in this repo
tail.bloqr.devbloqr.devadblock-tailproduction⚠️ MISMATCHadblock-tail should be bloqr-tail
app.bloqr.devbloqr.devbloqr-frontendproduction✅ correct
docs.bloqr.devbloqr.devbloqr-docsproduction✅ correct
jaysonknight.comjaysonknight.comjk-dot-comproductionUnrelated project
www.jaysonknight.comjaysonknight.comjk-dot-comproductionUnrelated project

Zones (Domains)

DomainZone IDStatusPlanNotes
bloqr.deva619a2e0…ActivePro✅ Primary project domain
jaysonknight.com4caa9904…ActiveProUnrelated — personal site
knightlocked.com76e6a72e…ActiveFreeUnrelated

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

WorkerCronFrequency
bloqr-compiler0 * * * *Hourly
bloqr-compiler0 */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 TypeError / Permission Required
Hyperdrive ConfigurationsAuthentication error (code 10000) — token needs Hyperdrive: Read permission
AI GatewayAuthentication error (code 10000) — token needs AI Gateway: Read permission
Vectorize IndexesAuthentication error (code 10000) — token needs Vectorize: Read permission
Logpush JobsAuthentication 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)

  1. api.bloqr.dev route — deployment state driftwrangler.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.
  2. All 5 backend Workflows → still registered under bloqr-compiler. After cutover, health monitoring and cache warming will fail if the old worker is retired.
  3. Cron schedules — deployment state driftwrangler.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)

  1. Queue consumers — deployment state driftwrangler.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.
  2. StripeWebhookProcessor Durable Object — deployment state driftwrangler.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.
  3. 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.
  4. D1 database display namesbloqr-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)

  1. Delete old bloqr-compiler-* R2 buckets after data migration.
  2. Delete old bloqr-compiler-* queues after bloqr-backend consumers are verified.
  3. Retire adblock-frontend, adblock-tail, adblock-email Worker scripts once their bloqr-frontend, bloqr-tail, bloqr-email counterparts are fully live.
  4. adblock-landing — no bloqr-landing rename target is defined in this repo; its retirement is out of scope for this migration.
  5. Delete stale KV namespaces: __bloqr-compiler-workers_sites_assets, __hostlist-compiler-worker-workers_sites_assets.