portal/. Cross-resource references use file slugs.
Resource roles
definition.jsonstores top-level metadata for the Portal Definition.- A screen defines a route and contains zero or one root widget node.
- A navigation orders links to screens for a web or mobile experience.
- A profile selects navigation and theme resources and can filter access for members.
- A theme contains a complete structured theme configuration.
PortalDefinition and PortalResource for exact fields and accepted values.
Use file slugs for references
If a screen is stored atportal/screens/team-dashboard.json, its slug is team-dashboard. Use that slug from navigation resources. Apply the same rule to navigation, profile, and theme references.
Renaming a file changes its slug. Update every reference in the same change.
Build a valid graph
Before push, verify that:- every referenced screen, navigation, profile, and theme exists;
- each JSON file validates against its declared schema;
- one intended profile is the default, when the definition has profiles;
- theme resources contain their complete required configuration;
- widget nodes match the current widget schema.