Worker Inventory¶
Last updated: 2026-05-25 (MIGRATION-CAPABILITY-RECOVERY-AUDIT-01). Previous update: 2026-04-20 (TERRAFORM-REBUILD-01, session 65).
All workers in this inventory run in the RTOpacks Cloudflare account (f95d45376ebeeeaf011a4f0ec0fb7b38). Database IDs below are the current, verified values from the deployed workers' wrangler.jsonc / wrangler.toml files.
Standing rule:
wrangler d1 executefrom the project root resolves to the wrong Cloudflare account (UCCO Foundation) due to an unrelated.wranglerstate. Alwayscd apps/admin/before running D1 commands. Seedocs/docs/ops/standing-rules.md.Audit note 2026-05-25: Ground truth re-established via Cloudflare Workers API
workers_list. 38 workers deployed in the RTOpacks account. The 2026-04-20 version of this inventory listed 18 workers — 20 deployed workers were undocumented. This update reconciles documentation with reality. Three name corrections, one phantom worker removed, four staging counterparts added, all auxiliary/proxy workers listed.
Customer-Facing Apps (always-on HTTP)¶
| Worker | Source path | Database(s) / bindings | Purpose |
|---|---|---|---|
rtopacks-admin |
apps/admin | ops-db + rtopacks-db + radar-db + landscape-db + others | Admin console (org browser, Radar, finance, Sync Observatory) |
rtopacks-site |
apps/site | ops-db + rtopacks-db + calendar-db + engine-db-oc + licensing-db-oc + microcredentials-db | Public site (rtopacks.com.au); producer for rtopacks-ingest-queue |
rtopacks-workspace |
apps/workspace | ops-db + engine-db-oc | Client workspace (billing, entitlements, subscription) |
rtopacks-internal-api |
workers/internal-api | ops-db + rtopacks-db + engine-db-oc + microcredentials-db + licensing-db-oc | Central API for billing, QB push, org lookups, entitlements |
Staging Counterparts¶
| Worker | Source path | Bindings | Notes |
|---|---|---|---|
rtopacks-admin-dev |
apps/admin (env=dev) | rto-ops-db-staging + rto-workspace-db-staging + rto-intake-db-staging + rtopacks-db (shared with prod) + others | Routes admin.rtopacks.dev. D1 names retain -staging suffix per ADR-027 D1-name lag; alignment via D1-NAME-ENVIRONMENT-RENAME-01 |
rtopacks-site-dev |
apps/site (env=dev) | (dev variant) | Routes rtopacks.dev |
rtopacks-workspace-dev |
apps/workspace (env=dev) | rto-workspace-db-staging + others | Routes my.rtopacks.dev |
rtopacks-internal-api-dev |
workers/internal-api (env=dev) | dev DB bindings | Internal API for dev surfaces |
Automated Data Pipeline Workers (cron-driven)¶
| Worker | Source path | Database(s) | Schedule | Dispatch | Purpose |
|---|---|---|---|---|---|
tga-sync |
scripts/workers/tga-sync | rtopacks-db + ops-db | 0 16 * * SAT (Sun 2am AEST) |
Queue (tga-sync-queue) |
TGA weekly delta sync — sweep, training, orgs, utility phases chained via queue |
cricos-sync |
workers/cricos-sync | rtopacks-db + ops-db | 0 18 1 * * (1st/mo 4am AEST) |
Queue (cricos-sync-queue) |
CRICOS monthly refresh — institutions, courses, locations, course-locations |
rtopacks-tga-ingest |
workers/tga-ingest | rtopacks-db | None (queue-only) | Queue consumer (rtopacks-ingest-queue, DLQ: rtopacks-ingest-dlq) |
On-demand RTO enrichment from public site traffic |
enrich-sync |
workers/enrich-sync | rtopacks-db + ops-db | 0 12 * * SAT (Sun 10pm AEST) |
Direct cron | RTO enrichment from TGA — rotating sweep of all current RTOs |
rtopacks-teqsa-sync |
workers/teqsa-sync | licensing-db-oc + ops-db | 0 5 1 * * (1st/mo 3pm AEST) |
Direct cron | TEQSA monthly provider register refresh |
rtopacks-cal-sync |
workers/cal-sync | calendar-db + ops-db | 0 20 1 * * (1st/mo 6am AEST) |
Direct cron | VET industry calendar events |
qb-reconcile |
workers/qb-reconcile | ops-db + SESSION_KV | 0 20 * * * (daily 6am AEST) |
Direct cron | QB OAuth token heartbeat (100-day rotation) + retry failed QB pushes |
rto-tender-sync |
workers/rto-tender-sync | ops-db | 0 8 * * * + 0 10 * * SAT |
Direct cron | AusTender ATM daily + OCDS weekly. Previously documented as ops-tender-sync — corrected 2026-05-25 to match deployed name. |
rto-traffic-snapshot |
workers/rto-traffic-snapshot | ops-db | 0 2 * * * (daily 12pm AEST) |
Direct cron | Zone traffic stats to D1. Previously documented as traffic-snapshot — corrected 2026-05-25. Note: duplicates CF Zone Analytics; vestigial pending OPS-DB-CONTENT-AUDIT-01 verdict. |
rtopacks-traffic-logger |
workers/traffic-logger | ops-db | 0 2 * * * |
Direct cron | Daily per-request traffic log aggregation. Reader: apps/admin Visitors surface. |
stats-cache |
(no on-disk source — deployed via dashboard, source not in repo) | KV + rtopacks-db | 0 */6 * * * (every 6hr) |
Direct cron | ABS + TGA homepage stats |
qual-enrichment |
(no on-disk source — deployed via dashboard, source not in repo) | rtopacks-db | 0 17 * * * (daily 3am AEST) |
Direct cron | Qualification pre-aggregation. 2026-05-25 audit: target table qual_enrichment has zero consumers; producer broken since 2026-03-29 (downstream of broken GLMD/IVI/OSL/VNDA cohort). Retirement-with-rebuild-path scheduled. |
radar-crawl |
workers/radar-crawl | radar-db + rtopacks-db + R2 (radar-screenshots) + KV (radar) + Browser binding | 0 16 1 * * (monthly 1st 16 UTC) |
Direct cron | RTO digital footprint crawler. Writes raw observations + crawl results + screenshots. Does NOT write radar_dossiers or radar_signals (operator-curated layer). |
rtopacks-magda-monitor |
workers/magda-monitor | radar-db (magda_datasets) |
0 20 1 * * (monthly 1st 6am AEST) |
Direct cron | MAGDA government dataset catalogue monitoring |
rtopacks-jsa-ingest |
workers/jsa-ingest | rtopacks-db (jsa_*) + JSA API via proxy |
0 2 1 * * (1st/mo 2am UTC) |
Direct cron | Jobs and Skills Australia — VET training + outcomes ingest. November-only branch writes recon_vnda. Has explicit jsa_ingest_runs status table. |
rtopacks-ivi-ingest |
workers/ivi-ingest | rtopacks-db (ivi_vacancies) |
0 6 * * 3 (Weds 6 UTC) |
Direct cron | Internet Vacancy Index from JSA. Broken since 2026-03-19 — pending Item 1 of MCRA Phase 5 recovery (jsa-proxy routing). |
rtopacks-osl-ingest |
workers/osl-ingest | rtopacks-db (osl_ratings) |
0 3 * * 1 (Mon 3 UTC) |
Direct cron | Occupational Skills Lists (skill-shortage ratings). Broken since 2026-03-19 — pending Item 1 of MCRA Phase 5 recovery. |
rtopacks-glmd-ingest |
workers/glmd-ingest | rtopacks-db (glmd_regional) |
0 5 * * 1 (Mon 5 UTC) |
Direct cron | Regional labour market data. 2026-05-25 audit: zero consumers + broken since 2026-03-19. Retirement scheduled per Item 4 of MCRA Phase 5. |
rtopacks-vnda-atlas-ingest |
workers/vnda-atlas-ingest | rtopacks-db (vnda_atlas) |
0 4 * * 1 (Mon 4 UTC) |
Direct cron | VNDA atlas (Power BI export source). Table deprecated 2026-03-26 in favour of recon_vnda. Worker retirement scheduled after consumer migration completes per Item 3 of MCRA Phase 5. |
rtopacks-d1-warmer |
workers/d1-warmer | rtopacks-db + ops-db + abs-db-oc + KV | */10 * * * * |
Direct cron | Keeps D1 read replicas hot |
rtopacks-session-archiver |
workers/session-archiver | engine-db-oc + R2 (rtopacks-session-archive) | 0 16 * * * (daily 2am AEST) |
Direct cron | Session log archival to R2. Sends failure-only notification email. |
Infrastructure / External / Auxiliary Workers (HTTP / queue / proxy)¶
| Worker | Source path | Database(s) / bindings | Purpose |
|---|---|---|---|
rtopacks-api |
workers/api | rtopacks-db + RTOPACKS_OPERATIONAL_KEYS | Workspace API surface |
rtopacks-mcp |
workers/mcp | rtopacks-db + engine-db-oc + licensing-db-oc + MCP_API_KEYS | Model Context Protocol surface (mcp.rtopacks.com.au). Reads vnda_atlas (line 339) and recon_vnda — Item 3 of MCRA Phase 5 migrates the former to the latter. |
rtopacks-prelaunch |
workers/prelaunch | rto-intake-db + rtopacks-db + EMAIL | Prelaunch operations (waitlist, intake, verify) |
rtopacks-geocoder |
workers/geocoder | rtopacks-db | RTO address geocoding |
kn-preview |
workers/kn-preview | rtopacks-db | Knowledge node preview surface |
rtopacks-studio-collab |
workers/studio-collab-do | engine-db-oc + (Durable Object) | Studio collaborative editing (Durable Object — see Terraform note below) |
rtopacks-jsa-proxy |
workers/jsa-proxy | (no D1 binding) | HTTP proxy for jobsandskills.gov.au APIs that block CF Workers IP range. Used by rtopacks-jsa-ingest. Likely also needed for ivi-ingest + osl-ingest recovery (MCRA Phase 5 Item 1). |
rto-docs-proxy |
workers/rto-docs-proxy | (no D1; CF Access service token) | CF-Access-gated docs proxy (docs.rtopacks.com.au). Used by Claude via path-secret URL. |
rto-trust-proxy |
workers/rto-trust-proxy | (no D1) | Public trust proxy (trust.rtopacks.com.au) |
Databases¶
All IDs below are verified against the current deployed workers' wrangler.jsonc / wrangler.toml as of 2026-04-13.
| Database | ID | Region | Purpose |
|---|---|---|---|
rtopacks-db |
1249760d-070a-43f8-81d7-de462b626cdf |
OC | TGA corpus + CRICOS + enriched RTO data + JSA family tables (the NRT moat). Read-only from most workers; written by tga-sync, cricos-sync, tga-ingest, enrich-sync, qual-enrichment, the ingest cohort (ivi/osl/glmd/vnda/jsa). |
ops-db |
0692049c-1bf1-49e7-9229-3773eeba1a45 |
OC | Operational state — billing, admin sessions, observatory logs, sync cursors, regulatory events. 60 tables — see [[project-ops-db-content-audit-01]] for content audit pending. |
engine-db-oc |
81e2919a-6587-40a1-b749-0a65103d95f0 |
OC | Workspace engine state (tier resolution, user sessions, org memberships) |
calendar-db |
5302f06c-f135-45dd-9e43-6d68d2049e2c |
OC | VET industry calendar events |
licensing-db-oc |
400fd979-b5f9-460e-b4e2-3af074ecec31 |
OC | NSW occupational licensing |
microcredentials-db |
6657018a-bff1-4377-b7ee-5223b0780b5b |
OC | Micro-credentials |
landscape-db |
da6ac712-2e13-448a-964f-0eba4ea15006 |
OC | Vendor landscape / market intelligence |
radar-db |
2ee90250-4a97-4698-a2b7-7a844a70833b |
OC | RTO radar — raw observations (worker-driven) + dossiers/signals (operator-curated). 315 MB. |
abs-db-oc |
0a78dd86-b129-4175-93fc-396435118954 |
OC | ABS statistical data |
rto-ops-db-staging |
(dev variant; D1 name retains -staging suffix per ADR-027 D1-name lag) |
OC | Dev counterpart to ops-db. Currently env-scoped, holds zero rows in non-operational tables. See [[project-shared-ops-db-and-live-mirror-01]]. |
rto-workspace-db-staging |
(dev variant; D1 name retains -staging suffix per ADR-027 D1-name lag) |
OC | Dev counterpart to engine-db-oc |
rto-intake-db-staging |
(dev variant; D1 name retains -staging suffix per ADR-027 D1-name lag) |
OC | Dev counterpart to rto-intake-db |
rto-nrt-db |
(alias name binding) | OC | Reads rtopacks-db (shared single instance — Pith data is env-agnostic per MV01b/MV02) |
rto-licensing-db |
(alias) | OC | Reads licensing-db-oc |
rto-micro-db-staging |
(dev variant; D1 name retains -staging suffix per ADR-027 D1-name lag) |
OC | Dev counterpart to microcredentials-db |
rto-radar-db-staging |
(dev variant; D1 name retains -staging suffix per ADR-027 D1-name lag) |
OC | Dev counterpart to radar-db |
rto-landscape-db-staging |
(dev variant; D1 name retains -staging suffix per ADR-027 D1-name lag) |
OC | Dev counterpart to landscape-db |
rto-calendar-db-staging |
(dev variant; D1 name retains -staging suffix per ADR-027 D1-name lag) |
OC | Dev counterpart to calendar-db |
KV Namespaces¶
| Binding | ID | Purpose |
|---|---|---|
SESSION_KV |
21f59a0848764fb08c08c4c7eac17535 |
Admin/workspace sessions, QB OAuth tokens (qb-access-token, qb-refresh-token), cron heartbeats |
RTOPACKS_SESSIONS |
21f59a0848764fb08c08c4c7eac17535 (same) |
Alias binding name used by some workers |
SEARCH_CACHE |
afcfa4f69bc64313a0b57474f818e211 |
Search result cache (admin + site) |
RADAR_KV |
c20a07510b80491faeb79fcb7a74ce89 |
radar-crawl cursor state |
MCP_API_KEYS |
(mcp-specific) | MCP authentication |
RTOPACKS_OPERATIONAL_KEYS |
(api-specific) | API operational keys |
R2 Buckets¶
| Bucket | Used by | Purpose |
|---|---|---|
tga-content |
tga-sync, tga-ingest | TGA payload archive |
radar-screenshots |
radar-crawl | RTO site screenshots |
rtopacks-client-media |
apps/admin, apps/workspace | Client-uploaded media |
rtopacks-session-archive |
session-archiver | Archived session logs |
Queues¶
| Queue | Producers | Consumer | DLQ | Purpose |
|---|---|---|---|---|
tga-sync-queue |
tga-sync (self) |
tga-sync |
— | Phase-per-invocation chain dispatch for TGA sync |
cricos-sync-queue |
cricos-sync (self) |
cricos-sync |
— | Phase-per-invocation chain dispatch for CRICOS sync |
rtopacks-ingest-queue |
apps/site |
tga-ingest |
rtopacks-ingest-dlq |
On-demand RTO enrichment messages |
rtopacks-ingest-dlq |
(system) | (none — manual inspection) | — | Dead-lettered ingest messages |
Terraform Disaster Recovery Snapshot¶
Location: infra/terraform/ at the repo root.
State: Local file only (terraform.tfstate), backed up via Rclone. Not in R2.
Provider: cloudflare/cloudflare ~> 4.52 (pinned).
Posture: Disaster recovery snapshot, refreshed on demand. Not operational tooling. Dashboard + wrangler remain the primary interface.
Captures: zone, 43 DNS records, 33 workers (2026-04-20 snapshot), 9 D1 databases, 8 KV namespaces, 7 R2 buckets, 11 CF Access apps, 2 Pages projects. See infra/terraform/README.md for full details, re-import procedures, and documented gaps.
Not captured in Terraform (import not supported): rtopacks-studio-collab (Durable Object — provider crash), zone settings override, 5 queues. All documented with recreation steps in README.
2026-05-25 audit note: Terraform snapshot captured 33 workers; the current account has 38 deployed (5 added since April: 4
*-stagingcounterparts created 2026-05-06, plus other deltas). Next Terraform refresh will reconcile.
Worker Deletions¶
| Worker | Deleted | Reason |
|---|---|---|
rtopacks |
2026-04-20 (TERRAFORM-REBUILD-01) | Hello World placeholder from account setup (2026-04-08). Returned the string "Hello world" and nothing else. Never built out. Had one inbound service binding from rtopacks-traffic-logger (dead path — traffic-logger has no routes). |
ucca-ops |
2026-04-20 (TERRAFORM-REBUILD-01) | Empty stub — export default { fetch() {} }. Zero implementation, never modified since creation. Name was misleading (not UCCA-related in any functional sense). |
Scheduled retirements (MCRA Phase 5)¶
| Worker | Retirement reason | Tracking |
|---|---|---|
rtopacks-glmd-ingest |
Zero consumers + broken since 2026-03-19. Retirement-now per [[feedback-rediscovery-beats-archaeology]]. | MCRA Phase 5 Item 4 |
qual-enrichment |
Zero current consumers; pre-built scaffolding for unbuilt paywalled qual surface. Retire now, rebuild when that surface ships. | MCRA Phase 5 Item 4 |
rtopacks-vnda-atlas-ingest |
Target table vnda_atlas deprecated 2026-03-26 in favour of recon_vnda. Worker retired after consumer migration. |
MCRA Phase 5 Item 3 |
Documentation corrections logged 2026-05-25¶
reg-intelremoved — previous version of this file listedreg-intelas deployed (daily 3 UTC, regulatory revision alerts, rtopacks-db). CF Workers API ground-truth check shows no deployed worker by that name. The 2026-04-20 listing was incorrect.ops-tender-sync→rto-tender-sync— deployed name corrected.traffic-snapshot→rto-traffic-snapshot— deployed name corrected.abs-monthly-syncetc. — previous listing struck through these correctly (already removed 2026-04-20). No change.
Database ID Correction (carry-forward from 2026-04-20)¶
The landscape-db and radar-db IDs were transposed in a pre-2026-04-20 version. Corrected 2026-04-20:
| Database | Correct ID | Size |
|---|---|---|
radar-db |
2ee90250-4a97-4698-a2b7-7a844a70833b |
315 MB |
landscape-db |
da6ac712-2e13-448a-964f-0eba4ea15006 |
200 KB |
Wrangler configs always had the correct IDs. Only this doc was wrong.
Related docs¶
docs/docs/infrastructure/worker-patterns.md— how the queue-driven sync pipeline works end to enddocs/docs/infrastructure/tga-ingest.md— on-demand enrichment detailsdocs/docs/infrastructure/billing.md— billing engine, Stripe, QuickBooks, heartbeat cron, operational runbooksdocs/docs/ops/standing-rules.md— operational rules that recur on schedules or conditionsinfra/terraform/README.md— Terraform disaster recovery snapshot: what's captured, what's gapped, how to re-syncoutputs/MIGRATION-CAPABILITY-RECOVERY-AUDIT-01-close.md— the 2026-05-25 audit that prompted this inventory rewrite