toga-ai 1.0.513 → 1.0.514
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -59,6 +59,30 @@ too. _(Carried from the togaview architecture doc — not re-verified in code on
|
|
|
59
59
|
|
|
60
60
|
The app code is the easy part. What actually bites:
|
|
61
61
|
|
|
62
|
+
- **STEP 1 — HARD GATE: register the host in `Vision_Log.CopyrightHosts`.** TOGa 1.0 apps perform a
|
|
63
|
+
license / anti-piracy host authorization check ("calls home") against the `Vision_Log.CopyrightHosts`
|
|
64
|
+
table, keyed on `hostName`. **If there is no row matching the request host, the app renders an
|
|
65
|
+
"unauthorized use" error screen instead of the application** — even when `getRestrictedClient()`
|
|
66
|
+
already knows the host and DNS, the TLS cert and the ALB rule are all correct. Nothing else on this
|
|
67
|
+
checklist matters until the row exists. The table's purpose is to stop the code being run on
|
|
68
|
+
unapproved hosts without permission. Columns: `id`, `hostName`, `redirectTo` (nullable — when set it
|
|
69
|
+
appears to redirect that host elsewhere; **not confirmed**). Insert one row per new hostname with
|
|
70
|
+
`redirectTo` NULL unless you specifically want a redirect. Example (RUMCSI cutover, 2026-08-04):
|
|
71
|
+
`hostName = 'rumcsi.togadesk.togatech.com'`, `redirectTo = NULL` (id 253 — the id is
|
|
72
|
+
auto-assigned and carries no meaning).
|
|
73
|
+
- **Enforcement location is UNVERIFIED / needs tracing.** The DB row and the behavior are
|
|
74
|
+
developer-confirmed, but the code performing the check was **not** found on 2026-08-04. Greps
|
|
75
|
+
across `togadesk`, `library`, `togaview` and `_underscore` for `CopyrightHosts`, `Vision_Log`,
|
|
76
|
+
`copyright`, `unauthoriz` and `hostName` surfaced no host-authorization check. The only related
|
|
77
|
+
hook is `App_Framework_Index::copyrightFooter()` (`library/app/frameworkindex.php` L152-157),
|
|
78
|
+
which emits the copyright footer div and registers a final JS call `initializeCopyright();` —
|
|
79
|
+
and `initializeCopyright` is **defined nowhere in the library repo** (that is its only call
|
|
80
|
+
site), suggesting the check is served remotely or lives in another app/asset. Start there if you
|
|
81
|
+
need to trace it; do not assume anything further.
|
|
82
|
+
- **This check appears to be cross-app**, i.e. 1.0 apps generally (via `library`), not
|
|
83
|
+
togadesk-specific — it is documented here because that is where it was discovered. If it is later
|
|
84
|
+
confirmed framework-wide it may belong in a library/framework-level doc; flag that move rather
|
|
85
|
+
than doing it silently.
|
|
62
86
|
- **Register the host** in the `getRestrictedClient()` switch (and add a `CLIENT_*` constant if the
|
|
63
87
|
client is new). Verified 2026-08-04: `rumcsi.togadesk.togatech.com` is **already a case**, so the
|
|
64
88
|
RUMCSI AWS DNS record needs no code change.
|
|
@@ -105,3 +129,7 @@ The app code is the easy part. What actually bites:
|
|
|
105
129
|
|
|
106
130
|
- 2026-08-04 — Documented from a read-only review (TRUE-80139) of the RUMCSI branded-URL cutover;
|
|
107
131
|
recorded the add-a-hostname checklist and the cross-tenant login hole. No code changed. (mhammontree)
|
|
132
|
+
- 2026-08-04 — Added the missing **required first step**: a new hostname must be registered in
|
|
133
|
+
`Vision_Log.CopyrightHosts` or the app shows an unauthorized-use screen. Row inserted for
|
|
134
|
+
`rumcsi.togadesk.togatech.com`. Enforcement code not located — marked UNVERIFIED with the
|
|
135
|
+
`copyrightFooter()` / `initializeCopyright()` lead. (mhammontree)
|
package/package.json
CHANGED