Adom Wiki
Public Made by Adomby adom
How the Adom Wiki (wiki.adom.inc) works and how to drive it with the adom-wiki CLI: the two storage layers (git page repo vs package registry), hosting source by pushing files (not a tarball), making packages, cutting per-platform releases, and the three-tier skill layout (user skills ship, dev-skills/ and publish-skills/ stay source-only). adom-wiki is the current tool; adompkg is deprecated. Read this first before publishing or installing.
Signed asset URLs: let sandboxed viewers on PRIVATE pages read their own page assets
From AravK's report embedding an interactive Babylon viewer in the README of a private org component page (adom/feeder-reader): inline content renders, but every asset the embed fetches by URL (bundle, .glb, viewer-config.json, board-map SVGs) 404s.
Root cause is by design: publisher-controlled HTML (readme frame, blob previews, component.viewers slots) is served under CSP sandbox without allow-same-origin, so it runs as an opaque origin. Its fetches are anonymous, and a private page's blobs require auth. The invariant is load-bearing (publisher JS must never hold the signed-in viewer's origin authority) and is not up for weakening.
Ask: short-lived signed asset URLs so a sandboxed frame on a private page can read that page's OWN assets and nothing else.
Sketch:
- When the wiki renders a page view for an authorized user, it mints capability tokens for the page's declared viewer assets (or a per-page, per-view token) with a short TTL.
- The frame receives them via URL rewriting of the served HTML or a postMessage handshake; assets are fetched as /blob/...?cap=.
- Tokens are scoped to one page's asset paths, bearer-style, expiring in minutes; no cookie, no origin authority, nothing mintable from inside the frame.
- Refresh: the parent page re-issues on expiry via postMessage, or the TTL simply covers a viewing session.
Notes:
- The existing public-asset carve-out (hero + readme images on sealed-source pages, pagePublicAssetPaths) only fits public listings; extending it cannot serve org-private pages without anonymous exposure, hence capability URLs.
- Interim guidance given to Arav: use the native viewers (trusted, unsandboxed, authenticated) for the model and schematics; self-contain any custom interactivity.