Skip to content

Feature Components

This document provides a comprehensive reference for the feature-specific components within the IONFLOW frontend, detailing their usage, location, and purpose.

The scope includes components related to Workflows, Connections, Executions, Webhooks, and Editors. It serves as a guide for developers implementing or maintaining these features.

Feature-specific components are organized by domain and handle complex business logic.

DirectoryDescription
workflow/Workflow builder and flow components
connections/Connection management
execution/Execution monitoring and display
webhook/Webhook configuration
Editor/Monaco JSON editor

Location: src/components/workflow/

Components for the visual workflow builder:

ComponentDescription
FlowBuilderMain workflow canvas
FlowNodeIndividual flow node
FlowConnectorNode connection lines
FlowToolbarBuilder toolbar
FlowSidebarNode palette
<template>
<FlowBuilder
:flow="flowData"
@save="handleSave"
@node-select="handleNodeSelect"
/>
</template>

Location: src/components/connections/

Components for managing external connections:

ComponentDescription
ConnectionListList of connections
ConnectionCardConnection display card
ConnectionFormConnection configuration
<template>
<ConnectionList
:connections="connections"
@select="handleSelect"
@delete="handleDelete"
/>
</template>

Location: src/components/execution/

Components for execution monitoring:

ComponentDescription
ExecutionListList of executions
ExecutionDetailExecution details view
ExecutionLogsExecution log viewer
<template>
<ExecutionDetail
:execution="execution"
@retry="handleRetry"
/>
</template>

Location: src/components/webhook/

Components for webhook configuration:

ComponentDescription
WebhookFormWebhook setup form
WebhookListWebhook list

Location: src/components/Editor/

Monaco-based JSON editor:

<template>
<JsonEditor
v-model="jsonData"
:readonly="false"
:height="400"
/>
</template>

Some components are exported as Web Components for use in external applications:

'form-component'
'flow-component'
'mapper-component'
'structure-component'
'flow-raw-component'
'gt-app'
'gt-channel-list'
'gt-integration-settings'
'gt-service-list'
'gt-flow-list'
'gt-flow-workspace'
'snippet-component'
'snippet-settings-component'
'app-auth-component'
'connection-component'

When creating new feature components:

  1. Create directory in src/components/[feature]/
  2. Add index.ts for exports
  3. Add types.ts for local types
  4. Add unit tests
src/components/[feature]/
├── components/ # Sub-components
│ ├── FeatureItem.vue
│ └── FeatureList.vue
├── services/ # Feature-specific services (if needed)
├── types/ # Feature-specific types
│ └── index.ts
├── index.ts # Exports
└── FeatureMain.vue # Main component