@kestra-io/create-artifact-sdk
v0.0.18
Published
Scaffold a Kestra plugin custom UI package
Downloads
2,097
Readme
@kestra-io/create-artifact-sdk
CLI scaffolder for Kestra plugin custom UIs.
Usage
Run from your plugin's root directory (the one containing settings.gradle or settings.gradle.kts):
npm create @kestra-io/artifact-sdkOr from inside the ui/ directory:
cd my-plugin/ui
npm create @kestra-io/artifact-sdkThe CLI will:
- Detect your plugin — reads
settings.gradle[.kts]to find the plugin group id (e.g.io.kestra.plugin.redis). - Ask which task you want to add a custom UI for (e.g.
list.ListPop). - Ask which UI module to customize:
topology-details— panel shown when a task node is displayed in the topology viewlog-details— panel shown in the log view for a task execution
- Show a summary and ask for confirmation before writing anything.
- Scaffold the
ui/directory with:package.json(with all required dependencies)vite.config.ts(pre-configured with your plugin id and task)src/main.tsandsrc/App.vuefor local developmentsrc/components/<ComponentName>.vue— the starter component to editsrc/<ComponentName>.stories.ts— a Storybook story.storybook/main.tsand.storybook/preview.tsindex.html,tsconfig.json,.gitignore
- Run
npm install(optional, prompted).
After scaffolding
cd ui
# Local dev — renders the component in a Vite app
npm run dev
# Storybook — develop and document in isolation
npm run storybook
# Build the UI module for bundling with the plugin
npm run buildHow component names are derived
The component filename is built from the task type and the UI module:
| Task type | UI module | Component name |
| ------------------ | ------------------ | ----------------------------------- |
| list.ListPop | topology-details | ListListPopTopologyDetails.vue |
| io.Get | log-details | IoGetLogDetails.vue |
| trigger.Schedule | trigger-details | TriggerScheduleTriggerDetails.vue |
Requirements
- Node.js ≥ 18
- Must be run from a directory containing
settings.gradleorsettings.gradle.kts(or a direct child of one)
