Skip to content

Commit 8269e32

Browse files
os-zhuangclaude
andauthored
feat(spec)!: remove the dead PortalSchema — never-enforced no-op projection (#3464) (#3486)
PortalSchema and its StackSchema `portals` collection were a forward-looking design that was never wired to a runtime: no metadata-type registration, no dispatcher route family, no auth scope, and no LayoutDispatcher / NavigationBuilder / ThemeProvider consumer. Authoring a portal was already a documented no-op marked [EXPERIMENTAL — not enforced]. This implements issue #3464 disposition A (prune the dead schema) rather than B (build a runtime). Removes ui/portal.zod.ts + its test, the `portals` key on StackSchema / defineStack, every Portal* export, the showcase ClientPortal fixture, and the generated Portal artifacts (json-schema manifest keys, api-surface entries, reference doc). Hand-written docs/skills stop advertising portals as a live surface; the real guest_portal public-forms path is left untouched. Versioned minor per the #2377 enforce-or-remove precedent and the launch-window no-major guard. Co-authored-by: Jack Zhuang <277994282+os-zhuang@users.noreply.github.com> Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
1 parent 9dcc0ae commit 8269e32

19 files changed

Lines changed: 49 additions & 976 deletions

File tree

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
---
2+
"@objectstack/spec": minor
3+
---
4+
5+
feat(spec)!: remove the dead PortalSchema (portal metadata was never enforced)
6+
7+
`PortalSchema` and its top-level `portals` collection on `StackSchema` were a
8+
forward-looking design that was **never wired to a runtime** — no metadata-type
9+
registration, no dispatcher route family, no auth scope, and no
10+
LayoutDispatcher / NavigationBuilder / ThemeProvider ever consumed it. Authoring
11+
a portal was already documented as a no-op and marked
12+
`[EXPERIMENTAL — not enforced]`. This removes the dead schema rather than
13+
building a portal runtime (issue #3464, disposition **A — prune**).
14+
15+
**Removed exports** (`@objectstack/spec`, from `ui/portal.zod`):
16+
`PortalSchema`, `Portal`, `definePortal`, and the `PortalInput` /
17+
`PortalTheme` / `PortalNavItem` (+ `PortalViewNavItem`, `PortalActionNavItem`,
18+
`PortalDashboardNavItem`, `PortalUrlNavItem`) / `PortalAnonymousEntry` /
19+
`PortalAnonymousRoute` / `PortalRateLimit` / `PortalSeo` / `PortalAuthMode` /
20+
`PortalLayout` schemas and inferred types. The `portals` key is removed from
21+
`StackSchema` / `defineStack()`.
22+
23+
**Migration**: none required for behavior — authoring a portal had no runtime
24+
effect. Any `portals: [...]` entry in a `defineStack()` config was already
25+
ignored at runtime and should be deleted (with the schema gone it is an
26+
excess-property type error). To project a scoped UI to external users today,
27+
compose the existing `apps` / `views` surfaces and gate admission with
28+
`positions` + permission sets (`externalSharingModel` on the objects you
29+
expose).
30+
31+
Refs #3464, #1893, #1878.

content/docs/references/ui/index.mdx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ This section contains all protocol schemas for the ui layer of ObjectStack.
1919
<Card href="/docs/references/ui/notification" title="Notification" description="Source: packages/spec/src/ui/notification.zod.ts" />
2020
<Card href="/docs/references/ui/offline" title="Offline" description="Source: packages/spec/src/ui/offline.zod.ts" />
2121
<Card href="/docs/references/ui/page" title="Page" description="Source: packages/spec/src/ui/page.zod.ts" />
22-
<Card href="/docs/references/ui/portal" title="Portal" description="Source: packages/spec/src/ui/portal.zod.ts" />
2322
<Card href="/docs/references/ui/report" title="Report" description="Source: packages/spec/src/ui/report.zod.ts" />
2423
<Card href="/docs/references/ui/responsive" title="Responsive" description="Source: packages/spec/src/ui/responsive.zod.ts" />
2524
<Card href="/docs/references/ui/sharing" title="Sharing" description="Source: packages/spec/src/ui/sharing.zod.ts" />

content/docs/references/ui/meta.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
"action",
66
"app",
77
"page",
8-
"portal",
98
"view",
109
"---Visualization---",
1110
"chart",

0 commit comments

Comments
 (0)