Skip to content

Two kinds of pages ​

Built-in pageExtension page
Defined inDatabase sys.page_defDisk user-ext/{name}/
URL/page/run?param={page id}/user-ext/{name}/index.html
SQL allowlist comes fromThe page JSONsql_ids in the matching index.json
Session keypage:{page id}ext:{html path}
Menu points withsys.menu.page_idsys.menu.external_url

Built-in pages ​

Each item in Body is one component. Type chooses the engine script. These types are available:

TypeWhat it draws
data_gridGrid
tree_gridTree
simple_formForm
pivot_gridPivot, optionally with a chart
file_managerFile manager
sub_file_managerPick a business row, then manage the files under it
role_treemenu_cfgRoles and a menu tree

The loader also lists select_box and button. This repository does not contain those scripts. New pages use the select box and buttons on a grid toolbar.

Extension pages ​

Use an extension page when a built-in component cannot express the screen. One directory, four files:

user-ext/{name}/
  index.html
  index.js
  index.css
  index.json    title, sql_ids, notes

sql_ids is the list of sys.page_sql.id values this page may call. Leave one out and the call returns 403. After editing sql_ids, open the page again. The allowlist in the session does not hot-update.

The directory name starts with a lowercase letter and contains only a-z, 0-9, and _. user-ext/demo_scaffold/ is the template. A jar deploy keeps user-ext/ beside the jar. It is not inside the jar.

This describes the platform. One customer’s business tables are not in these docs.