VVibeFlui

Runtime Config

This page groups schema keys that connect to runtime behavior.

Permissions

Type: FluiKitPermissionsConfig.

FluiKitPermissionsConfig is Record<string, string | string[] | FluiKitCondition>.

TS
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.

TS
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.

TS
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.

PropertyTypeRequiredDescription
requeststringNoRegistry transformer key for request transforms.
responsestringNoRegistry transformer key for response transforms.
beforeSubmitFluiKitTransformStep[]NoOrdered client/server submit transform steps.

Transform step shape:

PropertyTypeRequiredDescription
runtime"client" | "server"YesStep runtime.
transformerstringNoRegistry transformer key.
handlerstringNoRegistry action handler key.
endpointFluiKitEndpointItemNoServer endpoint used by the step.
enabledbooleanNoEnables or disables the step.
TS
transform: {
  request: "users.request",
  response: "users.response",
  beforeSubmit: [
    { runtime: "client", transformer: "trim" }
  ]
}

Persist

Type: FluiKitPersistConfig.

PropertyTypeRequiredDescription
searchbooleanNoPersists table search.
filterbooleanNoPersists table filters.
sortbooleanNoPersists table sorting.
pagebooleanNoPersists table page state.
columnVisibilitybooleanNoPersists table column visibility.
storage"localStorage" | "sessionStorage" | "url"NoPersistence target.
keystringNoPersistence key override.
TS
persist: {
  search: true,
  filter: true,
  sort: true,
  page: true,
  columnVisibility: true,
  storage: "localStorage",
  key: "users-table"
}

Messages

Type: FluiKitMessagesConfig.

PropertyTypeRequiredDescription
localestringNoLocale metadata.
sourcePriorityArray<"backend" | "schema" | "resolver" | "default">NoMessage resolution order.
defaultsRecord<string, string>NoMessage overrides.
resolverstringNoRegistry message resolver key.
TS
messages: {
  locale: "en",
  sourcePriority: ["backend", "schema", "resolver", "default"],
  defaults: {
    createSuccess: "User created."
  },
  resolver: "users.messages"
}

Debug

Type: boolean | FluiKitDebugConfig.

PropertyTypeRequiredDescription
enabledbooleanNoEnables debug metadata.
showResolvedSchemabooleanNoShows normalized schema details when debug UI uses them.
showResolvedEndpointsbooleanNoShows resolved endpoint details when debug UI uses them.
showResolvedActionsbooleanNoShows resolved action details when debug UI uses them.
showResolvedMappingsbooleanNoShows resolved mapping details when debug UI uses them.
showProviderResolutionbooleanNoShows provider resolution details when debug UI uses them.
TS
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.

PropertyTypeRequiredDescription
enabledbooleanNoMarks the metadata entry as active.
descriptionstringNoShort resource description for documentation or review.
categorystringNoResource category metadata.
tagsstring[]NoSearch or classification tags.
generatedBystringNoOptional author/generator label, such as a developer, AI assistant, or generator name.
promptstringNoOptional prompt or instruction summary used to create or review the schema.
notesstringNoAdditional notes.
TS
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."
}