Runtime Config
This page groups schema keys that connect to runtime behavior.
Permissions
Type: FluiKitPermissionsConfig.
FluiKitPermissionsConfig is Record<string, string | string[] | FluiKitCondition>.
permissions: {
"users.write": "users.write",
"users.delete": ["admin", "owner"]
}A permission string first resolves as a lookup key in registry.permissionResolvers. If no resolver is registered for that key, the string is checked directly as a grant against permissionContext.roles/permissionContext.permissions (i.e. it's treated as a plain role/permission name).
Hooks
Type: FluiKitHooksConfig.
FluiKitHooksConfig is a string-key map of lifecycle hook names to registry hook keys.
hooks: {
beforeCreate: "users.beforeCreate",
afterUpdate: "users.afterUpdate"
}Hook keys are looked up in registry.hooks first, falling back to registry.actionHandlers, then the legacy registry.handlers slot.
Events
Type: FluiKitEventsConfig.
FluiKitEventsConfig is a string-key map of event names to registry event keys.
events: {
rowClicked: "analytics.rowClicked",
actionSucceeded: "analytics.actionSucceeded"
}Event keys are first mapped through schema.events to a registry key looked up in registry.events; if there's no schema mapping, the raw event name is looked up in registry.events directly.
Transform
Type: FluiKitTransformConfig.
| Property | Type | Required | Description |
|---|---|---|---|
request | string | No | Registry transformer key for request transforms. |
response | string | No | Registry transformer key for response transforms. |
beforeSubmit | FluiKitTransformStep[] | No | Ordered client/server submit transform steps. |
Transform step shape:
| Property | Type | Required | Description |
|---|---|---|---|
runtime | "client" | "server" | Yes | Step runtime. |
transformer | string | No | Registry transformer key. |
handler | string | No | Registry action handler key. |
endpoint | FluiKitEndpointItem | No | Server endpoint used by the step. |
enabled | boolean | No | Enables or disables the step. |
transform: {
request: "users.request",
response: "users.response",
beforeSubmit: [
{ runtime: "client", transformer: "trim" }
]
}Persist
Type: FluiKitPersistConfig.
| Property | Type | Required | Description |
|---|---|---|---|
search | boolean | No | Persists table search. |
filter | boolean | No | Persists table filters. |
sort | boolean | No | Persists table sorting. |
page | boolean | No | Persists table page state. |
columnVisibility | boolean | No | Persists table column visibility. |
storage | "localStorage" | "sessionStorage" | "url" | No | Persistence target. |
key | string | No | Persistence key override. |
persist: {
search: true,
filter: true,
sort: true,
page: true,
columnVisibility: true,
storage: "localStorage",
key: "users-table"
}Messages
Type: FluiKitMessagesConfig.
| Property | Type | Required | Description |
|---|---|---|---|
locale | string | No | Locale metadata. |
sourcePriority | Array<"backend" | "schema" | "resolver" | "default"> | No | Message resolution order. |
defaults | Record<string, string> | No | Message overrides. |
resolver | string | No | Registry message resolver key. |
messages: {
locale: "en",
sourcePriority: ["backend", "schema", "resolver", "default"],
defaults: {
createSuccess: "User created."
},
resolver: "users.messages"
}Debug
Type: boolean | FluiKitDebugConfig.
| Property | Type | Required | Description |
|---|---|---|---|
enabled | boolean | No | Enables debug metadata. |
showResolvedSchema | boolean | No | Shows normalized schema details when debug UI uses them. |
showResolvedEndpoints | boolean | No | Shows resolved endpoint details when debug UI uses them. |
showResolvedActions | boolean | No | Shows resolved action details when debug UI uses them. |
showResolvedMappings | boolean | No | Shows resolved mapping details when debug UI uses them. |
showProviderResolution | boolean | No | Shows provider resolution details when debug UI uses them. |
debug: {
enabled: true,
showResolvedSchema: true,
showResolvedEndpoints: true,
showResolvedActions: true,
showResolvedMappings: true,
showProviderResolution: true
}AI metadata
Type: FluiKitAIMetadata.
ai is optional metadata for documenting how a schema was generated, reviewed, or organized. It can be filled by a developer, an AI assistant, or an internal generator.
VibeFlui does not require this metadata to render UI. It does not change table, form, action, provider, or feedback behavior. AI tools may read it as extra context when reviewing or regenerating schema, but VibeFlui itself treats it as descriptive metadata.
| Property | Type | Required | Description |
|---|---|---|---|
enabled | boolean | No | Marks the metadata entry as active. |
description | string | No | Short resource description for documentation or review. |
category | string | No | Resource category metadata. |
tags | string[] | No | Search or classification tags. |
generatedBy | string | No | Optional author/generator label, such as a developer, AI assistant, or generator name. |
prompt | string | No | Optional prompt or instruction summary used to create or review the schema. |
notes | string | No | Additional notes. |
ai: {
enabled: true,
description: "Admin users resource",
category: "admin",
tags: ["users", "crud"],
generatedBy: "assistant",
prompt: "Generate a users admin resource.",
notes: "Keep backend authorization on the server."
}