Third-Party Dependencies

Document Version: 1.1.5 Last Updated: 2026-05-31 SPDX License Identifier: BUSL-1.1 (StellaOps)

This document provides a comprehensive inventory of all third-party dependencies used in StellaOps, their licenses, and BUSL-1.1 compatibility status.


Summary

CategoryCountLicense Types
Vendored/Bundled6MIT, BSD-3-Clause, LicenseRef-OASIS-Specification-Notice, Commercial
NuGet (Runtime)~100+MIT, Apache-2.0, BSD-3-Clause, PostgreSQL
NuGet (Dev/Test)~50+MIT, Apache-2.0
npm (Runtime)~15MIT, Apache-2.0, ISC, 0BSD
npm (Dev)~30+MIT, Apache-2.0
Infrastructure10PostgreSQL, MPL-2.0 (RabbitMQ; OpenBao is dev/test-only, not distributed), BSD-2-Clause, BSD-3-Clause, Apache-2.0, MIT, GPLv3 (separate process), AGPL-3.0 (separate service, mere aggregation)

Canonical License Declarations

StellaOps is licensed under BUSL-1.1 with an Additional Use Grant (see LICENSE). The Change License is Apache License 2.0 effective on the Change Date stated in LICENSE.

License Compatibility with BUSL-1.1

LicenseSPDXCompatibleNotes
MITMITYesPermissive, no restrictions
Apache-2.0Apache-2.0YesPermissive, patent grant
BSD-2-ClauseBSD-2-ClauseYesPermissive
BSD-3-ClauseBSD-3-ClauseYesPermissive
ISCISCYesFunctionally equivalent to MIT
0BSD0BSDYesPublic domain equivalent
PostgreSQLPostgreSQLYesPermissive, similar to MIT/BSD
MPL-2.0MPL-2.0YesFile-level copyleft; keep MPL files isolated
LGPL-2.1+LGPL-2.1-or-laterYesDynamic linking only; relinking rights preserved
OASIS specification noticeLicenseRef-OASIS-Specification-NoticeYesSpecification/schema asset notice preserved; no modified OASIS deliverables distributed
CommercialLicenseRef-*N/ACustomer-provided, not distributed

1. Vendored/Bundled Components

Components included directly in the StellaOps source tree.

ComponentVersionLicenseSPDXLocationNotes
tree-sitter-MITMITNative bindingsParser generator for reachability analysis
tree-sitter-ruby-MITMITNative bindingsRuby language parser
AlexMAS.GostCryptographyforkMITMITsrc/__Libraries/StellaOps.Cryptography.Plugin.CryptoPro/third_party/GOST R 34.10/34.11 implementation
OASIS CSAF 2.0 JSON Schema Set2.0OASIS specification noticeLicenseRef-OASIS-Specification-Noticedocs/contracts/schemas/eu/csaf/2.0/Local official CSAF 2.0 validation for Stella product advisories
FIRST CVSS JSON Schemasv2.0/v3.0/v3.1BSD-3-ClauseBSD-3-Clausedocs/contracts/schemas/eu/csaf/2.0/transitive/first-cvss/Transitive CVSS scoring schema refs for CSAF validation
golang.org/x/toolsv0.16.0BSD-3-ClauseBSD-3-Clausetools/stella-callgraph-go/vendor/golang.org/x/tools/go/ssa + go/callgraph/{cha,rta} + go/packages for the Go SSA call-graph extractor (stella-callgraph-go); linked into the binary only, build/runtime not shipped at /app
golang.org/x/modv0.14.0BSD-3-ClauseBSD-3-Clausetools/stella-callgraph-go/vendor/golang.org/x/mod/Indirect dependency of golang.org/x/tools (semver parsing)
Go toolchain (golang:1.21-bookworm)1.21BSD-3-ClauseBSD-3-ClauseBuild-stage SDK only (multi-stage Dockerfile)Compiles the static stella-callgraph-go binary; never shipped in a runtime image
CryptoPro CSPN/ACommercialLicenseRef-CryptoProIntegration onlyNot distributed; customer-provided

License Files

Full license texts are available in /third-party-licenses/:

1.1 Regulator-vendored evidence packages

Regulator- or vendor-published evidence packages (eIDAS QTSP/QSCD/TSL/LOTL fixtures, EBA DORA DPM/XBRL taxonomies, EBA RoI XSD packages, RFC 3161 TSA fixtures) follow a separate intake lane defined in regulatory-asset-intake.md. Each vendored package has:

Currently approved regulator-vendored assets: the OASIS CSAF 2.0 Schema Set + FIRST CVSS schemas listed in §1.

Approved-with-notice; vendored verbatim (intake complete):

Currently not vendored (engineering paths shipped fail-closed; a correct asset-scope decision is required before any official taxonomy claim can flip on):

See regulatory-asset-intake.md§6 for the live blocker list and the originating sprints.


2. NuGet Dependencies (Runtime)

Primary runtime dependencies for .NET 10 modules. Extracted via dotnet list package --include-transitive.

2.1 Core Framework & ASP.NET

PackageVersionLicenseSPDXCompatible
Microsoft.AspNetCore.*10.0.xMITMITYes
Microsoft.EntityFrameworkCore10.0.0MITMITYes
Microsoft.EntityFrameworkCore.Relational10.0.0MITMITYes
Microsoft.Extensions.*10.0.xMITMITYes
Microsoft.Extensions.Configuration.Binder10.0.1MITMITYes
Microsoft.Extensions.Hosting.WindowsServices10.0.1MITMITYes
Microsoft.IdentityModel.*8.xMITMITYes
System.IdentityModel.Tokens.Jwt8.0.1MITMITYes

2.2 Serialization & Data

PackageVersionLicenseSPDXCompatible
Newtonsoft.Json13.0.3MITMITYes
YamlDotNet16.3.0MITMITYes
protobuf-net3.2.45Apache-2.0Apache-2.0Yes
Google.Protobuf3.31.1BSD-3-ClauseBSD-3-ClauseYes
Json.More.Net2.1.1MITMITYes
JsonPointer.Net5.3.1MITMITYes
JsonSchema.Net8.0.4MITMITYes
AngleSharp1.2.0MITMITYes

JsonSchema.Net is used for local JSON Schema parsing and validation in offline contract checks, including the Notify ENISA SRP operator-supplied schema source. It is consumed as a NuGet dependency only; no source, schema package, or license text is vendored by Stella Ops.

YamlDotNet 16.3.0 is also the parser used by the first-party src/Tools/StellaOps.OpenApi.DocGen OpenAPI-to-markdown generator selected by Sprint OAPI-059-003. No external markdown generator package is vendored for that tool.

2.3 Database & Caching

PackageVersionLicenseSPDXCompatible
Npgsql10.0.0PostgreSQLPostgreSQLYes
Npgsql.EntityFrameworkCore.PostgreSQL10.0.0PostgreSQLPostgreSQLYes
Dapper2.1.35Apache-2.0Apache-2.0Yes
StackExchange.Redis2.8.37MITMITYes

2.4 Cryptography & Security

PackageVersionLicenseSPDXCompatible
BouncyCastle.Cryptography2.6.2MITMITYes
BCrypt.Net-Next4.0.3MITMITYes
Pkcs11Interop5.1.2Apache-2.0Apache-2.0Yes
Blake31.1.0Apache-2.0 OR CC0-1.0Apache-2.0Yes
System.Security.Cryptography.Pkcs7.0.2MITMITYes
System.Security.Cryptography.ProtectedData9.0.0MITMITYes
Novell.Directory.Ldap.NETStandard4.0.0MITMITYes

Novell.Directory.Ldap.NETStandard is the fully-managed LDAP/AD client used by the Authority LDAP identity-provider plugin. It replaced System.DirectoryServices.Protocols, whose native libldap P/Invoke breaks on hosts where the OpenLDAP soname differs from the one the runtime probes (e.g. Ubuntu 24.04 ships libldap.so.2 while the runtime looks for libldap-2.5.so.0) — independent of CPU architecture. The managed client has no native dependency, so it is portable across x64/arm64 and air-gapped images.

2.5 Cloud Providers

PackageVersionLicenseSPDXCompatible
AWSSDK.Core4.0.1.3Apache-2.0Apache-2.0Yes
AWSSDK.S34.0.16Apache-2.0Apache-2.0Yes
AWSSDK.KeyManagementService4.0.6Apache-2.0Apache-2.0Yes
Google.Cloud.Kms.V13.19.0Apache-2.0Apache-2.0Yes
Google.Api.Gax4.11.0Apache-2.0Apache-2.0Yes

2.6 gRPC & Networking

PackageVersionLicenseSPDXCompatible
Grpc.Net.Client2.71.0Apache-2.0Apache-2.0Yes
Grpc.Core.Api2.71.0Apache-2.0Apache-2.0Yes
Grpc.Auth2.71.0Apache-2.0Apache-2.0Yes

2.7 Observability & Logging

PackageVersionLicenseSPDXCompatible
Serilog3.1.1Apache-2.0Apache-2.0Yes
Serilog.AspNetCore8.0.1Apache-2.0Apache-2.0Yes
Serilog.Extensions.Hosting8.0.0Apache-2.0Apache-2.0Yes
Serilog.Sinks.Console5.0.1Apache-2.0Apache-2.0Yes
Serilog.Sinks.File5.0.0Apache-2.0Apache-2.0Yes

2.8 SBOM & Security Scanning

PackageVersionLicenseSPDXCompatible
CycloneDX.Core10.0.2Apache-2.0Apache-2.0Yes
NuGet.Versioning6.13.2Apache-2.0Apache-2.0Yes
Semver2.3.0MITMITYes

2.9 Code Analysis & Build

PackageVersionLicenseSPDXCompatible
Microsoft.CodeAnalysis.Common4.14.0MITMITYes
Microsoft.CodeAnalysis.CSharp4.14.0MITMITYes
Microsoft.CodeAnalysis.Workspaces.MSBuild4.14.0MITMITYes
Microsoft.Build17.7.2MITMITYes
Microsoft.Build.Locator1.10.2MITMITYes
Esprima3.0.5BSD-3-ClauseBSD-3-ClauseYes
Mono.Cecil0.11.6MITMITYes

2.10 Binary Analysis

PackageVersionLicenseSPDXCompatible
Iced1.21.0MITMITYes
Gee.External.Capstone2.3.0BSD-3-ClauseBSD-3-ClauseYes
PdfPig0.1.12Apache-2.0Apache-2.0Yes

2.11 Compression & Archives

PackageVersionLicenseSPDXCompatible
SharpCompress0.41.0MITMITYes
ZstdSharp.Port0.8.7MITMITYes

2.12 Authentication & Authorization

PackageVersionLicenseSPDXCompatible
Microsoft.AspNetCore.Authentication.JwtBearer10.0.0MITMITYes
OpenIddict.Abstractions6.4.0Apache-2.0Apache-2.0Yes

2.13 Resilience & Scheduling

PackageVersionLicenseSPDXCompatible
Microsoft.Extensions.Http.Resilience10.1.0MITMITYes
Polly8.5.2BSD-3-ClauseBSD-3-ClauseYes
Polly.Core8.5.2BSD-3-ClauseBSD-3-ClauseYes
Polly.Extensions8.4.2BSD-3-ClauseBSD-3-ClauseYes
Polly.Extensions.Http3.0.0BSD-3-ClauseBSD-3-ClauseYes
Cronos0.9.0MITMITYes

Microsoft.Extensions.Http.Resilience 10.x (MIT) wraps every outgoing integration connector HTTP call with the standard retry / circuit-breaker / timeout pipeline (see src/Integrations/StellaOps.Integrations.WebService/IntegrationHttpClientServiceCollectionExtensions.cs). Polly v8 (Polly.Core, BSD-3-Clause) is pulled in transitively. Both licenses are on the BUSL-1.1 allowlist; no vendored license texts are required for these packages because they are consumed via NuGet rather than vendored source.

2.14 Utilities

PackageVersionLicenseSPDXCompatible
Humanizer.Core2.14.1MITMITYes
System.CommandLine2.0.0-beta5MITMITYes
NetEscapades.Configuration.Yaml3.1.0MITMITYes
Pipelines.Sockets.Unofficial2.2.8MITMITYes

2.15 Manifest & Config Parsers

PackageVersionLicenseSPDXCompatibleConsuming Module
Tomlyn0.19.0BSD-2-ClauseBSD-2-ClauseYesStellaOps.Scanner.Analyzers.Lang.Rust (Cargo.toml manifest reader)

2.16 AI/ML Runtime

PackageVersionLicenseSPDXCompatible
Microsoft.ML.OnnxRuntime1.20.1MITMITYes

3. NuGet Dependencies (Development/Test)

PackageVersionLicenseSPDXCompatible
xunit2.xApache-2.0Apache-2.0Yes
xunit.runner.visualstudio2.xApache-2.0Apache-2.0Yes
Moq4.xBSD-3-ClauseBSD-3-ClauseYes
AwesomeAssertions9.4.0Apache-2.0Apache-2.0Yes
Microsoft.AspNetCore.Mvc.Testing10.0.xMITMITYes
Testcontainers3.xMITMITYes
Testcontainers.PostgreSql3.xMITMITYes
coverlet.collector6.xMITMITYes
BenchmarkDotNet0.13.xMITMITYes

AwesomeAssertions note (sprint SPRINT_20260503_005): drop-in community fork of FluentAssertions 6.x kept under Apache-2.0. We migrated away from FluentAssertions because v7.0+ (Jan 2025) was re-licensed under the Xceed Community License, which requires a paid subscription for commercial (BUSL-1.1) use. Pinned to 9.4.0 in src/Directory.Packages.props; nupkg SHA256 80B5A9F84B2F8E78CE7244A496893D73F910848562046FD57D41094D419660D2; license verified via nuspec at ~/.nuget/packages/awesomeassertions/9.4.0/AwesomeAssertions.nuspec (<license type="expression">Apache-2.0</license>).


4. npm Dependencies (Angular Frontend)

4.1 Runtime Dependencies

PackageVersionLicenseSPDXCompatible
@angular/animations^17.3.0MITMITYes
@angular/cdk^17.3.10MITMITYes
@angular/common^17.3.0MITMITYes
@angular/compiler^17.3.0MITMITYes
@angular/core^17.3.0MITMITYes
@angular/forms^17.3.0MITMITYes
@angular/material^17.3.10MITMITYes
@angular/platform-browser^17.3.0MITMITYes
@angular/platform-browser-dynamic^17.3.0MITMITYes
@angular/router^17.3.0MITMITYes
monaco-editor0.52.0MITMITYes
rxjs~7.8.0Apache-2.0Apache-2.0Yes
tslib^2.3.00BSD0BSDYes
yaml^2.4.2ISCISCYes
zone.js~0.14.3MITMITYes

4.2 Development Dependencies

PackageVersionLicenseSPDXCompatible
@angular-devkit/build-angular^17.3.17MITMITYes
@angular/cli^17.3.17MITMITYes
@angular/compiler-cli^17.3.0MITMITYes
@axe-core/playwright4.8.4MPL-2.0MPL-2.0Yes
@playwright/test^1.47.2Apache-2.0Apache-2.0Yes
@storybook/angular8.1.0MITMITYes
@storybook/addon-*8.1.0MITMITYes
jasmine-core~5.1.0MITMITYes
karma~6.4.0MITMITYes
karma-chrome-launcher~3.2.0MITMITYes
karma-coverage~2.2.0MITMITYes
karma-jasmine~5.1.0MITMITYes
storybook^8.1.0MITMITYes
typescript~5.4.2Apache-2.0Apache-2.0Yes

4.3 DevPortal (Astro) Dependencies

PackageVersionLicenseSPDXCompatible
astro5.16.0MITMITYes
@astrojs/mdx4.3.12MITMITYes
@astrojs/starlight0.36.2MITMITYes
rapidoc9.3.8MITMITYes
linkinator6.1.2Apache-2.0Apache-2.0Yes

5. Infrastructure Dependencies

Components required for deployment but not bundled with StellaOps source.

ComponentVersionLicenseSPDXDistributionNotes
PostgreSQL≥16PostgreSQLPostgreSQLSeparateRequired database
RabbitMQ≥3.12MPL-2.0MPL-2.0SeparateOptional message broker
OpenBao2.4.1 (dev/test default tag)MPL-2.0MPL-2.0NOT distributed — dev/test tooling only (external image openbao/openbao, pulled at dev/test time)DEV/TEST-ONLY secret broker (Linux Foundation; community fork of HashiCorp Vault). The opt-in openbao compose profile (devops/compose/docker-compose.openbao.yml) runs an ephemeral OpenBao for local development and automated tests; it is never part of a release bundle and is not a supported production backend (operator decision 2026-07-04 — Option A of the OpenBao positioning memo; ADR-031 §D5 as amended). The supported external secret backend is an operator-run HashiCorp Vault (or an operator-run OpenBao). API-compatible with Vault (KV v2 + token/login), so Stella Ops reuses the existing Vault HTTP client — no new NuGet dependency, no source vendoring, no redistribution. Because Stella Ops does not distribute the image, MPL-2.0 distribution obligations do not attach; the former courtesy license copy third-party-licenses/OpenBao-MPL-2.0.txt was removed with this decision (component not redistributed, and the copy’s provenance was non-canonical). Upstream: https://openbao.org / https://github.com/openbao/openbao.
Valkey≥7.2BSD-3-ClauseBSD-3-ClauseSeparateOptional cache (Redis fork) for StellaOps and Rekor
Rekor v2 (rekor-tiles)v2 (tiles)Apache-2.0Apache-2.0SeparateOptional transparency log (POSIX tiles backend)
Docker≥24Apache-2.0Apache-2.0Tooling / bundled image packageContainer runtime and CLI tooling for deployment execution and the standalone agent-core image
Docker Compose2.40.3Apache-2.0Apache-2.0Tooling / bundled image packageCLI plugin used by the local agent-target deployment lab and bundled in the standalone agent-core image for ComposeHost execution
Docker Buildx0.30.x (Ubuntu noble universe docker-buildx package)Apache-2.0Apache-2.0Tooling / bundled image packageDocker CLI plugin bundled in the standalone agent-core image for the built-in build.docker execution plugin (Sprint 20260529.066 S066-001). Upstream: https://github.com/docker/buildx.
Anchore Grypelatest resolved at benchmark runtimeApache-2.0Apache-2.0External benchmark image (anchore/grype)Optional Stella/Trivy/Grype benchmark scanner used by tools/benchmarks/stella-vs-trivy; pulled and resolved at run time, not vendored or redistributed in the Stella Ops source tree. Upstream: https://github.com/anchore/grype.
ansible-coredistro packageGPLv3GPL-3.0-or-laterTooling / bundled image packageRuntime package in the standalone agent-core image for deploy.ansible. Stella Ops’ wrapper plugin remains BUSL-1.1 and invokes ansible-playbook as a separate process; no Ansible code is vendored, linked, patched, or derived. Redistributors of agent images containing ansible-core must satisfy GPLv3 obligations for that package.
rsyncdistro packageGPLv3 with OpenSSL/xxhash dynamic-linking exceptionGPL-3.0-or-laterTooling / bundled image packageRuntime package in the standalone agent-core image for Ansible synchronize tasks in operator-owned playbooks, including playbook-fidelity acceptance. Stella Ops invokes rsync as separate runtime tooling and does not vendor, link, patch, or derive from rsync code. Redistributors of agent images containing rsync must satisfy GPLv3 obligations for that package.
Alpine/OpenSSL QA fixture imagelatestMixed package licenses-External imageLinux deployment E2E fixture pulled from the configured registry source; not distributed
Local RFC 3161 TSA image (OpenSSL ts)OpenSSL 3.x on Alpine baseApache-2.0 (OpenSSL 3.x)Apache-2.0Bundled image (built in-repo)Self-hosted, air-gapped Timestamp Authority for EvidenceLocker bundle sealing (ADR-036 / SPRINT_20260704_009 SER-1). Image is built in-repo from an OpenSSL base using the openssl ts timestamping facility + a minimal HTTP handler — no unvetted third-party TSA binary is vendored. OpenSSL 3.x is Apache-2.0 (permissive, BUSL-1.1 compatible). No cloud/managed TSA is used (offline-first invariant). Upstream: https://www.openssl.org.
Microsoft Windows Nano Server imageltsc2022Microsoft container image termsLicenseRef-Microsoft-ContainerExternal imageWindows deployment E2E fixture pulled from MCR; not distributed
NGINX1.27-alpineBSD-2-ClauseBSD-2-ClauseSeparateOptional local QA fixture image for Harbor and GitHub App onboarding success-path checks
OCI Registry-Varies-ExternalHarbor (Apache-2.0), Docker Hub, etc.
CNCF Distribution registry (registry:2)2.8.xApache-2.0Apache-2.0External image (docker.io/library/registry)OCI Distribution registry. Used as (a) hosted test registries (devops/compose/docker-compose.integrations.yml, docker-compose.testing.yml, StellaOps.Infrastructure.Registry.Testing) and (b) a CI Docker Hub pull-through cache in proxy mode (devops/ci-local/docker-compose.registry-cache.yml). Pulled at deploy/test time; not bundled or redistributed by Stella Ops. Upstream: https://github.com/distribution/distribution
Kubernetes≥1.28Apache-2.0Apache-2.0OrchestrationOptional
all-MiniLM-L6-v2 embedding model-Apache-2.0Apache-2.0Optional runtime assetLocal semantic embedding model for AdvisoryAI (VectorEncoderType=onnx)
Cilium Tetragon (vendored as stellaops/tetragon)v1.4.0Apache-2.0Apache-2.0Vendored OCI image at lab registryOptional Linux eBPF sensor input (Sprint 20260513_022). Upstream quay.io/cilium/tetragon@sha256:500eca691c0be96dc7943c2da43d9d3ea1fdcaabfa0406a63742914d3c438123; Stella sha256:5e1e9017ab5927e513bead1ede1861cef2c19b7144162422a8ea894b4c4b1b0b. LICENSE at third-party-licenses/tetragon-apache-2.0.txt (sha256 f096c31ac0fb2e66df5b7ec20049741ae15accd50c8cd4d100b4db6c9353f6aa) — vendored 2026-05-13 from https://raw.githubusercontent.com/cilium/tetragon/v1.4.0/LICENSE per CLAUDE.md §2.8(2) user-initiated authorization. Wrapper Dockerfile at devops/airgap/tetragon/Dockerfile.
MailpitlatestMITMITSeparate dev-only imageDeveloper SMTP catch-all + web UI for Notify email channels (devops/compose/docker-compose.dev.yml). NOT shipped or recommended for production — production uses customer-supplied SMTP relay. Source: https://github.com/axllent/mailpit
Grafana OSS10.4.2AGPL-3.0-onlyAGPL-3.0-onlySeparate external image (grafana/grafana-oss:10.4.2)Optional observability dashboards (weighted-canary board devops/observability/grafana/canary.json, wired in devops/compose/docker-compose.telemetry.yml). Runs as a separate, unmodified service container reached over HTTP — see the AGPL aggregation analysis in §5.1 below. Stella Ops does not bundle, statically/dynamically link, or distribute a modified Grafana; the image is pulled at deploy time from docker.io/grafana. Sibling Grafana-Labs tools already in the stack (Loki, Tempo, Promtail) are AGPL-3.0 likewise and covered by the same analysis.

5.1 AGPL-3.0 components and the “separate service / mere aggregation” determination

Grafana OSS (and the sibling Grafana-Labs agents Loki, Tempo, and Promtail) are licensed AGPL-3.0, which appears in the blocked_licenses allowlist in §8.4. That blocklist governs code that is linked into, derived from, or distributed as part of the Stella Ops product (BUSL-1.1). It does not govern an unmodified upstream service that Stella Ops merely deploys alongside and talks to over a network boundary.

Deployment model (the only way these components are used):

Conclusion: under the AGPL-3.0 §0/§13 definitions, this is aggregation of separate programs, not the creation of a “covered work” or a “modified version.” AGPL-3.0’s network-use copyleft (§13) attaches to modifying the AGPL program and making the modified version available to network users; neither occurs here. Therefore Grafana OSS as deployed is compatible with BUSL-1.1 distribution of Stella Ops under the mere-aggregation/separate-service posture. This determination is scoped to the unmodified-separate-container deployment model only. If Stella Ops ever (a) forks/patches Grafana, (b) embeds Grafana code, or © redistributes a Grafana image as part of a Stella Ops artifact, this determination is void and the §8.4 block re-applies — open a new legal review before doing any of those.


6. Regional/Optional Components

Components with special licensing or distribution considerations.

6.1 Russian Federation (RootPack_RU)

ComponentLicenseDistributionNotes
AlexMAS.GostCryptographyMITVendored sourceGOST algorithm implementation
CryptoPro CSPCommercialCustomer-providedPKCS#11 interface only
CryptoPro wrapperBUSL-1.1StellaOps codeIntegration bindings

6.2 China (RootPack_CN) - Planned

ComponentLicenseDistributionNotes
SM2/SM3 verificationMITNuGet (BouncyCastle.Cryptography 2.6.2)Chinese national standards; software SM provider gated by SM_SOFT_ALLOWED
HSM integrationCommercialCustomer-providedPKCS#11 interface only

6.3 eIDAS (EU Qualified Signatures)

ComponentLicenseDistributionNotes
BouncyCastleMITNuGeteIDAS-compatible algorithms
HSM integrationCommercialCustomer-providedPKCS#11/CKM interface

7. Known Restrictions & Requirements

7.0 EU Regulatory Schema And Taxonomy Assets

Sprint SPRINT_20260430_204_DOCS_eu_schema_taxonomy_assets.md added a local manifest at docs/contracts/schemas/eu/eu-schema-taxonomy-assets-v1.yaml. Approved local schema packages are recorded here; remaining unapproved external schema or taxonomy bodies stay blocked.

Asset familyLocal statusLicense/intake note
OASIS CSAF 2.0 schema set plus FIRST CVSS transitive refsPresentLocal copies are vendored under docs/contracts/schemas/eu/csaf/2.0/; hashes are recorded in the schema inventory and notices are preserved in /NOTICE.md plus /third-party-licenses/.
EBA DORA RoI taxonomy package taxo_package_4.0_errata5.zipPresentVendored verbatim under docs/contracts/schemas/eu/dora/roi/eba-reporting-framework-4.0/taxo_package_4.0_errata5/; outer SHA-256 sha256:2cf8a0fe…e2fb recorded in the schema inventory; approved-with-notice (counsel Path A, RoI only). Third-party-component scan GATE PASS (2026-05-30): EBA-only content, no third-party redistribution. Notices in /NOTICE.md + /third-party-licenses/.
EBA DORA incident taxonomy packageABANDONED-wrong-asset for Framework 4.3; no correct package vendoredDo not vendor Framework 4.3 for DORA incident reporting. If a correct DORA-IR machine-validation package appears, open a new REG record and follow docs/compliance/packs/dora/incident-taxonomy-completion-procedure.md.
ISO/IEC and IEC standards mapping sourcesMetadata onlyLicensed standard text is not vendored. IEC 62443 requirement-level claims remain blocked until licensed local review.

7.1 Commercial Components (Not Distributed)

ComponentVendorRequirement
CryptoPro CSPCryptoPro LLCCustomer must obtain license from crypto-pro.ru
Hardware Security ModulesVariousCustomer-provided with PKCS#11 drivers

7.2 Export Control Considerations

AlgorithmRegulationNotes
GOST R 34.10-2012Russian nationalRecommended for RootPack_RU only
SM2/SM3/SM4Chinese nationalRecommended for RootPack_CN only
Standard (ECDSA/RSA/EdDSA)Mass-market exemptNo restrictions

See docs/legal/crypto-compliance-review.md for detailed export control analysis.

7.3 Attribution Requirements

The following licenses require attribution in distributed software:

All required attributions are maintained in /NOTICE.md.

7.4 Third-Party Vulnerability Data In Produced Artifacts (compact vuln-db)

The compact vulnerability database artifacts produced by the single Concelier exporter (export:vuln-db-compact server job / stella vuln-db export CLI delegate) are composite third-party data artifacts, not BUSL-1.1-licensed software (SPRINT_20260703_006 EXPORT-E2/E3; counsel directive docs/legal/decisions/compact-vulndb-license-segregation-counsel-thread-reply.md, 2026-07-04):

ArtifactLicense postureContent
vuln-db.sqliteLicenseRef-StellaOps-Composite-Data-Notice (provisional — final LicenseRef pending legal-docs decision)BUSL-distribution-clean core: records only from sources whose license_class is public-domain / permissive / government-open / Stella-owned with license known and prose / database-right risks cleared. Facts-only projections from cleared share-alike sources strip prose (titles) at export.
vuln-db-sharealike.sqliteCC-BY-SA-4.0Share-alike layer (currently: Ubuntu Security Notices, © Canonical Ltd.) with per-record attribution rows (record_attribution).
vuln-db.manifest.json / vuln-db-sharealike.manifest.jsonSidecar metadataCapability + license map (has_epss/has_kev/has_reachability_sinks/sink_langs, corpus digest, per-source rights fields, record counts). Mirrored inside each sqlite as export_manifest / license_sources / license_notices tables.

Enforcement is the data-driven license gate (CompactVulnDbLicenseGate + CompactVulnDbLicenseMatrix, src/Concelier/__Libraries/StellaOps.Concelier.Exporter.VulnDbCompact/); the export fails on: unknown license routed to core, share-alike prose in core, substantial share-alike database extraction in core, NC/ND/no-redistribution content in any public artifact, missing attribution for redistributable CC content, or an encountered source with no configured routing. Unknown-licensed sources (including, pending EXPORT-E4 evidence: FIRST EPSS, CISA KEV, vuln.go.dev, RustSec) are excluded from every public artifact by default.

Notices: third-party-licenses/DATA-NOTICES.md (per-source data notices) and third-party-licenses/CC-BY-SA-4.0.txt (license text — placeholder until the exact legalcode is vendored; the companion artifact must not ship before that).


8. Automation & Verification

8.1 Generating Updated Dependency Lists

# NuGet dependencies
dotnet list src/<Project>/<Project>.csproj package --include-transitive

# npm dependencies (with licenses)
cd src/Web/StellaOps.Web && npx license-checker --json --production

# Full SBOM with license info
dotnet run --project src/Scanner/StellaOps.Scanner.Cli -- sbom generate \
  --format cyclonedx-1.6 \
  --include-licenses \
  --output stellaops-sbom.json

8.2 CI License Audit

See .gitea/workflows/license-audit.yml for automated license validation.

8.3 Allowed Licenses (Allowlist)

# SPDX identifiers permitted in StellaOps
allowed_licenses:
  # Permissive licenses (fully compatible)
  - MIT
  - Apache-2.0
  - BSD-2-Clause
  - BSD-3-Clause
  - ISC
  - 0BSD
  - PostgreSQL
  - Zlib
  - BlueOak-1.0.0
  - Python-2.0
  - CC0-1.0
  - Unlicense

  # Weak copyleft (compatible with conditions)
  - MPL-2.0            # File-level copyleft
  - LGPL-2.1-or-later  # Library linking allowed
  - LGPL-3.0-or-later  # Library linking allowed

  # Data/documentation licenses (for non-code assets)
  - CC-BY-3.0          # Attribution license (data only)
  - CC-BY-4.0          # Attribution license (data only)
  - LicenseRef-OASIS-Specification-Notice # Specification/schema assets only

8.4 Blocked Licenses

These licenses are NOT compatible with BUSL-1.1 when the component is linked into, derived from, or distributed as part of a StellaOps artifact:

blocked_licenses:
  - GPL-2.0-only
  - GPL-2.0-or-later
  - GPL-3.0-only
  - GPL-3.0-or-later
  - AGPL-3.0-only       # see §8.4.2 separate-service exception (Grafana/Loki/Tempo)
  - AGPL-3.0-or-later   # see §8.4.2 separate-service exception
  - SSPL-1.0           # Server Side Public License - additional network restrictions
  - BUSL-1.1           # Business Source License - time-delayed commercial restrictions
  - Elastic-2.0        # Similar restrictions to SSPL
  - Commons-Clause     # Commercial use restrictions addon
  - LicenseRef-Proprietary
  - UNLICENSED

8.4.1 GPLv3 separate-process runtime tooling

The GPL block governs linked libraries, vendored code, patches, and derivative works. The deploy.ansible wrapper uses ansible-core only as runtime tooling by launching ansible-playbook as a separate process from the target-agent image. Operator-owned playbooks, including playbook-fidelity acceptance, may also invoke rsync through Ansible synchronize tasks. Stella Ops does not link against Ansible or rsync libraries, vendor their source, or modify their code. The BUSL-1.1 wrapper and the GPLv3 Ansible/rsync processes remain separate programs connected by the command-line interface. This determination is scoped to the unmodified separate-process model; any vendoring, patching, embedding, or library-linking use requires a new legal review and re-applies the blocked-license rule.

8.4.2 Separate-service / mere-aggregation exception

The block above governs bundling, linking, and derivative distribution. It does not govern an unmodified upstream service deployed in its own container and reached only over a network boundary (mere aggregation). AGPL-3.0 components used strictly under that model are permitted; the binding analysis, scope, and revocation conditions are in §5.1. Currently approved under this exception: Grafana OSS (and the sibling AGPL Grafana-Labs agents Loki, Tempo, Promtail) — separate containers, unmodified images, HTTP-only integration, not redistributed by Stella Ops. Any fork/patch/embed/redistribute of these components voids the exception and re-applies the block.

8.5 Conditional Licenses (Dev Dependencies Only)

The following licenses are used only in development dependencies and are not shipped to production:

PackageLicenseUsageNotes
@img/sharp-libvips-*LGPL-3.0-or-laterDevPortal build (Astro image optimization)Not in production bundle
axe-coreMPL-2.0Accessibility testingDev/test only
spdx-exceptionsCC-BY-3.0License data fileData, not code

9. Document Maintenance

ActionTriggerOwner
Update NuGet depsMajor version bumpEngineering
Update npm depsMajor version bumpFrontend team
Review new packagesPR review checklistSecurity Guild
Annual auditJanuary each yearLegal + Security

10. References


Document maintained by: Security Guild Last full audit: 2026-01-20