Skip to main content

Claude Flow Backend Plugin

The Claude Flow Backend provides session management, Docker container orchestration, and Vault integration for AI-assisted development environments.

Overview

PropertyValue
Package@internal/plugin-claude-flow-backend
TypeBackend
Plugin IDclaude-flow-backend
DatabasePostgreSQL via Knex
IntegrationDocker, Vault, Git

Architecture

API Endpoints

Health & Configuration

MethodEndpointDescription
GET/healthHealth check
GET/configBackend configuration
POST/sessions/recoverManual session recovery

Sessions

MethodEndpointDescription
GET/sessionsList user sessions
GET/sessions/:sessionIdGet session details
POST/sessionsCreate new session
PUT/sessions/:sessionIdUpdate session
DELETE/sessions/:sessionIdDelete session

Container Operations

MethodEndpointDescription
POST/sessions/:sessionId/startStart Docker container
POST/sessions/:sessionId/stopStop container
GET/sessions/:sessionId/logsGet container logs
GET/sessions/:sessionId/auth-urlGet authenticated URL
GET/sessions/:sessionId/statsGet resource stats
GET/sessions/:sessionId/stats/streamStream stats (SSE)
GET/sessions/:sessionId/stateGet container state

Repositories & Configuration

MethodEndpointDescription
GET/repositoriesList Git repositories
GET/repositories/:repo/branchesGet repository branches
GET/startup-scriptsList startup scripts
GET/fuelix-tokensGet FUELIX tokens

Vault Operations

MethodEndpointDescription
GET/vault/tokensGet Vault tokens
POST/vault/tokensCreate Vault token
GET/vault/healthVault health check

Templates

MethodEndpointDescription
GET/templatesList templates
POST/templatesCreate template
PUT/templates/:idUpdate template
DELETE/templates/:idDelete template
GET/templates/search/:querySearch templates

Authorization

MethodEndpointDescription
GET/auth/usersList users (from catalog)
GET/auth/groupsList groups
GET/auth/user/:userRef/groupsGet user's groups

Services

SessionService

Manages the complete session lifecycle.

interface SessionService {
create(input: CreateSessionInput, userId: string): Promise<Session>;
get(sessionId: string): Promise<Session>;
list(userId: string): Promise<Session[]>;
update(sessionId: string, input: UpdateSessionInput): Promise<Session>;
delete(sessionId: string): Promise<void>;
start(sessionId: string): Promise<void>;
stop(sessionId: string): Promise<void>;
}

DockerService

Handles Docker container operations.

interface DockerService {
createContainer(config: ContainerConfig): Promise<Container>;
startContainer(containerId: string): Promise<void>;
stopContainer(containerId: string): Promise<void>;
removeContainer(containerId: string): Promise<void>;
getLogs(containerId: string): Promise<string>;
getStats(containerId: string): Promise<ContainerStats>;
getState(containerId: string): Promise<ContainerState>;
}

Features:

  • Socket connection to Docker Engine
  • Container lifecycle management
  • Resource monitoring and stats streaming
  • Log retrieval with tail options

VaultSecretsService

Integrates with HashiCorp Vault.

interface VaultSecretsService {
getSecrets(path: string): Promise<Record<string, string>>;
writeSecret(path: string, data: Record<string, string>): Promise<void>;
listSecrets(path: string): Promise<string[]>;
}

TemplateService

Manages session templates.

interface TemplateService {
list(): Promise<Template[]>;
get(templateId: string): Promise<Template>;
create(input: CreateTemplateInput): Promise<Template>;
update(templateId: string, input: UpdateTemplateInput): Promise<Template>;
delete(templateId: string): Promise<void>;
search(query: string): Promise<Template[]>;
}

AuthorizationService

Backstage catalog integration for users and groups.

interface AuthorizationService {
listUsers(): Promise<User[]>;
listGroups(): Promise<Group[]>;
getUserGroups(userRef: string): Promise<Group[]>;
}

ContainerMonitorService

Monitors container health and status.

interface ContainerMonitorService {
startMonitoring(containerId: string): void;
stopMonitoring(containerId: string): void;
getHealth(containerId: string): Promise<HealthStatus>;
}

Database Schema

claude_flow_sessions

ColumnTypeDescription
idUUIDPrimary key
user_idVARCHAROwner user reference
nameVARCHARSession name
statusVARCHARSession status
container_idVARCHARDocker container ID
repositoryVARCHARGit repository URL
branchVARCHARGit branch
startup_scriptVARCHARStartup script path
created_atTIMESTAMPCreation timestamp
updated_atTIMESTAMPLast update timestamp

claude_flow_templates

ColumnTypeDescription
idUUIDPrimary key
nameVARCHARTemplate name
descriptionTEXTTemplate description
configJSONBTemplate configuration
ownerVARCHAROwner user reference
is_publicBOOLEANPublic visibility
created_atTIMESTAMPCreation timestamp

Container Configuration

Sessions create Docker containers with:

interface ContainerConfig {
image: string;
name: string;
env: Record<string, string>;
volumes: VolumeMount[];
ports: PortMapping[];
workingDir: string;
command: string[];
labels: Record<string, string>;
}

Default Environment Variables:

  • VAULT_ADDR - Vault server address
  • VAULT_TOKEN - Session Vault token
  • GIT_REPO - Repository URL
  • GIT_BRANCH - Branch name