Configuration#
The plugin registers one structured setting for operational inputs and one flat boolean for opt-in package verification:
plugins:
conda_sigstore:
max_sidecar_bytes: 10485760
trust_config: null
conda_sigstore_enforce: false
Omitting either setting uses the values shown above. With enforcement false, the package-verifier hook yields no verifier and package operations are unchanged.
Operational settings#
Field |
Type |
Default |
Meaning |
|---|---|---|---|
|
positive integer |
|
Maximum bundle or sidecar bytes read before parsing |
|
local path or |
|
Complete Sigstore client trust configuration used for signing and verification |
Unknown fields are rejected. A configured trust_config path is expanded from
~ and must identify an existing regular file. The file is read with a 1 MiB
limit before JSON parsing.
Source auditing also enforces fixed archive, YAML, and declaration limits. See Source-audit limits for their values and result statuses.
trust_config file contract#
trust_config must contain the complete JSON object accepted by
sigstore.models.ClientTrustConfig.from_json() in the supported
sigstore-python 4.x series. A TrustedRoot object by itself is not a valid
value.
The required top-level shape is:
{
"mediaType": "application/vnd.dev.sigstore.clienttrustconfig.v0.1+json",
"trustedRoot": {
"mediaType": "application/vnd.dev.sigstore.trustedroot+json;version=0.1",
"tlogs": [],
"certificateAuthorities": [],
"ctlogs": [],
"timestampAuthorities": []
},
"signingConfig": {
"mediaType": "application/vnd.dev.sigstore.signingconfig.v0.1+json",
"caUrls": [],
"oidcUrls": [],
"rekorTlogUrls": [],
"rekorTlogConfig": null,
"tsaUrls": [],
"tsaConfig": null
}
}
This example shows the fields, not a usable trust configuration. The arrays must contain the keys, certificates, validity intervals, operators, and service endpoints for the Sigstore instance. Binary keys and certificates use the base64 encoding defined by the Sigstore protobuf JSON mapping.
Top-level field |
Required value |
|---|---|
|
Exactly |
|
A Sigstore |
|
A Sigstore |
The nested TrustedRoot, SigningConfig, certificate, public-key, service,
and validity structures are defined by the
Sigstore trust-root protobuf.
The parser rejects unknown fields and unsupported media types.
Verification reads trustedRoot. conda sigstore attest also reads
signingConfig to obtain OIDC, Fulcio, Rekor, and timestamp service
configuration. This is why the setting requires the complete client trust
configuration even when an operator only plans to verify locally.
With trust_config: null, the plugin obtains Sigstore’s production client
trust configuration. Verification honors conda’s offline setting and uses the
local Sigstore TUF cache when offline. A configured file is read directly and
is not updated through TUF by this plugin.
Parsing a local file proves only that it has the expected structure. Operators are responsible for authenticated provisioning, freshness, rotation, rollback protection, and incident response for custom trust material.
Install-enforcement setting#
Setting |
Type |
Default |
Meaning |
|---|---|---|---|
|
boolean |
|
Require valid CEP 27 evidence before package extraction |
Conda accepts its standard environment-variable override:
CONDA_PLUGINS_CONDA_SIGSTORE_ENFORCE=true conda install PACKAGE
The hook is registered against the unreleased API in conda/conda#16518. See Upstream integration contracts for its inputs, evidence selection, and rejection behavior.