Skip to main content
Core components handle workflow triggers, file operations, data transformation, and output destinations.

Triggers

Manual Trigger

Starts a workflow manually. Configure runtime inputs to collect data (files, text, etc.) when triggered.
ParameterTypeDescription
runtimeInputsJSONDefine inputs to collect at runtime
Supported input types: file, text, number, json, array Example use cases:
  • Collect uploaded scope files before running security scans
  • Prompt operators for target domains or API keys

Webhook

Sends JSON payloads to external HTTP endpoints with retries and timeouts.
ParameterTypeDescription
urlURLDestination endpoint
methodSelectPOST, PUT, or PATCH
payloadJSONRequest body
headersJSONHTTP headers
timeoutMsNumberRequest timeout (default: 30000)
retriesNumberRetry attempts (default: 3)
Example use cases:
  • Send scan results to Slack or Teams
  • POST assets to a custom API

File Operations

File Loader

Loads file content from storage for use in workflows.
InputTypeDescription
fileIdUUIDFile ID from uploaded file
OutputTypeDescription
fileObjectFile metadata + base64 content
textContentStringDecoded UTF-8 text

Text Splitter

Splits text into an array of strings by separator.
ParameterTypeDescription
textString/FileText content to split
separatorStringSplit character (default: \n)
OutputTypeDescription
itemsArraySplit strings
countNumberNumber of items
Example: Split newline-delimited subdomains before passing to scanners.

Text Joiner

Joins array elements into a single string.
ParameterTypeDescription
itemsArrayArray of strings to join
separatorStringJoin character (default: \n)
OutputTypeDescription
textStringJoined string

Secrets

Secret Loader

Fetches secrets from the ShipSec-managed secret store.
ParameterTypeDescription
secretNameSecretSecret name or UUID
versionNumberOptional version pin
outputFormatSelectraw or json
OutputTypeDescription
secretAnyResolved secret value (masked in logs)
metadataObjectSecret version info
Secret values are automatically masked in all logs and terminal output.

Data Transformation

Array Pick

Extracts specific items from an array by index.
ParameterTypeDescription
arrayArraySource array
indicesArrayIndices to pick
OutputTypeDescription
pickedArraySelected items

Array Pack

Combines multiple values into a single array.
ParameterTypeDescription
valuesAny[]Values to pack
OutputTypeDescription
arrayArrayPacked array

Console Log

Outputs data to workflow logs for debugging.
ParameterTypeDescription
dataAnyData to log
labelStringOptional label

Storage Destinations

Artifact Writer

Writes workflow artifacts to ShipSec storage.
ParameterTypeDescription
contentAnyContent to store
filenameStringArtifact filename
mimeTypeStringContent type
OutputTypeDescription
artifactIdUUIDStored artifact ID
urlStringDownload URL

File Writer

Writes content to a file in workflow storage.
ParameterTypeDescription
contentStringFile content
pathStringFile path

Destination S3

Uploads files to an S3-compatible bucket.
ParameterTypeDescription
bucketStringS3 bucket name
keyStringObject key
contentBufferFile content
credentialsObjectAWS credentials

AWS Credentials

Provides AWS credentials for S3 operations.
ParameterTypeDescription
accessKeyIdSecretAWS Access Key ID
secretAccessKeySecretAWS Secret Access Key
regionStringAWS region
OutputTypeDescription
credentialsObjectCredential object for S3 components

Analytics

Analytics Sink

Indexes workflow output data into OpenSearch for analytics dashboards, queries, and alerts. Connect the results port from upstream security scanners.
InputTypeDescription
dataAnyData to index. Works best with list<json> from scanner results ports.
OutputTypeDescription
indexedBooleanWhether data was successfully indexed
documentCountNumberNumber of documents indexed
indexNameStringName of the OpenSearch index used
ParameterTypeDescription
indexSuffixStringCustom suffix for the index name. Defaults to slugified workflow name.
assetKeyFieldSelectField to use as asset identifier. Options: auto, asset_key, host, domain, subdomain, url, ip, asset, target, custom
customAssetKeyFieldStringCustom field name when assetKeyField is “custom”
failOnErrorBooleanWhen enabled, workflow stops if indexing fails. Default: false (fire-and-forget)
How it works:
  1. Each item in the input array becomes a separate document
  2. Workflow context is added under shipsec.* namespace
  3. Nested objects are serialized to JSON strings (prevents field explosion)
  4. All documents get the same @timestamp
Example use cases:
  • Index Nuclei scan results for trend analysis
  • Store TruffleHog secrets for tracking over time
  • Aggregate vulnerability data across workflows
See Workflow Analytics for detailed setup and querying guide.