Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
synapse-api
command
Command synapse-api is the HTTP API server entrypoint.
|
Command synapse-api is the HTTP API server entrypoint. |
|
synapse-ast
command
Command synapse-ast parses a source tree with language-aware (tree-sitter) grammars and emits structural facts as JSON on stdout.
|
Command synapse-ast parses a source tree with language-aware (tree-sitter) grammars and emits structural facts as JSON on stdout. |
|
synapse-callgraph
command
Command synapse-callgraph builds a general first-party call graph from Go source (via go/ssa) and emits it as the taintcallgraph wire JSON on stdout.
|
Command synapse-callgraph builds a general first-party call graph from Go source (via go/ssa) and emits it as the taintcallgraph wire JSON on stdout. |
|
synapse-cli
command
Command synapse-cli runs Synapse's own SCA pipeline from the command line.
|
Command synapse-cli runs Synapse's own SCA pipeline from the command line. |
|
synapse-mcp
command
Command synapse-mcp exposes Synapse's agent tool catalog to external AI clients over the Model Context Protocol.
|
Command synapse-mcp exposes Synapse's agent tool catalog to external AI clients over the Model Context Protocol. |
|
synapse-worker
command
Command synapse-worker is the privileged execution worker: it claims recon jobs the API enqueued to the durable queue and runs them under the SAME gate/audit/evidence invariants as the in-process path, but with the sandbox + kernel egress allowlist (it runs with CAP_NET_ADMIN/SYS_ADMIN, which the API lacks).
|
Command synapse-worker is the privileged execution worker: it claims recon jobs the API enqueued to the durable queue and runs them under the SAME gate/audit/evidence invariants as the in-process path, but with the sandbox + kernel egress allowlist (it runs with CAP_NET_ADMIN/SYS_ADMIN, which the API lacks). |
|
internal
|
|
|
adapter/httpapi
Package httpapi is the HTTP driving adapter: it maps routes to use case services.
|
Package httpapi is the HTTP driving adapter: it maps routes to use case services. |
|
adapter/mcpserver
Package mcpserver exposes Synapse's agent tool catalog to external AI clients over the Model Context Protocol.
|
Package mcpserver exposes Synapse's agent tool catalog to external AI clients over the Model Context Protocol. |
|
domain/advisory
Package advisory is the OWNED vulnerability-advisory matching brain: it decides whether a component version is affected by an advisory's version ranges WITHOUT querying a third-party service (OSV.dev / Grype), so detection does not depend on any one external matcher.
|
Package advisory is the OWNED vulnerability-advisory matching brain: it decides whether a component version is affected by an advisory's version ranges WITHOUT querying a third-party service (OSV.dev / Grype), so detection does not depend on any one external matcher. |
|
domain/agent
Package agent holds the pure domain types for AI orchestration: the LLM conversation values (messages, tool-calls, usage) and the orchestration state (session, proposed action, risk class, approval decision).
|
Package agent holds the pure domain types for AI orchestration: the LLM conversation values (messages, tool-calls, usage) and the orchestration state (session, proposed action, risk class, approval decision). |
|
domain/audit
Package audit makes the audit trail tamper-evident: each entry's Hash covers its content AND the previous entry's Hash, exactly like the evidence chain (golden rule 6).
|
Package audit makes the audit trail tamper-evident: each entry's Hash covers its content AND the previous entry's Hash, exactly like the evidence chain (golden rule 6). |
|
domain/aup
Package aup models acceptance of the Acceptable-Use Policy.
|
Package aup models acceptance of the Acceptable-Use Policy. |
|
domain/callgraph
Package callgraph is the deterministic call-graph domain model (Tier-2 shared foundation): a directed graph of function-call edges plus the entrypoints reachability is measured from, and the pure query primitives over it.
|
Package callgraph is the deterministic call-graph domain model (Tier-2 shared foundation): a directed graph of function-call edges plus the entrypoints reachability is measured from, and the pure query primitives over it. |
|
domain/compliance
Package compliance maps a finding's CWE to the regulatory/standard controls it bears on (compliance mapping).
|
Package compliance maps a finding's CWE to the regulatory/standard controls it bears on (compliance mapping). |
|
domain/distro
Package distro captures the operating-system distribution of a scanned target (from its OS packages) and flags releases that are past End-of-Life – i.e.
|
Package distro captures the operating-system distribution of a scanned target (from its OS packages) and flags releases that are past End-of-Life – i.e. |
|
domain/engagement
Package engagement is the aggregate root for a security-testing project: its scope, legal authorization window, and lifecycle status.
|
Package engagement is the aggregate root for a security-testing project: its scope, legal authorization window, and lifecycle status. |
|
domain/evidence
Package evidence models tamper-evident, hash-chained records of what an engagement produced (scans, findings, reports).
|
Package evidence models tamper-evident, hash-chained records of what an engagement produced (scans, findings, reports). |
|
domain/finding
Package finding models a confirmed or candidate security issue in an engagement.
|
Package finding models a confirmed or candidate security issue in an engagement. |
|
domain/hotspot
Package hotspot models Project-scoped Security Hotspot projections.
|
Package hotspot models Project-scoped Security Hotspot projections. |
|
domain/ignore
Package ignore models a repo-committed, declarative finding-suppression policy: the accepted-risk decisions a team version-controls alongside its code – Synapse's take on Trivy's .trivyignore, made governance-first.
|
Package ignore models a repo-committed, declarative finding-suppression policy: the accepted-risk decisions a team version-controls alongside its code – Synapse's take on Trivy's .trivyignore, made governance-first. |
|
domain/importedsbom
Package importedsbom models a client-supplied SBOM attached to an engagement.
|
Package importedsbom models a client-supplied SBOM attached to an engagement. |
|
domain/issue
Package issue models Project-scoped code-quality issue projections and their triage lifecycle (open / accepted / false-positive / won't-fix).
|
Package issue models Project-scoped code-quality issue projections and their triage lifecycle (open / accepted / false-positive / won't-fix). |
|
domain/judgment
Package judgment is the AI "analysis brain" primitive: a propose→verify→confirm CLAIM about a subject (a finding, component, vulnerability, or the engagement), evidence-gated and hash-chainable, that generalizes the exploitation gate.
|
Package judgment is the AI "analysis brain" primitive: a propose→verify→confirm CLAIM about a subject (a finding, component, vulnerability, or the engagement), evidence-gated and hash-chainable, that generalizes the exploitation gate. |
|
domain/measure
Package measure holds numeric, non-finding project measures (code size, complexity, duplication, coverage).
|
Package measure holds numeric, non-finding project measures (code size, complexity, duplication, coverage). |
|
domain/project
Package project is the aggregate root for a long-lived code-quality project.
|
Package project is the aggregate root for a long-lived code-quality project. |
|
domain/projectanalysis
Package projectanalysis models immutable, tenant-scoped Project analysis snapshots.
|
Package projectanalysis models immutable, tenant-scoped Project analysis snapshots. |
|
domain/qualitygate
Package qualitygate is the deterministic pass/fail gate over a codebase's measured metrics – the "Clean as You Code" quality gate.
|
Package qualitygate is the deterministic pass/fail gate over a codebase's measured metrics – the "Clean as You Code" quality gate. |
|
domain/qualityprofile
Package qualityprofile models named, per-language rule sets — the industry-standard "Quality Profile".
|
Package qualityprofile models named, per-language rule sets — the industry-standard "Quality Profile". |
|
domain/rating
Package rating turns findings + size measures into deterministic project health grades (A-E) and a technical-debt estimate, the counterpart on the code-quality side to risk priority on the security side.
|
Package rating turns findings + size measures into deterministic project health grades (A-E) and a technical-debt estimate, the counterpart on the code-quality side to risk priority on the security side. |
|
domain/recon
Package recon holds the domain types for reconnaissance runs.
|
Package recon holds the domain types for reconnaissance runs. |
|
domain/sbom
Package sbom models a Software Bill of Materials and its components/licenses.
|
Package sbom models a Software Bill of Materials and its components/licenses. |
|
domain/shared
Package shared holds value objects and errors common to all domain packages.
|
Package shared holds value objects and errors common to all domain packages. |
|
domain/taint
Package taint is the deterministic taint-analysis domain model: a data-flow graph from untrusted SOURCES to dangerous SINKS, with SANITIZER nodes that neutralize a flow, plus the pure query that reports an injection – a source→sink path that crosses no sanitizer.
|
Package taint is the deterministic taint-analysis domain model: a data-flow graph from untrusted SOURCES to dangerous SINKS, with SANITIZER nodes that neutralize a flow, plus the pure query that reports an injection – a source→sink path that crosses no sanitizer. |
|
domain/threatmodel
Package threatmodel is the architecture-input model that threat modeling reasons over: a data-flow diagram – components (processes, data stores, external entities), directed data flows between them, trust boundaries that partition them by trust level, and the assets at stake.
|
Package threatmodel is the architecture-input model that threat modeling reasons over: a data-flow diagram – components (processes, data stores, external entities), directed data flows between them, trust boundaries that partition them by trust level, and the assets at stake. |
|
domain/user
Package user models operator identities: each consultant is a distinct user with their own API key, so every action – comments, findings, assignments, audit, evidence – is attributable to a real person, not a shared "operator".
|
Package user models operator identities: each consultant is a distinct user with their own API key, so every action – comments, findings, assignments, audit, evidence – is attributable to a real person, not a shared "operator". |
|
domain/verdict
Package verdict is the shared adversarial-verdict value type + evidence bar used by BOTH finding (exploitation) and judgment (AI analysis).
|
Package verdict is the shared adversarial-verdict value type + evidence bar used by BOTH finding (exploitation) and judgment (AI analysis). |
|
domain/vex
Package vex holds the OpenVEX domain vocabulary (the closed justification enum, shared by the VEX export and the AI vex-justification judgment) AND the consume-side parser + product-to-finding matcher (document.go: Parse, Statement.Suppresses, Statement.MatchesFinding) shared by the post-scan VEX apply and the in-scan .vex consumer.
|
Package vex holds the OpenVEX domain vocabulary (the closed justification enum, shared by the VEX export and the AI vex-justification judgment) AND the consume-side parser + product-to-finding matcher (document.go: Parse, Statement.Suppresses, Statement.MatchesFinding) shared by the post-scan VEX apply and the in-scan .vex consumer. |
|
domain/vulnerability
Package vulnerability models a known issue affecting an SBOM component.
|
Package vulnerability models a known issue affecting an SBOM component. |
|
domain/writeup
Package writeup holds the built-in finding-writeup library: reusable, curated finding text + remediation an operator inserts when authoring a manual finding, so report prose is consistent.
|
Package writeup holds the built-in finding-writeup library: reusable, curated finding text + remediation an operator inserts when authoring a manual finding, so report prose is consistent. |
|
domain/writeupdraft
Package writeupdraft holds AI-proposed, human-gated finding write-up DRAFTS ("human-gated authoritative drafts").
|
Package writeupdraft holds AI-proposed, human-gated finding write-up DRAFTS ("human-gated authoritative drafts"). |
|
infrastructure/acquire
Package acquire prepares an isolated workspace for an SCA target.
|
Package acquire prepares an isolated workspace for an SCA target. |
|
infrastructure/blob
Package blob provides content-addressed artifact storage for the evidence vault a MinIO/S3 adapter for deployments and an in-memory store for dev/tests.
|
Package blob provides content-addressed artifact storage for the evidence vault a MinIO/S3 adapter for deployments and an in-memory store for dev/tests. |
|
infrastructure/cache/sbomcache
Package sbomcache is a filesystem-backed, content-addressed cache of generated SBOMs.
|
Package sbomcache is a filesystem-backed, content-addressed cache of generated SBOMs. |
|
infrastructure/ebpf
Package ebpf is the egress connection observer: a cgroup connect4/connect6 eBPF program (compiled to bytecode by clang, embedded, loaded by cilium/ebpf – no toolchain at runtime) attached to a per-run cgroup.
|
Package ebpf is the egress connection observer: a cgroup connect4/connect6 eBPF program (compiled to bytecode by clang, embedded, loaded by cilium/ebpf – no toolchain at runtime) attached to a per-run cgroup. |
|
infrastructure/egress
Package egress applies a compiled egress.Policy as a real, kernel-enforced network namespace.
|
Package egress applies a compiled egress.Policy as a real, kernel-enforced network namespace. |
|
infrastructure/llm/openai
Package openai implements ports.LLM against an OpenAI-compatible Chat Completions API – the reference provider, tested against the LLM gateway.
|
Package openai implements ports.LLM against an OpenAI-compatible Chat Completions API – the reference provider, tested against the LLM gateway. |
|
infrastructure/logstream
Package logstream is an in-memory pub/sub for recon-run logs, backing the SSE endpoint (ports.LogStream).
|
Package logstream is an in-memory pub/sub for recon-run logs, backing the SSE endpoint (ports.LogStream). |
|
infrastructure/persistence/file
Package file provides simple file-backed stores for single-tenant self-host mode and tests.
|
Package file provides simple file-backed stores for single-tenant self-host mode and tests. |
|
infrastructure/persistence/memory
Package memory provides in-memory repository implementations for the walking skeleton and tests.
|
Package memory provides in-memory repository implementations for the walking skeleton and tests. |
|
infrastructure/persistence/postgres
Package postgres provides PostgreSQL-backed repositories (pgx/v5) and applies migrations via goose.
|
Package postgres provides PostgreSQL-backed repositories (pgx/v5) and applies migrations via goose. |
|
infrastructure/recon
Package recon provides ports.ReconTool adapters: each knows one recon binary's argv and output format.
|
Package recon provides ports.ReconTool adapters: each knows one recon binary's argv and output format. |
|
infrastructure/report
DOCX report renderer.
|
DOCX report renderer. |
|
infrastructure/sandbox
Package sandbox implements ports.ToolRunner by confining each argv tool run in an unprivileged sandbox (see docs/08-security-model.md for the as-built control set).
|
Package sandbox implements ports.ToolRunner by confining each argv tool run in an unprivileged sandbox (see docs/08-security-model.md for the as-built control set). |
|
infrastructure/signing
Package signing implements ports.ChainSigner with ed25519: it attests to an evidence chain head so a custody chain proves origin (non-repudiation), not just integrity.
|
Package signing implements ports.ChainSigner with ed25519: it attests to an evidence chain head so a custody chain proves origin (non-repudiation), not just integrity. |
|
infrastructure/sourcesnippet
Package sourcesnippet reads a bounded source excerpt from a scanned workspace for the AI false-positive triage.
|
Package sourcesnippet reads a bounded source excerpt from a scanned workspace for the AI false-positive triage. |
|
infrastructure/timestamp
Package timestamp implements ports.TimestampAuthority with an RFC-3161 client: it anchors a custody chain head to an EXTERNAL trusted timestamp, so a head can be proven to have existed before a given instant independent of the server's own ed25519 key – i.e.
|
Package timestamp implements ports.TimestampAuthority with an RFC-3161 client: it anchors a custody chain head to an EXTERNAL trusted timestamp, so a head can be proven to have existed before a given instant independent of the server's own ed25519 key – i.e. |
|
infrastructure/toolrunner
Package toolrunner runs argv-based tools for the recon use case.
|
Package toolrunner runs argv-based tools for the recon use case. |
|
infrastructure/tools/ast
Package ast adapts the synapse-ast sidecar to the ports.ASTProvider port: it shells out (argv only, no shell) to the binary, which parses the target with tree-sitter and returns per-language function counts as JSON.
|
Package ast adapts the synapse-ast sidecar to the ports.ASTProvider port: it shells out (argv only, no shell) to the binary, which parses the target with tree-sitter and returns per-language function counts as JSON. |
|
infrastructure/tools/astwalk
Package astwalk is the source-tree walk + result model shared by the synapse-ast sidecar's CGO (tree-sitter) and CGO-free (stub) builds.
|
Package astwalk is the source-tree walk + result model shared by the synapse-ast sidecar's CGO (tree-sitter) and CGO-free (stub) builds. |
|
infrastructure/tools/bincat
Package bincat catalogs installed language packages from a materialized image root filesystem that a lockfile would miss: Go module dependencies embedded in compiled Go binaries (via stdlib debug/buildinfo) and Python distributions installed on disk (*.dist-info / *.egg-info metadata).
|
Package bincat catalogs installed language packages from a materialized image root filesystem that a lockfile would miss: Go module dependencies embedded in compiled Go binaries (via stdlib debug/buildinfo) and Python distributions installed on disk (*.dist-info / *.egg-info metadata). |
|
infrastructure/tools/codeanalysis
Package codeanalysis is a deterministic, pure-Go maintainability + reliability rule engine: it walks a source tree and flags code smells (Kind=quality) and likely bugs (Kind=reliability) per (file, line), mirroring the SAST pattern analyzer.
|
Package codeanalysis is a deterministic, pure-Go maintainability + reliability rule engine: it walks a source tree and flags code smells (Kind=quality) and likely bugs (Kind=reliability) per (file, line), mirroring the SAST pattern analyzer. |
|
infrastructure/tools/codeinventory
Package codeinventory is a deterministic, pure-Go code-size inventory: it walks a source tree, classifies each file's language with go-enry, and counts code / comment / blank lines per language, plus functions where a first-party parser exists (Go today, via go/parser).
|
Package codeinventory is a deterministic, pure-Go code-size inventory: it walks a source tree, classifies each file's language with go-enry, and counts code / comment / blank lines per language, plus functions where a first-party parser exists (Go today, via go/parser). |
|
infrastructure/tools/coverage
Package coverage parses a test-coverage report (lcov, Cobertura XML, or JaCoCo XML) into per-file, per-line coverage.
|
Package coverage parses a test-coverage report (lcov, Cobertura XML, or JaCoCo XML) into per-file, per-line coverage. |
|
infrastructure/tools/doctor
Package doctor provides an offline, read-only preflight report for synapse-cli.
|
Package doctor provides an offline, read-only preflight report for synapse-cli. |
|
infrastructure/tools/duplication
Package duplication is a deterministic, pure-Go copy-paste (clone) detector: it walks a source tree, tokenizes each file (comment- and whitespace-insensitive, language-aware comment stripping), and finds runs of duplicated tokens across and within files via a Rabin-Karp rolling hash, then reports the standard duplication metrics (blocks, duplicated lines, files, density).
|
Package duplication is a deterministic, pure-Go copy-paste (clone) detector: it walks a source tree, tokenizes each file (comment- and whitespace-insensitive, language-aware comment stripping), and finds runs of duplicated tokens across and within files via a Rabin-Karp rolling hash, then reports the standard duplication metrics (blocks, duplicated lines, files, density). |
|
infrastructure/tools/enry
Package enry adapts source-language detection to the LanguageDetector port, backed by go-enry (the GitHub Linguist port).
|
Package enry adapts source-language detection to the LanguageDetector port, backed by go-enry (the GitHub Linguist port). |
|
infrastructure/tools/gitdiff
Package gitdiff computes the set of added/changed lines per file between a base ref and the working tree, for "new code" (Clean-as-You-Code) gating: a finding is "new" when it sits on a changed line.
|
Package gitdiff computes the set of added/changed lines per file between a base ref and the working tree, for "new code" (Clean-as-You-Code) gating: a finding is "new" when it sits on a changed line. |
|
infrastructure/tools/gomodgraph
Package gomodgraph resolves the transitive dependency EDGES of a Go module by shelling out to `go mod graph` via argv and mapping its module-graph output onto the SBOM's existing golang components.
|
Package gomodgraph resolves the transitive dependency EDGES of a Go module by shelling out to `go mod graph` via argv and mapping its module-graph output onto the SBOM's existing golang components. |
|
infrastructure/tools/govulncheck
Package govulncheck adapts the Go call-graph builder to the CallGraphBuilder port by shelling out to a pinned govulncheck binary via argv.
|
Package govulncheck adapts the Go call-graph builder to the CallGraphBuilder port by shelling out to a pinned govulncheck binary via argv. |
|
infrastructure/tools/gradleresolve
Package gradleresolve resolves a Gradle project's full dependency tree (direct + transitive, with the resolved versions) by shelling out (argv only) to a pinned `gradle` with a Synapse init script that walks the resolution-result GRAPH of the `runtimeClasspath` of EVERY project in the build (root + all subprojects) and prints each resolved Maven module.
|
Package gradleresolve resolves a Gradle project's full dependency tree (direct + transitive, with the resolved versions) by shelling out (argv only) to a pinned `gradle` with a Synapse init script that walks the resolution-result GRAPH of the `runtimeClasspath` of EVERY project in the build (root + all subprojects) and prints each resolved Maven module. |
|
infrastructure/tools/grype
Package grype is a DetectionSource that augments OSV.
|
Package grype is a DetectionSource that augments OSV. |
|
infrastructure/tools/ignorefile
Package ignorefile loads a repo-committed .synapseignore suppression policy from a prepared workspace.
|
Package ignorefile loads a repo-committed .synapseignore suppression policy from a prepared workspace. |
|
infrastructure/tools/jarchecksum
Package jarchecksum captures the artifact SHA-1 of JVM components by hashing the JAR files in the prepared workspace.
|
Package jarchecksum captures the artifact SHA-1 of JVM components by hashing the JAR files in the prepared workspace. |
|
infrastructure/tools/jarhash
Package jarhash recovers the Maven coordinate of a shaded / relocated / metadata-less JVM component from its artifact SHA-1, by querying Maven Central's SHA-1 search API.
|
Package jarhash recovers the Maven coordinate of a shaded / relocated / metadata-less JVM component from its artifact SHA-1, by querying Maven Central's SHA-1 search API. |
|
infrastructure/tools/jarlicense
Package jarlicense recovers component licenses from the license TEXT embedded in JARs in the prepared workspace, for components the registry lookup left unknown.
|
Package jarlicense recovers component licenses from the license TEXT embedded in JARs in the prepared workspace, for components the registry lookup left unknown. |
|
infrastructure/tools/jvmreach
Package jvmreach computes COARSE, deterministic class-level reachability for JVM projects: starting from the application's own compiled classes, does anything (transitively) reference a dependency's classes at all? A dependency whose classes are never referenced is "present but not wired in" – the signal behind the field complaint that a scan lists packages the project does not use.
|
Package jvmreach computes COARSE, deterministic class-level reachability for JVM projects: starting from the application's own compiled classes, does anything (transitively) reference a dependency's classes at all? A dependency whose classes are never referenced is "present but not wired in" – the signal behind the field complaint that a scan lists packages the project does not use. |
|
infrastructure/tools/license
Package license adapts license classification + policy to the LicenseScanner port.
|
Package license adapts license classification + policy to the LicenseScanner port. |
|
infrastructure/tools/licensefile
Package licensefile recovers component licenses by classifying the LICENSE / COPYING files present in the prepared workspace – the cross-ecosystem equivalent of Trivy's `--license-full`, but for ANY language (not just JARs, which jarlicense handles).
|
Package licensefile recovers component licenses by classifying the LICENSE / COPYING files present in the prepared workspace – the cross-ecosystem equivalent of Trivy's `--license-full`, but for ANY language (not just JARs, which jarlicense handles). |
|
infrastructure/tools/licensemeta
Package licensemeta enriches SBOM components with license metadata from package registries (license recovery).
|
Package licensemeta enriches SBOM components with license metadata from package registries (license recovery). |
|
infrastructure/tools/licensetext
Package licensetext classifies license FILE TEXT into an SPDX id with a confidence score, using github.com/google/licensecheck (the classifier deps.dev/pkgsite use).
|
Package licensetext classifies license FILE TEXT into an SPDX id with a confidence score, using github.com/google/licensecheck (the classifier deps.dev/pkgsite use). |
|
infrastructure/tools/manifest
Package manifest enriches a generator's SBOM from dependency manifests the generator under-uses: it reconstructs missing dependency edges (Gemfile.lock), recovers dependencies the generator cannot resolve from source (Maven pom.xml, Gradle version catalogs), and refines component scope via pnpm workspace attribution.
|
Package manifest enriches a generator's SBOM from dependency manifests the generator under-uses: it reconstructs missing dependency edges (Gemfile.lock), recovers dependencies the generator cannot resolve from source (Maven pom.xml, Gradle version catalogs), and refines component scope via pnpm workspace attribution. |
|
infrastructure/tools/manifestresolve
Package manifestresolve resolves the dependency tree of a lockfile-less package manifest by shelling out (argv only, no shell) to the ecosystem's own tool in a LOCK-ONLY, NO-SCRIPTS mode over a THROWAWAY COPY of the manifest, then reusing the owned lockfile parser to emit pinned components.
|
Package manifestresolve resolves the dependency tree of a lockfile-less package manifest by shelling out (argv only, no shell) to the ecosystem's own tool in a LOCK-ONLY, NO-SCRIPTS mode over a THROWAWAY COPY of the manifest, then reusing the owned lockfile parser to emit pinned components. |
|
infrastructure/tools/mavencoord
Package mavencoord recovers authoritative Maven coordinates for SBOM components whose groupId was mis-derived during SBOM generation.
|
Package mavencoord recovers authoritative Maven coordinates for SBOM components whose groupId was mis-derived during SBOM generation. |
|
infrastructure/tools/mavenresolve
Package mavenresolve resolves a Maven project's full dependency tree (direct + transitive, with the real versions) by shelling out to `mvn dependency:list` via argv, then parsing the resolved coordinates into SBOM components.
|
Package mavenresolve resolves a Maven project's full dependency tree (direct + transitive, with the real versions) by shelling out to `mvn dependency:list` via argv, then parsing the resolved coordinates into SBOM components. |
|
infrastructure/tools/misconfig
Package misconfig is an owned, deterministic infrastructure-as-code / config scanner over a prepared workspace.
|
Package misconfig is an owned, deterministic infrastructure-as-code / config scanner over a prepared workspace. |
|
infrastructure/tools/notebook
Package notebook decodes the small, stable subset of the Jupyter notebook format needed by source analyzers.
|
Package notebook decodes the small, stable subset of the Jupyter notebook format needed by source analyzers. |
|
infrastructure/tools/npmresolve
Package npmresolve resolves an npm project's dependency tree (direct + transitive, with pinned versions) from a package.json that has NO committed lockfile — the common raw-source state where the manifest declares only semver RANGES (^1.2.3, ~1.0, >=2) and the SBOM otherwise sees no resolvable version to advisory-match.
|
Package npmresolve resolves an npm project's dependency tree (direct + transitive, with pinned versions) from a package.json that has NO committed lockfile — the common raw-source state where the manifest declares only semver RANGES (^1.2.3, ~1.0, >=2) and the SBOM otherwise sees no resolvable version to advisory-match. |
|
infrastructure/tools/nvd
Package nvd backfills the severity of vulnerabilities the detection sources left UNKNOWN (an OSV-only distro CVE often carries no CVSS) by looking up the CVE's CVSS base score in the NVD CVE API.
|
Package nvd backfills the severity of vulnerabilities the detection sources left UNKNOWN (an OSV-only distro CVE often carries no CVSS) by looking up the CVE's CVSS base score in the NVD CVE API. |
|
infrastructure/tools/ospkg
Package ospkg catalogs installed OS packages from a materialized image root filesystem: Debian/Ubuntu dpkg (/var/lib/dpkg/status), Alpine apk (/lib/apk/db/installed), and RHEL-family rpm (/var/lib/rpm/rpmdb.sqlite), with the distro release read from /etc/os-release.
|
Package ospkg catalogs installed OS packages from a materialized image root filesystem: Debian/Ubuntu dpkg (/var/lib/dpkg/status), Alpine apk (/lib/apk/db/installed), and RHEL-family rpm (/var/lib/rpm/rpmdb.sqlite), with the distro release read from /etc/os-release. |
|
infrastructure/tools/osv
Package osv is a DetectionSource that queries OSV.dev – the primary vuln source (free, no auth, no rate limit).
|
Package osv is a DetectionSource that queries OSV.dev – the primary vuln source (free, no auth, no rate limit). |
|
infrastructure/tools/ownadvisory
Package ownadvisory is the OWNED advisory DetectionSource: it matches an SBOM against Synapse's own normalized advisory store using the owned matcher (internal/domain/advisory), producing the same vulnerability.RawFinding the OSV/Grype adapters do – but WITHOUT querying any third-party service.
|
Package ownadvisory is the OWNED advisory DetectionSource: it matches an SBOM against Synapse's own normalized advisory store using the owned matcher (internal/domain/advisory), producing the same vulnerability.RawFinding the OSV/Grype adapters do – but WITHOUT querying any third-party service. |
|
infrastructure/tools/ownsbom
Package ownsbom is Synapse's OWNED SBOM producer: a per-ecosystem parser registry that reads dependency manifests/lockfiles directly and emits a normalized sbom.SBOM, WITHOUT shelling out to a third-party scanner.
|
Package ownsbom is Synapse's OWNED SBOM producer: a per-ecosystem parser registry that reads dependency manifests/lockfiles directly and emits a normalized sbom.SBOM, WITHOUT shelling out to a third-party scanner. |
|
infrastructure/tools/pyimports
Package pyimports is a SOURCE-ONLY Python import scanner: it reads a target's first-party .py files and extracts the top-level modules they import, plus whether the code uses dynamic imports.
|
Package pyimports is a SOURCE-ONLY Python import scanner: it reads a target's first-party .py files and extracts the top-level modules they import, plus whether the code uses dynamic imports. |
|
infrastructure/tools/qualityprofile
Package qualityprofile loads the .synapse-gate.yaml (quality gate) and .synapse-rules.yaml (rule profile) config files into the pure-domain qualitygate types.
|
Package qualityprofile loads the .synapse-gate.yaml (quality gate) and .synapse-rules.yaml (rule profile) config files into the pure-domain qualitygate types. |
|
infrastructure/tools/risk
Package risk enriches vulnerabilities with CISA KEV + FIRST EPSS so they can be ordered by real risk priority (KEV -> EPSS x CVSS).
|
Package risk enriches vulnerabilities with CISA KEV + FIRST EPSS so they can be ordered by real risk priority (KEV -> EPSS x CVSS). |
|
infrastructure/tools/sast
Package sast is a deterministic, pure-Go pattern scanner: it walks a source tree and flags high-signal weaknesses (weak crypto, hardcoded secrets/keys, insecure TLS config) by regex, emitting one finding per (file, line, rule).
|
Package sast is a deterministic, pure-Go pattern scanner: it walks a source tree and flags high-signal weaknesses (weak crypto, hardcoded secrets/keys, insecure TLS config) by regex, emitting one finding per (file, line, rule). |
|
infrastructure/tools/secretscan
Package secretscan is an owned, deterministic secret scanner over a prepared workspace.
|
Package secretscan is an owned, deterministic secret scanner over a prepared workspace. |
|
infrastructure/tools/ssacallgraph
Package ssacallgraph builds a deterministic call graph from Go SOURCE using go/ssa – the general, first-party call graph taint analysis needs.
|
Package ssacallgraph builds a deterministic call graph from Go SOURCE using go/ssa – the general, first-party call graph taint analysis needs. |
|
infrastructure/tools/syft
Package syft adapts SBOM generation to the SBOMGenerator port by shelling out to a pinned Syft binary.
|
Package syft adapts SBOM generation to the SBOMGenerator port by shelling out to a pinned Syft binary. |
|
infrastructure/tools/taintcallgraph
Package taintcallgraph is the adapter that produces a general first-party call graph for E39 taint analysis by shelling out to the sandboxed `synapse-callgraph` argv binary (which runs the heavy go/ssa builder, internal/infrastructure/tools/ssacallgraph).
|
Package taintcallgraph is the adapter that produces a general first-party call graph for E39 taint analysis by shelling out to the sandboxed `synapse-callgraph` argv binary (which runs the heavy go/ssa builder, internal/infrastructure/tools/ssacallgraph). |
|
infrastructure/tools/vexfile
Package vexfile loads an in-repo OpenVEX document (.synapse.vex.json) from a prepared workspace.
|
Package vexfile loads an in-repo OpenVEX document (.synapse.vex.json) from a prepared workspace. |
|
infrastructure/vault
Package vault is the credential store: per-engagement secrets encrypted at rest with AES-256-GCM under a master key that never touches the database, logs, or the LLM transcript.
|
Package vault is the credential store: per-engagement secrets encrypted at rest with AES-256-GCM under a master key that never touches the database, logs, or the LLM transcript. |
|
platform/binregistry
Package binregistry verifies tool-binary integrity before execution (F5).
|
Package binregistry verifies tool-binary integrity before execution (F5). |
|
platform/buildinfo
Package buildinfo reports dependency + application versions from the compiled binary's build metadata, used to record scan reproducibility.
|
Package buildinfo reports dependency + application versions from the compiled binary's build metadata, used to record scan reproducibility. |
|
platform/config
Package config loads runtime configuration from the environment.
|
Package config loads runtime configuration from the environment. |
|
platform/httpserver
Package httpserver runs an HTTP server with graceful shutdown.
|
Package httpserver runs an HTTP server with graceful shutdown. |
|
platform/idgen
Package idgen provides Clock and IDGenerator implementations for the platform.
|
Package idgen provides Clock and IDGenerator implementations for the platform. |
|
platform/jobs
Package jobs is a small bounded worker pool: a fixed number of workers draining a fixed-size queue.
|
Package jobs is a small bounded worker pool: a fixed number of workers draining a fixed-size queue. |
|
platform/logging
Package logging builds the application's structured logger.
|
Package logging builds the application's structured logger. |
|
platform/redact
Package redact is the shared belt-and-suspenders scrubber for secret material on its way to any sink – logs, the audit writer, the evidence seal, tool output.
|
Package redact is the shared belt-and-suspenders scrubber for secret material on its way to any sink – logs, the audit writer, the evidence seal, tool output. |
|
platform/untrusted
Package untrusted is the shared guard for any UNTRUSTED text a source-reading AI ingests – dependency source excerpts, files a SAST/threat brain reads, or a tool's stdout.
|
Package untrusted is the shared guard for any UNTRUSTED text a source-reading AI ingests – dependency source excerpts, files a SAST/threat brain reads, or a tool's stdout. |
|
usecase/advisoryingest
Package advisoryingest loads the owned normalized-advisory store from a bulk feed.
|
Package advisoryingest loads the owned normalized-advisory store from a bulk feed. |
|
usecase/agenttools
Package agenttools is the agent's tool catalog: the bounded set of capabilities the LLM is allowed to invoke.
|
Package agenttools is the agent's tool catalog: the bounded set of capabilities the LLM is allowed to invoke. |
|
usecase/analysis
Package analysis runs the evidence-gated lifecycle for AI "judgments" – the generalized twin of the exploitation gate.
|
Package analysis runs the evidence-gated lifecycle for AI "judgments" – the generalized twin of the exploitation gate. |
|
usecase/approval
Package approval is the Human-In-The-Loop gate for AI-proposed actions.
|
Package approval is the Human-In-The-Loop gate for AI-proposed actions. |
|
usecase/audit
Package audit is the read/verify use case over the append-only audit log.
|
Package audit is the read/verify use case over the append-only audit log. |
|
usecase/aup
Package aup (use case) implements first-run Acceptable-Use-Policy logic.
|
Package aup (use case) implements first-run Acceptable-Use-Policy logic. |
|
usecase/codequality
Package codequality assembles the code-quality findings for a source tree: it runs the deterministic maintainability/reliability rule engine and layers on the metric-derived signals (duplication, and complexity when an AST backend is available), mapping everything to first-party finding.Finding values (Kind=quality/reliability, ungated, publishable like SAST).
|
Package codequality assembles the code-quality findings for a source tree: it runs the deterministic maintainability/reliability rule engine and layers on the metric-derived signals (duplication, and complexity when an AST backend is available), mapping everything to first-party finding.Finding values (Kind=quality/reliability, ungated, publishable like SAST). |
|
usecase/credentials
Package credentials is the management use case over the credential vault (secrets never enter logs): an operator stores per-engagement secrets (write-only) and lists or deletes them by NAME.
|
Package credentials is the management use case over the credential vault (secrets never enter logs): an operator stores per-engagement secrets (write-only) and lists or deletes them by NAME. |
|
usecase/crosscheckjudge
Package crosscheckjudge turns cross-check DISAGREEMENTS into Judgments for human review.
|
Package crosscheckjudge turns cross-check DISAGREEMENTS into Judgments for human review. |
|
usecase/dastrunner
Package dastrunner executes narrowly-scoped, approved runtime verification probes.
|
Package dastrunner executes narrowly-scoped, approved runtime verification probes. |
|
usecase/dastverifier
Package dastverifier ingests runtime-verifier results for AppSec findings.
|
Package dastverifier ingests runtime-verifier results for AppSec findings. |
|
usecase/dastworkflow
Package dastworkflow coordinates the governed DAST verification lifecycle.
|
Package dastworkflow coordinates the governed DAST verification lifecycle. |
|
usecase/egress
Package egress compiles an engagement scope into a default-deny egress policy: the concrete set of {destination, ports} a sandboxed tool may reach.
|
Package egress compiles an engagement scope into a default-deny egress policy: the concrete set of {destination, ports} a sandboxed tool may reach. |
|
usecase/engagement
Package engagement (use case) implements engagement application logic.
|
Package engagement (use case) implements engagement application logic. |
|
usecase/evidence
Package evidence is the tamper-evident evidence vault: it appends sealed, hash-chained links, stores artifacts content-addressed in a blob store, and verifies the chain on read – emitting an append-only tamper ALERT on any mismatch.
|
Package evidence is the tamper-evident evidence vault: it appends sealed, hash-chained links, stores artifacts content-addressed in a blob store, and verifies the chain on read – emitting an append-only tamper ALERT on any mismatch. |
|
usecase/execution
Package execution holds the shared server-side execution guard: engagement scope + legal authorization-window enforcement with append-only audit, applied BEFORE any tool runs.
|
Package execution holds the shared server-side execution guard: engagement scope + legal authorization-window enforcement with append-only audit, applied BEFORE any tool runs. |
|
usecase/exploitation
Package exploitation is the evidence-gated lifecycle for AI/exploitation findings.
|
Package exploitation is the evidence-gated lifecycle for AI/exploitation findings. |
|
usecase/export
Package export builds deterministic SARIF 2.1.0 + OpenVEX documents from stored findings.
|
Package export builds deterministic SARIF 2.1.0 + OpenVEX documents from stored findings. |
|
usecase/findings
Package findings handles the human findings workflow: manual authoring, triage status transitions (with optimistic concurrency), assignment, and the persisted comment thread.
|
Package findings handles the human findings workflow: manual authoring, triage status transitions (with optimistic concurrency), assignment, and the persisted comment thread. |
|
usecase/fptriage
Package fptriage runs an LLM-assisted false-positive critique over first-party source-analysis findings (SAST, secret, misconfig).
|
Package fptriage runs an LLM-assisted false-positive critique over first-party source-analysis findings (SAST, secret, misconfig). |
|
usecase/hotspots
Package hotspots contains Project Security Hotspot projection use cases.
|
Package hotspots contains Project Security Hotspot projection use cases. |
|
usecase/issues
Package issues contains Project code-quality issue projection use cases.
|
Package issues contains Project code-quality issue projection use cases. |
|
usecase/llmverifier
Package llmverifier is the automated LLM judgment-verifier: it makes SYNAPSE_VERIFIER_MODEL live on the server.
|
Package llmverifier is the automated LLM judgment-verifier: it makes SYNAPSE_VERIFIER_MODEL live on the server. |
|
usecase/orchestrator
Package orchestrator is the AI orchestrator – the typed Go state machine that owns control flow.
|
Package orchestrator is the AI orchestrator – the typed Go state machine that owns control flow. |
|
usecase/ports
Package ports declares the interfaces (driven ports) that use cases depend on.
|
Package ports declares the interfaces (driven ports) that use cases depend on. |
|
usecase/projectuc
Package projectuc implements project application logic.
|
Package projectuc implements project application logic. |
|
usecase/pyreach
Package pyreach answers Tier-1 Python reachability by IMPORT: a vulnerable PyPI package is "reachable" iff first-party code imports it.
|
Package pyreach answers Tier-1 Python reachability by IMPORT: a vulnerable PyPI package is "reachable" iff first-party code imports it. |
|
usecase/qualitygates
Package qualitygates manages tenant-scoped quality-gate definitions.
|
Package qualitygates manages tenant-scoped quality-gate definitions. |
|
usecase/qualityprofiles
Package qualityprofiles manages named, per-language quality profiles: built-in defaults generated from the rule catalog plus tenant-scoped custom copies, and their per-project assignment.
|
Package qualityprofiles manages named, per-language quality profiles: built-in defaults generated from the rule catalog plus tenant-scoped custom copies, and their per-project assignment. |
|
usecase/reachability
Package reachability is the Tier-2 reachability query API: it wraps a ports.CallGraphBuilder + the deterministic callgraph domain queries into the service consumers use to turn "is this vulnerable symbol actually called?" into an evidence-backed reachability judgment.
|
Package reachability is the Tier-2 reachability query API: it wraps a ports.CallGraphBuilder + the deterministic callgraph domain queries into the service consumers use to turn "is this vulnerable symbol actually called?" into an evidence-backed reachability judgment. |
|
usecase/reachproof
Package reachproof is the coordinator that turns a deterministic reachability result into a CONFIRMED reachability Judgment, reusing the existing audited propose→verify gate rather than any new confirmed-state path.
|
Package reachproof is the coordinator that turns a deterministic reachability result into a CONFIRMED reachability Judgment, reusing the existing audited propose→verify gate rather than any new confirmed-state path. |
|
usecase/recon
Package recon orchestrates reconnaissance runs.
|
Package recon orchestrates reconnaissance runs. |
|
usecase/report
Package report generates an engagement's report from stored data and seals it with a SHA-256 (chain-of-custody).
|
Package report generates an engagement's report from stored data and seals it with a SHA-256 (chain-of-custody). |
|
usecase/safety
Package safety is the single admission gate for AI-proposed actions and the structural embodiment of the rule that AI orchestration is a typed Go state machine, not prompt-driven control flow.
|
Package safety is the single admission gate for AI-proposed actions and the structural embodiment of the rule that AI orchestration is a typed Go state machine, not prompt-driven control flow. |
|
usecase/sbomcrosscheckjudge
Package sbomcrosscheckjudge (SBOM side) turns SBOM-PRODUCER cross-check DISAGREEMENTS into Judgments for human review.
|
Package sbomcrosscheckjudge (SBOM side) turns SBOM-PRODUCER cross-check DISAGREEMENTS into Judgments for human review. |
|
usecase/sca
Package sca orchestrates the Software Composition Analysis pipeline.
|
Package sca orchestrates the Software Composition Analysis pipeline. |
|
usecase/taintscan
Package taintscan is the coordinator that turns a target's deterministic taint analysis into PROPOSED, gated CapSAST judgments – one per reported injection path × injection class – reusing the existing propose→verify gate.
|
Package taintscan is the coordinator that turns a target's deterministic taint analysis into PROPOSED, gated CapSAST judgments – one per reported injection path × injection class – reusing the existing propose→verify gate. |
|
usecase/threatmodeluc
Package threatmodeluc is the architecture-input threat-model ingest use case: it accepts an UNTRUSTED architecture model (from the API), bounds its size, runs the domain's fail-closed Validate (referential integrity), persists it per engagement, and audits the action – the server-side enforcement the domain seam (internal/domain/threatmodel) is reasoned over by.
|
Package threatmodeluc is the architecture-input threat-model ingest use case: it accepts an UNTRUSTED architecture model (from the API), bounds its size, runs the domain's fail-closed Validate (referential integrity), persists it per engagement, and audits the action – the server-side enforcement the domain seam (internal/domain/threatmodel) is reasoned over by. |
|
usecase/transfer
Package transfer implements engagement export/import: a portable bundle of an engagement's scope/findings/comments and its tamper-evident evidence chain.
|
Package transfer implements engagement export/import: a portable bundle of an engagement's scope/findings/comments and its tamper-evident evidence chain. |
|
usecase/users
Package users manages operator identities + API keys.
|
Package users manages operator identities + API keys. |
|
usecase/vex
Package vex consumes OpenVEX documents (CRA-aligned): a client hands Synapse a VEX doc asserting the exploitability status of vulnerabilities in their products, and Synapse applies each statement to the matching finding – e.g.
|
Package vex consumes OpenVEX documents (CRA-aligned): a client hands Synapse a VEX doc asserting the exploitability status of vulnerabilities in their products, and Synapse applies each statement to the matching finding – e.g. |
|
usecase/worker
Package worker is the durable-queue claim-loop: it pulls jobs from a ports.JobQueue, dispatches each to a Handler registered by Kind, heartbeats long runs so their lease does not expire mid-flight, and Completes or Fails (with backoff) the job.
|
Package worker is the durable-queue claim-loop: it pulls jobs from a ports.JobQueue, dispatches each to a Handler registered by Kind, heartbeats long runs so their lease does not expire mid-flight, and Completes or Fails (with backoff) the job. |
|
usecase/writeupdraftuc
Package writeupdraftuc is the use case for AI-proposed, human-gated finding write-up drafts ("human-gated authoritative drafts").
|
Package writeupdraftuc is the use case for AI-proposed, human-gated finding write-up drafts ("human-gated authoritative drafts"). |
|
Package migrations embeds the SQL migration files so the server can apply them at startup via goose (no external migration tool needed for self-host).
|
Package migrations embeds the SQL migration files so the server can apply them at startup via goose (no external migration tool needed for self-host). |
Click to show internal directories.
Click to hide internal directories.