Optionaldata: Partial<BaseApplication>When true, Path is automatically generated from Name on save
TypeScript class name for ClassFactory
Hex color code for theming
JSON string of default navigation items
Default sequence position when adding to new user's User Applications
Application description
When true, hide the Nav Bar icon when this application is active
Font Awesome icon class
Application ID from database
Application name
How the application appears in navigation
URL-friendly slug for the application (e.g., "data-explorer" for "Data Explorer")
Application lifecycle status - only Active apps are shown to users
Position of permanent nav icon when NavigationStyle is Nav Bar or Both
Creates the default tab request when user switches to this app. If app has navigation items, uses the first nav item. If app has no nav items, loads the first available dashboard preference for this app. Override in subclass for custom default tab logic.
Returns the application color for theming. Override in subclass for dynamic color based on context.
Returns navigation items including dynamic items for recently visited orphan resources. Static items come from DefaultNavItems in metadata. Dynamic items are generated from the recent orphan stack (up to 3).
Called to check if user has permission for a specific action. Override in subclass for permission checks.
Called when this application becomes the active app. Override in subclass for custom initialization logic.
Called when user navigates away from this application. Override in subclass for cleanup logic.
Removes a dynamic nav item from the recent stack by RecordID. Called by AppNavComponent when the user clicks the dismiss X button. If the dismissed item is currently active, navigates back to the app's default tab.
Inject SharedService for accessing ResourceTypes metadata
Inject WorkspaceStateManager for accessing current tab state. Also triggers loading the persisted stack from storage on first call.
Home Application - Provides dynamic navigation items for orphan resources.
Maintains a recency-ordered stack of up to 3 recently visited orphan resources. When the user opens a record/view/dashboard from within the Home app, the resource appears as a dynamic nav item. When they navigate away (e.g., click Home), the nav item persists so they can quickly jump back. Older items drop off as new ones are added.
The stack is persisted to localStorage (via Metadata.Provider.LocalStorageProvider) so it survives page reloads. Resolved record labels are stored alongside each snapshot to avoid async lookups when restoring from storage.
Example