Routing Structure¶
Document: docs/product/routing-structure.md
Status: Canonical — all new routes, Workers, and surface briefs must conform to this document
Last updated: 2026-04-06
Authority: Tim Rignold, UCCA Inc
Purpose¶
This document defines the URL routing structure for all RTOpacks surfaces. It has never been formally expressed before this document. All routing decisions going forward are measured against this structure. Any new route that does not conform requires an amendment.
Governing Principles¶
- No enumerable public data URLs. Public routes must not expose patterns that allow bulk traversal of the data corpus. See
security-posture.md. - Object identity by code. All five primitive objects are identified in URLs by their canonical code — TGA code for NRT objects, ASQA RTO code for RTOs, UCCA-generated code for general education units.
- Auth wall at the product boundary. Everything behind
/app/requires authentication. Everything at the root is marketing or gated entry. - Surface separation. Public site, Workspace Studio, admin panel, and ops console are distinct surfaces with distinct routing namespaces.
Surface Map¶
| Surface | Domain | Auth Required | Primary User |
|---|---|---|---|
| Public site | rtopacks.com.au |
No (marketing) / Yes (product) | Prospective RTO clients, general |
| Workspace Studio | my.rtopacks.com.au |
Yes — L3/L4/L4A | RTO staff, operators |
| Admin panel | admin.rtopacks.com.au |
Yes — L1/L2/L3 | UCCA staff, operators |
| Ops console | ops.ucca.online |
Yes — L1/L2 | UCCA internal |
Public Site Routes — rtopacks.com.au¶
Marketing routes (no auth)¶
| Route | Description | Notes |
|---|---|---|
/ |
Homepage | Product pitch, hero, CTA |
/about |
About RTOpacks | |
/pricing |
Pricing and plans | |
/contact |
Contact | |
/login |
Magic link entry point | Redirects to /app on auth |
/blog/* |
Content marketing | If implemented |
Data object routes — GATED at launch¶
No public detail pages for any data object are live at launch. The routes below are reserved and will 404 or redirect to the login page until a signed-off SEO strategy determines otherwise.
| Reserved route | Object | Status |
|---|---|---|
/qual/[code] |
Qualification | Reserved — not public at launch |
/unit/[code] |
Unit of Competency | Reserved — not public at launch |
/skill-set/[code] |
Skill Set | Reserved — not public at launch |
/rto/[code] |
RTO | Reserved — not public at launch |
/gen-ed/[code] |
General Education Unit | Reserved — not public at launch |
Note on URL slugs:
- /skill-set/ is preferred over /skillset/ — hyphenated, readable, consistent with AQF terminology
- /gen-ed/ is preferred over /general-education/ — concise, not easily confused with TGA URLs
- /rto/ is always identified by the 5-digit ASQA RTO code
Activating these routes requires: 1. A completed SEO-01 brief with Tim sign-off 2. An amendment to this document 3. A security review confirming the public surface does not expose enriched data
Workspace Studio Routes — my.rtopacks.com.au¶
All routes require authentication. Minimum tier: L4A (RTO member).
Entry and navigation¶
| Route | Description |
|---|---|
/ |
AppGrid — personalised dashboard, glass icon launcher |
/library |
Training library — browse and search all objects |
/courses |
Course builder — user's saved courses and programs |
Object detail routes¶
| Route | Description | Notes |
|---|---|---|
/qual/[code] |
Qualification detail | Authenticated equivalent of the reserved public route |
/unit/[code] |
Unit of Competency detail | Primary focusable object in Studio |
/skill-set/[code] |
Skill Set detail | |
/rto/[code] |
RTO detail | |
/gen-ed/[code] |
General Education Unit detail |
Studio routes¶
| Route | Description |
|---|---|
/studio |
Workspace Studio — course/program builder |
/studio/[session-id] |
Active build session |
/studio/[session-id]/unit/[code] |
Unit focused within a build session |
Account and settings¶
| Route | Description |
|---|---|
/settings |
Account settings |
/settings/team |
Team management (L4 org owners) |
/settings/activity |
Activity log — who has done what (L4 org owners see full team) |
/settings/exports |
Export history |
Admin Panel Routes — admin.rtopacks.com.au¶
All routes require authentication. Minimum tier: L3 (World Operator).
| Route | Description | Minimum tier |
|---|---|---|
/ |
Admin dashboard | L3 |
/organisations |
Client org management | L3 |
/contacts |
Contact CRM | L3 |
/clients |
Client accounts | L3 |
/compliance |
Compliance views — qual scope references | L3 |
/radar |
Radar intelligence module | L2 |
/landscape |
Landscape intelligence module | L2 |
/interactions |
Interaction ledger | L3 |
/settings |
Admin settings | L2 |
Ops Console Routes — ops.ucca.online¶
All routes require authentication via Cloudflare Access. Minimum tier: L2 (UCCA Staff).
Layer-aware sidebar navigation follows the L1–L4A model. Routes documented in ops console brief (separate from this document).
API Routes¶
Internal API — internal-api.rtopacks.com.au¶
The sole access point for rtopacks-db. All routes require auth. No public access.
| Route pattern | Description |
|---|---|
/qual/[code] |
Qualification data |
/unit/[code] |
Unit of Competency data |
/skill-set/[code] |
Skill Set data |
/rto/[code] |
RTO data |
/search |
Full-text search across NRT objects |
/scope/rto/[code] |
RTO scope of registration |
/scope/qual/[code] |
RTOs delivering a qualification |
Stats cache Worker¶
| Route | Description |
|---|---|
/stats |
Live ABS/TGA aggregate statistics |
Gen Ed API¶
Separate from internal-api. Accesses microcredentials-db only.
| Route pattern | Description |
|---|---|
/gen-ed/[code] |
General Education Unit data |
/gen-ed/search |
Search gen-ed corpus |
Mobile Behaviour by Surface¶
| Surface | Mobile posture |
|---|---|
| Public site | Fully responsive — all marketing routes |
| Workspace Studio — browse/library | Responsive — view library, courses, saved items |
| Workspace Studio — designer/builder | Desktop only — minimum 1280px. Below threshold: graceful degradation message explaining capability requires desktop. User is not locked out — view mode remains available. |
| Admin panel | Desktop preferred — responsive where possible, graceful degradation below 1024px |
| Ops console | Desktop only — internal tool |
Graceful degradation message (Workspace Studio designer on mobile):
"The RTOpacks course designer requires a larger screen to work effectively. On this device you can browse your library and review saved courses — to build and edit, please switch to a desktop or tablet."
This message is not a lock-out. The user remains authenticated and can access view-only surfaces.
Route Naming Conventions¶
- All routes lowercase, hyphen-separated
- Object codes used as-is (TGA codes are uppercase —
BSBWHS411— preserved in URLs) - No trailing slashes
- No version prefixes on user-facing routes (
/v1/etc) — versioning is an API concern, not a UI concern - Query parameters for search and filter state — not encoded in path segments
Amendment Log¶
| Date | Change | Authority |
|---|---|---|
| 2026-04-06 | Initial document created — first formal expression of routing structure | Tim Rignold |