Skip to main content
Components are the building blocks of ShipSec Studio workflows. Each component performs a specific task and can be connected together to create powerful automation pipelines.

Component Categories

How Components Work

Each component has:
  • Inputs – Data ports that accept connections from other components
  • Outputs – Data ports that can be connected to downstream components
  • Parameters – Configurable settings in the sidebar
Components run inside Docker containers for isolation and reliability. Workflows are orchestrated by Temporal with automatic retries and resumability.

Component Structure

interface ComponentDefinition<Input, Output> {
  id: string;           // Unique identifier
  label: string;        // Display name
  category: string;     // Category for grouping
  runner: RunnerConfig; // Execution configuration
  inputSchema: ZodSchema<Input>;
  outputSchema: ZodSchema<Output>;
  execute: (input: Input, context: ExecutionContext) => Promise<Output>;
}

Example Pipelines

Attack Surface Discovery

Manual Trigger → Subfinder → DNSx → httpx → Notify
  1. Manual Trigger – User provides target domains
  2. Subfinder – Discovers subdomains
  3. DNSx – Resolves DNS records
  4. httpx – Probes for live HTTP services
  5. Notify – Sends results to Slack, Discord, or Teams

Secret Detection

Manual Trigger → TruffleHog → OpenAI Provider → AI Generate Text → Notify
  1. Manual Trigger – User provides repository URL
  2. TruffleHog – Scans for leaked credentials
  3. OpenAI Provider – Set up model and API key
  4. AI Generate Text – Analyzes and prioritizes findings
  5. Notify – Alerts team via Slack, Discord, or email

Execution Context

Components receive an ExecutionContext with access to:
ServiceDescription
storageFile upload/download to MinIO
secretsEncrypted secrets access
artifactsWorkflow artifact storage
traceEvent recording
loggerStructured logging
terminalTerminal output streaming

Building Custom Components

See the Component Development Guide for detailed instructions on building your own components.