Appearance
Core Apps
Purpose
Use coreApps to host one of five built-in MES administration surfaces, or an overview selector for all five.
When to use
Use single-app mode when one application route should open one administration surface without the five-surface selector. Use selector mode when the same route should let the user move between all five surfaces. This is a navigation and composition choice, not an access-control boundary: the API and the current user's permissions remain authoritative. Use metaTypesCrud only when the smaller MetaType-only CRUD surface is sufficient.
Prerequisites and ownership
- The deployed API and current user must support the selected administration domain.
- The panel performs API requests, checks permissions, initializes the selected interface, and shows operation results.
- Core Apps provides five administration interfaces.
- JSON chooses the interface; it does not configure API paths or interface behavior.
Capability map
app | User-visible capability |
|---|---|
orgStructure | Business-unit CRUD, role links, linked users, and default role assignment |
roles | Roles section; currently a placeholder, not a functional role-management workflow |
applications | Application/group hierarchy CRUD, JSON config editing, icon mapping, users, and permission rules |
dataModel | MetaTypes, MetaLinks, attributes, methods, lifecycle options, lazy expansion, CRUD, and permission rules/state links |
settings | Global settings and user overrides with list/detail and CRUD |
| omitted | Left-side selector for all five; initially selects orgStructure |
Behavioral model
In single-app mode the panel shows only the configured interface. In selector mode it shows left-side navigation plus the active interface. When an interface opens or the user performs an action, the panel automatically requests the required data from the API and displays the result in that interface.
DataModel requests in 0.75.0
When a Core Apps form needs option lists, the panel automatically requests MetaTypes, MetaLinks, and lifecycle templates from the API and displays the returned options in the form. Panel JSON does not list the options or endpoint paths.
When the user selects a non-root MetaType or MetaLink row, the panel sends GET /MetaTypes/{typeName}/Count or GET /MetaLinks/{linkName}/Count. It writes the returned number to that tree row only while the same row remains selected and no newer count request has started. A count response cannot interrupt an active create, update, or delete operation. Each eligible selection sends a new request.
When the user expands a MetaType or MetaLink, the panel requests descendants, attributes, and methods from the API. Inherited attributes remain separate in each parent branch, even when the branches contain the same attribute.
Alternatives, defaults, and precedence
- Omit
appfor selector mode;orgStructureis initially active. - Set one exact key for single-app mode:
orgStructure,roles,applications,dataModel, orsettings. - The configured
appalways wins over selector state. - Split administration into separate application routes when users should not see the selector or unrelated surfaces.
Limitations
rolescurrently shows a placeholder and does not provide role management.- Domain endpoints, permissions semantics, forms, and interface behavior are not configurable through
coreAppsJSON. - Selector state is runtime-only.
- DataModel object counts and inheritance data require
GET /MetaTypes/{typeName}/Count,GET /MetaLinks/{linkName}/Count, and theisInherited,inheritedFrom, andnotifyEventTypefields in the API. - The local demo covers only the
settingssingle-app surface. - The demo's Settings mutations are shared within one demo server process and reset only when that process restarts. The linked demo therefore targets an isolated single-session or access-restricted documentation deployment, not a shared public multi-user service.
Minimal configuration
json
{
"id": "applications-admin",
"type": "coreApps",
"app": "applications"
}Scenario: one administration hub
json
{
"version": "1.0.0",
"layout": { "padding": true },
"panel": {
"id": "core-administration",
"type": "coreApps"
}
}Expected result: the selector lists all five surfaces and starts on Organizational Structure. Applications and DataModel show the actions allowed by the current user's permissions. When the user selects Settings, the panel requests global and user-specific settings from the API and displays them.
For production, create separate applications such as:
json
{ "id": "org-admin", "type": "coreApps", "app": "orgStructure" }json
{ "id": "data-model-admin", "type": "coreApps", "app": "dataModel" }json
{ "id": "settings-admin", "type": "coreApps", "app": "settings" }Runnable demos
Open the stateful Settings-only Core Apps demoThe demo supports viewing, creating, updating, and deleting global and user-specific settings. It keeps changes in temporary data; restarting the panel development server restores the initial settings.
The demo covers only app: "settings". To try orgStructure, applications, dataModel, or selector mode, configure that surface in an application connected to the matching API and sign in with the required permissions.
Exact parameter reference
Related guides and next task
Next, use the Settings demo to inspect the single-app layout. To continue with another Core Apps surface, configure it in the target application and open it with a user who has the required permissions.