Processor Naming Convention

All Go processors follow a strict naming convention applied consistently across cmd/ directories, Containerfile targets, ECR tags, ECS task definitions, EventBridge schedules, CloudWatch log groups, task-manager.toml, terraform/go-schedules.tf, justfile recipes, GHA workflow steps, and the ECR push hook.

Format

  • Binary / cmd/ directory: {source}-{type}-processor
  • Cloud infrastructure (ECS/ECR/EventBridge/CloudWatch): go-{source}-{type}-processor
  • Justfile local recipe: go-{source}-{type}-backfill
  • Enrichment justfile recipe: go-enrich-{source}-{type} (no backfill/processor suffix)

Components

ComponentDescriptionValues
sourceShort name for the data sourcerustsec, cisa-kev, nist-nvd, ghsa, enrich-nuclei, etc.
typeData acquisition methodgit = baked git repo in container, json = JSON API or download, rss = RSS/Atom feed, fetch = web scraping/HTTP fetch, cvrf = CVRF XML advisory, csaf = CSAF 2.0 JSON advisory, csv = CSV files
roleExecution contextprocessor = cloud/binary name, backfill = local justfile recipe
prefixgo- on justfile recipes and all AWS resource names (NOT on cmd/ directories since they’re already inside go-processors/)

Where Each Form Is Used

SystemFormatExample
scripts/go-processors/cmd/ directory{source}-{type}-processorcmd/rustsec-git-processor/
Containerfile targetAS {source}-{type}-processorFROM scratch AS rustsec-git-processor
Containerfile data stageAS {source}-{type}-dataFROM alpine AS rustsec-git-data
Go binary output path/{source}-{type}-processor-o /rustsec-git-processor
ECR image taggo-{source}-{type}-processor-latestgo-rustsec-git-processor-latest
ECS task definition familygo-{source}-{type}-processorgo-rustsec-git-processor
ECS container name{source}-{type}-processorrustsec-git-processor
EventBridge schedule namego-{source}-{type}-processorgo-rustsec-git-processor
CloudWatch log group/ecs/vdb-scheduler/go-{source}-{type}-processor
CloudWatch stream prefix{source}-{type}-processorrustsec-git-processor
GHA workflow step nameBuild and push {source}-{type}-processor
task-manager.toml key[tasks.{source}-{type}-processor][tasks.rustsec-git-processor]
task-manager.toml aws_schedulego-{source}-{type}-processormatches ECS family
terraform/go-schedules.tf module name{source}_{type}_processor (snake_case)module "rustsec_git_processor"
terraform/go-schedules.tf task_name{source}-{type}-processortask_name = "rustsec-git-processor"
terraform/go-schedules.tf ECR image taggo-{source}-{type}-processor-${var.tag}go-rustsec-git-processor-latest
terraform/ecs.tf cluster namevdb-schedulerAll scheduled tasks run here
terraform/logs.tf DLQ namevdb-scheduler-dlqDead-letter queue for failed EventBridge invocations
.claude/hooks/post-push-ecr.sh TARGETS entry{source}-{type}-processorrustsec-git-processor
justfile recipe (regular)go-{source}-{type}-backfillgo-rustsec-git-backfill
justfile recipe (enrichment)go-enrich-{source}-{type}go-enrich-nuclei-fetch

IMPORTANT: terraform/go-schedules.tf task_name values must match scheduleToTaskName(aws_schedule) — i.e. the aws_schedule value from task-manager.toml with the go- prefix stripped. The scripts/task-dashboard TUI uses task_name as the key to look up schedule expressions and CPU/memory. If task_name is stale (old name), all tasks show as frequency group “Unknown” in the dashboard.

Data Type Classification

TypeWhen to useExamples
gitAdvisory data is cloned from a git repository and baked into the container image at build timepypi, ghsa, gemnasium, rustsec, ocaml, bitnami, canonical, almalinux, cnvd, drupal, cleanstart, ossfuzz, oss-malware
jsonData is fetched from a JSON API endpoint or downloaded as JSON/tar.gz/zip archives at runtimecisa-kev, nist-nvd, euvd, vulncheck-kev, vulncheck-nvd, crowdsec, certfr, mitre-cve, osv, enrich-googleosi, circl, chainguard, wolfi
rssData is parsed from RSS or Atom XML feedsalas, binarly, zdi
fetchData is scraped from unstructured web pages or fetched via HTTP from non-API sourcesenrich-nuclei, enrich-references, 0day-today
cvrfData is fetched and parsed from CVRF (Common Vulnerability Reporting Framework) XML endpoints — a structured XML advisory protocol distinct from RSScisco
csafData is fetched and parsed from CSAF 2.0 (Common Security Advisory Framework) JSON endpoints — a structured JSON advisory protocol defined by OASISsiemens
csvData is parsed from CSV filesepss
gsheetData is fetched as a CSV export from a public Google Sheets spreadsheet at runtimegpz-0day-itw
snortData is parsed from Snort IDS/IPS rule files — version-specific parsers (v2.x, v3.x)emergingthreats

Local-Only Tools

Some processors are local-only (no ECS task definition, no EventBridge schedule, no Containerfile target):

  • 0day-today-fetch-backfill — local exploit archive processing
  • epss-csv-backfill — local EPSS score CSV import
  • cvelistv5-json-backfill — local cvelistV5 repo processing

These use the backfill suffix in their cmd/ directory name (since they have no cloud processor counterpart).

Enrichment Tasks

Enrichment tasks (enrich-*) are a special category that enrich existing CVE data rather than importing new advisories. Their naming:

  • cmd/ directory: enrich-{source}-{type} (no processor/backfill suffix — “enrich” is the role)
  • ECS family: go-enrich-{source}-{type} (same, just with go- prefix)
  • justfile recipe: go-enrich-{source}-{type} (same as ECS — no backfill suffix since they don’t “backfill”)