Documentation
¶
Overview ¶
Package sdk is the module root of Bomly's public Go contract. It declares nothing itself; the contract is split across four packages by what each answers, and this file is the map.
- model: what the data is. The dependency graph and its node kinds, packages and the registry, vulnerabilities and findings, the controlled vocabularies, and the normalization, merge, and policy rules they share. Every type here is also a wire payload.
- plugin: what a component is. The Detector, Matcher, Auditor, and Analyzer interfaces, their descriptors and request/response types, the Base* defaults, and Module/HostContext, which let one component run embedded in the host or as a managed plugin without change.
- runtime: how a component runs out of process. ServeModule and the Serve* entrypoints for a plugin binary's main, and Client, HandshakeConfig, and ClientPluginMap for the host that launches it, over the HashiCorp go-plugin gRPC transport.
- httpkit: outbound HTTP with Bomly's proxy and CA policy, reached by a component through HostContext.HTTPClient.
Which package to import: implementing a component means plugin and model; a plugin binary's main means runtime; hosting plugins means runtime; the helper kits (detectorkit, matcherkit, testkit, conformance, purlkit, spdxkit, sbom, system, filecache, logkit) build on the same four.
The plugin wire protocol, bomly.plugin.v1, is JSON over gRPC and strictly additive: its payload types are the model and plugin structs, so their JSON tags are the wire schema, and fields are never removed, renamed, or repurposed within v1.
Directories
¶
| Path | Synopsis |
|---|---|
|
Package conformance provides a reusable test suite that plugin authors run against their plugin.Module to verify it satisfies the Bomly plugin contract before shipping: module and descriptor validity, JSON round-trip stability, construction through a HostContext, the Ready/Applicable lifecycle contract, role-specific capabilities such as the package-updates delta protocol, and (optionally) manifest identity and a real managed-transport probe of the built plugin binary.
|
Package conformance provides a reusable test suite that plugin authors run against their plugin.Module to verify it satisfies the Bomly plugin contract before shipping: module and descriptor validity, JSON round-trip stability, construction through a HostContext, the Ready/Applicable lifecycle contract, role-specific capabilities such as the package-updates delta protocol, and (optionally) manifest identity and a real managed-transport probe of the built plugin binary. |
|
Package detectorkit provides shared helper functions for detector implementations: manifest metadata inference, source-position wiring, remediation hint assembly, subgraph partitioning, and build-tool readiness and timeout helpers.
|
Package detectorkit provides shared helper functions for detector implementations: manifest metadata inference, source-position wiring, remediation hint assembly, subgraph partitioning, and build-tool readiness and timeout helpers. |
|
Package filecache provides shared on-disk caching helpers for matcher, analyzer, and detector implementations.
|
Package filecache provides shared on-disk caching helpers for matcher, analyzer, and detector implementations. |
|
Package graphview reads a dependency graph for presentation and publication.
|
Package graphview reads a dependency graph for presentation and publication. |
|
Package httpkit builds Bomly's proxy- and CA-aware outbound HTTP clients from explicit configuration or the BOMLY_HTTP_* environment, so hosts, embedded components, and managed plugins share one transport policy.
|
Package httpkit builds Bomly's proxy- and CA-aware outbound HTTP clients from explicit configuration or the BOMLY_HTTP_* environment, so hosts, embedded components, and managed plugins share one transport policy. |
|
internal
|
|
|
testnodes
Package testnodes builds graph nodes for tests.
|
Package testnodes builds graph nodes for tests. |
|
Package logkit provides secret-safe subprocess logging helpers shared by Bomly components: argument and URL sanitizers, standard DEBUG command fields, and a counting stderr writer.
|
Package logkit provides secret-safe subprocess logging helpers shared by Bomly components: argument and URL sanitizers, standard DEBUG command fields, and a counting stderr writer. |
|
Package matcherkit contains shared helper functions for matcher implementations.
|
Package matcherkit contains shared helper functions for matcher implementations. |
|
Package model is Bomly's domain model: the dependency graph and its node kinds, package records and the PURL-keyed registry, vulnerabilities and findings, the controlled vocabularies (ecosystems, package managers, languages, scopes), and the normalization, merge, and policy rules that every producer and consumer of those values shares.
|
Package model is Bomly's domain model: the dependency graph and its node kinds, package records and the PURL-keyed registry, vulnerabilities and findings, the controlled vocabularies (ecosystems, package managers, languages, scopes), and the normalization, merge, and policy rules that every producer and consumer of those values shares. |
|
Package plugin is the contract a Bomly component implements: the Detector, Matcher, Auditor, and Analyzer interfaces with their descriptors, request and response types, the Base* defaults that insulate an implementation from interface growth, and Module, which packages one component with its constructor so the same value runs embedded in the host or served as a managed plugin.
|
Package plugin is the contract a Bomly component implements: the Detector, Matcher, Auditor, and Analyzer interfaces with their descriptors, request and response types, the Base* defaults that insulate an implementation from interface growth, and Module, which packages one component with its constructor so the same value runs embedded in the host or served as a managed plugin. |
|
Package purlkit is the single home for package-URL behavior in the Bomly SDK (ADR-0038 in bomly-cli's dev-docs/adr).
|
Package purlkit is the single home for package-URL behavior in the Bomly SDK (ADR-0038 in bomly-cli's dev-docs/adr). |
|
Package plugin is the managed-plugin runtime: it serves one component as a Bomly plugin binary over the HashiCorp go-plugin gRPC transport, and hands the host the matching Client for the other end of that connection.
|
Package plugin is the managed-plugin runtime: it serves one component as a Bomly plugin binary over the HashiCorp go-plugin gRPC transport, and hands the host the matching Client for the other end of that connection. |
|
Package sbom is the SBOM codec: it projects a dependency graph into an SPDX 2.3 or CycloneDX document and reads such a document back into a graph.
|
Package sbom is the SBOM codec: it projects a dependency graph into an SPDX 2.3 or CycloneDX document and reads such a document back into a graph. |
|
Package spdxkit is the single home for SPDX license behavior in the Bomly SDK (ADR-0038 in bomly-cli's dev-docs/adr): expression validation, classification, deprecated-identifier canonicalization, and deterministic LicenseRef minting.
|
Package spdxkit is the single home for SPDX license behavior in the Bomly SDK (ADR-0038 in bomly-cli's dev-docs/adr): expression validation, classification, deprecated-identifier canonicalization, and deterministic LicenseRef minting. |
|
Package system provides bounded filesystem reads and small OS helpers (exec, path, and environment wrappers) shared by Bomly components.
|
Package system provides bounded filesystem reads and small OS helpers (exec, path, and environment wrappers) shared by Bomly components. |
|
Package testkit provides test helpers for component modules and external plugins: fuzz-target invariants, Go binary builders for fake tools, and lockfile position assertions.
|
Package testkit provides test helpers for component modules and external plugins: fuzz-target invariants, Go binary builders for fake tools, and lockfile position assertions. |