gabriel / musehub public
docs task/file-custom-domain-registration-issue #1 / 1
AI Agent gabriel · 21 days ago · Jul 2, 2026 · Diff

docs: file comprehensive plan for third-party custom domain registration

Investigated aaronrene's blocked 'muse domains publish' (targets a nonexistent /api/v1/domains) and found the marketplace feature mostly already exists (MusehubDomain/MusehubDomainInstall, GET+POST /api/domains, all tested) - the real gaps are a URL mismatch, a live author-identity spoofing hole (author_slug never checked against the caller's real handle), unschema'd viewer_type/capabilities, no rate limiting, and the deeper architectural question of keeping the self-service marketplace catalog (declarative data) strictly separate from muse-core VCS plugins (reviewed executable code) so this feature can't become a supply-chain RCE vector.

sha256:83db505d3b4f68180b36f8764dbafb7a864c20c5c93b4667b020522aa798ae5c sha
+17 symbols
1 changed · 998 in snapshot files
sha256:ad66ab32a65bca2259d0b00f9525d446b1c44fa59719b001278f0ee1d63d6367 snapshot
+17
symbols added
1
file changed
998
files in snapshot
0
dead code introduced
Semantic Changes 17 symbols
+ Custom domain registration: let third parties publish a domain and get a repo tab, safely section Custom domain registration: let third parties publish a domain and get a repo tab, safely L1–278
+ Acceptance criteria (whole-issue gate) section Acceptance criteria (whole-issue gate) L254–267
+ Background section Background L3–106
+ The proximate trigger section The proximate trigger L5–18
+ code variable variable code L12–17
+ What this issue found, going deeper (root causes, not just the symptom) section What this issue found, going deeper (root causes, not just the symptom) L18–93
+ gabriel's vision (the shape to build toward) section gabriel's vision (the shape to build toward) L93–106
+ Design — the load-bearing decision this issue is built around section Design — the load-bearing decision this issue is built around L106–134
+ table section table L110–114
+ Goal — definition of done section Goal — definition of done L134–152
+ Out of scope (explicit, for future issues) section Out of scope (explicit, for future issues) L267–278
+ Phases section Phases L152–254
+ Phase 0 — Unblock aaronrene + close the impersonation hole section Phase 0 — Unblock aaronrene + close the impersonation hole L158–182
+ Phase 1 — Schema hardening on the publish path section Phase 1 — Schema hardening on the publish path L182–204
+ Phase 2 — Build the real viewer palette (the actual "pre-built GUI elements" list) section Phase 2 — Build the real viewer palette (the actual "pre-built GUI elements" list) L204–228
+ Phase 3 — Wire a repo to an actual registered domain section Phase 3 — Wire a repo to an actual registered domain L228–241
+ Phase 4 — Docs and CLI polish section Phase 4 — Docs and CLI polish L241–254
Files Changed
+1
998 in snapshot
← Older Oldest on task/file-custom-domain-registration-issue
All commits
Newer → Latest on task/file-custom-domain-registration-issue

0 comments

No comments yet. Be the first to start the discussion.

To add a comment, use the Muse CLI: muse hub commit comment sha256:83db505d3b4f68180b36f8764dbafb7a864c20c5c93b4667b020522aa798ae5c --body "your comment"