feat(customization): PageBuilder pages grid + realm/app page selectors#168
Merged
Conversation
Refine the ADR-0001 UX per field feedback: the variant library is now
realm-global and the surfaces are simpler.
- Platform -> Pages is a sortable/filterable data grid of all variants
(name, type, Used By count with a hover of the exact consumers,
updated). Right-click / toolbar creates a Login/Logout/Forgot page;
double-click edits; context menu deletes.
- Realm settings gains a Pages tab with three selectors (login/logout/
forgot) picking the realm's live variant (Built-in / a variant).
- Application settings -> Pages is three selectors (Inherit / Built-in /
a realm variant) instead of per-app variant management.
Model change: Applications no longer author their own variants — they
only select from the realm library. AppPageSlot drops its Variants list
and keeps just { InheritActive, ActiveVariantId -> realm variant }.
Effective resolution resolves an App's selection against the realm
library; the realm list endpoint computes each variant's UsedByApps; the
per-App GET returns the realm variants as options and PUT active
validates the id against them. Legacy per-App page schemas migrate by
dropping to inherit (they can no longer be represented).
The editor is realm-only (Apps don't author). Built-in fallback and
?safemode=1 unchanged; everything stays behind Features.PageBuilder.
Verified: 1426 unit + 12 PageBuilder integration tests green; frontend
type-check + build green; DevTools smoke of grid create -> realm-settings
select activate -> Used By reflects it -> runtime render -> delete.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
UX refinement of the PageBuilder variant model (ADR-0001, follows #167) per field feedback. The variant library becomes realm-global and the surfaces get simpler:
Model change
Applications no longer author their own variants — they only select from the realm library:
AppPageSlotdrops itsVariantslist → just{ InheritActive, ActiveVariantId → realm variant }.UsedByApps(drives the grid's Used By).GETreturns the realm variants asAvailableVariants;PUT /{slug}/activevalidates the id against the realm library.The editor is realm-only now (Apps don't author). Built-in fallback +
?safemode=1unchanged; everything stays behindFeatures.PageBuilder(default false).Verification
UsedByAppson the grid, local-authorize resolution).type-check+ production build green.🤖 Generated with Claude Code