chore(viewer): the holon viewer becomes the xbrlkit viewer at xbrlkit.com - #1370
Conversation
….com The viewer repo was renamed to xbrlkit-viewer and its home moves from holon.robosystems.ai to xbrlkit.com. The platform's side of that: - CORS: VIEWER_URL (https://xbrlkit.com) joins the API's allowed origins. HOLON_URL stays as the viewer's original host, which keeps serving as an alias of the same deployment — every published `xbrlkit view` before 0.10 opens it and names it as the only origin allowed to read the report it serves. - OIDC: the frontend deploy role trusts the renamed repository and is scoped to the viewer's new stack and bucket prefixes (XbrlkitViewer*, xbrlkit-viewer-*). GitHub mints the token's subject from the repository's current name, so the rename alone would have broken the viewer's deploys. - SEC catalog: the viewer links it writes open at the new host. Catalog files already published keep their holon links, which keep working. Claude-Session: https://claude.ai/code/session_01Wrb85mvgMjYTHHSkKWFre4
|
Change classification: normal — platform or application code changed. A normal change carries a documented automated review on this pull request before merge, in place of a second human approver. The |
|
@claude please review this PR |
|
Claude finished @jfrench9's task in 1m 17s —— View job Review complete ✅Todo list
SummaryThis is a clean, well-scoped rename PR. I read through the full diff ( CORS allowlist (
Deploy identity (
SEC catalog (
Docs & tests
Not run: I wasn't able to execute No blocking issues found. Nice, tight PR — the alias-preservation reasoning for |
Summary
The holon viewer is becoming the xbrlkit viewer: the repository was renamed to
xbrlkit-vieweron 2026-09-09 and its home moves fromholon.robosystems.aitoxbrlkit.com. This PR is the platform's side of that move — the API origin allowlist, the deploy identity, and the SEC catalog's viewer links. The viewer's own repository carries the rest (brand, static site, its CloudFormation stack) in a separate PR.holon.robosystems.aiis not going away. It keeps serving as an alias of the same deployment: every publishedxbrlkit viewbefore 0.10 opens that host and names it as the only origin allowed to read the report it serves, so a redirect would break those installs. Both origins stay allowed.Changes
CORS allowlist —
robosystems/config/env.py,.env.exampleVIEWER_URL(defaulthttps://xbrlkit.com;https://staging.xbrlkit.comon staging) joins the originsget_main_cors_origins()derives for deployed environments. Graph mode in the viewer is a browser-to-API call, so the new host needs this before it can talk to the API.HOLON_URLstays, re-described as the viewer's original host served as an alias. It is still an allowed origin.ROBOLEDGER_URL, ROBOINVESTOR_URL, ROBOSYSTEMS_URL, VIEWER_URL, HOLON_URL; the dev list is untouched.Deploy identity —
cloudformation/bootstrap-oidc.yaml,bin/setup/bootstrap.shGitHubHolonViewerRepoName→GitHubViewerRepoName, defaultxbrlkit-viewer. GitHub mints the OIDC token's subject from the repository's current name, so without this the viewer's deploys fail at role assumption.bootstrap.shpasses only the org and backend-repo parameters, so the new default takes effect on the nextjust bootstrap-oidc.stack/XbrlkitViewer*andxbrlkit-viewer-*buckets replacestack/RoboSystemsHolonViewer*androbosystems-holon-viewer-*. The viewer's stack is being recreated under those names rather than renamed in place. Reviewers: this is the one change that alters an IAM policy; the role's ceiling (FrontendRoleBoundary) is untouched.bootstrap.sh's frontend-repo discovery loop reads the renamed parameter.SEC catalog —
robosystems/adapters/sec/pipeline/configs.pyviewer_urldefaults tohttps://xbrlkit.com, so catalog files written from now on carry viewer links at the new host. Files already published keep their holon links, which keep working through the alias; afull_rebuildcatalog run rewrites them when convenient.Docs —
SECURITY.md(OIDC repo list; the S3 scoping line now describes both roles accurately, which it did not before),bin/setup/README.md,cloudformation/README.md.Tests —
tests/config/test_env.pycovers the new origin in the prod, staging and fork-domain derivations;tests/adapters/sec/pipeline/test_catalog.pyuses the new host in its viewer-link fixtures.Breaking Changes
None. No GraphQL, operations-envelope, or REST shape changes; nothing the SDKs generate from moves.
VIEWER_URLis a new optional setting with a default, andHOLON_URLkeeps its name and default.Testing
just test-code— ruff, format check, basedpyright and cf-lint all clean.uv run pytest tests/config/test_env.py tests/adapters/sec/pipeline/test_catalog.py— 53 passed.just test-allunit run was not executed for this PR; the change touches configuration defaults and a template, and the two affected modules were run directly.Certification