Core concepts¶
Vector is three clients around one authority. Knowing which part decides what makes the rest of the manual predictable.
The descriptor¶
Every resource, field, action, widget, dashboard and settings group compiles into one immutable descriptor when the application builds (or boots, in development). It records what each resource is: its fields and their types, what may be sorted, filtered and searched, table and show layouts, actions and their dialogs, widgets, and the menu.
The descriptor is also an allow-list. A field, sort, filter, column or action that a request names is checked against it before anything runs, so no request text ever reaches SQL as an identifier.
One UI, no application knowledge¶
@kinetis/vector-ui renders the descriptor: navigation, lists, forms,
record pages, dashboards, jobs and settings. It contains nothing
specific to your application. You change what it shows by changing
resources on the server, and how it shows things through configuration,
extensions or your own build (Customizing the UI).
The same services for agents¶
The MCP tools call the same services and policies as the REST routes. An agent sees what its identity may see, and writes go through the same validation, hooks and audit trail. See MCP tools.
Request scope¶
Anything that runs per request — policies, hooks, actions, widgets — is built by the request container and may inject what a controller may. Nothing Vector keeps on the application scope carries request state, which is what a persistent worker requires.
Where things run¶
Work |
Runs |
|---|---|
Reads and writes, small exports, actions |
In the request |
Queued actions, large exports, imports |
In a queue worker, as the admin who started them |
Badges |
In the request |
Widgets |
In the request, optionally cached per worker (Dashboards and widgets) |
See also¶
Resources — declaring what the descriptor holds.
Authorization — how the per-user descriptor is decided.
REST API — every route.