Download

Page Schema

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:

  • the page structure
  • the layout of blocks
  • the data to be displayed
  • access permissions
  • additional interface elements

This allows the interface to be modified without making changes to the Frontend code.

Relationship with other schemas:

DB SchemaObject SchemaPage SchemaReact UI

Property Type Description
required_permissions array Permission identifiers required to display the page.
structure * array Page structure.

Page Routing

All administrative panel pages follow a unified URL structure:

/{section}/{page}/{record_id}

Routing Examples:

  • /users/list
  • /users/profile/15
  • /orders/view/421

structure

A page consists of independent interface blocks.

Each block is responsible for a separate part of the page, such as:

  • page header
  • data list
  • object details
  • calendar
  • form
  • chart
  • and so on

Blocks are arranged in a responsive grid and automatically adapt to the available screen size.

List of available block types:

ReferenceSchemasBlock Types

td>
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 arrayPermission 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

Components are additional controls associated with a block.

Examples of components:

  • search
  • filters
  • action buttons
  • and so on