Skip to content

Plugin Management

Plugin management lets administrators register and configure plugin instances that workflow ACTION nodes call at runtime.


Overview

PropertyValue
Route/admin-panel/systemPlugins tab
Feature flagNone (always visible in the System tab)
Page partialapp/pages/admin-panel/system/_partial/plugins.vue
Storeapp/stores/plugin.ts
Typesapp/types/plugin.ts

Data Model

ts
// app/types/plugin.ts

interface PluginDefinition {
  id: string;
  name: string;
  description?: string;
  actions: PluginAction[];
}

interface PluginInstance {
  id: string;
  name: string;
  plugin_definition_id: string;
  config: Record<string, unknown>;
}

interface PluginAction {
  key: string;
  label: string;
  description?: string;
  input_schema?: object; // JSON Schema — drives dynamic JsonForms in ACTION node config
  output_schema?: object;
}

usePluginStore (Pinia Store)

A Pinia store that caches plugin definitions and instances. It is consumed by both the Plugin Management admin UI and the Workflow Editor ACTION node configuration.

ts
const pluginStore = usePluginStore();
await pluginStore.fetch();
Method / GetterDescription
fetch()Fetches all definitions and instances; no-ops if already loaded
getActionsForInstance(id)Returns the PluginAction[] for the given instance
getDefinitionForInstance(id)Returns the PluginDefinition for the given instance

API Mappings

MethodEndpoint
pluginListv1PluginDefinitionList
pluginInstanceListv1PluginInstanceList
pluginInstanceDetailv1PluginInstanceDetail

i18n Keys

  • @pages.adminPanel.tabs.system.plugins.* — table headers, actions, empty state
  • @modals.pluginInstance.* — create / edit modals
  • @toasts.pluginInstance.* — success / error toasts