internal/

directory
v0.1.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 23, 2026 License: Apache-2.0

Directories

Path Synopsis
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.
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.
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).
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).
aup
Package aup models acceptance of the Acceptable-Use Policy.
Package aup models acceptance of the Acceptable-Use Policy.
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.
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).
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.
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.
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).
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.
hotspot
Package hotspot models Project-scoped Security Hotspot projections.
Package hotspot models Project-scoped Security Hotspot projections.
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.
importedsbom
Package importedsbom models a client-supplied SBOM attached to an engagement.
Package importedsbom models a client-supplied SBOM attached to an engagement.
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).
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.
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).
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.
projectanalysis
Package projectanalysis models immutable, tenant-scoped Project analysis snapshots.
Package projectanalysis models immutable, tenant-scoped Project analysis snapshots.
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.
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".
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.
recon
Package recon holds the domain types for reconnaissance runs.
Package recon holds the domain types for reconnaissance runs.
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.
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.
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.
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.
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".
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).
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.
vulnerability
Package vulnerability models a known issue affecting an SBOM component.
Package vulnerability models a known issue affecting an SBOM component.
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.
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.
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.
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.
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.
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.
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.
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).
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.
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.
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.
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.
report
DOCX report renderer.
DOCX report renderer.
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).
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.
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.
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.
toolrunner
Package toolrunner runs argv-based tools for the recon use case.
Package toolrunner runs argv-based tools for the recon use case.
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.
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.
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).
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.
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).
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.
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.
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).
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).
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.
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.
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.
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.
tools/grype
Package grype is a DetectionSource that augments OSV.
Package grype is a DetectionSource that augments OSV.
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.
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.
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.
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.
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.
tools/license
Package license adapts license classification + policy to the LicenseScanner port.
Package license adapts license classification + policy to the LicenseScanner port.
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).
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).
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).
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.
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.
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.
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.
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.
tools/msi
Package msi parses a Windows Installer (.msi) file — a pure-Go, dependency-free reader for the OLE2 Compound File Binary Format (MS-CFB) container plus the MSI table layout on top of it — to recover the installed product's identity (name, version, manufacturer, product code) for cataloging.
Package msi parses a Windows Installer (.msi) file — a pure-Go, dependency-free reader for the OLE2 Compound File Binary Format (MS-CFB) container plus the MSI table layout on top of it — to recover the installed product's identity (name, version, manufacturer, product code) for cataloging.
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.
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.
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.
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.
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).
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.
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.
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.
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.
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).
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).
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.
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.
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.
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).
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.
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).
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.
config
Package config loads runtime configuration from the environment.
Package config loads runtime configuration from the environment.
httpserver
Package httpserver runs an HTTP server with graceful shutdown.
Package httpserver runs an HTTP server with graceful shutdown.
idgen
Package idgen provides Clock and IDGenerator implementations for the platform.
Package idgen provides Clock and IDGenerator implementations for the 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.
logging
Package logging builds the application's structured logger.
Package logging builds the application's structured logger.
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.
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.
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.
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.
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.
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.
aup
Package aup (use case) implements first-run Acceptable-Use-Policy logic.
Package aup (use case) implements first-run Acceptable-Use-Policy logic.
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).
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.
crosscheckjudge
Package crosscheckjudge turns cross-check DISAGREEMENTS into Judgments for human review.
Package crosscheckjudge turns cross-check DISAGREEMENTS into Judgments for human review.
dastrunner
Package dastrunner executes narrowly-scoped, approved runtime verification probes.
Package dastrunner executes narrowly-scoped, approved runtime verification probes.
dastverifier
Package dastverifier ingests runtime-verifier results for AppSec findings.
Package dastverifier ingests runtime-verifier results for AppSec findings.
dastworkflow
Package dastworkflow coordinates the governed DAST verification lifecycle.
Package dastworkflow coordinates the governed DAST verification lifecycle.
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.
engagement
Package engagement (use case) implements engagement application logic.
Package engagement (use case) implements engagement application logic.
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.
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.
exploitation
Package exploitation is the evidence-gated lifecycle for AI/exploitation findings.
Package exploitation is the evidence-gated lifecycle for AI/exploitation findings.
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.
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.
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).
hotspots
Package hotspots contains Project Security Hotspot projection use cases.
Package hotspots contains Project Security Hotspot projection use cases.
issues
Package issues contains Project code-quality issue projection use cases.
Package issues contains Project code-quality issue projection use cases.
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.
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.
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.
projectuc
Package projectuc implements project application logic.
Package projectuc implements project application logic.
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.
qualitygates
Package qualitygates manages tenant-scoped quality-gate definitions.
Package qualitygates manages tenant-scoped quality-gate definitions.
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.
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.
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.
recon
Package recon orchestrates reconnaissance runs.
Package recon orchestrates reconnaissance runs.
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).
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.
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.
sca
Package sca orchestrates the Software Composition Analysis pipeline.
Package sca orchestrates the Software Composition Analysis pipeline.
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.
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.
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.
users
Package users manages operator identities + API keys.
Package users manages operator identities + API keys.
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.
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.
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").

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL