External Connections
Document: docs/product/external-connections.md
Status: Canonical
Last updated: 2026-04-06
Authority: Tim Rignold, RTOpacks Pty Ltd
Purpose
Documents every external service RTOpacks connects to. A new team member reading this should understand exactly what RTOpacks talks to, why, how, and what happens if that service is unavailable.
Government Data Sources
| Service |
Purpose |
Auth |
Sync Worker |
Database |
Notes |
| TGA (training.gov.au) |
NRT corpus — qualifications, units, RTOs, scope, contacts, addresses, regulatory decisions |
Public |
Manual Excel ingest (see adapters/tga/INGEST.md) |
rtopacks-db (334ac8fb) |
Source of truth for all NRT data. No API automation — TGA SOAP API credentials parked. |
| ASQA |
Regulatory decisions, audit outcomes |
Public |
Via TGA ingest (regulatory decisions table) |
rtopacks-db |
Decisions captured as tga_org_regulatory_decisions |
| NCVER / VOCSTATS |
VET statistical data — enrolments, completions, apprenticeships |
Public |
stats-cache Worker |
ops-db |
Aggregated stats served via /api/stats |
| ABS |
Labour force statistics, employment by occupation |
Public |
stats-cache Worker |
abs-db (66389f3f) |
StatBar on homepage |
| Jobs and Skills Australia |
Occupation shortage (OSL), Internet Vacancy Index (IVI), employment projections, training enrolments |
Public |
jsa-ingest, osl-ingest, ivi-ingest Workers |
rtopacks-db |
JSA proxy at jsa-proxy.ucca.online (FEDERATION-HOOK-01 — UCCA-hosted external service) |
| yourcareer.gov.au |
Career pathways, VNDA graduate outcomes |
Public |
vnda-atlas-ingest Worker |
rtopacks-db |
recon_vnda reconciliation table |
| CRICOS |
International provider and course registrations |
Public |
cricos-sync Worker |
rtopacks-db |
cricos_registered flag on rtos |
| TEQSA / TQNR |
Higher education provider data, qualification recognition |
Public |
teqsa-sync Worker |
licensing-db (6c2abf4d) |
NSW occupational licensing cross-reference |
| NSW Fair Trading |
Occupational licensing records |
Public |
Manual |
licensing-db |
Supplementary to TEQSA data |
Commercial Services
| Service |
Purpose |
Auth |
Config |
Notes |
| Cloudflare |
Infrastructure — Workers, D1, R2, KV, DNS, CF Access |
Account e5a9830215a8d88961dc6c80a8c7442a |
wrangler.jsonc per Worker |
All compute, storage, and edge services |
| Resend |
Transactional email |
API key (RESEND_API_KEY) |
Worker secret on workspace + internal-api |
noreply@rtopacks.com.au — magic links, subscriber notifications, SEC-02 alerts |
| Google Maps |
Geocoding + map display on admin addresses tab |
API key (GOOGLE_GEOCODING_KEY, GOOGLE_MAPS_API_KEY) |
Worker secrets on admin |
KV-cached geocode results (30-day TTL) |
| Stripe |
Payment processing |
API key (Worker secret) |
On site Worker |
Checkout, customer portal |
| Service |
Purpose |
Auth |
Config |
Notes |
| UCCA auth backplane |
Authentication architecture — tier model, session schema |
Specification compliance (no live API call currently) |
FEDERATION-HOOK-01 in lib/tier-resolution.ts |
See identity.md and boundary-agreement.md. Future: OAuth 2.1 at auth.ucca.online (B-AUTH-OAUTH-01). |
| UCCA JSA proxy |
Proxy for Jobs and Skills Australia API |
Direct HTTP |
jsa-proxy.ucca.online in workers/jsa-ingest |
UCCA-hosted proxy to handle JSA's response format. Marked FEDERATION-HOOK-01. |
Availability Impact
| Service down |
Impact on RTOpacks |
Mitigation |
| TGA |
No new ingest. Existing data unaffected. |
rtopacks-db is the source of truth, not TGA live. |
| Cloudflare |
Complete outage. |
No mitigation — Cloudflare is the compute platform. |
| Resend |
Magic links cannot be sent. Existing sessions unaffected. |
Users already authenticated continue to work. |
| Google Maps |
Geocoding and map display fail on admin. |
KV cache serves previously geocoded addresses. |
| UCCA auth |
No impact (specification compliance only, no live dependency). |
Future B-AUTH-OAUTH-01: fallback to cached session validation. |
| Stripe |
Payments cannot be processed. |
Existing subscriptions unaffected. |
| JSA/NCVER/ABS |
Stale data on market intelligence features. |
Data is batch-ingested. Freshness measured in weeks, not minutes. |
Amendment Log
| Date |
Change |
Authority |
| 2026-04-06 |
Initial document — Session 44 |
Tim Rignold |