Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions .changeset/prune-portal-schema-3464.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
---
"@objectstack/spec": minor
---

feat(spec)!: remove the dead PortalSchema (portal metadata was never enforced)

`PortalSchema` and its top-level `portals` collection on `StackSchema` 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 ever consumed it. Authoring
a portal was already documented as a no-op and marked
`[EXPERIMENTAL — not enforced]`. This removes the dead schema rather than
building a portal runtime (issue #3464, disposition **A — prune**).

**Removed exports** (`@objectstack/spec`, from `ui/portal.zod`):
`PortalSchema`, `Portal`, `definePortal`, and the `PortalInput` /
`PortalTheme` / `PortalNavItem` (+ `PortalViewNavItem`, `PortalActionNavItem`,
`PortalDashboardNavItem`, `PortalUrlNavItem`) / `PortalAnonymousEntry` /
`PortalAnonymousRoute` / `PortalRateLimit` / `PortalSeo` / `PortalAuthMode` /
`PortalLayout` schemas and inferred types. The `portals` key is removed from
`StackSchema` / `defineStack()`.

**Migration**: none required for behavior — authoring a portal had no runtime
effect. Any `portals: [...]` entry in a `defineStack()` config was already
ignored at runtime and should be deleted (with the schema gone it is an
excess-property type error). To project a scoped UI to external users today,
compose the existing `apps` / `views` surfaces and gate admission with
`positions` + permission sets (`externalSharingModel` on the objects you
expose).

Refs #3464, #1893, #1878.
1 change: 0 additions & 1 deletion content/docs/references/ui/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ This section contains all protocol schemas for the ui layer of ObjectStack.
<Card href="/docs/references/ui/notification" title="Notification" description="Source: packages/spec/src/ui/notification.zod.ts" />
<Card href="/docs/references/ui/offline" title="Offline" description="Source: packages/spec/src/ui/offline.zod.ts" />
<Card href="/docs/references/ui/page" title="Page" description="Source: packages/spec/src/ui/page.zod.ts" />
<Card href="/docs/references/ui/portal" title="Portal" description="Source: packages/spec/src/ui/portal.zod.ts" />
<Card href="/docs/references/ui/report" title="Report" description="Source: packages/spec/src/ui/report.zod.ts" />
<Card href="/docs/references/ui/responsive" title="Responsive" description="Source: packages/spec/src/ui/responsive.zod.ts" />
<Card href="/docs/references/ui/sharing" title="Sharing" description="Source: packages/spec/src/ui/sharing.zod.ts" />
Expand Down
1 change: 0 additions & 1 deletion content/docs/references/ui/meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
"action",
"app",
"page",
"portal",
"view",
"---Visualization---",
"chart",
Expand Down
Loading