New to Kestra?
Use blueprints to kickstart your first workflows.
Audits Snyk container security scans, isolates fixable high and critical CVEs breaching policy thresholds, and alerts DevSecOps via Slack.
Modern cloud applications rely on container images built from open-source base layers like Alpine, Debian, and Ubuntu. Even when an image is scanned and certified clean at build time, new Common Vulnerabilities and Exposures (CVEs) are published continuously. If container images in production registries are not audited continuously, security debt accumulates unnoticed until emergency zero-day patch cycles disrupt operations. Moreover, alerting developers on unfixable upstream vendor bugs leads to alert fatigue. This sentinel audits Snyk container security scans on a daily schedule, isolates fixable critical and high vulnerabilities where patch versions are already available, and alerts DevSecOps teams on Slack with direct project links and remediation steps before release gates block CI/CD pipelines.
0 8 * * *) or runs on-demand via manual execution./v1/org/{org_id}/project/{project_id}/aggregated-issues with severities filtered for critical and high.isFixable boolean property on every returned issue, ignoring non-fixable or ignored CVEs to eliminate noise.max_critical_fixable_threshold or fixable high vulnerabilities exceed max_high_fixable_threshold.io.kestra.plugin.core.flow.If flowable checks if the policy was breached and dispatches an incident notification to #devsecops-alerts.flowchart TD
A[daily_snyk_security_audit Schedule Trigger] --> B[evaluate_snyk_vulnerabilities Python Script]
B --> C[check_vulnerability_threshold Flowable If]
C -- Policy Breached --> D[notify_slack_cve_breach Webhook]
C -- Policy Compliant --> E[log_compliance_status Log]
D --> E
E --> F[export_snyk_manifest Return]
Snyk scans images during CI/CD builds, but post-deployment vulnerability disclosures require an independent, recurring orchestration engine. Kestra provides automated scheduling, containerized Python execution, encrypted credential management for Snyk API tokens, and native Slack notification plugins. Orchestrating this audit in Kestra bridges the gap between static image analysis and active production supply chain governance.
python:3.11-slim or node:18-alpine) have upstream security updates that resolve open vulnerabilities.| Name | Type | Default | Description |
|---|---|---|---|
snyk_org_id |
STRING |
12345678-abcd-1234-abcd-1234567890ab |
Snyk organizational UUID containing scanned container projects. |
snyk_project_id |
STRING |
abcdef12-3456-7890-abcd-ef1234567890 |
Snyk container target project ID to evaluate for actionable vulnerabilities. |
max_critical_fixable_threshold |
INT |
0 |
Maximum allowable fixable critical vulnerabilities before gating container deployments. |
max_high_fixable_threshold |
INT |
5 |
Maximum allowable fixable high-severity vulnerabilities before alerting security teams. |
alert_on_breach |
BOOL |
true |
Whether to dispatch automated Slack security notifications when vulnerability thresholds are breached. |
{{ outputs.evaluate_snyk_vulnerabilities.vars.critical_fixable_count }}: Total number of fixable critical-severity vulnerabilities identified.{{ outputs.evaluate_snyk_vulnerabilities.vars.high_fixable_count }}: Total number of fixable high-severity vulnerabilities identified.{{ outputs.evaluate_snyk_vulnerabilities.vars.is_breached }}: Boolean flag indicating whether container vulnerability thresholds were breached.{{ outputs.export_snyk_manifest.value }}: Structured dictionary containing the consolidated security compliance summary.api.snyk.io.SNYK_API_TOKEN: Snyk API token with permissions to query organizational projects and aggregated issues.SLACK_WEBHOOK_URL: Slack Incoming Webhook URL used to dispatch security alerts.SNYK_API_TOKEN and SLACK_WEBHOOK_URL to your Kestra secret storage.company.security namespace.snyk_org_id and snyk_project_id to match your target container repository in Snyk.Viewer permissions on the specified Snyk Organization.snyk_project_id corresponds to a Container or Dockerfile project; open-source package projects have different issue schemas.io.kestra.plugin.core.flow.ForEach to audit an entire service catalog.