A Page Schema is a declarative description of an administrative interface page.
The Frontend does not contain hard-coded pages. Instead, the React application requests a page definition from the API and builds the interface based on the returned schema.
A page schema defines:
This allows the interface to be modified without making changes to the Frontend code.
Relationship with other schemas:
DB Schema → Object Schema → Page Schema → React UI
| Property | Type | Description |
| required_permissions | array | Permission identifiers required to display the page. |
| structure * | array | Page structure. |
All administrative panel pages follow a unified URL structure:
/{section}/{page}/{record_id}
A page consists of independent interface blocks.
Each block is responsible for a separate part of the page, such as:
Blocks are arranged in a responsive grid and automatically adapt to the available screen size.
List of available block types:
Reference → Schemas → Block Types
| Property | Type | Description |
| title * | string | Name. Used as documentation for developers. |
| size * | integer | lock width from 1 to 3: 1 — one-third of the page 2 — two-thirds of the page 3 — full page width |
| type * | string | Block type. Determines how the block is rendered in the administrative interface (for example `header`, `list`, etc.). |
| required_permissions | array | td>Permission identifiers required to display the block. |
| settings | object | Block settings. Contains additional block configuration. |
| components | object | Components. Additional interface elements such as buttons, filters, search, and so on. |
Example block:
{
"required_permissions": [],
"required_modules": [],
"structure": {
"header": {
"title": "Page header",
"size": 3,
"type": "header",
"required_permissions": [],
"required_modules": [],
"settings": {
"title": "users",
"annotation": "",
"breadcrumbs": []
},
"components": {}
}
}
}
Components are additional controls associated with a block.
Examples of components: