9.1 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	Export Center Profiles
Export Center profiles define what data is collected, how it is encoded, and which distribution paths are enabled for a run. Profiles are tenant-scoped and deterministic: identical selectors and source data produce identical bundles. This guide summarises built-in profiles, configuration fields, schema conventions, and compatibility notes.
Profile catalogue
| Profile | Kind / Variant | Output artefacts | Primary use cases | 
|---|---|---|---|
json:raw | 
json / raw | 
Canonical JSONL archives of advisories, VEX, SBOMs | Evidence escrow, analytics pipelines | 
json:policy | 
json / policy | 
json:raw artefacts plus policy snapshot + evaluated findings | 
Audit, compliance attestations | 
trivy:db | 
trivy / db | 
Trivy-compatible vulnerability database | Feeding external scanners / CI | 
trivy:java-db | 
trivy / java-db | 
Java ecosystem supplement for Trivy | Supply Java CVE data to Trivy | 
mirror:full | 
mirror / full | 
Complete mirror bundle (raw, policy, indexes, provenance) | Air-gap deployments, disaster recovery | 
mirror:delta | 
mirror / delta | 
Incremental changes relative to a prior manifest | Efficient mirror updates | 
Profiles can be cloned and customised; configuration is immutable per revision to keep runs reproducible.
Common configuration fields
| Field | Description | Applies to | Notes | 
|---|---|---|---|
name | 
Human-readable identifier displayed in Console/CLI | All | Unique per tenant. | 
kind | 
Logical family (json, trivy, mirror) | 
All | Determines eligible adapters. | 
variant | 
Specific export flavour (see table above) | All | Controls adapter behaviour. | 
include | 
Record types to include (advisories, vex, sboms, findings) | 
JSON, mirror | Defaults depend on variant. | 
policySnapshotMode | 
required, optional, or none | 
JSON policy, mirror | required forces a policy snapshot id when creating runs. | 
distribution | 
Enabled distribution drivers (http, oci, object) | 
All | Offline installs typically disable oci. | 
compression | 
Compression settings (zstd, level) | 
JSON, mirror | Trivy adapters manage compression internally. | 
encryption | 
Mirror encryption options (enabled, recipientKeys, strict) | 
Mirror | When enabled, only /data subtree is encrypted; manifests remain plaintext. | 
retention | 
Retention policy (days or never) | 
All | Drives pruning jobs for staged bundles. | 
Selectors (time windows, tenants, products, SBOM subjects, ecosystems) are supplied per run, not stored in the profile.
JSON profiles
json:raw
- Content: Exports raw advisories, VEX statements, and SBOMs as newline-delimited JSON (
.jsonl.zst). - Schema: Follows canonical StellaOps schema with casing and timestamps normalised. Each record includes 
tenant,source,linkset, andcontentfields. - Options:
includedefaults to["advisories", "vex", "sboms"].compressiondefaults tozstdlevel 9.maxRecordsPerFile(optional) splits outputs for large datasets.
 - Compatibility: Intended for analytics platforms, data escrow, or feeding downstream normalisation pipelines.
 - Sample manifest excerpt:
 
{
  "profile": { "kind": "json", "variant": "raw" },
  "outputs": [
    { "type": "advisories.jsonl.zst", "sha256": "...", "count": 15234 },
    { "type": "vex.jsonl.zst", "sha256": "...", "count": 3045 },
    { "type": "sboms.jsonl.zst", "sha256": "...", "count": 872 }
  ],
  "selectors": { "tenant": "acme", "products": ["registry.example/app"] }
}
json:policy
- Content: Everything from 
json:rawplus:policy_snapshot.json(policy metadata, version, hash).findings.policy.jsonl.zst(evaluated findings with decision, rationale, rule id, inputs hash).
 - Determinism: Requires a policy snapshot id; runs fail if snapshot is missing or non-deterministic mode is active.
 - Use cases: Compliance exports, auditor packages, policy attestation archives.
 - Guardrails: AOC boundaries preserved: policy outputs are clearly partitioned from raw evidence.
 
Trivy profiles
trivy:db
- Detailed adapter behaviour is documented in 
docs/modules/export-center/trivy-adapter.md. - Content: Produces a Trivy DB-compatible bundle (SQLite database or tarball as required by Trivy version).
 - Mapping rules:
- Advisory namespaces mapped to Trivy vendor IDs (e.g., 
ubuntu,debian,npm). - Version ranges translated into Trivy's semantic version syntax.
 - Severity mapped to Trivy standard (
UNKNOWN,LOW,MEDIUM,HIGH,CRITICAL). 
 - Advisory namespaces mapped to Trivy vendor IDs (e.g., 
 - Validation: Adapter enforces supported Trivy schema versions; configuration includes 
targetSchemaVersion. - Distribution: Typically pushed to OCI or object storage for downstream scanners; Console download remains available.
 
trivy:java-db
- Refer to 
docs/modules/export-center/trivy-adapter.mdfor ecosystem-specific notes. - Content: Optional Java ecosystem supplement for Trivy (matching Trivy's separate Java DB).
 - Dependencies: Requires Java advisories in Findings Ledger; run fails with 
ERR_EXPORT_EMPTYif no Java data present andallowEmpty=false. - Compatibility: Intended for organisations using Trivy's Java plugin or hardened pipelines that split general and Java feeds.
 
Mirror profiles
mirror:full
- Bundle structure and delta strategy are covered in 
docs/modules/export-center/mirror-bundles.md. - Content: Complete export with:
- Raw advisories, VEX, SBOMs (
/data/raw). - Policy overlays (
/data/policy), including evaluated findings and policy snapshots. - Indexes for fast lookup (
/indexes/advisories.pb,/indexes/sboms.pb). - Manifests and provenance (
/manifests/export.json,/manifests/provenance.json). 
 - Raw advisories, VEX, SBOMs (
 - Layout: Deterministic directory structure with hashed filenames to reduce duplication.
 - Encryption: Optional 
encryptionblock enables age/AES-GCM encryption of/data.strict=trueencrypts everything exceptexport.json. - Use cases: Air-gap replication, disaster recovery drills, Offline Kit seeding.
 
mirror:delta
- See 
docs/modules/export-center/mirror-bundles.mdfor delta mechanics and application order. - Content: Includes only changes relative to a base manifest (specified by 
baseExportIdwhen running).changed,added,removedlists inmanifests/delta.json.- Incremental indexes capturing only updated subjects.
 
 - Constraints: Requires the base manifest to exist in object storage or artifact registry accessible to the worker. Fails with 
ERR_EXPORT_BASE_MISSINGotherwise. - Workflow: Ideal for frequent updates to mirrored environments with limited bandwidth.
 
Compatibility and guardrails
- Aggregation-Only Contract: All profiles respect AOC boundaries: raw evidence is never mutated. Policy outputs are appended separately with clear provenance.
 - Tenant scoping: Profiles are tenant-specific. Cross-tenant exports require explicit administrative approval and signed justification.
 - Retriable runs: Re-running a profile with identical selectors yields matching manifests and hashes, facilitating verify-on-download workflows.
 - Offline operation: JSON and mirror profiles function in offline mode without additional configuration. Trivy profiles require pre-seeded schema metadata shipped via Offline Kit.
 - Quota integration: Profiles can define run quotas (per tenant per day). Quota exhaustion surfaces as 
429 Too Many RequestswithX-Stella-Quota-*hints. 
Example profile definition (CLI)
{
  "name": "daily-json-raw",
  "kind": "json",
  "variant": "raw",
  "include": ["advisories", "vex", "sboms"],
  "distribution": ["http", "object"],
  "compression": { "codec": "zstd", "level": 9 },
  "retention": { "mode": "days", "value": 14 }
}
Create via stella export profile create --file profile.json (CLI command documented separately).
Verification workflow
- Download bundle via Console/CLI and extract 
export.jsonandprovenance.json. - Run 
cosign verify --key <tenant-key> export.json(for detatched signatures use--signature export.json.sig). - Validate Trivy bundles with 
trivy --cache-dir <temp> --debug --db-repository <oci-ref>or localtrivy module db import. - For mirror bundles, run internal 
mirror verifyscript (bundled in Offline Kit) to ensure directory layout and digests match manifest. 
Extending profiles
- Use API/CLI to clone an existing profile and adjust 
include,distribution, or retention policies. - Adapter plug-ins can introduce new variants (e.g., 
json:raw-lite,mirror:policy-only). Plug-ins must be registered at service restart and documented under/docs/modules/export-center/profiles.md. - Any new profile must append the imposed rule line and follow determinism and guardrail requirements.
 
Imposed rule: Work of this type or tasks of this type on this component must also be applied everywhere else it should be applied.