Apps & Pages

While Database Studio is great for administrators, end users usually need custom interfaces tailored to their daily workflows. Minerva lets you build custom internal tools using Apps and Pages without writing front-end boilerplate or deploying external hosting.

Apps

An App is a navigational container that groups multiple pages together.

Pages

A Page belongs to an App and is powered by a CUSTOM codeblock called ui_block.

Pages participate in the access-control system:

  • Users only receive apps and pages they can access
  • Direct field references inside Dynamic UI remain redaction-aware
  • Dynamic UI host queries may bypass field masking so charts and aggregates stay accurate

Worked Example: A Dashboard Page

import { Params, ReturnType } from './data';
import { SDK } from './external';

export function run(params: Params): ReturnType {
	return SDK.GlobalStore({
		data: {
			selectedStatus: 'Active'
		},
		ui: (store) => (
			<flex direction="column" gap={4}>
				<text content="Operations Dashboard" />
				<badge content={store.read('selectedStatus')} />
			</flex>
		)
	});
}

The Rendering Flow

  1. The server fetches the page definition from the Blueprint
  2. Executes the ui_block codeblock
  3. Returns a serialized TreeNode
  4. The client renders that tree with the Dynamic UI renderer