2026-08-14T03:18:33.321516Z INFO vector::app: Log level is enabled. level="info" 2026-08-14T03:18:33.321935Z INFO vector::app: Loading configs. paths=["/etc/vector"] 2026-08-14T03:18:33.324481Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}: vector::sources::kubernetes_logs: Obtained Kubernetes Node name to collect logs for (self). self_node_name="ip-10-0-174-130.ec2.internal" 2026-08-14T03:18:33.331079Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}: vector::sources::kubernetes_logs: Including matching files. ret=["**/*"] 2026-08-14T03:18:33.331092Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}: vector::sources::kubernetes_logs: Excluding matching files. ret=["**/*.gz", "**/*.tmp"] 2026-08-14T03:18:33.333144Z INFO vector::topology::running: Running healthchecks. 2026-08-14T03:18:33.333204Z INFO vector: Vector has started. debug="false" version="0.45.0" arch="x86_64" revision="063cabb 2025-02-24 14:52:02.810034614" 2026-08-14T03:18:33.333211Z INFO vector::topology::builder: Healthcheck passed. 2026-08-14T03:18:33.334186Z INFO vector::internal_events::api: API server running. address=127.0.0.1:8686 playground=off graphql=http://127.0.0.1:8686/graphql 2026-08-14T03:18:33.334207Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: file_source::checkpointer: Attempting to read legacy checkpoint files. 2026-08-14T04:35:03.334150Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Found new file to watch. file=/var/log/pods/chains-e2e-ozqz_buildah-demo-ovgjnrasyp-init-pod_8c633da0-ed9c-47b9-a787-f005a7468f37/prepare/0.log 2026/08/14 04:35:03 Entrypoint initialization 2026-08-14T04:35:15.635131Z WARN source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Currently ignoring file too small to fingerprint. file=/var/log/pods/chains-e2e-ozqz_buildah-demo-ovgjnrasyp-init-pod_8c633da0-ed9c-47b9-a787-f005a7468f37/step-init/0.log 2026-08-14T04:35:17.684380Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Found new file to watch. file=/var/log/pods/chains-e2e-ozqz_buildah-demo-ovgjnrasyp-init-pod_8c633da0-ed9c-47b9-a787-f005a7468f37/step-init/0.log time="2026-08-14T04:35:17Z" level=info msg="[param] enable: false" time="2026-08-14T04:35:17Z" level=info msg="[param] default-http-proxy: squid.caching.svc.cluster.local:3128" time="2026-08-14T04:35:17Z" level=info msg="[param] default-no-proxy: brew.registry.redhat.io,docker.io,gcr.io,ghcr.io,images.paas.redhat.com,mirror.gcr.io,nvcr.io,quay.io,registry-proxy.engineering.redhat.com,registry.access.redhat.com,registry.ci.openshift.org,registry.fedoraproject.org,registry.redhat.io,registry.stage.redhat.io,vault.habana.ai" time="2026-08-14T04:35:17Z" level=info msg="[param] http-proxy-result-path: /tekton/results/http-proxy" time="2026-08-14T04:35:17Z" level=info msg="[param] no-proxy-result-path: /tekton/results/no-proxy" time="2026-08-14T04:35:17Z" level=info msg="Using in-cluster config" logger=KubeClient time="2026-08-14T04:35:17Z" level=info msg="Cache proxy is disabled via param" time="2026-08-14T04:35:17Z" level=info msg="[result] HTTP PROXY: " time="2026-08-14T04:35:17Z" level=info msg="[result] NO PROXY: " 2026-08-14T04:38:07.778449Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Found new file to watch. file=/var/log/pods/chains-e2e-ozqz_buildah-demo-ovgjnrasyp-build-image-index-pod_1d6191d6-e24e-4677-b162-e2a0e6b1dbe4/place-scripts/0.log 2026-08-14T04:38:07.778492Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Found new file to watch. file=/var/log/pods/chains-e2e-ozqz_buildah-demo-ovgjnrasyp-build-image-index-pod_1d6191d6-e24e-4677-b162-e2a0e6b1dbe4/prepare/0.log 2026-08-14T04:38:09.834151Z WARN source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Currently ignoring file too small to fingerprint. file=/var/log/pods/chains-e2e-ozqz_buildah-demo-ovgjnrasyp-build-image-index-pod_1d6191d6-e24e-4677-b162-e2a0e6b1dbe4/step-build/0.log 2026/08/14 04:38:06 Entrypoint initialization 2026/08/14 04:38:07 Decoded script /tekton/scripts/script-0-9jkgj 2026/08/14 04:38:07 Decoded script /tekton/scripts/script-1-r927m 2026/08/14 04:38:07 Decoded script /tekton/scripts/script-2-gtq5j 2026-08-14T04:38:18.030486Z WARN source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Currently ignoring file too small to fingerprint. file=/var/log/pods/chains-e2e-ozqz_buildah-demo-ovgjnrasyp-build-image-index-pod_1d6191d6-e24e-4677-b162-e2a0e6b1dbe4/step-create-sbom/0.log 2026-08-14T04:38:30.326932Z WARN source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Currently ignoring file too small to fingerprint. file=/var/log/pods/chains-e2e-ozqz_buildah-demo-ovgjnrasyp-build-image-index-pod_1d6191d6-e24e-4677-b162-e2a0e6b1dbe4/step-upload-sbom/0.log 2026-08-14T04:38:32.376973Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Found new file to watch. file=/var/log/pods/chains-e2e-ozqz_buildah-demo-ovgjnrasyp-build-image-index-pod_1d6191d6-e24e-4677-b162-e2a0e6b1dbe4/step-build/0.log 2026-08-14T04:38:33.928866Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Found new file to watch. file=/var/log/pods/chains-e2e-ozqz_buildah-demo-ovgjnrasyp-build-image-index-pod_1d6191d6-e24e-4677-b162-e2a0e6b1dbe4/step-create-sbom/0.log 2026-08-14T04:38:34.447038Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Found new file to watch. file=/var/log/pods/chains-e2e-ozqz_buildah-demo-ovgjnrasyp-build-image-index-pod_1d6191d6-e24e-4677-b162-e2a0e6b1dbe4/step-upload-sbom/0.log [2026-08-14T04:38:31,216474717+00:00] Update CA trust INFO: Using mounted CA bundle: /mnt/trusted-ca/ca-bundle.crt '/mnt/trusted-ca/ca-bundle.crt' -> '/etc/pki/ca-trust/source/anchors/ca-bundle.crt' Running konflux-build-cli time="2026-08-14T04:38:33Z" level=info msg="[param] image: quay.io/redhat-appstudio-qe/test-images:buildah-demo-ovgjnrasyp" time="2026-08-14T04:38:33Z" level=info msg="[param] images: [quay.io/redhat-appstudio-qe/test-images:buildah-demo-ovgjnrasyp@sha256:c4c35543d656cce81c876d02702141ec755f1111253dc89b07a09b08e8cb005b]" time="2026-08-14T04:38:33Z" level=info msg="[param] buildah-format: docker" time="2026-08-14T04:38:33Z" level=info msg="[param] always-build-index: false" time="2026-08-14T04:38:33Z" level=info msg="[param] additional-tags: [buildah-demo-ovgjnrasyp-build-image-index]" time="2026-08-14T04:38:33Z" level=info msg="[param] output-manifest-path: /index-build-data/manifest_data.json" time="2026-08-14T04:38:33Z" level=info msg="[param] result-path-image-digest: /tekton/results/IMAGE_DIGEST" time="2026-08-14T04:38:33Z" level=info msg="[param] result-path-image-url: /tekton/results/IMAGE_URL" time="2026-08-14T04:38:33Z" level=info msg="[param] result-path-image-ref: /tekton/results/IMAGE_REF" time="2026-08-14T04:38:33Z" level=info msg="[param] result-path-images: /tekton/results/IMAGES" time="2026-08-14T04:38:33Z" level=info msg="Creating manifest list: quay.io/redhat-appstudio-qe/test-images:buildah-demo-ovgjnrasyp" time="2026-08-14T04:38:33Z" level=info msg="buildah [stdout] f661249d1781f8af043e2ceabed3b67854f0de6d9fc7f1fa6e9c3e79e9d3a6a0" time="2026-08-14T04:38:33Z" level=info msg="Skipping image index generation. Returning results for single image." The manifest_data.json file does not exist. Skipping the SBOM creation... [2026-08-14T04:38:34,187499930+00:00] Update CA trust INFO: Using mounted CA bundle: /mnt/trusted-ca/ca-bundle.crt '/mnt/trusted-ca/ca-bundle.crt' -> '/etc/pki/ca-trust/source/anchors/ca-bundle.crt' The index.spdx.json file does not exists. Skipping the SBOM upload... {"image_digest":"sha256:c4c35543d656cce81c876d02702141ec755f1111253dc89b07a09b08e8cb005b","image_url":"quay.io/redhat-appstudio-qe/test-images:buildah-demo-ovgjnrasyp","image_ref":"quay.io/redhat-appstudio-qe/test-images@sha256:c4c35543d656cce81c876d02702141ec755f1111253dc89b07a09b08e8cb005b","images":"quay.io/redhat-appstudio-qe/test-images@sha256:c4c35543d656cce81c876d02702141ec755f1111253dc89b07a09b08e8cb005b"} 2026-08-14T04:39:50.286216Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Found new file to watch. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-322e7886fbb1a043f198e4cdd747179a-pod_f41675f4-5609-4a6b-bb2a-0ba3b2dbf9f5/place-scripts/0.log 2026-08-14T04:39:50.286260Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Found new file to watch. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-322e7886fbb1a043f198e4cdd747179a-pod_f41675f4-5609-4a6b-bb2a-0ba3b2dbf9f5/prepare/0.log 2026/08/14 04:39:49 Decoded script /tekton/scripts/script-2-pt6wz 2026/08/14 04:39:49 Entrypoint initialization 2026-08-14T04:39:58.492405Z WARN source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Currently ignoring file too small to fingerprint. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-322e7886fbb1a043f198e4cdd747179a-pod_f41675f4-5609-4a6b-bb2a-0ba3b2dbf9f5/step-initialize-tuf/0.log 2026-08-14T04:39:58.492440Z WARN source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Currently ignoring file too small to fingerprint. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-322e7886fbb1a043f198e4cdd747179a-pod_f41675f4-5609-4a6b-bb2a-0ba3b2dbf9f5/step-reduce/0.log 2026-08-14T04:39:58.492447Z WARN source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Currently ignoring file too small to fingerprint. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-322e7886fbb1a043f198e4cdd747179a-pod_f41675f4-5609-4a6b-bb2a-0ba3b2dbf9f5/step-validate/0.log 2026-08-14T04:40:00.541307Z WARN source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Currently ignoring file too small to fingerprint. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-322e7886fbb1a043f198e4cdd747179a-pod_f41675f4-5609-4a6b-bb2a-0ba3b2dbf9f5/step-assert/0.log 2026-08-14T04:40:00.541347Z WARN source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Currently ignoring file too small to fingerprint. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-322e7886fbb1a043f198e4cdd747179a-pod_f41675f4-5609-4a6b-bb2a-0ba3b2dbf9f5/step-detailed-report/0.log 2026-08-14T04:40:00.541363Z WARN source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Currently ignoring file too small to fingerprint. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-322e7886fbb1a043f198e4cdd747179a-pod_f41675f4-5609-4a6b-bb2a-0ba3b2dbf9f5/step-report-json/0.log 2026-08-14T04:40:00.541370Z WARN source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Currently ignoring file too small to fingerprint. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-322e7886fbb1a043f198e4cdd747179a-pod_f41675f4-5609-4a6b-bb2a-0ba3b2dbf9f5/step-show-config/0.log 2026-08-14T04:40:00.541376Z WARN source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Currently ignoring file too small to fingerprint. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-322e7886fbb1a043f198e4cdd747179a-pod_f41675f4-5609-4a6b-bb2a-0ba3b2dbf9f5/step-summary/0.log 2026-08-14T04:40:00.541387Z WARN source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Currently ignoring file too small to fingerprint. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-322e7886fbb1a043f198e4cdd747179a-pod_f41675f4-5609-4a6b-bb2a-0ba3b2dbf9f5/step-version/0.log 2026-08-14T04:40:02.590630Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Found new file to watch. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-322e7886fbb1a043f198e4cdd747179a-pod_f41675f4-5609-4a6b-bb2a-0ba3b2dbf9f5/step-initialize-tuf/0.log 2026-08-14T04:40:02.590672Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Found new file to watch. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-322e7886fbb1a043f198e4cdd747179a-pod_f41675f4-5609-4a6b-bb2a-0ba3b2dbf9f5/step-reduce/0.log Single Component mode? false { "components": [ { "name": "", "containerImage": "quay.io/redhat-appstudio-qe/test-images:buildah-demo-ovgjnrasyp@sha256:c4c35543d656cce81c876d02702141ec755f1111253dc89b07a09b08e8cb005b", "source": {} } ], "artifacts": {} } 2026/08/14 04:40:01 INFO Step was skipped due to when expressions were evaluated to false. 2026-08-14T04:40:06.698648Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Found new file to watch. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-322e7886fbb1a043f198e4cdd747179a-pod_f41675f4-5609-4a6b-bb2a-0ba3b2dbf9f5/step-report-json/0.log 2026-08-14T04:40:06.698701Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Found new file to watch. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-322e7886fbb1a043f198e4cdd747179a-pod_f41675f4-5609-4a6b-bb2a-0ba3b2dbf9f5/step-summary/0.log 2026-08-14T04:40:07.217719Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Found new file to watch. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-322e7886fbb1a043f198e4cdd747179a-pod_f41675f4-5609-4a6b-bb2a-0ba3b2dbf9f5/step-assert/0.log 2026-08-14T04:40:07.217761Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Found new file to watch. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-322e7886fbb1a043f198e4cdd747179a-pod_f41675f4-5609-4a6b-bb2a-0ba3b2dbf9f5/step-detailed-report/0.log 2026-08-14T04:40:07.218118Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Found new file to watch. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-322e7886fbb1a043f198e4cdd747179a-pod_f41675f4-5609-4a6b-bb2a-0ba3b2dbf9f5/step-show-config/0.log 2026-08-14T04:40:07.218150Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Found new file to watch. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-322e7886fbb1a043f198e4cdd747179a-pod_f41675f4-5609-4a6b-bb2a-0ba3b2dbf9f5/step-version/0.log false { "timestamp": "1786682405", "namespace": "", "successes": 0, "failures": 2, "warnings": 0, "result": "FAILURE" } Success: false Result: FAILURE Violations: 2, Warnings: 0, Successes: 0 Component: ImageRef: quay.io/redhat-appstudio-qe/test-images@sha256:c4c35543d656cce81c876d02702141ec755f1111253dc89b07a09b08e8cb005b Results: ✕ [Violation] builtin.attestation.signature_check ImageRef: quay.io/redhat-appstudio-qe/test-images@sha256:c4c35543d656cce81c876d02702141ec755f1111253dc89b07a09b08e8cb005b Reason: No image attestations found matching the given public key. Verify the correct public key was provided, and one or more attestations were created. Error: no matching attestations: accepted signatures do not match threshold, Found: 0, Expected 1 Title: Attestation signature check passed Description: The attestation signature matches available signing materials. ✕ [Violation] builtin.image.signature_check ImageRef: quay.io/redhat-appstudio-qe/test-images@sha256:c4c35543d656cce81c876d02702141ec755f1111253dc89b07a09b08e8cb005b Reason: No image signatures found matching the given public key. Verify the correct public key was provided, and a signature was created. Error: no matching signatures: invalid signature when validating ASN.1 encoded signature Title: Image signature check passed Description: The image signature matches available signing materials. For more information about policy issues, see the policy documentation: https://conforma.dev/docs/policy/ { "policy": { "name": "Default", "description": "Includes rules for levels 1, 2 & 3 of SLSA v0.1. This is the default config used for new Konflux applications. Source: https://github.com/conforma/config/blob/main/default/policy.yaml", "sources": [ { "name": "Default", "policy": [ "oci::quay.io/enterprise-contract/ec-release-policy:konflux@sha256:ee5c3a020c9545eca738ed87198af0b235463069b2d72c5dba609364a83321d2" ], "data": [ "git::github.com/release-engineering/rhtap-ec-policy//data?ref=a32d53f84f63c1157d0df30d949d07b064ed74a2", "oci::quay.io/konflux-ci/tekton-catalog/data-acceptable-bundles:latest@sha256:f8cb3e1240c4ff6061d370b91b661800c09cc96db791fc9d6925f72e4ba70109", "oci::quay.io/konflux-ci/konflux-vanguard/data-acceptable-bundles:latest@sha256:0b31c7bc77a7463a1bc52f3d3625ef0e0e75443da7fd2de8005d7885282138ea", "oci::quay.io/konflux-ci/integration-service-catalog/data-acceptable-bundles:latest@sha256:7b00455045ea3873a72caeb1e7ac7d036bd53963a26409891a4cc9d0d242b9fc" ], "config": { "include": [ "slsa_provenance_available" ] } } ], "publicKey": "k8s://chains-e2e-ozqz/dummy-public-key-paiynffivp" }, "key": "-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAENZxkE/d0fKvJ51dXHQmxXaRMTtVz\nBQWcmJD/7pcMDEmBcmk8O1yUPIiFj5TMZqabjS9CQQN+jKHG+Bfi0BYlHg==\n-----END PUBLIC KEY-----\n", "effective-time": "2026-08-14T04:40:01.868562171Z" } Version v0.9.25 Source ID b345847182602d9a5ce9e957fa76fe02575c8018 Change date 2026-04-27 12:52:43 +0000 UTC (15 weeks ago) ECC v0.1.7 OPA v1.15.2 Conftest v0.68.2 Cosign v3.0.4 Sigstore v1.10.4 Rekor v1.5.0 Tekton Pipeline v1.9.2 Kubernetes Client v0.35.0 2026-08-14T04:40:23.625136Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Found new file to watch. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-b25a9c1db1360d376d2d992f4aaf72ab-pod_ce41f12c-86f9-4026-98d1-5afb8e7a9b94/prepare/0.log 2026-08-14T04:40:24.145453Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Found new file to watch. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-b25a9c1db1360d376d2d992f4aaf72ab-pod_ce41f12c-86f9-4026-98d1-5afb8e7a9b94/place-scripts/0.log 2026-08-14T04:40:25.176826Z WARN source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Currently ignoring file too small to fingerprint. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-b25a9c1db1360d376d2d992f4aaf72ab-pod_ce41f12c-86f9-4026-98d1-5afb8e7a9b94/step-initialize-tuf/0.log 2026-08-14T04:40:25.176858Z WARN source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Currently ignoring file too small to fingerprint. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-b25a9c1db1360d376d2d992f4aaf72ab-pod_ce41f12c-86f9-4026-98d1-5afb8e7a9b94/step-reduce/0.log 2026-08-14T04:40:25.176873Z WARN source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Currently ignoring file too small to fingerprint. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-b25a9c1db1360d376d2d992f4aaf72ab-pod_ce41f12c-86f9-4026-98d1-5afb8e7a9b94/step-report-json/0.log 2026-08-14T04:40:25.176881Z WARN source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Currently ignoring file too small to fingerprint. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-b25a9c1db1360d376d2d992f4aaf72ab-pod_ce41f12c-86f9-4026-98d1-5afb8e7a9b94/step-summary/0.log 2026-08-14T04:40:25.176887Z WARN source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Currently ignoring file too small to fingerprint. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-b25a9c1db1360d376d2d992f4aaf72ab-pod_ce41f12c-86f9-4026-98d1-5afb8e7a9b94/step-validate/0.log 2026-08-14T04:40:25.176893Z WARN source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Currently ignoring file too small to fingerprint. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-b25a9c1db1360d376d2d992f4aaf72ab-pod_ce41f12c-86f9-4026-98d1-5afb8e7a9b94/step-version/0.log 2026-08-14T04:40:26.202965Z WARN source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Currently ignoring file too small to fingerprint. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-b25a9c1db1360d376d2d992f4aaf72ab-pod_ce41f12c-86f9-4026-98d1-5afb8e7a9b94/step-assert/0.log 2026-08-14T04:40:26.202993Z WARN source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Currently ignoring file too small to fingerprint. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-b25a9c1db1360d376d2d992f4aaf72ab-pod_ce41f12c-86f9-4026-98d1-5afb8e7a9b94/step-detailed-report/0.log 2026-08-14T04:40:26.203013Z WARN source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Currently ignoring file too small to fingerprint. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-b25a9c1db1360d376d2d992f4aaf72ab-pod_ce41f12c-86f9-4026-98d1-5afb8e7a9b94/step-show-config/0.log 2026/08/14 04:40:23 Entrypoint initialization 2026/08/14 04:40:23 Decoded script /tekton/scripts/script-2-zmdxl 2026-08-14T04:40:28.253048Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Found new file to watch. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-b25a9c1db1360d376d2d992f4aaf72ab-pod_ce41f12c-86f9-4026-98d1-5afb8e7a9b94/step-initialize-tuf/0.log 2026-08-14T04:40:28.253088Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Found new file to watch. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-b25a9c1db1360d376d2d992f4aaf72ab-pod_ce41f12c-86f9-4026-98d1-5afb8e7a9b94/step-reduce/0.log Single Component mode? false { "components": [ { "name": "", "containerImage": "quay.io/konflux-ci/ec-golden-image:latest", "source": {} }, { "name": "", "containerImage": "quay.io/konflux-ci/ec-golden-image:e2e-test-unacceptable-task", "source": {} } ], "artifacts": {} } 2026/08/14 04:40:27 INFO Step was skipped due to when expressions were evaluated to false. 2026-08-14T04:40:40.559496Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Found new file to watch. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-b25a9c1db1360d376d2d992f4aaf72ab-pod_ce41f12c-86f9-4026-98d1-5afb8e7a9b94/step-assert/0.log 2026-08-14T04:40:40.559537Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Found new file to watch. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-b25a9c1db1360d376d2d992f4aaf72ab-pod_ce41f12c-86f9-4026-98d1-5afb8e7a9b94/step-detailed-report/0.log 2026-08-14T04:40:40.559579Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Found new file to watch. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-b25a9c1db1360d376d2d992f4aaf72ab-pod_ce41f12c-86f9-4026-98d1-5afb8e7a9b94/step-report-json/0.log 2026-08-14T04:40:40.559596Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Found new file to watch. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-b25a9c1db1360d376d2d992f4aaf72ab-pod_ce41f12c-86f9-4026-98d1-5afb8e7a9b94/step-show-config/0.log 2026-08-14T04:40:40.559614Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Found new file to watch. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-b25a9c1db1360d376d2d992f4aaf72ab-pod_ce41f12c-86f9-4026-98d1-5afb8e7a9b94/step-summary/0.log 2026-08-14T04:40:40.559635Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Found new file to watch. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-b25a9c1db1360d376d2d992f4aaf72ab-pod_ce41f12c-86f9-4026-98d1-5afb8e7a9b94/step-version/0.log {"success": false,"components": [{"name": "","containerImage": "quay.io/redhat-appstudio-qe/test-images@sha256:c4c35543d656cce81c876d02702141ec755f1111253dc89b07a09b08e8cb005b","source": {},"violations": [{"msg": "No image attestations found matching the given public key. Verify the correct public key was provided, and one or more attestations were created. Error: no matching attestations: accepted signatures do not match threshold, Found: 0, Expected 1","metadata": {"code": "builtin.attestation.signature_check","description": "The attestation signature matches available signing materials.","title": "Attestation signature check passed"}},{"msg": "No image signatures found matching the given public key. Verify the correct public key was provided, and a signature was created. Error: no matching signatures: invalid signature when validating ASN.1 encoded signature","metadata": {"code": "builtin.image.signature_check","description": "The image signature matches available signing materials.","title": "Image signature check passed"}}],"success": false}],"key": "-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAENZxkE/d0fKvJ51dXHQmxXaRMTtVz\nBQWcmJD/7pcMDEmBcmk8O1yUPIiFj5TMZqabjS9CQQN+jKHG+Bfi0BYlHg==\n-----END PUBLIC KEY-----\n","policy": {"name": "Default","description": "Includes rules for levels 1, 2 & 3 of SLSA v0.1. This is the default config used for new Konflux applications. Source: https://github.com/conforma/config/blob/main/default/policy.yaml","sources": [{"name": "Default","policy": ["oci::quay.io/enterprise-contract/ec-release-policy:konflux@sha256:ee5c3a020c9545eca738ed87198af0b235463069b2d72c5dba609364a83321d2"],"data": ["git::github.com/release-engineering/rhtap-ec-policy//data?ref=a32d53f84f63c1157d0df30d949d07b064ed74a2","oci::quay.io/konflux-ci/tekton-catalog/data-acceptable-bundles:latest@sha256:f8cb3e1240c4ff6061d370b91b661800c09cc96db791fc9d6925f72e4ba70109","oci::quay.io/konflux-ci/konflux-vanguard/data-acceptable-bundles:latest@sha256:0b31c7bc77a7463a1bc52f3d3625ef0e0e75443da7fd2de8005d7885282138ea","oci::quay.io/konflux-ci/integration-service-catalog/data-acceptable-bundles:latest@sha256:7b00455045ea3873a72caeb1e7ac7d036bd53963a26409891a4cc9d0d242b9fc"],"config": {"include": ["slsa_provenance_available"]}}],"publicKey": "k8s://chains-e2e-ozqz/dummy-public-key-paiynffivp"},"ec-version": "v0.9.25","effective-time": "2026-08-14T04:40:01.868562171Z"} 2026-08-14T04:40:42.621597Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Found new file to watch. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-19cef7bb6936266503feb6f9cdcc973a-pod_c0c2e831-62fa-4368-bb2f-a6d46fec0bbb/prepare/0.log 2026-08-14T04:40:43.140438Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Found new file to watch. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-19cef7bb6936266503feb6f9cdcc973a-pod_c0c2e831-62fa-4368-bb2f-a6d46fec0bbb/place-scripts/0.log Success: true Result: SUCCESS Violations: 0, Warnings: 0, Successes: 84 Components: - Name: -sha256:ef5ab8d75ed0717b1c9000ee8dab8ae927c4c8663b0fe33247792ca3cd7c4adb-arm64 ImageRef: quay.io/konflux-ci/ec-golden-image@sha256:ef5ab8d75ed0717b1c9000ee8dab8ae927c4c8663b0fe33247792ca3cd7c4adb Violations: 0, Warnings: 0, Successes: 21 - Name: ImageRef: quay.io/konflux-ci/ec-golden-image@sha256:d6162d4d6e9a810c5d94c7b00d8a093576a5d4e5d11bc536450843e422d3f7d3 Violations: 0, Warnings: 0, Successes: 21 - Name: -sha256:8258706e8caa93e835c946fac2224afdada4dea69962fcca8491c43cfb610e65-amd64 ImageRef: quay.io/konflux-ci/ec-golden-image@sha256:8258706e8caa93e835c946fac2224afdada4dea69962fcca8491c43cfb610e65 Violations: 0, Warnings: 0, Successes: 21 - Name: ImageRef: quay.io/konflux-ci/ec-golden-image@sha256:304040ca1911aa4d911bd7c6d6d07193c57dc49dbc43e63828b42ab204fb1b25 Violations: 0, Warnings: 0, Successes: 21 { "policy": { "name": "Default", "description": "Includes rules for levels 1, 2 & 3 of SLSA v0.1. This is the default config used for new Konflux applications. Source: https://github.com/conforma/config/blob/main/default/policy.yaml", "sources": [ { "name": "Default", "policy": [ "oci::quay.io/enterprise-contract/ec-release-policy:konflux@sha256:ee5c3a020c9545eca738ed87198af0b235463069b2d72c5dba609364a83321d2" ], "data": [ "git::github.com/release-engineering/rhtap-ec-policy//data?ref=a32d53f84f63c1157d0df30d949d07b064ed74a2", "oci::quay.io/konflux-ci/tekton-catalog/data-acceptable-bundles:latest@sha256:f8cb3e1240c4ff6061d370b91b661800c09cc96db791fc9d6925f72e4ba70109", "oci::quay.io/konflux-ci/konflux-vanguard/data-acceptable-bundles:latest@sha256:0b31c7bc77a7463a1bc52f3d3625ef0e0e75443da7fd2de8005d7885282138ea", "oci::quay.io/konflux-ci/integration-service-catalog/data-acceptable-bundles:latest@sha256:7b00455045ea3873a72caeb1e7ac7d036bd53963a26409891a4cc9d0d242b9fc" ], "config": { "exclude": [ "slsa_source_correlated.source_code_reference_provided" ], "include": [ "@slsa3" ] } } ], "publicKey": "k8s://chains-e2e-ozqz/golden-image-public-keyzpllgwugsl" }, "key": "-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZP/0htjhVt2y0ohjgtIIgICOtQtA\nnaYJRuLprwIv6FDhZ5yFjYUEtsmoNcW7rx2KM6FOXGsCX3BNc7qhHELT+g==\n-----END PUBLIC KEY-----\n", "effective-time": "2026-08-14T04:40:28.53216262Z" } Version v0.9.25 Source ID b345847182602d9a5ce9e957fa76fe02575c8018 Change date 2026-04-27 12:52:43 +0000 UTC (15 weeks ago) ECC v0.1.7 OPA v1.15.2 Conftest v0.68.2 Cosign v3.0.4 Sigstore v1.10.4 Rekor v1.5.0 Tekton Pipeline v1.9.2 Kubernetes Client v0.35.0 true { "timestamp": "1786682438", "namespace": "", "successes": 84, "failures": 0, "warnings": 0, "result": "SUCCESS" } {"success": true,"components": [{"name": "-sha256:ef5ab8d75ed0717b1c9000ee8dab8ae927c4c8663b0fe33247792ca3cd7c4adb-arm64","containerImage": "quay.io/konflux-ci/ec-golden-image@sha256:ef5ab8d75ed0717b1c9000ee8dab8ae927c4c8663b0fe33247792ca3cd7c4adb","source": {},"successes": [{"msg": "Pass","metadata": {"code": "attestation_type.known_attestation_type","collections": ["minimal","redhat","redhat_rpms","slsa3","redhat_security"],"depends_on": ["attestation_type.pipelinerun_attestation_found"],"description": "Confirm the attestation found for the image has a known attestation type.","title": "Known attestation type found"}},{"msg": "Pass","metadata": {"code": "attestation_type.pipelinerun_attestation_found","collections": ["minimal","redhat","redhat_rpms","slsa3","redhat_security"],"description": "Confirm at least one PipelineRun attestation is present.","title": "PipelineRun attestation found"}},{"msg": "Pass","metadata": {"code": "builtin.attestation.signature_check","description": "The attestation signature matches available signing materials.","title": "Attestation signature check passed"}},{"msg": "Pass","metadata": {"code": "builtin.attestation.syntax_check","description": "The attestation has correct syntax.","title": "Attestation syntax check passed"}},{"msg": "Pass","metadata": {"code": "builtin.image.signature_check","description": "The image signature matches available signing materials.","title": "Image signature check passed"}},{"msg": "Pass","metadata": {"code": "slsa_build_build_service.allowed_builder_ids_provided","collections": ["slsa3","redhat","redhat_rpms","policy_data","redhat_security"],"description": "Confirm the `allowed_builder_ids` rule data was provided, since it is required by the policy rules in this package.","title": "Allowed builder IDs provided"}},{"msg": "Pass","metadata": {"code": "slsa_build_build_service.slsa_builder_id_accepted","collections": ["slsa3","redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify that the attestation attribute predicate.builder.id is set to one of the values in the `allowed_builder_ids` rule data, e.g. \"https://tekton.dev/chains/v2\".","title": "SLSA Builder ID is known and accepted"}},{"msg": "Pass","metadata": {"code": "slsa_build_build_service.slsa_builder_id_found","collections": ["slsa3","redhat","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify that the attestation attribute predicate.builder.id is set.","title": "SLSA Builder ID found"}},{"msg": "Pass","metadata": {"code": "slsa_build_scripted_build.build_script_used","collections": ["slsa3","redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify that the predicate.buildConfig.tasks.steps attribute for the task responsible for building and pushing the image is not empty.","title": "Build task contains steps"}},{"msg": "Pass","metadata": {"code": "slsa_build_scripted_build.build_task_image_results_found","collections": ["slsa3","redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Confirm that a build task exists and it has the expected IMAGE_DIGEST and IMAGE_URL task results.","title": "Build task set image digest and url task results"}},{"msg": "Pass","metadata": {"code": "slsa_build_scripted_build.subject_build_task_matches","collections": ["slsa3","redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify the subject of the attestations matches the IMAGE_DIGEST and IMAGE_URL values from the build task.","title": "Provenance subject matches build task image result"}},{"msg": "Pass","metadata": {"code": "slsa_provenance_available.allowed_predicate_types_provided","collections": ["minimal","slsa3","redhat","redhat_rpms","policy_data","redhat_security"],"description": "Confirm the `allowed_predicate_types` rule data was provided, since it is required by the policy rules in this package.","title": "Allowed predicate types provided"}},{"msg": "Pass","metadata": {"code": "slsa_provenance_available.attestation_predicate_type_accepted","collections": ["minimal","slsa3","redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify that the predicateType field of the attestation indicates the in-toto SLSA Provenance format was used to attest the PipelineRun.","title": "Expected attestation predicate type found"}},{"msg": "Pass","metadata": {"code": "slsa_source_correlated.attested_source_code_reference","collections": ["minimal","slsa3","redhat","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Attestation contains source reference.","title": "Source reference"}},{"msg": "Pass","metadata": {"code": "slsa_source_correlated.expected_source_code_reference","collections": ["minimal","slsa3","redhat","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify that the provided source code reference is the one being attested.","title": "Expected source code reference"}},{"msg": "Pass","metadata": {"code": "slsa_source_correlated.rule_data_provided","collections": ["minimal","slsa3","redhat","redhat_rpms","policy_data","redhat_security"],"description": "Confirm the expected rule data keys have been provided in the expected format. The keys are `supported_vcs` and `supported_digests`.","title": "Rule data provided"}},{"msg": "Pass","metadata": {"code": "slsa_source_version_controlled.materials_format_okay","collections": ["minimal","slsa3","redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Confirm at least one entry in the predicate.materials array of the attestation contains the expected attributes: uri and digest.sha1.","title": "Materials have uri and digest"}},{"msg": "Pass","metadata": {"code": "slsa_source_version_controlled.materials_include_git_sha","collections": ["minimal","slsa3","redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Ensure that each entry in the predicate.materials array with a SHA-1 digest includes a valid Git commit SHA.","title": "Materials include git commit shas"}},{"msg": "Pass","metadata": {"code": "slsa_source_version_controlled.materials_uri_is_git_repo","collections": ["minimal","slsa3","redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Ensure each entry in the predicate.materials array with a SHA-1 digest includes a valid Git URI.","title": "Material uri is a git repo"}},{"msg": "Pass","metadata": {"code": "tasks.pipeline_has_tasks","collections": ["minimal","redhat","redhat_rpms","slsa3","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Ensure that at least one Task is present in the PipelineRun attestation.","title": "Pipeline run includes at least one task"}},{"msg": "Pass","metadata": {"code": "tasks.successful_pipeline_tasks","collections": ["minimal","redhat","redhat_rpms","slsa3","redhat_security"],"depends_on": ["tasks.pipeline_has_tasks"],"description": "Ensure that all of the Tasks in the Pipeline completed successfully. Note that skipped Tasks are not taken into account and do not influence the outcome.","title": "Successful pipeline tasks"}}],"success": true,"signatures": [{"keyid": "","sig": "MEYCIQCvdqJgEXN3HXMSTcxQeCh1dl5ZSkJJnJIEtBsU4NKHywIhALfgzeAVyYUB9MpehdA1XSyOS4GFQMo2dPzzvMo9NOm/"},{"keyid": "","sig": "MEUCIGXWbnYUhm0vu9Ur5yHiaUVlKNTGqwcX4n+5Vxwtw5oCAiEAg7NGETty6wDxbbnApwSnvNvRe7qVDuQ15sGp6+6j+wc="}],"attestations": [{"type": "https://in-toto.io/Statement/v0.1","predicateType": "https://slsa.dev/provenance/v0.2","predicateBuildType": "tekton.dev/v1/PipelineRun","signatures": [{ "keyid": "SHA256:IhiN7gY+Z3uSSd7tmj6w5Zfhqafzdhm3DZjIvGc6iYY","sig": "MEUCIQCOr4NGSb2O3et2BfmwPGGsZiCNU+534JxNZ/FaSjIiVAIgJXslvFG8bj0ipgY0EsU9elRh9GkulMLuUwH+icFS1Cc="}]}]},{"name": "","containerImage": "quay.io/konflux-ci/ec-golden-image@sha256:d6162d4d6e9a810c5d94c7b00d8a093576a5d4e5d11bc536450843e422d3f7d3","source": {},"successes": [{"msg": "Pass","metadata": {"code": "attestation_type.known_attestation_type","collections": ["minimal","redhat","redhat_rpms","slsa3","redhat_security"],"depends_on": ["attestation_type.pipelinerun_attestation_found"],"description": "Confirm the attestation found for the image has a known attestation type.","title": "Known attestation type found"}},{"msg": "Pass","metadata": {"code": "attestation_type.pipelinerun_attestation_found","collections": ["minimal","redhat","redhat_rpms","slsa3","redhat_security"],"description": "Confirm at least one PipelineRun attestation is present.","title": "PipelineRun attestation found"}},{"msg": "Pass","metadata": {"code": "builtin.attestation.signature_check","description": "The attestation signature matches available signing materials.","title": "Attestation signature check passed"}},{"msg": "Pass","metadata": {"code": "builtin.attestation.syntax_check","description": "The attestation has correct syntax.","title": "Attestation syntax check passed"}},{"msg": "Pass","metadata": {"code": "builtin.image.signature_check","description": "The image signature matches available signing materials.","title": "Image signature check passed"}},{"msg": "Pass","metadata": {"code": "slsa_build_build_service.allowed_builder_ids_provided","collections": ["slsa3","redhat","redhat_rpms","policy_data","redhat_security"],"description": "Confirm the `allowed_builder_ids` rule data was provided, since it is required by the policy rules in this package.","title": "Allowed builder IDs provided"}},{"msg": "Pass","metadata": {"code": "slsa_build_build_service.slsa_builder_id_accepted","collections": ["slsa3","redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify that the attestation attribute predicate.builder.id is set to one of the values in the `allowed_builder_ids` rule data, e.g. \"https://tekton.dev/chains/v2\".","title": "SLSA Builder ID is known and accepted"}},{"msg": "Pass","metadata": {"code": "slsa_build_build_service.slsa_builder_id_found","collections": ["slsa3","redhat","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify that the attestation attribute predicate.builder.id is set.","title": "SLSA Builder ID found"}},{"msg": "Pass","metadata": {"code": "slsa_build_scripted_build.build_script_used","collections": ["slsa3","redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify that the predicate.buildConfig.tasks.steps attribute for the task responsible for building and pushing the image is not empty.","title": "Build task contains steps"}},{"msg": "Pass","metadata": {"code": "slsa_build_scripted_build.build_task_image_results_found","collections": ["slsa3","redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Confirm that a build task exists and it has the expected IMAGE_DIGEST and IMAGE_URL task results.","title": "Build task set image digest and url task results"}},{"msg": "Pass","metadata": {"code": "slsa_build_scripted_build.subject_build_task_matches","collections": ["slsa3","redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify the subject of the attestations matches the IMAGE_DIGEST and IMAGE_URL values from the build task.","title": "Provenance subject matches build task image result"}},{"msg": "Pass","metadata": {"code": "slsa_provenance_available.allowed_predicate_types_provided","collections": ["minimal","slsa3","redhat","redhat_rpms","policy_data","redhat_security"],"description": "Confirm the `allowed_predicate_types` rule data was provided, since it is required by the policy rules in this package.","title": "Allowed predicate types provided"}},{"msg": "Pass","metadata": {"code": "slsa_provenance_available.attestation_predicate_type_accepted","collections": ["minimal","slsa3","redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify that the predicateType field of the attestation indicates the in-toto SLSA Provenance format was used to attest the PipelineRun.","title": "Expected attestation predicate type found"}},{"msg": "Pass","metadata": {"code": "slsa_source_correlated.attested_source_code_reference","collections": ["minimal","slsa3","redhat","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Attestation contains source reference.","title": "Source reference"}},{"msg": "Pass","metadata": {"code": "slsa_source_correlated.expected_source_code_reference","collections": ["minimal","slsa3","redhat","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify that the provided source code reference is the one being attested.","title": "Expected source code reference"}},{"msg": "Pass","metadata": {"code": "slsa_source_correlated.rule_data_provided","collections": ["minimal","slsa3","redhat","redhat_rpms","policy_data","redhat_security"],"description": "Confirm the expected rule data keys have been provided in the expected format. The keys are `supported_vcs` and `supported_digests`.","title": "Rule data provided"}},{"msg": "Pass","metadata": {"code": "slsa_source_version_controlled.materials_format_okay","collections": ["minimal","slsa3","redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Confirm at least one entry in the predicate.materials array of the attestation contains the expected attributes: uri and digest.sha1.","title": "Materials have uri and digest"}},{"msg": "Pass","metadata": {"code": "slsa_source_version_controlled.materials_include_git_sha","collections": ["minimal","slsa3","redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Ensure that each entry in the predicate.materials array with a SHA-1 digest includes a valid Git commit SHA.","title": "Materials include git commit shas"}},{"msg": "Pass","metadata": {"code": "slsa_source_version_controlled.materials_uri_is_git_repo","collections": ["minimal","slsa3","redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Ensure each entry in the predicate.materials array with a SHA-1 digest includes a valid Git URI.","title": "Material uri is a git repo"}},{"msg": "Pass","metadata": {"code": "tasks.pipeline_has_tasks","collections": ["minimal","redhat","redhat_rpms","slsa3","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Ensure that at least one Task is present in the PipelineRun attestation.","title": "Pipeline run includes at least one task"}},{"msg": "Pass","metadata": {"code": "tasks.successful_pipeline_tasks","collections": ["minimal","redhat","redhat_rpms","slsa3","redhat_security"],"depends_on": ["tasks.pipeline_has_tasks"],"description": "Ensure that all of the Tasks in the Pipeline completed successfully. Note that skipped Tasks are not taken into account and do not influence the outcome.","title": "Successful pipeline tasks"}}],"success": true,"signatures": [{"keyid": "","sig": "MEQCIAlhsKMOeRTjTemW2MS/tXpADCZ8GF1mSGdhRWMJdxiOAiAIvI9BFHy4di3rL4r0FIMWveiwOiFAnsQxdRBUpV9cPg=="}],"attestations": [{"type": "https://in-toto.io/Statement/v0.1","predicateType": "https://slsa.dev/provenance/v0.2","predicateBuildType": "tekton.dev/v1/PipelineRun","signatures": [{"keyid": "SHA256:IhiN7gY+Z3uSSd7tmj6w5Zfhqafzdhm3DZjIvGc6iYY", "sig": "MEUCIQCOr4NGSb2O3et2BfmwPGGsZiCNU+534JxNZ/FaSjIiVAIgJXslvFG8bj0ipgY0EsU9elRh9GkulMLuUwH+icFS1Cc="}]}]},{"name": "-sha256:8258706e8caa93e835c946fac2224afdada4dea69962fcca8491c43cfb610e65-amd64","containerImage": "quay.io/konflux-ci/ec-golden-image@sha256:8258706e8caa93e835c946fac2224afdada4dea69962fcca8491c43cfb610e65","source": {},"successes": [{"msg": "Pass","metadata": {"code": "attestation_type.known_attestation_type","collections": ["minimal","redhat","redhat_rpms","slsa3","redhat_security"],"depends_on": ["attestation_type.pipelinerun_attestation_found"],"description": "Confirm the attestation found for the image has a known attestation type.","title": "Known attestation type found"}},{"msg": "Pass","metadata": {"code": "attestation_type.pipelinerun_attestation_found","collections": ["minimal","redhat","redhat_rpms","slsa3","redhat_security"],"description": "Confirm at least one PipelineRun attestation is present.","title": "PipelineRun attestation found"}},{"msg": "Pass","metadata": {"code": "builtin.attestation.signature_check","description": "The attestation signature matches available signing materials.","title": "Attestation signature check passed"}},{"msg": "Pass","metadata": {"code": "builtin.attestation.syntax_check","description": "The attestation has correct syntax.","title": "Attestation syntax check passed"}},{"msg": "Pass","metadata": {"code": "builtin.image.signature_check","description": "The image signature matches available signing materials.","title": "Image signature check passed"}},{"msg": "Pass","metadata": {"code": "slsa_build_build_service.allowed_builder_ids_provided","collections": ["slsa3","redhat","redhat_rpms","policy_data","redhat_security"],"description": "Confirm the `allowed_builder_ids` rule data was provided, since it is required by the policy rules in this package.","title": "Allowed builder IDs provided"}},{"msg": "Pass","metadata": {"code": "slsa_build_build_service.slsa_builder_id_accepted","collections": ["slsa3","redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify that the attestation attribute predicate.builder.id is set to one of the values in the `allowed_builder_ids` rule data, e.g. \"https://tekton.dev/chains/v2\".","title": "SLSA Builder ID is known and accepted"}},{"msg": "Pass","metadata": {"code": "slsa_build_build_service.slsa_builder_id_found","collections": ["slsa3","redhat","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify that the attestation attribute predicate.builder.id is set.","title": "SLSA Builder ID found"}},{"msg": "Pass","metadata": {"code": "slsa_build_scripted_build.build_script_used","collections": ["slsa3","redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify that the predicate.buildConfig.tasks.steps attribute for the task responsible for building and pushing the image is not empty.","title": "Build task contains steps"}},{"msg": "Pass","metadata": {"code": "slsa_build_scripted_build.build_task_image_results_found","collections": ["slsa3","redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Confirm that a build task exists and it has the expected IMAGE_DIGEST and IMAGE_URL task results.","title": "Build task set image digest and url task results"}},{"msg": "Pass","metadata": {"code": "slsa_build_scripted_build.subject_build_task_matches","collections": ["slsa3","redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify the subject of the attestations matches the IMAGE_DIGEST and IMAGE_URL values from the build task.","title": "Provenance subject matches build task image result"}},{"msg": "Pass","metadata": {"code": "slsa_provenance_available.allowed_predicate_types_provided","collections": ["minimal","slsa3","redhat","redhat_rpms","policy_data","redhat_security"],"description": "Confirm the `allowed_predicate_types` rule data was provided, since it is required by the policy rules in this package.","title": "Allowed predicate types provided"}},{"msg": "Pass","metadata": {"code": "slsa_provenance_available.attestation_predicate_type_accepted","collections": ["minimal","slsa3","redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify that the predicateType field of the attestation indicates the in-toto SLSA Provenance format was used to attest the PipelineRun.","title": "Expected attestation predicate type found"}},{"msg": "Pass","metadata": {"code": "slsa_source_correlated.attested_source_code_reference","collections": ["minimal","slsa3","redhat","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Attestation contains source reference.","title": "Source reference"}},{"msg": "Pass","metadata": {"code": "slsa_source_correlated.expected_source_code_reference","collections": ["minimal","slsa3","redhat","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify that the provided source code reference is the one being attested.","title": "Expected source code reference"}},{"msg": "Pass","metadata": {"code": "slsa_source_correlated.rule_data_provided","collections": ["minimal","slsa3","redhat","redhat_rpms","policy_data","redhat_security"],"description": "Confirm the expected rule data keys have been provided in the expected format. The keys are `supported_vcs` and `supported_digests`.","title": "Rule data provided"}},{"msg": "Pass","metadata": {"code": "slsa_source_version_controlled.materials_format_okay","collections": ["minimal","slsa3","redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Confirm at least one entry in the predicate.materials array of the attestation contains the expected attributes: uri and digest.sha1.","title": "Materials have uri and digest"}},{"msg": "Pass","metadata": {"code": "slsa_source_version_controlled.materials_include_git_sha","collections": ["minimal","slsa3","redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Ensure that each entry in the predicate.materials array with a SHA-1 digest includes a valid Git commit SHA.","title": "Materials include git commit shas"}},{"msg": "Pass","metadata": {"code": "slsa_source_version_controlled.materials_uri_is_git_repo","collections": ["minimal","slsa3","redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Ensure each entry in the predicate.materials array with a SHA-1 digest includes a valid Git URI.","title": "Material uri is a git repo"}},{"msg": "Pass","metadata": {"code": "tasks.pipeline_has_tasks","collections": ["minimal","redhat","redhat_rpms","slsa3","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Ensure that at least one Task is present in the PipelineRun attestation.","title": "Pipeline run includes at least one task"}},{"msg": "Pass","metadata": {"code": "tasks.successful_pipeline_tasks","collections": ["minimal","redhat","redhat_rpms","slsa3","redhat_security"],"depends_on": ["tasks.pipeline_has_tasks"],"description": "Ensure that all of the Tasks in the Pipeline completed successfully. Note that skipped Tasks are not taken into account and do not influence the outcome.","title": "Successful pipeline tasks"}}],"success": true,"signatures": [{"keyid": "","sig": "MEQCIEh+epJwgojJoU6IYVUiDqEdb58QBySkOQlc3N11jdYIAiA3hEc3o8UKYx6oegIBjb+HQKm+6pwtAXPQItXxMmXgiw=="},{"keyid": "","sig": "MEUCIQCdQVEmAAID78fMWobT+VmjYDiiEfnD2HYfozVWadZyXQIgUDxIHdw4Dt5Z0/Sha7G4LEdCVXRU+443cKhhHBYigKA="}],"attestations": [{"type": "https://in-toto.io/Statement/v0.1","predicateType": "https://slsa.dev/provenance/v0.2", "predicateBuildType": "tekton.dev/v1/PipelineRun","signatures": [{"keyid": "SHA256:IhiN7gY+Z3uSSd7tmj6w5Zfhqafzdhm3DZjIvGc6iYY","sig": "MEUCIQCOr4NGSb2O3et2BfmwPGGsZiCNU+534JxNZ/FaSjIiVAIgJXslvFG8bj0ipgY0EsU9elRh9GkulMLuUwH+icFS1Cc="}]}]},{"name": "","containerImage": "quay.io/konflux-ci/ec-golden-image@sha256:304040ca1911aa4d911bd7c6d6d07193c57dc49dbc43e63828b42ab204fb1b25","source": {},"successes": [{"msg": "Pass","metadata": {"code": "attestation_type.known_attestation_type","collections": ["minimal","redhat","redhat_rpms","slsa3","redhat_security"],"depends_on": ["attestation_type.pipelinerun_attestation_found"],"description": "Confirm the attestation found for the image has a known attestation type.","title": "Known attestation type found"}},{"msg": "Pass","metadata": {"code": "attestation_type.pipelinerun_attestation_found","collections": ["minimal","redhat","redhat_rpms","slsa3","redhat_security"],"description": "Confirm at least one PipelineRun attestation is present.","title": "PipelineRun attestation found"}},{"msg": "Pass","metadata": {"code": "builtin.attestation.signature_check","description": "The attestation signature matches available signing materials.","title": "Attestation signature check passed"}},{"msg": "Pass","metadata": {"code": "builtin.attestation.syntax_check","description": "The attestation has correct syntax.","title": "Attestation syntax check passed"}},{"msg": "Pass","metadata": {"code": "builtin.image.signature_check","description": "The image signature matches available signing materials.","title": "Image signature check passed"}},{"msg": "Pass","metadata": {"code": "slsa_build_build_service.allowed_builder_ids_provided","collections": ["slsa3","redhat","redhat_rpms","policy_data","redhat_security"],"description": "Confirm the `allowed_builder_ids` rule data was provided, since it is required by the policy rules in this package.","title": "Allowed builder IDs provided"}},{"msg": "Pass","metadata": {"code": "slsa_build_build_service.slsa_builder_id_accepted","collections": ["slsa3","redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify that the attestation attribute predicate.builder.id is set to one of the values in the `allowed_builder_ids` rule data, e.g. \"https://tekton.dev/chains/v2\".","title": "SLSA Builder ID is known and accepted"}},{"msg": "Pass","metadata": {"code": "slsa_build_build_service.slsa_builder_id_found","collections": ["slsa3","redhat","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify that the attestation attribute predicate.builder.id is set.","title": "SLSA Builder ID found"}},{"msg": "Pass","metadata": {"code": "slsa_build_scripted_build.build_script_used","collections": ["slsa3","redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify that the predicate.buildConfig.tasks.steps attribute for the task responsible for building and pushing the image is not empty.","title": "Build task contains steps"}},{"msg": "Pass","metadata": {"code": "slsa_build_scripted_build.build_task_image_results_found","collections": ["slsa3","redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Confirm that a build task exists and it has the expected IMAGE_DIGEST and IMAGE_URL task results.","title": "Build task set image digest and url task results"}},{"msg": "Pass","metadata": {"code": "slsa_build_scripted_build.subject_build_task_matches","collections": ["slsa3","redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify the subject of the attestations matches the IMAGE_DIGEST and IMAGE_URL values from the build task.","title": "Provenance subject matches build task image result"}},{"msg": "Pass","metadata": {"code": "slsa_provenance_available.allowed_predicate_types_provided","collections": ["minimal","slsa3","redhat","redhat_rpms","policy_data","redhat_security"],"description": "Confirm the `allowed_predicate_types` rule data was provided, since it is required by the policy rules in this package.","title": "Allowed predicate types provided"}},{"msg": "Pass","metadata": {"code": "slsa_provenance_available.attestation_predicate_type_accepted","collections": ["minimal","slsa3","redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify that the predicateType field of the attestation indicates the in-toto SLSA Provenance format was used to attest the PipelineRun.","title": "Expected attestation predicate type found"}},{"msg": "Pass","metadata": {"code": "slsa_source_correlated.attested_source_code_reference","collections": ["minimal","slsa3","redhat","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Attestation contains source reference.","title": "Source reference"}},{"msg": "Pass","metadata": {"code": "slsa_source_correlated.expected_source_code_reference","collections": ["minimal","slsa3","redhat","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify that the provided source code reference is the one being attested.","title": "Expected source code reference"}},{"msg": "Pass","metadata": {"code": "slsa_source_correlated.rule_data_provided","collections": ["minimal","slsa3","redhat","redhat_rpms","policy_data","redhat_security"],"description": "Confirm the expected rule data keys have been provided in the expected format. The keys are `supported_vcs` and `supported_digests`.","title": "Rule data provided"}},{"msg": "Pass","metadata": {"code": "slsa_source_version_controlled.materials_format_okay","collections": ["minimal","slsa3","redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Confirm at least one entry in the predicate.materials array of the attestation contains the expected attributes: uri and digest.sha1.","title": "Materials have uri and digest"}},{"msg": "Pass","metadata": {"code": "slsa_source_version_controlled.materials_include_git_sha","collections": ["minimal","slsa3","redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Ensure that each entry in the predicate.materials array with a SHA-1 digest includes a valid Git commit SHA.","title": "Materials include git commit shas"}},{"msg": "Pass","metadata": {"code": "slsa_source_version_controlled.materials_uri_is_git_repo","collections": ["minimal","slsa3","redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Ensure each entry in the predicate.materials array with a SHA-1 digest includes a valid Git URI.","title": "Material uri is a git repo"}},{"msg": "Pass","metadata": {"code": "tasks.pipeline_has_tasks","collections": ["minimal","redhat","redhat_rpms","slsa3","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Ensure that at least one Task is present in the PipelineRun attestation.","title": "Pipeline run includes at least one task"}},{"msg": "Pass","metadata": {"code": "tasks.successful_pipeline_tasks","collections": ["minimal","redhat","redhat_rpms","slsa3","redhat_security"],"depends_on": ["tasks.pipeline_has_tasks"],"description": "Ensure that all of the Tasks in the Pipeline completed successfully. Note that skipped Tasks are not taken into account and do not influence the outcome.","title": "Successful pipeline tasks"}}],"success": true,"signatures": [{"keyid": "","sig": "MEUCIQD86lmOqCovYZDPKm0XxxsLgDQcFIFAv+QZxrFSHmCvQAIgTd1I005ox8MfABqsAen6PZEyg2MCEQNBCx1NLS3V0JQ="}],"attestations": [{"type": "https://in-toto.io/Statement/v0.1","predicateType": "https://slsa.dev/provenance/v0.2","predicateBuildType": "tekton.dev/v1beta1/TaskRun","signatures": [{ 2026-08-14T04:40:44.174036Z WARN source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Currently ignoring file too small to fingerprint. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-19cef7bb6936266503feb6f9cdcc973a-pod_c0c2e831-62fa-4368-bb2f-a6d46fec0bbb/step-initialize-tuf/0.log 2026-08-14T04:40:44.174066Z WARN source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Currently ignoring file too small to fingerprint. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-19cef7bb6936266503feb6f9cdcc973a-pod_c0c2e831-62fa-4368-bb2f-a6d46fec0bbb/step-reduce/0.log 2026-08-14T04:40:44.174073Z WARN source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Currently ignoring file too small to fingerprint. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-19cef7bb6936266503feb6f9cdcc973a-pod_c0c2e831-62fa-4368-bb2f-a6d46fec0bbb/step-report-json/0.log 2026-08-14T04:40:44.174079Z WARN source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Currently ignoring file too small to fingerprint. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-19cef7bb6936266503feb6f9cdcc973a-pod_c0c2e831-62fa-4368-bb2f-a6d46fec0bbb/step-validate/0.log 2026-08-14T04:40:45.199690Z WARN source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Currently ignoring file too small to fingerprint. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-19cef7bb6936266503feb6f9cdcc973a-pod_c0c2e831-62fa-4368-bb2f-a6d46fec0bbb/step-assert/0.log 2026-08-14T04:40:45.199720Z WARN source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Currently ignoring file too small to fingerprint. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-19cef7bb6936266503feb6f9cdcc973a-pod_c0c2e831-62fa-4368-bb2f-a6d46fec0bbb/step-detailed-report/0.log 2026-08-14T04:40:45.199740Z WARN source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Currently ignoring file too small to fingerprint. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-19cef7bb6936266503feb6f9cdcc973a-pod_c0c2e831-62fa-4368-bb2f-a6d46fec0bbb/step-show-config/0.log 2026-08-14T04:40:45.199754Z WARN source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Currently ignoring file too small to fingerprint. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-19cef7bb6936266503feb6f9cdcc973a-pod_c0c2e831-62fa-4368-bb2f-a6d46fec0bbb/step-summary/0.log 2026-08-14T04:40:45.199764Z WARN source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Currently ignoring file too small to fingerprint. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-19cef7bb6936266503feb6f9cdcc973a-pod_c0c2e831-62fa-4368-bb2f-a6d46fec0bbb/step-version/0.log 2026/08/14 04:40:42 Entrypoint initialization 2026/08/14 04:40:42 Decoded script /tekton/scripts/script-2-8749h 2026-08-14T04:40:47.249802Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Found new file to watch. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-19cef7bb6936266503feb6f9cdcc973a-pod_c0c2e831-62fa-4368-bb2f-a6d46fec0bbb/step-initialize-tuf/0.log 2026-08-14T04:40:47.249846Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Found new file to watch. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-19cef7bb6936266503feb6f9cdcc973a-pod_c0c2e831-62fa-4368-bb2f-a6d46fec0bbb/step-reduce/0.log Single Component mode? false { "components": [ { "name": "", "containerImage": "quay.io/konflux-ci/ec-golden-image:latest", "source": {} } ], "artifacts": {} } 2026/08/14 04:40:46 INFO Step was skipped due to when expressions were evaluated to false. 2026-08-14T04:41:01.611101Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Found new file to watch. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-19cef7bb6936266503feb6f9cdcc973a-pod_c0c2e831-62fa-4368-bb2f-a6d46fec0bbb/step-validate/0.log time="2026-08-14T04:41:00Z" level=error msg="failed to fetch image" action="fetch image" error="GET https://quay.io/v2/konflux-ci/ec-golden-image/manifests/sha256:a74194114b9314a36693a135f64cc64ee643f6884f15532711876612478cb348: MANIFEST_UNKNOWN: manifest unknown; map[]" function=ec.oci.image_manifest input_ref="quay.io/konflux-ci/ec-golden-image@sha256:a74194114b9314a36693a135f64cc64ee643f6884f15532711876612478cb348" time="2026-08-14T04:41:01Z" level=error msg="failed to fetch image" action="fetch image" error="GET https://quay.io/v2/konflux-ci/ec-golden-image/manifests/sha256:a74194114b9314a36693a135f64cc64ee643f6884f15532711876612478cb348: MANIFEST_UNKNOWN: manifest unknown; map[]" function=ec.oci.image_manifest input_ref="quay.io/konflux-ci/ec-golden-image@sha256:a74194114b9314a36693a135f64cc64ee643f6884f15532711876612478cb348" time="2026-08-14T04:41:07Z" level=error msg="failed to fetch image" action="fetch image" error="GET https://quay.io/v2/konflux-ci/ec-golden-image/manifests/sha256:9584a7a1989ee0444bf59d9d33133432216d18a3fa24441b72c6f6def09babae: MANIFEST_UNKNOWN: manifest unknown; map[]" function=ec.oci.image_manifest input_ref="quay.io/konflux-ci/ec-golden-image@sha256:9584a7a1989ee0444bf59d9d33133432216d18a3fa24441b72c6f6def09babae" time="2026-08-14T04:41:08Z" level=error msg="failed to fetch image" action="fetch image" error="GET https://quay.io/v2/konflux-ci/ec-golden-image/manifests/sha256:9584a7a1989ee0444bf59d9d33133432216d18a3fa24441b72c6f6def09babae: MANIFEST_UNKNOWN: manifest unknown; map[]" function=ec.oci.image_manifest input_ref="quay.io/konflux-ci/ec-golden-image@sha256:9584a7a1989ee0444bf59d9d33133432216d18a3fa24441b72c6f6def09babae" 2026-08-14T04:41:14.448156Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Found new file to watch. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-19cef7bb6936266503feb6f9cdcc973a-pod_c0c2e831-62fa-4368-bb2f-a6d46fec0bbb/step-assert/0.log 2026-08-14T04:41:14.448207Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Found new file to watch. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-19cef7bb6936266503feb6f9cdcc973a-pod_c0c2e831-62fa-4368-bb2f-a6d46fec0bbb/step-detailed-report/0.log 2026-08-14T04:41:14.448278Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Found new file to watch. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-19cef7bb6936266503feb6f9cdcc973a-pod_c0c2e831-62fa-4368-bb2f-a6d46fec0bbb/step-report-json/0.log 2026-08-14T04:41:14.448297Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Found new file to watch. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-19cef7bb6936266503feb6f9cdcc973a-pod_c0c2e831-62fa-4368-bb2f-a6d46fec0bbb/step-show-config/0.log 2026-08-14T04:41:14.448310Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Found new file to watch. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-19cef7bb6936266503feb6f9cdcc973a-pod_c0c2e831-62fa-4368-bb2f-a6d46fec0bbb/step-summary/0.log 2026-08-14T04:41:14.448331Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Found new file to watch. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-19cef7bb6936266503feb6f9cdcc973a-pod_c0c2e831-62fa-4368-bb2f-a6d46fec0bbb/step-version/0.log "keyid": "SHA256:IhiN7gY+Z3uSSd7tmj6w5Zfhqafzdhm3DZjIvGc6iYY","sig": "MEUCIQDcgZIwEkLFqD7U9HrobgEC8Jo7wm+xJ5AoyO3qg+aj8QIgb9xDpjYGRMmpVk+QATeVKlHonzBiu51HtT3J+lQXPXc="}]},{"type": "https://in-toto.io/Statement/v0.1","predicateType": "https://slsa.dev/provenance/v0.2","predicateBuildType": "tekton.dev/v1beta1/PipelineRun","signatures": [{"keyid": "SHA256:IhiN7gY+Z3uSSd7tmj6w5Zfhqafzdhm3DZjIvGc6iYY","sig": "MEYCIQDKSihaAR/zAhJhR5GCqleDvfUUtvRw61vk0YeTBAnOSQIhAKa09B4yEfaSJronmWBFbu5cVPNxm17CMl/PElEz1POa"}]}]}],"key": "-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZP/0htjhVt2y0ohjgtIIgICOtQtA\nnaYJRuLprwIv6FDhZ5yFjYUEtsmoNcW7rx2KM6FOXGsCX3BNc7qhHELT+g==\n-----END PUBLIC KEY-----\n","policy": {"name": "Default","description": "Includes rules for levels 1, 2 & 3 of SLSA v0.1. This is the default config used for new Konflux applications. Source: https://github.com/conforma/config/blob/main/default/policy.yaml","sources": [{"name": "Default","policy": ["oci::quay.io/enterprise-contract/ec-release-policy:konflux@sha256:ee5c3a020c9545eca738ed87198af0b235463069b2d72c5dba609364a83321d2"],"data": ["git::github.com/release-engineering/rhtap-ec-policy//data?ref=a32d53f84f63c1157d0df30d949d07b064ed74a2","oci::quay.io/konflux-ci/tekton-catalog/data-acceptable-bundles:latest@sha256:f8cb3e1240c4ff6061d370b91b661800c09cc96db791fc9d6925f72e4ba70109","oci::quay.io/konflux-ci/konflux-vanguard/data-acceptable-bundles:latest@sha256:0b31c7bc77a7463a1bc52f3d3625ef0e0e75443da7fd2de8005d7885282138ea","oci::quay.io/konflux-ci/integration-service-catalog/data-acceptable-bundles:latest@sha256:7b00455045ea3873a72caeb1e7ac7d036bd53963a26409891a4cc9d0d242b9fc"],"config": {"exclude": ["slsa_source_correlated.source_code_reference_provided"],"include": ["@slsa3"]}}],"publicKey": "k8s://chains-e2e-ozqz/golden-image-public-keyzpllgwugsl"},"ec-version": "v0.9.25","effective-time": "2026-08-14T04:40:28.53216262Z"} 2026-08-14T04:41:16.535961Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Found new file to watch. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-df1de1928415534734e0490c356ee704-pod_458f2040-b02f-4e58-a9e5-1b3ea98acc7c/prepare/0.log true {"success": true,"components": [{"name": "-sha256:ef5ab8d75ed0717b1c9000ee8dab8ae927c4c8663b0fe33247792ca3cd7c4adb-arm64","containerImage": "quay.io/konflux-ci/ec-golden-image@sha256:ef5ab8d75ed0717b1c9000ee8dab8ae927c4c8663b0fe33247792ca3cd7c4adb","source": {},"warnings": [{"msg": "allowed_registry_prefixes is configured without signing_identities. Migrate to signature-based verification by setting signing_identities in rule data.","metadata": {"code": "base_image_registries.allowed_registries_provided","collections": ["minimal","redhat","policy_data","redhat_security"],"description": "Confirm that either the `allowed_registry_prefixes` or a `signing_identities` entry was provided, since at least one is required by the policy rules in this package.","severity": "warning","solution": "Make sure to configure either a signing identity under the `rh-release` key in the `signing_identities` https://conforma.dev/docs/cli/configuration.html#_data_sources or a list of trusted registry prefixes in `allowed_registry_prefixes`.","title": "Allowed base image registry prefixes list or signing identity was provided"}},{"msg": "Task \"buildah-remote-oci-ta\" is used by pipeline task \"build-container\" is or will be unsupported as of 2026-08-22T00:00:00Z. Upgrade to a newer version of the Task.","metadata": {"code": "tasks.unsupported","collections": ["redhat","redhat_rpms","redhat_security"],"depends_on": ["tasks.pipeline_has_tasks"],"description": "The Tekton Task used is or will be unsupported. The Task is annotated with `build.appstudio.redhat.com/expires-on` annotation marking it as unsupported after a certain date.","effective_on": "2026-08-22T00:00:00Z","term": "buildah-remote-oci-ta","title": "Task version unsupported"}},{"msg": "Task \"git-clone-oci-ta\" is used by pipeline task \"clone-repository\" is or will be unsupported as of 2026-08-20T00:00:00Z. Upgrade to a newer version of the Task.","metadata": {"code": "tasks.unsupported","collections": ["redhat","redhat_rpms","redhat_security"],"depends_on": ["tasks.pipeline_has_tasks"],"description": "The Tekton Task used is or will be unsupported. The Task is annotated with `build.appstudio.redhat.com/expires-on` annotation marking it as unsupported after a certain date.","effective_on": "2026-08-20T00:00:00Z","term": "git-clone-oci-ta","title": "Task version unsupported"}},{"msg": "The Task \"ecosystem-cert-preflight-checks\" from the build Pipeline reports a failed informative test","metadata": {"code": "test.no_failed_informative_tests","collections": ["redhat"],"depends_on": ["test.test_data_found"],"description": "Produce a warning if any informative tests have their result set to \"FAILED\". The result type is configurable by the \"failed_tests_results\" key, and the list of informative tests is configurable by the \"informative_tests\" key in the rule data.","solution": "There is a test that failed. Make sure that any task in the build pipeline with a result named 'TEST_OUTPUT' does not fail. More information about the test should be available in the logs for the build Pipeline.","term": "ecosystem-cert-preflight-checks","title": "No informative tests failed"}},{"msg": "Task \"build-container\" will be denied by rule pattern \"oci://quay.io/konflux-ci/tekton-catalog/task-buildah-remote-oci-ta\" starting on 2026-09-05T00:00:00Z.","metadata": {"code": "trusted_task.future_deny_rule","collections": ["redhat"],"description": "Warn when a task matches a deny rule that has an effective_on date in the future. This provides advance notice that a task will become untrusted when the deny rule takes effect.","solution": "Update the Task to a version that will not match the future deny rule before its effective date.","term": "buildah-remote-oci-ta","title": "Future deny rule will apply"}},{"msg": "Task \"clone-repository\" will be denied by rule pattern \"oci://quay.io/konflux-ci/tekton-catalog/task-git-clone-oci-ta\" starting on 2026-09-05T00:00:00Z.","metadata": {"code": "trusted_task.future_deny_rule","collections": ["redhat"],"description": "Warn when a task matches a deny rule that has an effective_on date in the future. This provides advance notice that a task will become untrusted when the deny rule takes effect.","solution": "Update the Task to a version that will not match the future deny rule before its effective date.","term": "git-clone-oci-ta","title": "Future deny rule will apply"}},{"msg": "Task \"rpms-signature-scan\" will be denied by rule pattern \"oci://quay.io/konflux-ci/konflux-vanguard/*\" starting on 2026-09-24T00:00:00Z.","metadata": {"code": "trusted_task.future_deny_rule","collections": ["redhat"],"description": "Warn when a task matches a deny rule that has an effective_on date in the future. This provides advance notice that a task will become untrusted when the deny rule takes effect.","solution": "Update the Task to a version that will not match the future deny rule before its effective date.","term": "rpms-signature-scan","title": "Future deny rule will apply"}},{"msg": "Task \"sast-snyk-check\" will be denied by rule pattern \"oci://quay.io/konflux-ci/tekton-catalog/task-sast-snyk-check-oci-ta\" starting on 2026-09-05T00:00:00Z.","metadata": {"code": "trusted_task.future_deny_rule","collections": ["redhat"],"description": "Warn when a task matches a deny rule that has an effective_on date in the future. This provides advance notice that a task will become untrusted when the deny rule takes effect.","solution": "Update the Task to a version that will not match the future deny rule before its effective date.","term": "sast-snyk-check-oci-ta","title": "Future deny rule will apply"}}],"successes": [{"msg": "Pass","metadata": {"code": "attestation_type.deprecated_policy_attestation_format","collections": ["minimal","redhat","redhat_rpms"],"description": "The Conforma CLI now places the attestation data in a different location. This check fails if the expected new format is not found.","effective_on": "2023-08-31T00:00:00Z","title": "Deprecated policy attestation format"}},{"msg": "Pass","metadata": {"code": "attestation_type.known_attestation_type","collections": ["minimal","redhat","redhat_rpms","slsa3","redhat_security"],"depends_on": ["attestation_type.pipelinerun_attestation_found"],"description": "Confirm the attestation found for the image has a known attestation type.","title": "Known attestation type found"}},{"msg": "Pass","metadata": {"code": "attestation_type.known_attestation_types_provided","collections": ["minimal","redhat","redhat_rpms","policy_data","redhat_security"],"description": "Confirm the `known_attestation_types` rule data was provided.","title": "Known attestation types provided"}},{"msg": "Pass","metadata": {"code": "attestation_type.pipelinerun_attestation_found","collections": ["minimal","redhat","redhat_rpms","slsa3","redhat_security"],"description": "Confirm at least one PipelineRun attestation is present.","title": "PipelineRun attestation found"}},{"msg": "Pass","metadata": {"code": "base_image_registries.base_image_info_found","collections": ["minimal","redhat","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify the expected information was provided about which base images were used during the build process. The list of base images comes from any associated CycloneDX or SPDX SBOMs.","title": "Base images provided"}},{"msg": "Pass","metadata": {"code": "base_image_registries.base_image_permitted","collections": ["minimal","redhat","redhat_security"],"depends_on": ["base_image_registries.base_image_info_found","base_image_registries.allowed_registries_provided"], "description": "Verify that the base images used when building a container image are permitted. Images can be permitted in three ways: by having a valid signature verified against the `rh-release` entry in `signing_identities` rule data (preferred), by matching a component digest in the snapshot, or by matching a registry prefix from `allowed_registry_prefixes` rule data (deprecated). Registry prefix matching is deprecated and will be removed in a future release.","title": "Base image is permitted"}},{"msg": "Pass","metadata": {"code": "buildah_build_task.add_capabilities_param","collections": ["redhat","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify the ADD_CAPABILITIES parameter of a builder Tasks was not used.","effective_on": "2024-08-31T00:00:00Z","title": "ADD_CAPABILITIES parameter"}},{"msg": "Pass","metadata": {"code": "buildah_build_task.buildah_uses_local_dockerfile","collections": ["redhat","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify the Dockerfile used in the buildah task was not fetched from an external source.","title": "Buildah task uses a local Dockerfile"}},{"msg": "Pass","metadata": {"code": "buildah_build_task.disallowed_platform_patterns_pattern","collections": ["redhat","policy_data"],"description": "Confirm the `disallowed_platform_patterns` rule data, if provided matches the expected format.","title": "disallowed_platform_patterns format"}},{"msg": "Pass","metadata": {"code": "buildah_build_task.platform_param","collections": ["redhat"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify the value of the PLATFORM parameter of a builder Task is allowed by matching against a list of disallowed patterns. The list of patterns can be customized via the `disallowed_platform_patterns` rule data key. If empty, all values are allowed.","effective_on": "2024-09-01T00:00:00Z","title": "PLATFORM parameter"}},{"msg": "Pass","metadata": {"code": "buildah_build_task.privileged_nested_param","collections": ["redhat","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify the PRIVILEGED_NESTED parameter of a builder Tasks was not set to `true`.","title": "PRIVILEGED_NESTED parameter"}},{"msg": "Pass","metadata": {"code": "builtin.attestation.signature_check","description": "The attestation signature matches available signing materials.","title": "Attestation signature check passed"}},{"msg": "Pass","metadata": {"code": "builtin.attestation.syntax_check","description": "The attestation has correct syntax.","title": "Attestation syntax check passed"}},{"msg": "Pass","metadata": {"code": "builtin.image.signature_check","description": "The image signature matches available signing materials.","title": "Image signature check passed"}},{"msg": "Pass","metadata": {"code": "cve.cve_blockers","collections": ["minimal","redhat","redhat_security"],"depends_on": ["cve.cve_results_found"],"description": "The SLSA Provenance attestation for the image is inspected to ensure CVEs that have a known fix and meet a certain security level have not been detected. If detected, this policy rule will fail. By default, only CVEs of critical and high security level cause a failure. This is configurable by the rule data key `restrict_cve_security_levels`. The available levels are critical, high, medium, low, and unknown. In addition to that leeway can be granted per severity using the `cve_leeway` rule data key containing days of allowed leeway, measured as time between found vulnerability's public disclosure date and current effective time, per severity level.","title": "Blocking CVE check"}},{"msg": "Pass","metadata": {"code": "cve.cve_warnings","collections": ["minimal","redhat"],"depends_on": ["cve.cve_results_found"],"description": "The SLSA Provenance attestation for the image is inspected to ensure CVEs that have a known fix and meet a certain security level have not been detected. If detected, this policy rule will raise a warning. By default, the list of CVE security levels used by this policy is empty. However, this is configurable by the rule data key `warn_cve_security_levels`. The available levels are critical, high, medium, low, and unknown.","title": "Non-blocking CVE check"}},{"msg": "Pass","metadata": {"code": "cve.rule_data_provided","collections": ["minimal","redhat","policy_data","redhat_security"],"description": "Confirm the expected rule data keys have been provided in the expected format. The keys are `restrict_cve_security_levels`,\t`warn_cve_security_levels`, `restrict_unpatched_cve_security_levels`, and `warn_unpatched_cve_security_levels`.","title": "Rule data provided"}},{"msg": "Pass","metadata": {"code": "cve.unpatched_cve_blockers","collections": ["minimal","redhat","redhat_security"],"depends_on": ["cve.cve_results_found"],"description": "The SLSA Provenance attestation for the image is inspected to ensure CVEs that do NOT have a known fix and meet a certain security level have not been detected. If detected, this policy rule will fail. By default, the list of security levels used by this policy is empty. This is configurable by the rule data key `restrict_unpatched_cve_security_levels`. The available levels are critical, high, medium, low, and unknown. In addition to that leeway can be granted per severity using the `cve_leeway` rule data key containing days of allowed leeway, measured as time between found vulnerability's public disclosure date and current effective time, per severity level.","title": "Blocking unpatched CVE check"}},{"msg": "Pass","metadata": {"code": "cve.unpatched_cve_warnings","collections": ["minimal","redhat"],"depends_on": ["cve.cve_results_found"],"description": "The SLSA Provenance attestation for the image is inspected to ensure CVEs that do NOT have a known fix and meet a certain security level have not been detected. If detected, this policy rule will raise a warning. By default, only CVEs of critical and high security level cause a warning. This is configurable by the rule data key `warn_unpatched_cve_security_levels`. The available levels are critical, high, medium, low, and unknown.","title": "Non-blocking unpatched CVE check"}},{"msg": "Pass","metadata": {"code": "hermetic_task.hermetic","collections": ["redhat","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify the task in the PipelineRun attestation was invoked with the proper parameters to make the task execution hermetic.","title": "Task called with hermetic param set"}},{"msg": "Pass","metadata": {"code": "labels.deprecated_labels","collections": ["redhat"],"description": "Check the image for the presence of labels that have been deprecated. Use the rule data key `deprecated_labels` to set the list of labels to check.","title": "Deprecated labels"}},{"msg": "Pass","metadata": {"code": "labels.disallowed_inherited_labels","collections": ["redhat"],"description": "Check that certain labels on the image have different values than the labels from the parent image. If the label is inherited from the parent image but not redefined for the image, it will contain an incorrect value for the image. Use the rule data `disallowed_inherited_labels` key to set the list of labels to check, or the `fbc_disallowed_inherited_labels` key for fbc images.","title": "Disallowed inherited labels"}},{"msg": "Pass","metadata": {"code": "labels.inaccessible_config","collections": ["redhat"],"description": "The image config is not accessible.","title": "Inaccessible image config"}},{"msg": "Pass","metadata": {"code": "labels.inaccessible_manifest","collections": ["redhat","redhat_security"],"description": "The image manifest is not accessible.","title": "Inaccessible image manifest"}},{"msg": "Pass","metadata": {"code": "labels.inaccessible_parent_config","collections": ["redhat"],"description": "The parent image config is not accessible.", "title": "Inaccessible parent image config"}},{"msg": "Pass","metadata": {"code": "labels.inaccessible_parent_manifest","collections": ["redhat","redhat_security"],"description": "The parent image manifest is not accessible.","title": "Inaccessible parent image manifest"}},{"msg": "Pass","metadata": {"code": "labels.optional_labels","collections": ["redhat"],"description": "Check the image for the presence of labels that are recommended, but not required. Use the rule data `optional_labels` key to set the list of labels to check, or the `fbc_optional_labels` key for fbc images.","title": "Optional labels"}},{"msg": "Pass","metadata": {"code": "labels.required_labels","collections": ["redhat","redhat_security"],"description": "Check the image for the presence of labels that are required. Use the rule data `required_labels` key to set the list of labels to check, or the `fbc_required_labels` key for fbc images.","title": "Required labels"}},{"msg": "Pass","metadata": {"code": "labels.rule_data_provided","collections": ["redhat","policy_data","redhat_security"],"description": "Confirm the expected rule data keys have been provided in the expected format. The keys are `required_labels`,\t`fbc_required_labels`, `optional_labels`, `fbc_optional_labels`, `disallowed_inherited_labels`, `fbc_disallowed_inherited_labels`, and `deprecated_labels`.","title": "Rule data provided"}},{"msg": "Pass","metadata": {"code": "olm.allowed_registries","collections": ["redhat","redhat_security"],"description": "Each image referenced by the OLM bundle should match an entry in the list of prefixes defined by the rule data key `allowed_olm_image_registry_prefixes` in your policy configuration.","effective_on": "2024-09-01T00:00:00Z","title": "Images referenced by OLM bundle are from allowed registries"}},{"msg": "Pass","metadata": {"code": "olm.allowed_registries_related","collections": ["redhat","redhat_security"],"description": "Each image indicated as a related image should match an entry in the list of prefixes defined by the rule data key `allowed_olm_image_registry_prefixes` in your policy configuration.","effective_on": "2025-04-15T00:00:00Z","title": "Related images references are from allowed registries"}},{"msg": "Pass","metadata": {"code": "olm.allowed_resource_kinds","collections": ["redhat","redhat_security"],"description": "Every manifest in an OLM bundle must be of an allowed resource kind, as defined by the rule data key `allowed_olm_resource_kinds`.","title": "OLM bundle image manifests contain only allowed resource kinds"}},{"msg": "Pass","metadata": {"code": "olm.csv_semver_format","collections": ["redhat","redhat_security"],"description": "Check the `spec.version` value in the ClusterServiceVersion manifest of the OLM bundle uses a properly formatted semver.","title": "ClusterServiceVersion semver format"}},{"msg": "Pass","metadata": {"code": "olm.feature_annotations_format","collections": ["redhat"],"description": "Check the feature annotations in the ClusterServiceVersion manifest of the OLM bundle. All of required feature annotations must be present and set to either the string `\"true\"` or the string `\"false\"`. The list of feature annotations can be customize via the `required_olm_features_annotations` rule data.","title": "Feature annotations have expected value"}},{"msg": "Pass","metadata": {"code": "olm.inaccessible_related_images","collections": ["redhat"],"description": "Check the input image for the presence of related images. Ensure that all images are accessible.","effective_on": "2025-03-10T00:00:00Z","title": "Unable to access related images for a component"}},{"msg": "Pass","metadata": {"code": "olm.olm_bundle_multi_arch","collections": ["redhat"],"description": "OLM bundle images should be built for a single architecture. They should not be OCI image indexes nor should they be Docker v2s2 manifest lists.","effective_on": "2025-05-01T00:00:00Z","title": "OLM bundle images are not multi-arch"}},{"msg": "Pass","metadata": {"code": "olm.required_network_policy_rbac_for_operands","collections": ["redhat","redhat_security"],"description": "Operators are required to manage the network policies of their operands. This rule verifies that operator bundles request sufficient RBAC permissions to manage NetworkPolicy lifecycle (create, delete, and update/patch) for networking.k8s.io/networkpolicies in their ClusterServiceVersion. Bundles whose operator name and major.minor version are listed in the `operator_network_policy_rbac_exceptions` rule data key are exempt from this requirement.","effective_on": "2026-08-07T00:00:00Z","title": "NetworkPolicy RBAC present in OLM bundle"}},{"msg": "Pass","metadata": {"code": "olm.required_olm_features_annotations_provided","collections": ["redhat","policy_data"],"description": "Confirm the `required_olm_features_annotations` rule data was provided, since it's required by the policy rules in this package.","title": "Required OLM feature annotations list provided"}},{"msg": "Pass","metadata": {"code": "olm.subscriptions_annotation_format","collections": ["redhat"],"description": "Check the value of the operators.openshift.io/valid-subscription annotation from the ClusterServiceVersion manifest is in the expected format, i.e. JSON encoded non-empty array of strings.","effective_on": "2024-04-18T00:00:00Z","title": "Subscription annotation has expected value"}},{"msg": "Pass","metadata": {"code": "olm.unmapped_references","collections": ["redhat"],"description": "Check the OLM bundle image for the presence of unmapped image references. Unmapped image pull references are references to images found in link:https://osbs.readthedocs.io/en/latest/users.html#pullspec-locations[varying locations] that are either not in the RPA about to be released or not accessible already.","effective_on": "2024-08-15T00:00:00Z","title": "Unmapped images in OLM bundle"}},{"msg": "Pass","metadata": {"code": "olm.unpinned_references","collections": ["redhat","redhat_security"],"description": "Check the OLM bundle image for the presence of unpinned image references. Unpinned image pull references are references to images found in link:https://osbs.readthedocs.io/en/latest/users.html#pullspec-locations[varying locations] that do not contain a digest -- uniquely identifying the version of the image being pulled.","title": "Unpinned images in OLM bundle"}},{"msg": "Pass","metadata": {"code": "olm.unpinned_related_images","collections": ["redhat","redhat_security"],"description": "Check the input image for the presence of related images. Ensure all related image references include a digest.","title": "Unpinned related images for a component"}},{"msg": "Pass","metadata": {"code": "olm.unpinned_snapshot_references","collections": ["redhat","redhat_security"],"description": "Check the input snapshot for the presence of unpinned image references. Unpinned image pull references are references to images that do not contain a digest -- uniquely identifying the version of the image being pulled.","effective_on": "2024-08-15T00:00:00Z","title": "Unpinned images in input snapshot"}},{"msg": "Pass","metadata": {"code": "pre_build_script_task.pre_build_script_task_runner_image_allowed","collections": ["redhat","redhat_security"],"depends_on": ["attestation_type.known_attestation_type","base_image_registries.allowed_registries_provided"],"description": "Verify that the images used to run the pre-build script tasks come from a known set of trusted registries to reduce potential supply chain attacks. By default this policy defines trusted registries as registries that are fully maintained by Red Hat and only contain content produced by Red Hat. The list of allowed registries can be customized by setting the `allowed_registry_prefixes` list in the rule data.","title": "Script runner image comes from allowed registry"}},{"msg": "Pass","metadata": {"code": "pre_build_script_task.pre_build_script_task_runner_image_in_results","collections": ["redhat", "redhat_security"],"description": "Verify that the image used to run the pre-build script task is listed in the task result SCRIPT_RUNNER_IMAGE_REFERENCE","title": "Script runner image is listed in the task results"}},{"msg": "Pass","metadata": {"code": "pre_build_script_task.pre_build_script_task_runner_image_in_sbom","collections": ["redhat","redhat_security"],"description": "Verify that the image used to run the pre-build script task is included in the SBOM","title": "Script runner image is included in the sbom"}},{"msg": "Pass","metadata": {"code": "pre_build_script_task.valid_pre_build_script_task_runner_image_ref","collections": ["redhat","redhat_security"],"description": "Verify that a valid image reference is specified as image being used to run the pre-build script task","title": "Script runner image is a valid image reference"}},{"msg": "Pass","metadata": {"code": "prefetch_dependencies.mode_not_permissive","collections": ["redhat","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify the prefetch-dependencies task in the PipelineRun attestation was not invoked with the \"permissive\" mode parameter, which could compromise security.","title": "Prefetch dependencies mode parameter check"}},{"msg": "Pass","metadata": {"code": "prefetch_dependencies.package_registry_proxy_enabled","collections": ["redhat","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify that prefetch-dependencies tasks have the enable-package-registry-proxy parameter set to true. This ensures that dependency prefetching uses the package registry proxy.","effective_on": "2026-05-13T00:00:00Z","title": "Prefetch task has package registry proxy enabled"}},{"msg": "Pass","metadata": {"code": "provenance_materials.git_clone_source_matches_provenance","collections": ["minimal","redhat","redhat_rpms","redhat_security"],"depends_on": ["provenance_materials.git_clone_task_found"],"description": "Confirm that the result of the git-clone task is included in the materials section of the SLSA provenance attestation.","title": "Git clone source matches materials provenance"}},{"msg": "Pass","metadata": {"code": "provenance_materials.git_clone_task_found","collections": ["minimal","redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Confirm that the attestation contains a git-clone task with `commit` and `url` task results.","title": "Git clone task found"}},{"msg": "Pass","metadata": {"code": "quay_expiration.expires_label","collections": ["redhat"],"description": "Check the image metadata for the presence of a \"quay.expires-after\" label. If it's present then produce a violation. This check is enforced only for a \"release\", \"production\", or \"staging\" pipeline, as determined by the value of the `pipeline_intention` rule data.","title": "Expires label"}},{"msg": "Pass","metadata": {"code": "rpm_ostree_task.builder_image_param","collections": ["redhat","redhat_security"],"description": "Verify the BUILDER_IMAGE parameter of the rpm-ostree Task uses an image reference that is both pinned to a digest and starts with a pre-defined list of prefixes. By default, the list of prefixes is empty allowing any pinned image reference to be used. This is customizable via the `allowed_rpm_ostree_builder_image_prefixes` rule data.","effective_on": "2024-03-20T00:00:00Z","title": "Builder image parameter"}},{"msg": "Pass","metadata": {"code": "rpm_ostree_task.rule_data","collections": ["redhat","redhat_security"],"description": "Verify the rule data used by this package, `allowed_rpm_ostree_builder_image_prefixes`, is in the expected format.","title": "Rule data"}},{"msg": "Pass","metadata": {"code": "rpm_packages.unique_version","collections": ["redhat"],"description": "Check if a multi-arch build has the same RPM versions installed across each different architecture. This check only applies for Image Indexes, aka multi-platform images. Use the `non_unique_rpm_names` rule data key to ignore certain RPMs.","title": "Unique Version"}},{"msg": "Pass","metadata": {"code": "rpm_repos.ids_known","collections": ["redhat","redhat_rpms","redhat_security"],"description": "Each RPM package listed in an SBOM must specify the repository id that it comes from, and that repository id must be present in the list of known and permitted repository ids. Currently this is rule enforced only for SBOM components created by cachi2.","effective_on": "2024-11-10T00:00:00Z","title": "All rpms have known repo ids"}},{"msg": "Pass","metadata": {"code": "rpm_repos.rule_data_provided","collections": ["redhat","redhat_rpms","policy_data","redhat_security"],"description": "A list of known and permitted repository ids should be available in the rule data.","title": "Known repo id list provided"}},{"msg": "Pass","metadata": {"code": "rpm_signature.allowed","collections": ["redhat","redhat_rpms","redhat_security"],"description": "The SLSA Provenance attestation for the image is inspected to ensure RPMs have been signed by pre-defined set of signing keys. The list of signing keys can be set via the `allowed_rpm_signature_keys` rule data. Use the special value \"unsigned\" to allow unsigned RPMs.","effective_on": "2024-10-05T00:00:00Z","title": "Allowed RPM signature key"}},{"msg": "Pass","metadata": {"code": "rpm_signature.result_format","collections": ["redhat","redhat_rpms","redhat_security"],"description": "Confirm the format of the RPMS_DATA result is in the expected format.","effective_on": "2024-10-05T00:00:00Z","title": "Result format"}},{"msg": "Pass","metadata": {"code": "rpm_signature.rule_data_provided","collections": ["redhat","redhat_rpms","policy_data","redhat_security"],"description": "Confirm the expected `allowed_rpm_signature_keys` rule data key has been provided in the expected format.","effective_on": "2024-10-05T00:00:00Z","title": "Rule data provided"}},{"msg": "Pass","metadata": {"code": "sbom.disallowed_packages_provided","collections": ["redhat","policy_data","redhat_rpms","redhat_security"],"description": "Confirm the `disallowed_packages` and `disallowed_attributes` rule data were provided, since they are required by the policy rules in this package.","title": "Disallowed packages list is provided"}},{"msg": "Pass","metadata": {"code": "sbom.found","collections": ["minimal","redhat","redhat_security"],"description": "Confirm an SBOM attestation exists.","title": "Found"}},{"msg": "Pass","metadata": {"code": "sbom_cyclonedx.allowed","collections": ["redhat","redhat_rpms","redhat_security"],"description": "Confirm the CycloneDX SBOM contains only allowed packages. By default all packages are allowed. Use the \"disallowed_packages\" rule data key to provide a list of disallowed packages.","title": "Allowed"}},{"msg": "Pass","metadata": {"code": "sbom_cyclonedx.allowed_package_external_references","collections": ["redhat","redhat_rpms","policy_data","redhat_security"],"description": "Confirm the CycloneDX SBOM contains only packages with explicitly allowed external references. By default all external references are allowed unless the \"allowed_external_references\" rule data key provides a list of type-pattern pairs that forbid the use of any other external reference of the given type where the reference url matches the given pattern.","title": "Allowed package external references"}},{"msg": "Pass","metadata": {"code": "sbom_cyclonedx.allowed_package_sources","collections": ["redhat","redhat_rpms","policy_data","redhat_security"],"description": "For each of the components fetched by Hermeto which define externalReferences of type distribution, verify they are allowed based on the allowed_package_sources rule data key. By default, allowed_package_sources is empty, which means no components with such references are allowed.","effective_on": "2024-12-15T00:00:00Z","title": "Allowed package sources"}},{"msg": "Pass","metadata": { "code": "sbom_cyclonedx.allowed_proxy_urls","collections": ["redhat","policy_data","redhat_security"],"description": "For components found by Hermeto with a PURL type listed in proxy_enabled_purl_types that are registry dependencies (no download_url or vcs_url qualifier, not bundled), verify proxy URLs in externalReferences of type distribution with comment \"proxy URL\" match at least one pattern from allowed_proxy_url_patterns. The \"proxy_enabled_purl_types\" rule data key is a list of PURL type strings (e.g. [\"maven\", \"npm\"]). The \"allowed_proxy_url_patterns\" rule data key is an object mapping each PURL type string to a list of regular expression patterns (e.g. {\"maven\": [\"^https://proxy\\\\.example\\\\.com/maven/.*\"]}). If a PURL type is listed in proxy_enabled_purl_types but has no entry in allowed_proxy_url_patterns, all components of that type are denied.","effective_on": "2026-06-01T00:00:00Z","title": "Allowed proxy URLs"}},{"msg": "Pass","metadata": {"code": "sbom_cyclonedx.cdx_supported_version","collections": ["minimal","redhat","redhat_rpms","redhat_security"],"description": "Check that the CycloneDX SBOM specifies a supported schema version (1.4, 1.5 or 1.6).","title": "Supported Version"}},{"msg": "Pass","metadata": {"code": "sbom_cyclonedx.disallowed_package_attributes","collections": ["redhat","redhat_rpms","policy_data","redhat_security"],"description": "Confirm the CycloneDX SBOM contains only packages without disallowed attributes. By default all attributes are allowed. Use the \"disallowed_attributes\" rule data key to provide a list of key-value pairs that forbid the use of an attribute set to the given value. Each entry may include an optional \"except_when\" field to suppress violations when a PURL qualifier matches specified regex patterns.","effective_on": "2024-07-31T00:00:00Z","title": "Disallowed package attributes"}},{"msg": "Pass","metadata": {"code": "sbom_cyclonedx.disallowed_package_external_references","collections": ["redhat","redhat_rpms","policy_data","redhat_security"],"description": "Confirm the CycloneDX SBOM contains only packages without disallowed external references. By default all external references are allowed. Use the \"disallowed_external_references\" rule data key to provide a list of type-pattern pairs that forbid the use of an external reference of the given type where the reference url matches the given pattern.","effective_on": "2024-07-31T00:00:00Z","title": "Disallowed package external references"}},{"msg": "Pass","metadata": {"code": "sbom_cyclonedx.experimental_hermeto_backend","collections": ["minimal","redhat","redhat_rpms"],"description": "Verify that no components in the CycloneDX SBOM were fetched using an experimental Hermeto backend. Experimental backends are identified by top-level annotations whose text starts with \"hermeto:backend:experimental:\".","effective_on": "2026-08-01T00:00:00Z","title": "Experimental Hermeto backend"}},{"msg": "Pass","metadata": {"code": "sbom_cyclonedx.hermeto_attribution_required","collections": ["redhat","policy_data","redhat_security"],"description": "Registry dependencies with a PURL type listed in vendored_purl_types must be processed by Hermeto. When a hermetic build omits prefetch-input for a vendored ecosystem, Hermeto never runs and the SBOM contains only Syft-reported module-level data, which is insufficient for CVE analysis. This rule denies any such component that lacks the hermeto:found_by (or cachi2:found_by) property.","effective_on": "2026-10-01T00:00:00Z","title": "Hermeto attribution required"}},{"msg": "Pass","metadata": {"code": "sbom_cyclonedx.proxy_metadata_required","collections": ["redhat","policy_data","redhat_security"],"description": "For components found by Hermeto with a PURL type listed in proxy_enabled_purl_types that are registry dependencies (no download_url or vcs_url qualifier, not bundled), verify that proxy metadata is present. In CycloneDX, this means at least one externalReference with type \"distribution\" and comment \"proxy URL\" must exist.","effective_on": "2026-05-13T00:00:00Z","title": "Proxy metadata required"}},{"msg": "Pass","metadata": {"code": "sbom_cyclonedx.valid_cdx_1_4","collections": ["minimal","redhat","redhat_rpms","redhat_security"],"description": "Check the CycloneDX SBOM has the expected format. It verifies the CycloneDX SBOM matches the 1.4 version of the schema.","title": "Valid 1.4"}},{"msg": "Pass","metadata": {"code": "sbom_cyclonedx.valid_cdx_1_5","collections": ["minimal","redhat","redhat_rpms","redhat_security"],"description": "Check the CycloneDX SBOM has the expected format. It verifies the CycloneDX SBOM matches the 1.5 version of the schema.","title": "Valid 1.5"}},{"msg": "Pass","metadata": {"code": "sbom_cyclonedx.valid_cdx_1_6","collections": ["minimal","redhat","redhat_rpms","redhat_security"],"description": "Check the CycloneDX SBOM has the expected format. It verifies the CycloneDX SBOM matches the 1.6 version of the schema.","title": "Valid 1.6"}},{"msg": "Pass","metadata": {"code": "sbom_spdx.allowed","collections": ["redhat","redhat_rpms","redhat_security"],"description": "Confirm the SPDX SBOM contains only allowed packages. By default all packages are allowed. Use the \"disallowed_packages\" rule data key to provide a list of disallowed packages.","title": "Allowed"}},{"msg": "Pass","metadata": {"code": "sbom_spdx.allowed_package_external_references","collections": ["redhat","redhat_rpms","policy_data","redhat_security"],"description": "Confirm the SPDX SBOM contains only packages with explicitly allowed external references. By default all external references are allowed unless the \"allowed_external_references\" rule data key provides a list of type-pattern pairs that forbid the use of any other external reference of the given type where the reference url matches the given pattern.","title": "Allowed package external references"}},{"msg": "Pass","metadata": {"code": "sbom_spdx.allowed_package_sources","collections": ["redhat","redhat_rpms","policy_data","redhat_security"],"description": "For each of the packages fetched by Hermeto which define externalReferences, verify they are allowed based on the allowed_package_sources rule data key. By default, allowed_package_sources is empty, which means no components with such references are allowed.","effective_on": "2025-02-17T00:00:00Z","title": "Allowed package sources"}},{"msg": "Pass","metadata": {"code": "sbom_spdx.allowed_proxy_urls","collections": ["redhat","policy_data","redhat_security"],"description": "For packages found by Hermeto with a PURL type listed in proxy_enabled_purl_types that are registry dependencies (no download_url or vcs_url qualifier, not bundled), verify each proxy URL in sourceInfo matches at least one pattern from allowed_proxy_url_patterns. Hermeto records proxy URLs in the sourceInfo field, semicolon-separated when multiple proxies are used. The \"proxy_enabled_purl_types\" rule data key is a list of PURL type strings (e.g. [\"maven\", \"npm\"]). The \"allowed_proxy_url_patterns\" rule data key is an object mapping each PURL type string to a list of regular expression patterns (e.g. {\"maven\": [\"^https://proxy\\\\.example\\\\.com/maven/.*\"]}). If a PURL type is listed in proxy_enabled_purl_types but has no entry in allowed_proxy_url_patterns, all packages of that type are denied.","effective_on": "2026-06-01T00:00:00Z","title": "Allowed proxy URLs"}},{"msg": "Pass","metadata": {"code": "sbom_spdx.disallowed_package_attributes","collections": ["redhat","redhat_rpms","policy_data","redhat_security"], "description": "Confirm the SPDX SBOM contains only packages without disallowed attributes. By default all attributes are allowed. Use the \"disallowed_attributes\" rule data key to provide a list of key-value pairs that forbid the use of an attribute set to the given value. Each entry may include an optional \"except_when\" field to suppress violations when a PURL qualifier matches specified regex patterns.","effective_on": "2025-02-04T00:00:00Z","title": "Disallowed package attributes"}},{"msg": "Pass","metadata": {"code": "sbom_spdx.disallowed_package_external_references","collections": ["redhat","redhat_rpms","policy_data","redhat_security"],"description": "Confirm the SPDX SBOM contains only packages without disallowed external references. By default all external references are allowed. Use the \"disallowed_external_references\" rule data key to provide a list of type-pattern pairs that forbid the use of an external reference of the given type where the reference url matches the given pattern.","effective_on": "2024-07-31T00:00:00Z","title": "Disallowed package external references"}},{"msg": "Pass","metadata": {"code": "sbom_spdx.experimental_hermeto_backend","collections": ["minimal","redhat","redhat_rpms"],"description": "Verify that no packages in the SPDX SBOM were fetched using an experimental Hermeto backend. Experimental backends are identified by annotations with annotator \"Tool: hermeto:backend\" whose comment starts with \"hermeto:backend:experimental:\".","effective_on": "2026-08-01T00:00:00Z","title": "Experimental Hermeto backend"}},{"msg": "Pass","metadata": {"code": "sbom_spdx.hermeto_attribution_required","collections": ["redhat","policy_data","redhat_security"],"description": "Registry dependencies with a PURL type listed in vendored_purl_types must be processed by Hermeto. When a hermetic build omits prefetch-input for a vendored ecosystem, Hermeto never runs and the SBOM contains only Syft-reported module-level data, which is insufficient for CVE analysis. This rule denies any such package that lacks the hermeto:found_by (or cachi2:found_by) annotation.","effective_on": "2026-10-01T00:00:00Z","title": "Hermeto attribution required"}},{"msg": "Pass","metadata": {"code": "sbom_spdx.proxy_metadata_required","collections": ["redhat","policy_data","redhat_security"],"description": "For packages found by Hermeto with a PURL type listed in proxy_enabled_purl_types that are registry dependencies (no download_url or vcs_url qualifier, not bundled), verify that proxy metadata is present. In SPDX, the sourceInfo field must be non-empty.","effective_on": "2026-05-13T00:00:00Z","title": "Proxy metadata required"}},{"msg": "Pass","metadata": {"code": "sbom_spdx.valid","collections": ["minimal","redhat","redhat_rpms","redhat_security"],"description": "Check the SPDX SBOM has the expected format. It verifies the SPDX SBOM matches the 2.3 version of the schema.","title": "Valid"}},{"msg": "Pass","metadata": {"code": "schedule.date_restriction","collections": ["redhat"],"description": "Check if the current date is not allowed based on the rule data value from the key `disallowed_dates`. By default, the list is empty in which case *any* day is allowed. This check is enforced only for a \"release\" or \"production\" pipeline, as determined by the value of the `pipeline_intention` rule data.","title": "Date Restriction"}},{"msg": "Pass","metadata": {"code": "schedule.rule_data_provided","collections": ["redhat","policy_data"],"description": "Confirm the expected rule data keys have been provided in the expected format. The keys are `disallowed_weekdays` and `disallowed_dates`.","title": "Rule data provided"}},{"msg": "Pass","metadata": {"code": "schedule.weekday_restriction","collections": ["redhat"],"description": "Check if the current weekday is allowed based on the rule data value from the key `disallowed_weekdays`. By default, the list is empty in which case *any* weekday is allowed. This check is enforced only for a \"release\" or \"production\" pipeline, as determined by the value of the `pipeline_intention` rule data.","title": "Weekday Restriction"}},{"msg": "Pass","metadata": {"code": "slsa_build_build_service.allowed_builder_ids_provided","collections": ["slsa3","redhat","redhat_rpms","policy_data","redhat_security"],"description": "Confirm the `allowed_builder_ids` rule data was provided, since it is required by the policy rules in this package.","title": "Allowed builder IDs provided"}},{"msg": "Pass","metadata": {"code": "slsa_build_build_service.slsa_builder_id_accepted","collections": ["slsa3","redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify that the attestation attribute predicate.builder.id is set to one of the values in the `allowed_builder_ids` rule data, e.g. \"https://tekton.dev/chains/v2\".","title": "SLSA Builder ID is known and accepted"}},{"msg": "Pass","metadata": {"code": "slsa_build_build_service.slsa_builder_id_found","collections": ["slsa3","redhat","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify that the attestation attribute predicate.builder.id is set.","title": "SLSA Builder ID found"}},{"msg": "Pass","metadata": {"code": "slsa_build_scripted_build.build_script_used","collections": ["slsa3","redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify that the predicate.buildConfig.tasks.steps attribute for the task responsible for building and pushing the image is not empty.","title": "Build task contains steps"}},{"msg": "Pass","metadata": {"code": "slsa_build_scripted_build.build_task_image_results_found","collections": ["slsa3","redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Confirm that a build task exists and it has the expected IMAGE_DIGEST and IMAGE_URL task results.","title": "Build task set image digest and url task results"}},{"msg": "Pass","metadata": {"code": "slsa_build_scripted_build.image_built_by_trusted_task","collections": ["redhat","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify the digest of the image being validated is reported by a trusted Task in its IMAGE_DIGEST result.","title": "Image built by trusted Task"}},{"msg": "Pass","metadata": {"code": "slsa_build_scripted_build.subject_build_task_matches","collections": ["slsa3","redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify the subject of the attestations matches the IMAGE_DIGEST and IMAGE_URL values from the build task.","title": "Provenance subject matches build task image result"}},{"msg": "Pass","metadata": {"code": "slsa_provenance_available.allowed_predicate_types_provided","collections": ["minimal","slsa3","redhat","redhat_rpms","policy_data","redhat_security"],"description": "Confirm the `allowed_predicate_types` rule data was provided, since it is required by the policy rules in this package.","title": "Allowed predicate types provided"}},{"msg": "Pass","metadata": {"code": "slsa_provenance_available.attestation_predicate_type_accepted","collections": ["minimal","slsa3","redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify that the predicateType field of the attestation indicates the in-toto SLSA Provenance format was used to attest the PipelineRun.","title": "Expected attestation predicate type found"}},{"msg": "Pass","metadata": {"code": "slsa_source_correlated.attested_source_code_reference","collections": ["minimal","slsa3","redhat","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Attestation contains source reference.","title": "Source reference"}},{"msg": "Pass","metadata": {"code": "slsa_source_correlated.expected_source_code_reference", "collections": ["minimal","slsa3","redhat","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify that the provided source code reference is the one being attested.","title": "Expected source code reference"}},{"msg": "Pass","metadata": {"code": "slsa_source_correlated.rule_data_provided","collections": ["minimal","slsa3","redhat","redhat_rpms","policy_data","redhat_security"],"description": "Confirm the expected rule data keys have been provided in the expected format. The keys are `supported_vcs` and `supported_digests`.","title": "Rule data provided"}},{"msg": "Pass","metadata": {"code": "slsa_source_version_controlled.materials_format_okay","collections": ["minimal","slsa3","redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Confirm at least one entry in the predicate.materials array of the attestation contains the expected attributes: uri and digest.sha1.","title": "Materials have uri and digest"}},{"msg": "Pass","metadata": {"code": "slsa_source_version_controlled.materials_include_git_sha","collections": ["minimal","slsa3","redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Ensure that each entry in the predicate.materials array with a SHA-1 digest includes a valid Git commit SHA.","title": "Materials include git commit shas"}},{"msg": "Pass","metadata": {"code": "slsa_source_version_controlled.materials_uri_is_git_repo","collections": ["minimal","slsa3","redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Ensure each entry in the predicate.materials array with a SHA-1 digest includes a valid Git URI.","title": "Material uri is a git repo"}},{"msg": "Pass","metadata": {"code": "source_image.exists","collections": ["redhat","redhat_security"],"description": "Verify the source container image exists.","effective_on": "2024-06-05T00:00:00Z","title": "Exists"}},{"msg": "Pass","metadata": {"code": "source_image.signed","collections": ["redhat","redhat_security"],"depends_on": ["source_image.exists"],"description": "Verify the source container image is signed.","effective_on": "2024-05-04T00:00:00Z","title": "Signed"}},{"msg": "Pass","metadata": {"code": "tasks.data_provided","collections": ["redhat","redhat_rpms","policy_data","redhat_security"],"description": "Confirm the expected data keys have been provided in the expected format. The keys are `pipeline-required-tasks` and `required-tasks`.","title": "Data provided"}},{"msg": "Pass","metadata": {"code": "tasks.future_required_tasks_found","collections": ["redhat","redhat_rpms"],"depends_on": ["tasks.pipeline_has_tasks"],"description": "Produce a warning when a task that will be required in the future was not included in the PipelineRun attestation.","title": "Future required tasks were found"}},{"msg": "Pass","metadata": {"code": "tasks.pinned_task_refs","collections": ["redhat","redhat_security"],"depends_on": ["tasks.pipeline_has_tasks"],"description": "Ensure that all Tasks in the SLSA Provenance attestation use an immuntable reference to the Task definition.","title": "Pinned Task references"}},{"msg": "Pass","metadata": {"code": "tasks.pipeline_has_tasks","collections": ["minimal","redhat","redhat_rpms","slsa3","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Ensure that at least one Task is present in the PipelineRun attestation.","title": "Pipeline run includes at least one task"}},{"msg": "Pass","metadata": {"code": "tasks.pipeline_required_tasks_list_provided","collections": ["redhat","redhat_rpms","redhat_security"],"depends_on": ["tasks.pipeline_has_tasks"],"description": "Produce a warning if the required tasks list rule data was not provided.","title": "Required tasks list for pipeline was provided"}},{"msg": "Pass","metadata": {"code": "tasks.required_tasks_found","collections": ["redhat","redhat_security"],"depends_on": ["tasks.pipeline_has_tasks"],"description": "Ensure that the set of required tasks are included in the PipelineRun attestation.","title": "All required tasks were included in the pipeline"}},{"msg": "Pass","metadata": {"code": "tasks.required_tasks_list_provided","collections": ["redhat","redhat_rpms","redhat_security"],"depends_on": ["tasks.pipeline_has_tasks"],"description": "Confirm the `required-tasks` rule data was provided, since it's required by the policy rules in this package.","title": "Required tasks list was provided"}},{"msg": "Pass","metadata": {"code": "tasks.required_untrusted_task_found","collections": ["redhat","redhat_rpms","redhat_security"],"depends_on": ["tasks.pipeline_has_tasks"],"description": "Ensure that the all required tasks are resolved from trusted tasks.","title": "All required tasks are from trusted tasks"}},{"msg": "Pass","metadata": {"code": "tasks.successful_pipeline_tasks","collections": ["minimal","redhat","redhat_rpms","slsa3","redhat_security"],"depends_on": ["tasks.pipeline_has_tasks"],"description": "Ensure that all of the Tasks in the Pipeline completed successfully. Note that skipped Tasks are not taken into account and do not influence the outcome.","title": "Successful pipeline tasks"}},{"msg": "Pass","metadata": {"code": "test.no_erred_tests","collections": ["redhat","redhat_security"],"depends_on": ["test.test_data_found"],"description": "Produce a violation if any tests have their result set to \"ERROR\". The result type is configurable by the \"erred_tests_results\" key in the rule data.","title": "No tests erred"}},{"msg": "Pass","metadata": {"code": "test.no_failed_tests","collections": ["redhat","redhat_security"],"depends_on": ["test.test_data_found"],"description": "Produce a violation if any non-informative tests have their result set to \"FAILED\". The result type is configurable by the \"failed_tests_results\" key, and the list of informative tests is configurable by the \"informative_tests\" key in the rule data.","title": "No tests failed"}},{"msg": "Pass","metadata": {"code": "test.no_skipped_tests","collections": ["redhat","redhat_security"],"depends_on": ["test.test_data_found"],"description": "Produce a violation if any tests have their result set to \"SKIPPED\". A skipped result means a pre-requirement for executing the test was not met, e.g. a license key for executing a scanner was not provided. The result type is configurable by the \"skipped_tests_results\" key in the rule data.","effective_on": "2023-12-08T00:00:00Z","title": "No tests were skipped"}},{"msg": "Pass","metadata": {"code": "test.no_test_warnings","collections": ["redhat"],"depends_on": ["test.test_data_found"],"description": "Produce a warning if any tests have their result set to \"WARNING\". The result type is configurable by the \"warned_tests_results\" key in the rule data.","title": "No tests produced warnings"}},{"msg": "Pass","metadata": {"code": "test.rule_data_provided","collections": ["redhat","policy_data","redhat_security"],"description": "Confirm the expected rule data keys have been provided in the expected format. The keys are `supported_tests_results`, `failed_tests_results`, `informative_tests`, `erred_tests_results`, `skipped_tests_results`, and `warned_tests_results`.","title": "Rule data provided"}},{"msg": "Pass","metadata": {"code": "test.test_all_images","collections": ["redhat","redhat_security"],"description": "Ensure that task producing the IMAGES_PROCESSED result contains the digests of the built image.","effective_on": "2024-05-29T00:00:00Z","title": "Image digest is present in IMAGES_PROCESSED result"}},{"msg": "Pass","metadata": {"code": "test.test_data_found","collections": ["redhat","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Ensure that at least one of the tasks in the pipeline includes a TEST_OUTPUT task result, which is where Conforma expects to find test result data.", "title": "Test data found in task results"}},{"msg": "Pass","metadata": {"code": "test.test_results_found","collections": ["redhat","redhat_security"],"depends_on": ["test.test_data_found"],"description": "Each test result is expected to have a `results` key. Verify that the `results` key is present in all of the TEST_OUTPUT task results.","title": "Test data includes results key"}},{"msg": "Pass","metadata": {"code": "test.test_results_known","collections": ["redhat","redhat_security"],"depends_on": ["test.test_data_found"],"description": "Ensure all test data result values are in the set of known/supported result values.","title": "No unsupported test result values found"}},{"msg": "Pass","metadata": {"code": "test_attestation.no_erred_test_attestations","collections": ["redhat"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Produce a violation if any test result attestation has an erred result. The result type is configurable by the \"erred_test_attestation_results\" key in the rule data.","title": "No erred test attestations"}},{"msg": "Pass","metadata": {"code": "test_attestation.no_failed_informative_test_attestations","collections": ["redhat"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Produce a warning if any informative test attestation has a failed result. Informative tests produce warnings instead of violations, allowing teams to roll out new tests without blocking releases. The list of informative tests is configurable by the \"informative_test_attestations\" key, and the result type by the \"failed_test_attestation_results\" key in the rule data.","title": "No failed informative test attestations"}},{"msg": "Pass","metadata": {"code": "test_attestation.no_failed_tests","collections": ["redhat","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Produce a violation if any non-informative test result attestation has a failed result. Failed test names from the attestation predicate are included in the message when available. The result type is configurable by the \"failed_test_attestation_results\" key, and the list of informative tests by the \"informative_test_attestations\" key in the rule data.","title": "No failed test attestations"}},{"msg": "Pass","metadata": {"code": "test_attestation.no_skipped_test_attestations","collections": ["redhat"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Produce a violation if any test result attestation has a skipped result. A skipped result means a pre-requirement for executing the test was not met. The result type is configurable by the \"skipped_test_attestation_results\" key in the rule data.","title": "No skipped test attestations"}},{"msg": "Pass","metadata": {"code": "test_attestation.no_test_warnings","collections": ["redhat"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Produce a warning if any test result attestation has a warned result. Warned test names from the attestation predicate are included in the message when available. The result type is configurable by the \"warned_test_attestation_results\" key in the rule data.","title": "No test attestation warnings"}},{"msg": "Pass","metadata": {"code": "test_attestation.rule_data_provided","collections": ["redhat","policy_data"],"description": "Confirm the expected rule data keys have been provided in the expected format. The keys are \"supported_test_attestation_results\", \"failed_test_attestation_results\", \"erred_test_attestation_results\", \"skipped_test_attestation_results\", \"warned_test_attestation_results\", and \"informative_test_attestations\".","title": "Rule data provided"}},{"msg": "Pass","metadata": {"code": "test_attestation.subject_mismatch","collections": ["redhat"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify that each test-result attestation's subject includes the digest of the image being evaluated. An attestation produced for a different image should not satisfy this image's test requirements.","title": "Test attestation subject matches image"}},{"msg": "Pass","metadata": {"code": "test_attestation.test_data_found","collections": ["redhat","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Each test result attestation must include a result field in its predicate. Verify that the result field is present.","title": "Test attestation data includes result"}},{"msg": "Pass","metadata": {"code": "test_attestation.test_result_known","collections": ["redhat","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Ensure the result field of each test result attestation is a recognized value. Valid values are configurable by the \"supported_test_attestation_results\" key in the rule data. Defaults are PASSED, WARNED, FAILED, ERROR, and SKIPPED per the in-toto test-result predicate specification.","title": "No unsupported test attestation result values"}},{"msg": "Pass","metadata": {"code": "trusted_task.current","collections": ["redhat","redhat_rpms","redhat_security"],"description": "Check if all Tekton Tasks use the latest known Task reference. When warnings will be reported can be configured using the `task_expiry_warning_days` rule data setting. It holds the number of days before the task is to expire within which the warnings will be reported.","effective_on": "2024-05-07T00:00:00Z","title": "Tasks using the latest versions"}},{"msg": "Pass","metadata": {"code": "trusted_task.data","collections": ["redhat","redhat_rpms","redhat_security"],"description": "Confirm the `trusted_tasks` rule data was provided, since it's required by the policy rules in this package.","effective_on": "2024-05-07T00:00:00Z","title": "Task tracking data was provided"}},{"msg": "Pass","metadata": {"code": "trusted_task.data_format","collections": ["redhat","redhat_rpms","policy_data","redhat_security"],"description": "Confirm the expected `trusted_tasks` data keys have been provided in the expected format.","title": "Data format"}},{"msg": "Pass","metadata": {"code": "trusted_task.pinned","collections": ["redhat","redhat_rpms","redhat_security"],"description": "Check if all Tekton Tasks use a Task definition by a pinned reference. When using the git resolver, a commit ID is expected for the revision parameter. When using the bundles resolver, the bundle parameter is expected to include an image reference with a digest.","effective_on": "2024-05-07T00:00:00Z","title": "Task references are pinned"}},{"msg": "Pass","metadata": {"code": "trusted_task.tagged","collections": ["redhat","redhat_rpms"],"description": "Check if all Tekton Tasks defined with the bundle format contain a tag reference.","effective_on": "2024-05-07T00:00:00Z","title": "Task references are tagged"}},{"msg": "Pass","metadata": {"code": "trusted_task.trusted","collections": ["redhat","redhat_security"],"description": "Check the trust of the Tekton Tasks used in the build Pipeline. There are two modes in which trust is verified. The first mode is used if Trusted Artifacts are enabled. In this case, a chain of trust is established for all the Tasks involved in creating an artifact. If the chain contains an untrusted Task, then a violation is emitted. The second mode is used as a fallback when Trusted Artifacts are not enabled. In this case, **all** Tasks in the build Pipeline must be trusted.","effective_on": "2024-05-07T00:00:00Z","title": "Tasks are trusted"}},{"msg": "Pass","metadata": {"code": "trusted_task.trusted_parameters","collections": ["redhat","redhat_security"],"description": "Confirm certain parameters provided to each builder Task have come from trusted Tasks. Trust can be defined using pattern-based rules (trusted_task_rules) or an explicit allow list with expiry dates (trusted_tasks).","effective_on": "2021-07-04T00:00:00Z","title": "Trusted parameters"}},{"msg": "Pass","metadata": { "code": "trusted_task.valid_trusted_artifact_inputs","collections": ["redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "All input trusted artifacts must be produced on the pipeline. If they are not the artifact could have been injected by a rogue task.","title": "Trusted Artifact produced in pipeline"}},{"msg": "Pass","metadata": {"code": "volatile_config.expired_rule","collections": ["minimal","redhat"],"description": "Generates a warning when a volatile configuration rule has passed its effectiveUntil date. Expired rules are no longer active and should be removed from the policy configuration.","title": "Volatile rule has expired"}},{"msg": "Pass","metadata": {"code": "volatile_config.expiring_rule","collections": ["minimal","redhat"],"description": "Generates a warning when a volatile configuration rule will expire within the configured warning threshold (default 30 days). This provides advance notice to extend or replace the rule before it expires.","title": "Volatile rule expiring soon"}},{"msg": "Pass","metadata": {"code": "volatile_config.invalid_config","collections": ["minimal","redhat"],"description": "Generates a warning when a volatile configuration rule has invalid date values that cannot be parsed. This indicates a configuration error that should be corrected.","title": "Volatile rule has invalid configuration"}},{"msg": "Pass","metadata": {"code": "volatile_config.no_expiration","collections": ["minimal","redhat"],"description": "Generates a warning when a volatile configuration rule has no effectiveUntil date set. Rules without expiration dates may accumulate over time and should be periodically reviewed.","title": "Volatile rule has no expiration"}},{"msg": "Pass","metadata": {"code": "volatile_config.pending_rule","collections": ["minimal","redhat"],"description": "Generates a warning when a volatile configuration rule has an effectiveOn date in the future, indicating it will become active at that time.","title": "Volatile rule pending activation"}}],"success": true,"signatures": [{"keyid": "","sig": "MEYCIQCvdqJgEXN3HXMSTcxQeCh1dl5ZSkJJnJIEtBsU4NKHywIhALfgzeAVyYUB9MpehdA1XSyOS4GFQMo2dPzzvMo9NOm/"},{"keyid": "","sig": "MEUCIGXWbnYUhm0vu9Ur5yHiaUVlKNTGqwcX4n+5Vxwtw5oCAiEAg7NGETty6wDxbbnApwSnvNvRe7qVDuQ15sGp6+6j+wc="}],"attestations": [{"type": "https://in-toto.io/Statement/v0.1","predicateType": "https://slsa.dev/provenance/v0.2","predicateBuildType": "tekton.dev/v1/PipelineRun","signatures": [{"keyid": "SHA256:IhiN7gY+Z3uSSd7tmj6w5Zfhqafzdhm3DZjIvGc6iYY","sig": "MEUCIQCOr4NGSb2O3et2BfmwPGGsZiCNU+534JxNZ/FaSjIiVAIgJXslvFG8bj0ipgY0EsU9elRh9GkulMLuUwH+icFS1Cc="}]}]},{"name": "","containerImage": "quay.io/konflux-ci/ec-golden-image@sha256:d6162d4d6e9a810c5d94c7b00d8a093576a5d4e5d11bc536450843e422d3f7d3","source": {},"warnings": [{"msg": "allowed_registry_prefixes is configured without signing_identities. Migrate to signature-based verification by setting signing_identities in rule data.","metadata": {"code": "base_image_registries.allowed_registries_provided","collections": ["minimal","redhat","policy_data","redhat_security"],"description": "Confirm that either the `allowed_registry_prefixes` or a `signing_identities` entry was provided, since at least one is required by the policy rules in this package.","severity": "warning","solution": "Make sure to configure either a signing identity under the `rh-release` key in the `signing_identities` https://conforma.dev/docs/cli/configuration.html#_data_sources or a list of trusted registry prefixes in `allowed_registry_prefixes`.","title": "Allowed base image registry prefixes list or signing identity was provided"}},{"msg": "Task \"buildah-remote-oci-ta\" is used by pipeline task \"build-container\" is or will be unsupported as of 2026-08-22T00:00:00Z. Upgrade to a newer version of the Task.","metadata": {"code": "tasks.unsupported","collections": ["redhat","redhat_rpms","redhat_security"],"depends_on": ["tasks.pipeline_has_tasks"],"description": "The Tekton Task used is or will be unsupported. The Task is annotated with `build.appstudio.redhat.com/expires-on` annotation marking it as unsupported after a certain date.","effective_on": "2026-08-22T00:00:00Z","term": "buildah-remote-oci-ta","title": "Task version unsupported"}},{"msg": "Task \"git-clone-oci-ta\" is used by pipeline task \"clone-repository\" is or will be unsupported as of 2026-08-20T00:00:00Z. Upgrade to a newer version of the Task.","metadata": {"code": "tasks.unsupported","collections": ["redhat","redhat_rpms","redhat_security"],"depends_on": ["tasks.pipeline_has_tasks"],"description": "The Tekton Task used is or will be unsupported. The Task is annotated with `build.appstudio.redhat.com/expires-on` annotation marking it as unsupported after a certain date.","effective_on": "2026-08-20T00:00:00Z","term": "git-clone-oci-ta","title": "Task version unsupported"}},{"msg": "The Task \"ecosystem-cert-preflight-checks\" from the build Pipeline reports a failed informative test","metadata": {"code": "test.no_failed_informative_tests","collections": ["redhat"],"depends_on": ["test.test_data_found"],"description": "Produce a warning if any informative tests have their result set to \"FAILED\". The result type is configurable by the \"failed_tests_results\" key, and the list of informative tests is configurable by the \"informative_tests\" key in the rule data.","solution": "There is a test that failed. Make sure that any task in the build pipeline with a result named 'TEST_OUTPUT' does not fail. More information about the test should be available in the logs for the build Pipeline.","term": "ecosystem-cert-preflight-checks","title": "No informative tests failed"}},{"msg": "Task \"build-container\" will be denied by rule pattern \"oci://quay.io/konflux-ci/tekton-catalog/task-buildah-remote-oci-ta\" starting on 2026-09-05T00:00:00Z.","metadata": {"code": "trusted_task.future_deny_rule","collections": ["redhat"],"description": "Warn when a task matches a deny rule that has an effective_on date in the future. This provides advance notice that a task will become untrusted when the deny rule takes effect.","solution": "Update the Task to a version that will not match the future deny rule before its effective date.","term": "buildah-remote-oci-ta","title": "Future deny rule will apply"}},{"msg": "Task \"clone-repository\" will be denied by rule pattern \"oci://quay.io/konflux-ci/tekton-catalog/task-git-clone-oci-ta\" starting on 2026-09-05T00:00:00Z.","metadata": {"code": "trusted_task.future_deny_rule","collections": ["redhat"],"description": "Warn when a task matches a deny rule that has an effective_on date in the future. This provides advance notice that a task will become untrusted when the deny rule takes effect.","solution": "Update the Task to a version that will not match the future deny rule before its effective date.","term": "git-clone-oci-ta","title": "Future deny rule will apply"}},{"msg": "Task \"rpms-signature-scan\" will be denied by rule pattern \"oci://quay.io/konflux-ci/konflux-vanguard/*\" starting on 2026-09-24T00:00:00Z.","metadata": {"code": "trusted_task.future_deny_rule","collections": ["redhat"],"description": "Warn when a task matches a deny rule that has an effective_on date in the future. This provides advance notice that a task will become untrusted when the deny rule takes effect.","solution": "Update the Task to a version that will not match the future deny rule before its effective date.","term": "rpms-signature-scan","title": "Future deny rule will apply"}},{"msg": "Task \"sast-snyk-check\" will be denied by rule pattern \"oci://quay.io/konflux-ci/tekton-catalog/task-sast-snyk-check-oci-ta\" starting on 2026-09-05T00:00:00Z.","metadata": {"code": "trusted_task.future_deny_rule","collections": ["redhat"], "description": "Warn when a task matches a deny rule that has an effective_on date in the future. This provides advance notice that a task will become untrusted when the deny rule takes effect.","solution": "Update the Task to a version that will not match the future deny rule before its effective date.","term": "sast-snyk-check-oci-ta","title": "Future deny rule will apply"}}],"successes": [{"msg": "Pass","metadata": {"code": "attestation_type.deprecated_policy_attestation_format","collections": ["minimal","redhat","redhat_rpms"],"description": "The Conforma CLI now places the attestation data in a different location. This check fails if the expected new format is not found.","effective_on": "2023-08-31T00:00:00Z","title": "Deprecated policy attestation format"}},{"msg": "Pass","metadata": {"code": "attestation_type.known_attestation_type","collections": ["minimal","redhat","redhat_rpms","slsa3","redhat_security"],"depends_on": ["attestation_type.pipelinerun_attestation_found"],"description": "Confirm the attestation found for the image has a known attestation type.","title": "Known attestation type found"}},{"msg": "Pass","metadata": {"code": "attestation_type.known_attestation_types_provided","collections": ["minimal","redhat","redhat_rpms","policy_data","redhat_security"],"description": "Confirm the `known_attestation_types` rule data was provided.","title": "Known attestation types provided"}},{"msg": "Pass","metadata": {"code": "attestation_type.pipelinerun_attestation_found","collections": ["minimal","redhat","redhat_rpms","slsa3","redhat_security"],"description": "Confirm at least one PipelineRun attestation is present.","title": "PipelineRun attestation found"}},{"msg": "Pass","metadata": {"code": "base_image_registries.base_image_info_found","collections": ["minimal","redhat","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify the expected information was provided about which base images were used during the build process. The list of base images comes from any associated CycloneDX or SPDX SBOMs.","title": "Base images provided"}},{"msg": "Pass","metadata": {"code": "base_image_registries.base_image_permitted","collections": ["minimal","redhat","redhat_security"],"depends_on": ["base_image_registries.base_image_info_found","base_image_registries.allowed_registries_provided"],"description": "Verify that the base images used when building a container image are permitted. Images can be permitted in three ways: by having a valid signature verified against the `rh-release` entry in `signing_identities` rule data (preferred), by matching a component digest in the snapshot, or by matching a registry prefix from `allowed_registry_prefixes` rule data (deprecated). Registry prefix matching is deprecated and will be removed in a future release.","title": "Base image is permitted"}},{"msg": "Pass","metadata": {"code": "buildah_build_task.add_capabilities_param","collections": ["redhat","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify the ADD_CAPABILITIES parameter of a builder Tasks was not used.","effective_on": "2024-08-31T00:00:00Z","title": "ADD_CAPABILITIES parameter"}},{"msg": "Pass","metadata": {"code": "buildah_build_task.buildah_uses_local_dockerfile","collections": ["redhat","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify the Dockerfile used in the buildah task was not fetched from an external source.","title": "Buildah task uses a local Dockerfile"}},{"msg": "Pass","metadata": {"code": "buildah_build_task.disallowed_platform_patterns_pattern","collections": ["redhat","policy_data"],"description": "Confirm the `disallowed_platform_patterns` rule data, if provided matches the expected format.","title": "disallowed_platform_patterns format"}},{"msg": "Pass","metadata": {"code": "buildah_build_task.platform_param","collections": ["redhat"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify the value of the PLATFORM parameter of a builder Task is allowed by matching against a list of disallowed patterns. The list of patterns can be customized via the `disallowed_platform_patterns` rule data key. If empty, all values are allowed.","effective_on": "2024-09-01T00:00:00Z","title": "PLATFORM parameter"}},{"msg": "Pass","metadata": {"code": "buildah_build_task.privileged_nested_param","collections": ["redhat","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify the PRIVILEGED_NESTED parameter of a builder Tasks was not set to `true`.","title": "PRIVILEGED_NESTED parameter"}},{"msg": "Pass","metadata": {"code": "builtin.attestation.signature_check","description": "The attestation signature matches available signing materials.","title": "Attestation signature check passed"}},{"msg": "Pass","metadata": {"code": "builtin.attestation.syntax_check","description": "The attestation has correct syntax.","title": "Attestation syntax check passed"}},{"msg": "Pass","metadata": {"code": "builtin.image.signature_check","description": "The image signature matches available signing materials.","title": "Image signature check passed"}},{"msg": "Pass","metadata": {"code": "cve.cve_blockers","collections": ["minimal","redhat","redhat_security"],"depends_on": ["cve.cve_results_found"],"description": "The SLSA Provenance attestation for the image is inspected to ensure CVEs that have a known fix and meet a certain security level have not been detected. If detected, this policy rule will fail. By default, only CVEs of critical and high security level cause a failure. This is configurable by the rule data key `restrict_cve_security_levels`. The available levels are critical, high, medium, low, and unknown. In addition to that leeway can be granted per severity using the `cve_leeway` rule data key containing days of allowed leeway, measured as time between found vulnerability's public disclosure date and current effective time, per severity level.","title": "Blocking CVE check"}},{"msg": "Pass","metadata": {"code": "cve.cve_warnings","collections": ["minimal","redhat"],"depends_on": ["cve.cve_results_found"],"description": "The SLSA Provenance attestation for the image is inspected to ensure CVEs that have a known fix and meet a certain security level have not been detected. If detected, this policy rule will raise a warning. By default, the list of CVE security levels used by this policy is empty. However, this is configurable by the rule data key `warn_cve_security_levels`. The available levels are critical, high, medium, low, and unknown.","title": "Non-blocking CVE check"}},{"msg": "Pass","metadata": {"code": "cve.rule_data_provided","collections": ["minimal","redhat","policy_data","redhat_security"],"description": "Confirm the expected rule data keys have been provided in the expected format. The keys are `restrict_cve_security_levels`,\t`warn_cve_security_levels`, `restrict_unpatched_cve_security_levels`, and `warn_unpatched_cve_security_levels`.","title": "Rule data provided"}},{"msg": "Pass","metadata": {"code": "cve.unpatched_cve_blockers","collections": ["minimal","redhat","redhat_security"],"depends_on": ["cve.cve_results_found"],"description": "The SLSA Provenance attestation for the image is inspected to ensure CVEs that do NOT have a known fix and meet a certain security level have not been detected. If detected, this policy rule will fail. By default, the list of security levels used by this policy is empty. This is configurable by the rule data key `restrict_unpatched_cve_security_levels`. The available levels are critical, high, medium, low, and unknown. In addition to that leeway can be granted per severity using the `cve_leeway` rule data key containing days of allowed leeway, measured as time between found vulnerability's public disclosure date and current effective time, per severity level.", "title": "Blocking unpatched CVE check"}},{"msg": "Pass","metadata": {"code": "cve.unpatched_cve_warnings","collections": ["minimal","redhat"],"depends_on": ["cve.cve_results_found"],"description": "The SLSA Provenance attestation for the image is inspected to ensure CVEs that do NOT have a known fix and meet a certain security level have not been detected. If detected, this policy rule will raise a warning. By default, only CVEs of critical and high security level cause a warning. This is configurable by the rule data key `warn_unpatched_cve_security_levels`. The available levels are critical, high, medium, low, and unknown.","title": "Non-blocking unpatched CVE check"}},{"msg": "Pass","metadata": {"code": "hermetic_task.hermetic","collections": ["redhat","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify the task in the PipelineRun attestation was invoked with the proper parameters to make the task execution hermetic.","title": "Task called with hermetic param set"}},{"msg": "Pass","metadata": {"code": "labels.deprecated_labels","collections": ["redhat"],"description": "Check the image for the presence of labels that have been deprecated. Use the rule data key `deprecated_labels` to set the list of labels to check.","title": "Deprecated labels"}},{"msg": "Pass","metadata": {"code": "labels.disallowed_inherited_labels","collections": ["redhat"],"description": "Check that certain labels on the image have different values than the labels from the parent image. If the label is inherited from the parent image but not redefined for the image, it will contain an incorrect value for the image. Use the rule data `disallowed_inherited_labels` key to set the list of labels to check, or the `fbc_disallowed_inherited_labels` key for fbc images.","title": "Disallowed inherited labels"}},{"msg": "Pass","metadata": {"code": "labels.inaccessible_config","collections": ["redhat"],"description": "The image config is not accessible.","title": "Inaccessible image config"}},{"msg": "Pass","metadata": {"code": "labels.inaccessible_manifest","collections": ["redhat","redhat_security"],"description": "The image manifest is not accessible.","title": "Inaccessible image manifest"}},{"msg": "Pass","metadata": {"code": "labels.inaccessible_parent_config","collections": ["redhat"],"description": "The parent image config is not accessible.","title": "Inaccessible parent image config"}},{"msg": "Pass","metadata": {"code": "labels.inaccessible_parent_manifest","collections": ["redhat","redhat_security"],"description": "The parent image manifest is not accessible.","title": "Inaccessible parent image manifest"}},{"msg": "Pass","metadata": {"code": "labels.optional_labels","collections": ["redhat"],"description": "Check the image for the presence of labels that are recommended, but not required. Use the rule data `optional_labels` key to set the list of labels to check, or the `fbc_optional_labels` key for fbc images.","title": "Optional labels"}},{"msg": "Pass","metadata": {"code": "labels.required_labels","collections": ["redhat","redhat_security"],"description": "Check the image for the presence of labels that are required. Use the rule data `required_labels` key to set the list of labels to check, or the `fbc_required_labels` key for fbc images.","title": "Required labels"}},{"msg": "Pass","metadata": {"code": "labels.rule_data_provided","collections": ["redhat","policy_data","redhat_security"],"description": "Confirm the expected rule data keys have been provided in the expected format. The keys are `required_labels`,\t`fbc_required_labels`, `optional_labels`, `fbc_optional_labels`, `disallowed_inherited_labels`, `fbc_disallowed_inherited_labels`, and `deprecated_labels`.","title": "Rule data provided"}},{"msg": "Pass","metadata": {"code": "olm.allowed_registries","collections": ["redhat","redhat_security"],"description": "Each image referenced by the OLM bundle should match an entry in the list of prefixes defined by the rule data key `allowed_olm_image_registry_prefixes` in your policy configuration.","effective_on": "2024-09-01T00:00:00Z","title": "Images referenced by OLM bundle are from allowed registries"}},{"msg": "Pass","metadata": {"code": "olm.allowed_registries_related","collections": ["redhat","redhat_security"],"description": "Each image indicated as a related image should match an entry in the list of prefixes defined by the rule data key `allowed_olm_image_registry_prefixes` in your policy configuration.","effective_on": "2025-04-15T00:00:00Z","title": "Related images references are from allowed registries"}},{"msg": "Pass","metadata": {"code": "olm.allowed_resource_kinds","collections": ["redhat","redhat_security"],"description": "Every manifest in an OLM bundle must be of an allowed resource kind, as defined by the rule data key `allowed_olm_resource_kinds`.","title": "OLM bundle image manifests contain only allowed resource kinds"}},{"msg": "Pass","metadata": {"code": "olm.csv_semver_format","collections": ["redhat","redhat_security"],"description": "Check the `spec.version` value in the ClusterServiceVersion manifest of the OLM bundle uses a properly formatted semver.","title": "ClusterServiceVersion semver format"}},{"msg": "Pass","metadata": {"code": "olm.feature_annotations_format","collections": ["redhat"],"description": "Check the feature annotations in the ClusterServiceVersion manifest of the OLM bundle. All of required feature annotations must be present and set to either the string `\"true\"` or the string `\"false\"`. The list of feature annotations can be customize via the `required_olm_features_annotations` rule data.","title": "Feature annotations have expected value"}},{"msg": "Pass","metadata": {"code": "olm.inaccessible_related_images","collections": ["redhat"],"description": "Check the input image for the presence of related images. Ensure that all images are accessible.","effective_on": "2025-03-10T00:00:00Z","title": "Unable to access related images for a component"}},{"msg": "Pass","metadata": {"code": "olm.olm_bundle_multi_arch","collections": ["redhat"],"description": "OLM bundle images should be built for a single architecture. They should not be OCI image indexes nor should they be Docker v2s2 manifest lists.","effective_on": "2025-05-01T00:00:00Z","title": "OLM bundle images are not multi-arch"}},{"msg": "Pass","metadata": {"code": "olm.required_network_policy_rbac_for_operands","collections": ["redhat","redhat_security"],"description": "Operators are required to manage the network policies of their operands. This rule verifies that operator bundles request sufficient RBAC permissions to manage NetworkPolicy lifecycle (create, delete, and update/patch) for networking.k8s.io/networkpolicies in their ClusterServiceVersion. Bundles whose operator name and major.minor version are listed in the `operator_network_policy_rbac_exceptions` rule data key are exempt from this requirement.","effective_on": "2026-08-07T00:00:00Z","title": "NetworkPolicy RBAC present in OLM bundle"}},{"msg": "Pass","metadata": {"code": "olm.required_olm_features_annotations_provided","collections": ["redhat","policy_data"],"description": "Confirm the `required_olm_features_annotations` rule data was provided, since it's required by the policy rules in this package.","title": "Required OLM feature annotations list provided"}},{"msg": "Pass","metadata": {"code": "olm.subscriptions_annotation_format","collections": ["redhat"],"description": "Check the value of the operators.openshift.io/valid-subscription annotation from the ClusterServiceVersion manifest is in the expected format, i.e. JSON encoded non-empty array of strings.","effective_on": "2024-04-18T00:00:00Z","title": "Subscription annotation has expected value"}},{"msg": "Pass","metadata": {"code": "olm.unmapped_references","collections": ["redhat"], "description": "Check the OLM bundle image for the presence of unmapped image references. Unmapped image pull references are references to images found in link:https://osbs.readthedocs.io/en/latest/users.html#pullspec-locations[varying locations] that are either not in the RPA about to be released or not accessible already.","effective_on": "2024-08-15T00:00:00Z","title": "Unmapped images in OLM bundle"}},{"msg": "Pass","metadata": {"code": "olm.unpinned_references","collections": ["redhat","redhat_security"],"description": "Check the OLM bundle image for the presence of unpinned image references. Unpinned image pull references are references to images found in link:https://osbs.readthedocs.io/en/latest/users.html#pullspec-locations[varying locations] that do not contain a digest -- uniquely identifying the version of the image being pulled.","title": "Unpinned images in OLM bundle"}},{"msg": "Pass","metadata": {"code": "olm.unpinned_related_images","collections": ["redhat","redhat_security"],"description": "Check the input image for the presence of related images. Ensure all related image references include a digest.","title": "Unpinned related images for a component"}},{"msg": "Pass","metadata": {"code": "olm.unpinned_snapshot_references","collections": ["redhat","redhat_security"],"description": "Check the input snapshot for the presence of unpinned image references. Unpinned image pull references are references to images that do not contain a digest -- uniquely identifying the version of the image being pulled.","effective_on": "2024-08-15T00:00:00Z","title": "Unpinned images in input snapshot"}},{"msg": "Pass","metadata": {"code": "pre_build_script_task.pre_build_script_task_runner_image_allowed","collections": ["redhat","redhat_security"],"depends_on": ["attestation_type.known_attestation_type","base_image_registries.allowed_registries_provided"],"description": "Verify that the images used to run the pre-build script tasks come from a known set of trusted registries to reduce potential supply chain attacks. By default this policy defines trusted registries as registries that are fully maintained by Red Hat and only contain content produced by Red Hat. The list of allowed registries can be customized by setting the `allowed_registry_prefixes` list in the rule data.","title": "Script runner image comes from allowed registry"}},{"msg": "Pass","metadata": {"code": "pre_build_script_task.pre_build_script_task_runner_image_in_results","collections": ["redhat","redhat_security"],"description": "Verify that the image used to run the pre-build script task is listed in the task result SCRIPT_RUNNER_IMAGE_REFERENCE","title": "Script runner image is listed in the task results"}},{"msg": "Pass","metadata": {"code": "pre_build_script_task.pre_build_script_task_runner_image_in_sbom","collections": ["redhat","redhat_security"],"description": "Verify that the image used to run the pre-build script task is included in the SBOM","title": "Script runner image is included in the sbom"}},{"msg": "Pass","metadata": {"code": "pre_build_script_task.valid_pre_build_script_task_runner_image_ref","collections": ["redhat","redhat_security"],"description": "Verify that a valid image reference is specified as image being used to run the pre-build script task","title": "Script runner image is a valid image reference"}},{"msg": "Pass","metadata": {"code": "prefetch_dependencies.mode_not_permissive","collections": ["redhat","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify the prefetch-dependencies task in the PipelineRun attestation was not invoked with the \"permissive\" mode parameter, which could compromise security.","title": "Prefetch dependencies mode parameter check"}},{"msg": "Pass","metadata": {"code": "prefetch_dependencies.package_registry_proxy_enabled","collections": ["redhat","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify that prefetch-dependencies tasks have the enable-package-registry-proxy parameter set to true. This ensures that dependency prefetching uses the package registry proxy.","effective_on": "2026-05-13T00:00:00Z","title": "Prefetch task has package registry proxy enabled"}},{"msg": "Pass","metadata": {"code": "provenance_materials.git_clone_source_matches_provenance","collections": ["minimal","redhat","redhat_rpms","redhat_security"],"depends_on": ["provenance_materials.git_clone_task_found"],"description": "Confirm that the result of the git-clone task is included in the materials section of the SLSA provenance attestation.","title": "Git clone source matches materials provenance"}},{"msg": "Pass","metadata": {"code": "provenance_materials.git_clone_task_found","collections": ["minimal","redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Confirm that the attestation contains a git-clone task with `commit` and `url` task results.","title": "Git clone task found"}},{"msg": "Pass","metadata": {"code": "quay_expiration.expires_label","collections": ["redhat"],"description": "Check the image metadata for the presence of a \"quay.expires-after\" label. If it's present then produce a violation. This check is enforced only for a \"release\", \"production\", or \"staging\" pipeline, as determined by the value of the `pipeline_intention` rule data.","title": "Expires label"}},{"msg": "Pass","metadata": {"code": "rpm_ostree_task.builder_image_param","collections": ["redhat","redhat_security"],"description": "Verify the BUILDER_IMAGE parameter of the rpm-ostree Task uses an image reference that is both pinned to a digest and starts with a pre-defined list of prefixes. By default, the list of prefixes is empty allowing any pinned image reference to be used. This is customizable via the `allowed_rpm_ostree_builder_image_prefixes` rule data.","effective_on": "2024-03-20T00:00:00Z","title": "Builder image parameter"}},{"msg": "Pass","metadata": {"code": "rpm_ostree_task.rule_data","collections": ["redhat","redhat_security"],"description": "Verify the rule data used by this package, `allowed_rpm_ostree_builder_image_prefixes`, is in the expected format.","title": "Rule data"}},{"msg": "Pass","metadata": {"code": "rpm_packages.unique_version","collections": ["redhat"],"description": "Check if a multi-arch build has the same RPM versions installed across each different architecture. This check only applies for Image Indexes, aka multi-platform images. Use the `non_unique_rpm_names` rule data key to ignore certain RPMs.","title": "Unique Version"}},{"msg": "Pass","metadata": {"code": "rpm_repos.ids_known","collections": ["redhat","redhat_rpms","redhat_security"],"description": "Each RPM package listed in an SBOM must specify the repository id that it comes from, and that repository id must be present in the list of known and permitted repository ids. Currently this is rule enforced only for SBOM components created by cachi2.","effective_on": "2024-11-10T00:00:00Z","title": "All rpms have known repo ids"}},{"msg": "Pass","metadata": {"code": "rpm_repos.rule_data_provided","collections": ["redhat","redhat_rpms","policy_data","redhat_security"],"description": "A list of known and permitted repository ids should be available in the rule data.","title": "Known repo id list provided"}},{"msg": "Pass","metadata": {"code": "rpm_signature.allowed","collections": ["redhat","redhat_rpms","redhat_security"],"description": "The SLSA Provenance attestation for the image is inspected to ensure RPMs have been signed by pre-defined set of signing keys. The list of signing keys can be set via the `allowed_rpm_signature_keys` rule data. Use the special value \"unsigned\" to allow unsigned RPMs.","effective_on": "2024-10-05T00:00:00Z","title": "Allowed RPM signature key"}},{"msg": "Pass","metadata": {"code": "rpm_signature.result_format","collections": ["redhat","redhat_rpms","redhat_security"], "description": "Confirm the format of the RPMS_DATA result is in the expected format.","effective_on": "2024-10-05T00:00:00Z","title": "Result format"}},{"msg": "Pass","metadata": {"code": "rpm_signature.rule_data_provided","collections": ["redhat","redhat_rpms","policy_data","redhat_security"],"description": "Confirm the expected `allowed_rpm_signature_keys` rule data key has been provided in the expected format.","effective_on": "2024-10-05T00:00:00Z","title": "Rule data provided"}},{"msg": "Pass","metadata": {"code": "sbom.disallowed_packages_provided","collections": ["redhat","policy_data","redhat_rpms","redhat_security"],"description": "Confirm the `disallowed_packages` and `disallowed_attributes` rule data were provided, since they are required by the policy rules in this package.","title": "Disallowed packages list is provided"}},{"msg": "Pass","metadata": {"code": "sbom.found","collections": ["minimal","redhat","redhat_security"],"description": "Confirm an SBOM attestation exists.","title": "Found"}},{"msg": "Pass","metadata": {"code": "sbom_cyclonedx.allowed","collections": ["redhat","redhat_rpms","redhat_security"],"description": "Confirm the CycloneDX SBOM contains only allowed packages. By default all packages are allowed. Use the \"disallowed_packages\" rule data key to provide a list of disallowed packages.","title": "Allowed"}},{"msg": "Pass","metadata": {"code": "sbom_cyclonedx.allowed_package_external_references","collections": ["redhat","redhat_rpms","policy_data","redhat_security"],"description": "Confirm the CycloneDX SBOM contains only packages with explicitly allowed external references. By default all external references are allowed unless the \"allowed_external_references\" rule data key provides a list of type-pattern pairs that forbid the use of any other external reference of the given type where the reference url matches the given pattern.","title": "Allowed package external references"}},{"msg": "Pass","metadata": {"code": "sbom_cyclonedx.allowed_package_sources","collections": ["redhat","redhat_rpms","policy_data","redhat_security"],"description": "For each of the components fetched by Hermeto which define externalReferences of type distribution, verify they are allowed based on the allowed_package_sources rule data key. By default, allowed_package_sources is empty, which means no components with such references are allowed.","effective_on": "2024-12-15T00:00:00Z","title": "Allowed package sources"}},{"msg": "Pass","metadata": {"code": "sbom_cyclonedx.allowed_proxy_urls","collections": ["redhat","policy_data","redhat_security"],"description": "For components found by Hermeto with a PURL type listed in proxy_enabled_purl_types that are registry dependencies (no download_url or vcs_url qualifier, not bundled), verify proxy URLs in externalReferences of type distribution with comment \"proxy URL\" match at least one pattern from allowed_proxy_url_patterns. The \"proxy_enabled_purl_types\" rule data key is a list of PURL type strings (e.g. [\"maven\", \"npm\"]). The \"allowed_proxy_url_patterns\" rule data key is an object mapping each PURL type string to a list of regular expression patterns (e.g. {\"maven\": [\"^https://proxy\\\\.example\\\\.com/maven/.*\"]}). If a PURL type is listed in proxy_enabled_purl_types but has no entry in allowed_proxy_url_patterns, all components of that type are denied.","effective_on": "2026-06-01T00:00:00Z","title": "Allowed proxy URLs"}},{"msg": "Pass","metadata": {"code": "sbom_cyclonedx.cdx_supported_version","collections": ["minimal","redhat","redhat_rpms","redhat_security"],"description": "Check that the CycloneDX SBOM specifies a supported schema version (1.4, 1.5 or 1.6).","title": "Supported Version"}},{"msg": "Pass","metadata": {"code": "sbom_cyclonedx.disallowed_package_attributes","collections": ["redhat","redhat_rpms","policy_data","redhat_security"],"description": "Confirm the CycloneDX SBOM contains only packages without disallowed attributes. By default all attributes are allowed. Use the \"disallowed_attributes\" rule data key to provide a list of key-value pairs that forbid the use of an attribute set to the given value. Each entry may include an optional \"except_when\" field to suppress violations when a PURL qualifier matches specified regex patterns.","effective_on": "2024-07-31T00:00:00Z","title": "Disallowed package attributes"}},{"msg": "Pass","metadata": {"code": "sbom_cyclonedx.disallowed_package_external_references","collections": ["redhat","redhat_rpms","policy_data","redhat_security"],"description": "Confirm the CycloneDX SBOM contains only packages without disallowed external references. By default all external references are allowed. Use the \"disallowed_external_references\" rule data key to provide a list of type-pattern pairs that forbid the use of an external reference of the given type where the reference url matches the given pattern.","effective_on": "2024-07-31T00:00:00Z","title": "Disallowed package external references"}},{"msg": "Pass","metadata": {"code": "sbom_cyclonedx.experimental_hermeto_backend","collections": ["minimal","redhat","redhat_rpms"],"description": "Verify that no components in the CycloneDX SBOM were fetched using an experimental Hermeto backend. Experimental backends are identified by top-level annotations whose text starts with \"hermeto:backend:experimental:\".","effective_on": "2026-08-01T00:00:00Z","title": "Experimental Hermeto backend"}},{"msg": "Pass","metadata": {"code": "sbom_cyclonedx.hermeto_attribution_required","collections": ["redhat","policy_data","redhat_security"],"description": "Registry dependencies with a PURL type listed in vendored_purl_types must be processed by Hermeto. When a hermetic build omits prefetch-input for a vendored ecosystem, Hermeto never runs and the SBOM contains only Syft-reported module-level data, which is insufficient for CVE analysis. This rule denies any such component that lacks the hermeto:found_by (or cachi2:found_by) property.","effective_on": "2026-10-01T00:00:00Z","title": "Hermeto attribution required"}},{"msg": "Pass","metadata": {"code": "sbom_cyclonedx.proxy_metadata_required","collections": ["redhat","policy_data","redhat_security"],"description": "For components found by Hermeto with a PURL type listed in proxy_enabled_purl_types that are registry dependencies (no download_url or vcs_url qualifier, not bundled), verify that proxy metadata is present. In CycloneDX, this means at least one externalReference with type \"distribution\" and comment \"proxy URL\" must exist.","effective_on": "2026-05-13T00:00:00Z","title": "Proxy metadata required"}},{"msg": "Pass","metadata": {"code": "sbom_cyclonedx.valid_cdx_1_4","collections": ["minimal","redhat","redhat_rpms","redhat_security"],"description": "Check the CycloneDX SBOM has the expected format. It verifies the CycloneDX SBOM matches the 1.4 version of the schema.","title": "Valid 1.4"}},{"msg": "Pass","metadata": {"code": "sbom_cyclonedx.valid_cdx_1_5","collections": ["minimal","redhat","redhat_rpms","redhat_security"],"description": "Check the CycloneDX SBOM has the expected format. It verifies the CycloneDX SBOM matches the 1.5 version of the schema.","title": "Valid 1.5"}},{"msg": "Pass","metadata": {"code": "sbom_cyclonedx.valid_cdx_1_6","collections": ["minimal","redhat","redhat_rpms","redhat_security"],"description": "Check the CycloneDX SBOM has the expected format. It verifies the CycloneDX SBOM matches the 1.6 version of the schema.","title": "Valid 1.6"}},{"msg": "Pass","metadata": {"code": "sbom_spdx.allowed","collections": ["redhat","redhat_rpms","redhat_security"],"description": "Confirm the SPDX SBOM contains only allowed packages. By default all packages are allowed. Use the \"disallowed_packages\" rule data key to provide a list of disallowed packages.","title": "Allowed"}},{"msg": "Pass","metadata": {"code": "sbom_spdx.allowed_package_external_references","collections": ["redhat","redhat_rpms","policy_data", "redhat_security"],"description": "Confirm the SPDX SBOM contains only packages with explicitly allowed external references. By default all external references are allowed unless the \"allowed_external_references\" rule data key provides a list of type-pattern pairs that forbid the use of any other external reference of the given type where the reference url matches the given pattern.","title": "Allowed package external references"}},{"msg": "Pass","metadata": {"code": "sbom_spdx.allowed_package_sources","collections": ["redhat","redhat_rpms","policy_data","redhat_security"],"description": "For each of the packages fetched by Hermeto which define externalReferences, verify they are allowed based on the allowed_package_sources rule data key. By default, allowed_package_sources is empty, which means no components with such references are allowed.","effective_on": "2025-02-17T00:00:00Z","title": "Allowed package sources"}},{"msg": "Pass","metadata": {"code": "sbom_spdx.allowed_proxy_urls","collections": ["redhat","policy_data","redhat_security"],"description": "For packages found by Hermeto with a PURL type listed in proxy_enabled_purl_types that are registry dependencies (no download_url or vcs_url qualifier, not bundled), verify each proxy URL in sourceInfo matches at least one pattern from allowed_proxy_url_patterns. Hermeto records proxy URLs in the sourceInfo field, semicolon-separated when multiple proxies are used. The \"proxy_enabled_purl_types\" rule data key is a list of PURL type strings (e.g. [\"maven\", \"npm\"]). The \"allowed_proxy_url_patterns\" rule data key is an object mapping each PURL type string to a list of regular expression patterns (e.g. {\"maven\": [\"^https://proxy\\\\.example\\\\.com/maven/.*\"]}). If a PURL type is listed in proxy_enabled_purl_types but has no entry in allowed_proxy_url_patterns, all packages of that type are denied.","effective_on": "2026-06-01T00:00:00Z","title": "Allowed proxy URLs"}},{"msg": "Pass","metadata": {"code": "sbom_spdx.disallowed_package_attributes","collections": ["redhat","redhat_rpms","policy_data","redhat_security"],"description": "Confirm the SPDX SBOM contains only packages without disallowed attributes. By default all attributes are allowed. Use the \"disallowed_attributes\" rule data key to provide a list of key-value pairs that forbid the use of an attribute set to the given value. Each entry may include an optional \"except_when\" field to suppress violations when a PURL qualifier matches specified regex patterns.","effective_on": "2025-02-04T00:00:00Z","title": "Disallowed package attributes"}},{"msg": "Pass","metadata": {"code": "sbom_spdx.disallowed_package_external_references","collections": ["redhat","redhat_rpms","policy_data","redhat_security"],"description": "Confirm the SPDX SBOM contains only packages without disallowed external references. By default all external references are allowed. Use the \"disallowed_external_references\" rule data key to provide a list of type-pattern pairs that forbid the use of an external reference of the given type where the reference url matches the given pattern.","effective_on": "2024-07-31T00:00:00Z","title": "Disallowed package external references"}},{"msg": "Pass","metadata": {"code": "sbom_spdx.experimental_hermeto_backend","collections": ["minimal","redhat","redhat_rpms"],"description": "Verify that no packages in the SPDX SBOM were fetched using an experimental Hermeto backend. Experimental backends are identified by annotations with annotator \"Tool: hermeto:backend\" whose comment starts with \"hermeto:backend:experimental:\".","effective_on": "2026-08-01T00:00:00Z","title": "Experimental Hermeto backend"}},{"msg": "Pass","metadata": {"code": "sbom_spdx.hermeto_attribution_required","collections": ["redhat","policy_data","redhat_security"],"description": "Registry dependencies with a PURL type listed in vendored_purl_types must be processed by Hermeto. When a hermetic build omits prefetch-input for a vendored ecosystem, Hermeto never runs and the SBOM contains only Syft-reported module-level data, which is insufficient for CVE analysis. This rule denies any such package that lacks the hermeto:found_by (or cachi2:found_by) annotation.","effective_on": "2026-10-01T00:00:00Z","title": "Hermeto attribution required"}},{"msg": "Pass","metadata": {"code": "sbom_spdx.proxy_metadata_required","collections": ["redhat","policy_data","redhat_security"],"description": "For packages found by Hermeto with a PURL type listed in proxy_enabled_purl_types that are registry dependencies (no download_url or vcs_url qualifier, not bundled), verify that proxy metadata is present. In SPDX, the sourceInfo field must be non-empty.","effective_on": "2026-05-13T00:00:00Z","title": "Proxy metadata required"}},{"msg": "Pass","metadata": {"code": "sbom_spdx.valid","collections": ["minimal","redhat","redhat_rpms","redhat_security"],"description": "Check the SPDX SBOM has the expected format. It verifies the SPDX SBOM matches the 2.3 version of the schema.","title": "Valid"}},{"msg": "Pass","metadata": {"code": "schedule.date_restriction","collections": ["redhat"],"description": "Check if the current date is not allowed based on the rule data value from the key `disallowed_dates`. By default, the list is empty in which case *any* day is allowed. This check is enforced only for a \"release\" or \"production\" pipeline, as determined by the value of the `pipeline_intention` rule data.","title": "Date Restriction"}},{"msg": "Pass","metadata": {"code": "schedule.rule_data_provided","collections": ["redhat","policy_data"],"description": "Confirm the expected rule data keys have been provided in the expected format. The keys are `disallowed_weekdays` and `disallowed_dates`.","title": "Rule data provided"}},{"msg": "Pass","metadata": {"code": "schedule.weekday_restriction","collections": ["redhat"],"description": "Check if the current weekday is allowed based on the rule data value from the key `disallowed_weekdays`. By default, the list is empty in which case *any* weekday is allowed. This check is enforced only for a \"release\" or \"production\" pipeline, as determined by the value of the `pipeline_intention` rule data.","title": "Weekday Restriction"}},{"msg": "Pass","metadata": {"code": "slsa_build_build_service.allowed_builder_ids_provided","collections": ["slsa3","redhat","redhat_rpms","policy_data","redhat_security"],"description": "Confirm the `allowed_builder_ids` rule data was provided, since it is required by the policy rules in this package.","title": "Allowed builder IDs provided"}},{"msg": "Pass","metadata": {"code": "slsa_build_build_service.slsa_builder_id_accepted","collections": ["slsa3","redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify that the attestation attribute predicate.builder.id is set to one of the values in the `allowed_builder_ids` rule data, e.g. \"https://tekton.dev/chains/v2\".","title": "SLSA Builder ID is known and accepted"}},{"msg": "Pass","metadata": {"code": "slsa_build_build_service.slsa_builder_id_found","collections": ["slsa3","redhat","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify that the attestation attribute predicate.builder.id is set.","title": "SLSA Builder ID found"}},{"msg": "Pass","metadata": {"code": "slsa_build_scripted_build.build_script_used","collections": ["slsa3","redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify that the predicate.buildConfig.tasks.steps attribute for the task responsible for building and pushing the image is not empty.","title": "Build task contains steps"}},{"msg": "Pass","metadata": {"code": "slsa_build_scripted_build.build_task_image_results_found","collections": ["slsa3","redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"], "description": "Confirm that a build task exists and it has the expected IMAGE_DIGEST and IMAGE_URL task results.","title": "Build task set image digest and url task results"}},{"msg": "Pass","metadata": {"code": "slsa_build_scripted_build.image_built_by_trusted_task","collections": ["redhat","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify the digest of the image being validated is reported by a trusted Task in its IMAGE_DIGEST result.","title": "Image built by trusted Task"}},{"msg": "Pass","metadata": {"code": "slsa_build_scripted_build.subject_build_task_matches","collections": ["slsa3","redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify the subject of the attestations matches the IMAGE_DIGEST and IMAGE_URL values from the build task.","title": "Provenance subject matches build task image result"}},{"msg": "Pass","metadata": {"code": "slsa_provenance_available.allowed_predicate_types_provided","collections": ["minimal","slsa3","redhat","redhat_rpms","policy_data","redhat_security"],"description": "Confirm the `allowed_predicate_types` rule data was provided, since it is required by the policy rules in this package.","title": "Allowed predicate types provided"}},{"msg": "Pass","metadata": {"code": "slsa_provenance_available.attestation_predicate_type_accepted","collections": ["minimal","slsa3","redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify that the predicateType field of the attestation indicates the in-toto SLSA Provenance format was used to attest the PipelineRun.","title": "Expected attestation predicate type found"}},{"msg": "Pass","metadata": {"code": "slsa_source_correlated.attested_source_code_reference","collections": ["minimal","slsa3","redhat","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Attestation contains source reference.","title": "Source reference"}},{"msg": "Pass","metadata": {"code": "slsa_source_correlated.expected_source_code_reference","collections": ["minimal","slsa3","redhat","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify that the provided source code reference is the one being attested.","title": "Expected source code reference"}},{"msg": "Pass","metadata": {"code": "slsa_source_correlated.rule_data_provided","collections": ["minimal","slsa3","redhat","redhat_rpms","policy_data","redhat_security"],"description": "Confirm the expected rule data keys have been provided in the expected format. The keys are `supported_vcs` and `supported_digests`.","title": "Rule data provided"}},{"msg": "Pass","metadata": {"code": "slsa_source_version_controlled.materials_format_okay","collections": ["minimal","slsa3","redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Confirm at least one entry in the predicate.materials array of the attestation contains the expected attributes: uri and digest.sha1.","title": "Materials have uri and digest"}},{"msg": "Pass","metadata": {"code": "slsa_source_version_controlled.materials_include_git_sha","collections": ["minimal","slsa3","redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Ensure that each entry in the predicate.materials array with a SHA-1 digest includes a valid Git commit SHA.","title": "Materials include git commit shas"}},{"msg": "Pass","metadata": {"code": "slsa_source_version_controlled.materials_uri_is_git_repo","collections": ["minimal","slsa3","redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Ensure each entry in the predicate.materials array with a SHA-1 digest includes a valid Git URI.","title": "Material uri is a git repo"}},{"msg": "Pass","metadata": {"code": "source_image.exists","collections": ["redhat","redhat_security"],"description": "Verify the source container image exists.","effective_on": "2024-06-05T00:00:00Z","title": "Exists"}},{"msg": "Pass","metadata": {"code": "source_image.signed","collections": ["redhat","redhat_security"],"depends_on": ["source_image.exists"],"description": "Verify the source container image is signed.","effective_on": "2024-05-04T00:00:00Z","title": "Signed"}},{"msg": "Pass","metadata": {"code": "tasks.data_provided","collections": ["redhat","redhat_rpms","policy_data","redhat_security"],"description": "Confirm the expected data keys have been provided in the expected format. The keys are `pipeline-required-tasks` and `required-tasks`.","title": "Data provided"}},{"msg": "Pass","metadata": {"code": "tasks.future_required_tasks_found","collections": ["redhat","redhat_rpms"],"depends_on": ["tasks.pipeline_has_tasks"],"description": "Produce a warning when a task that will be required in the future was not included in the PipelineRun attestation.","title": "Future required tasks were found"}},{"msg": "Pass","metadata": {"code": "tasks.pinned_task_refs","collections": ["redhat","redhat_security"],"depends_on": ["tasks.pipeline_has_tasks"],"description": "Ensure that all Tasks in the SLSA Provenance attestation use an immuntable reference to the Task definition.","title": "Pinned Task references"}},{"msg": "Pass","metadata": {"code": "tasks.pipeline_has_tasks","collections": ["minimal","redhat","redhat_rpms","slsa3","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Ensure that at least one Task is present in the PipelineRun attestation.","title": "Pipeline run includes at least one task"}},{"msg": "Pass","metadata": {"code": "tasks.pipeline_required_tasks_list_provided","collections": ["redhat","redhat_rpms","redhat_security"],"depends_on": ["tasks.pipeline_has_tasks"],"description": "Produce a warning if the required tasks list rule data was not provided.","title": "Required tasks list for pipeline was provided"}},{"msg": "Pass","metadata": {"code": "tasks.required_tasks_found","collections": ["redhat","redhat_security"],"depends_on": ["tasks.pipeline_has_tasks"],"description": "Ensure that the set of required tasks are included in the PipelineRun attestation.","title": "All required tasks were included in the pipeline"}},{"msg": "Pass","metadata": {"code": "tasks.required_tasks_list_provided","collections": ["redhat","redhat_rpms","redhat_security"],"depends_on": ["tasks.pipeline_has_tasks"],"description": "Confirm the `required-tasks` rule data was provided, since it's required by the policy rules in this package.","title": "Required tasks list was provided"}},{"msg": "Pass","metadata": {"code": "tasks.required_untrusted_task_found","collections": ["redhat","redhat_rpms","redhat_security"],"depends_on": ["tasks.pipeline_has_tasks"],"description": "Ensure that the all required tasks are resolved from trusted tasks.","title": "All required tasks are from trusted tasks"}},{"msg": "Pass","metadata": {"code": "tasks.successful_pipeline_tasks","collections": ["minimal","redhat","redhat_rpms","slsa3","redhat_security"],"depends_on": ["tasks.pipeline_has_tasks"],"description": "Ensure that all of the Tasks in the Pipeline completed successfully. Note that skipped Tasks are not taken into account and do not influence the outcome.","title": "Successful pipeline tasks"}},{"msg": "Pass","metadata": {"code": "test.no_erred_tests","collections": ["redhat","redhat_security"],"depends_on": ["test.test_data_found"],"description": "Produce a violation if any tests have their result set to \"ERROR\". The result type is configurable by the \"erred_tests_results\" key in the rule data.","title": "No tests erred"}},{"msg": "Pass","metadata": {"code": "test.no_failed_tests","collections": ["redhat","redhat_security"],"depends_on": ["test.test_data_found"], "description": "Produce a violation if any non-informative tests have their result set to \"FAILED\". The result type is configurable by the \"failed_tests_results\" key, and the list of informative tests is configurable by the \"informative_tests\" key in the rule data.","title": "No tests failed"}},{"msg": "Pass","metadata": {"code": "test.no_skipped_tests","collections": ["redhat","redhat_security"],"depends_on": ["test.test_data_found"],"description": "Produce a violation if any tests have their result set to \"SKIPPED\". A skipped result means a pre-requirement for executing the test was not met, e.g. a license key for executing a scanner was not provided. The result type is configurable by the \"skipped_tests_results\" key in the rule data.","effective_on": "2023-12-08T00:00:00Z","title": "No tests were skipped"}},{"msg": "Pass","metadata": {"code": "test.no_test_warnings","collections": ["redhat"],"depends_on": ["test.test_data_found"],"description": "Produce a warning if any tests have their result set to \"WARNING\". The result type is configurable by the \"warned_tests_results\" key in the rule data.","title": "No tests produced warnings"}},{"msg": "Pass","metadata": {"code": "test.rule_data_provided","collections": ["redhat","policy_data","redhat_security"],"description": "Confirm the expected rule data keys have been provided in the expected format. The keys are `supported_tests_results`, `failed_tests_results`, `informative_tests`, `erred_tests_results`, `skipped_tests_results`, and `warned_tests_results`.","title": "Rule data provided"}},{"msg": "Pass","metadata": {"code": "test.test_all_images","collections": ["redhat","redhat_security"],"description": "Ensure that task producing the IMAGES_PROCESSED result contains the digests of the built image.","effective_on": "2024-05-29T00:00:00Z","title": "Image digest is present in IMAGES_PROCESSED result"}},{"msg": "Pass","metadata": {"code": "test.test_data_found","collections": ["redhat","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Ensure that at least one of the tasks in the pipeline includes a TEST_OUTPUT task result, which is where Conforma expects to find test result data.","title": "Test data found in task results"}},{"msg": "Pass","metadata": {"code": "test.test_results_found","collections": ["redhat","redhat_security"],"depends_on": ["test.test_data_found"],"description": "Each test result is expected to have a `results` key. Verify that the `results` key is present in all of the TEST_OUTPUT task results.","title": "Test data includes results key"}},{"msg": "Pass","metadata": {"code": "test.test_results_known","collections": ["redhat","redhat_security"],"depends_on": ["test.test_data_found"],"description": "Ensure all test data result values are in the set of known/supported result values.","title": "No unsupported test result values found"}},{"msg": "Pass","metadata": {"code": "test_attestation.no_erred_test_attestations","collections": ["redhat"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Produce a violation if any test result attestation has an erred result. The result type is configurable by the \"erred_test_attestation_results\" key in the rule data.","title": "No erred test attestations"}},{"msg": "Pass","metadata": {"code": "test_attestation.no_failed_informative_test_attestations","collections": ["redhat"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Produce a warning if any informative test attestation has a failed result. Informative tests produce warnings instead of violations, allowing teams to roll out new tests without blocking releases. The list of informative tests is configurable by the \"informative_test_attestations\" key, and the result type by the \"failed_test_attestation_results\" key in the rule data.","title": "No failed informative test attestations"}},{"msg": "Pass","metadata": {"code": "test_attestation.no_failed_tests","collections": ["redhat","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Produce a violation if any non-informative test result attestation has a failed result. Failed test names from the attestation predicate are included in the message when available. The result type is configurable by the \"failed_test_attestation_results\" key, and the list of informative tests by the \"informative_test_attestations\" key in the rule data.","title": "No failed test attestations"}},{"msg": "Pass","metadata": {"code": "test_attestation.no_skipped_test_attestations","collections": ["redhat"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Produce a violation if any test result attestation has a skipped result. A skipped result means a pre-requirement for executing the test was not met. The result type is configurable by the \"skipped_test_attestation_results\" key in the rule data.","title": "No skipped test attestations"}},{"msg": "Pass","metadata": {"code": "test_attestation.no_test_warnings","collections": ["redhat"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Produce a warning if any test result attestation has a warned result. Warned test names from the attestation predicate are included in the message when available. The result type is configurable by the \"warned_test_attestation_results\" key in the rule data.","title": "No test attestation warnings"}},{"msg": "Pass","metadata": {"code": "test_attestation.rule_data_provided","collections": ["redhat","policy_data"],"description": "Confirm the expected rule data keys have been provided in the expected format. The keys are \"supported_test_attestation_results\", \"failed_test_attestation_results\", \"erred_test_attestation_results\", \"skipped_test_attestation_results\", \"warned_test_attestation_results\", and \"informative_test_attestations\".","title": "Rule data provided"}},{"msg": "Pass","metadata": {"code": "test_attestation.subject_mismatch","collections": ["redhat"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify that each test-result attestation's subject includes the digest of the image being evaluated. An attestation produced for a different image should not satisfy this image's test requirements.","title": "Test attestation subject matches image"}},{"msg": "Pass","metadata": {"code": "test_attestation.test_data_found","collections": ["redhat","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Each test result attestation must include a result field in its predicate. Verify that the result field is present.","title": "Test attestation data includes result"}},{"msg": "Pass","metadata": {"code": "test_attestation.test_result_known","collections": ["redhat","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Ensure the result field of each test result attestation is a recognized value. Valid values are configurable by the \"supported_test_attestation_results\" key in the rule data. Defaults are PASSED, WARNED, FAILED, ERROR, and SKIPPED per the in-toto test-result predicate specification.","title": "No unsupported test attestation result values"}},{"msg": "Pass","metadata": {"code": "trusted_task.current","collections": ["redhat","redhat_rpms","redhat_security"],"description": "Check if all Tekton Tasks use the latest known Task reference. When warnings will be reported can be configured using the `task_expiry_warning_days` rule data setting. It holds the number of days before the task is to expire within which the warnings will be reported.","effective_on": "2024-05-07T00:00:00Z","title": "Tasks using the latest versions"}},{"msg": "Pass","metadata": {"code": "trusted_task.data","collections": ["redhat","redhat_rpms","redhat_security"],"description": "Confirm the `trusted_tasks` rule data was provided, since it's required by the policy rules in this package.", "effective_on": "2024-05-07T00:00:00Z","title": "Task tracking data was provided"}},{"msg": "Pass","metadata": {"code": "trusted_task.data_format","collections": ["redhat","redhat_rpms","policy_data","redhat_security"],"description": "Confirm the expected `trusted_tasks` data keys have been provided in the expected format.","title": "Data format"}},{"msg": "Pass","metadata": {"code": "trusted_task.pinned","collections": ["redhat","redhat_rpms","redhat_security"],"description": "Check if all Tekton Tasks use a Task definition by a pinned reference. When using the git resolver, a commit ID is expected for the revision parameter. When using the bundles resolver, the bundle parameter is expected to include an image reference with a digest.","effective_on": "2024-05-07T00:00:00Z","title": "Task references are pinned"}},{"msg": "Pass","metadata": {"code": "trusted_task.tagged","collections": ["redhat","redhat_rpms"],"description": "Check if all Tekton Tasks defined with the bundle format contain a tag reference.","effective_on": "2024-05-07T00:00:00Z","title": "Task references are tagged"}},{"msg": "Pass","metadata": {"code": "trusted_task.trusted","collections": ["redhat","redhat_security"],"description": "Check the trust of the Tekton Tasks used in the build Pipeline. There are two modes in which trust is verified. The first mode is used if Trusted Artifacts are enabled. In this case, a chain of trust is established for all the Tasks involved in creating an artifact. If the chain contains an untrusted Task, then a violation is emitted. The second mode is used as a fallback when Trusted Artifacts are not enabled. In this case, **all** Tasks in the build Pipeline must be trusted.","effective_on": "2024-05-07T00:00:00Z","title": "Tasks are trusted"}},{"msg": "Pass","metadata": {"code": "trusted_task.trusted_parameters","collections": ["redhat","redhat_security"],"description": "Confirm certain parameters provided to each builder Task have come from trusted Tasks. Trust can be defined using pattern-based rules (trusted_task_rules) or an explicit allow list with expiry dates (trusted_tasks).","effective_on": "2021-07-04T00:00:00Z","title": "Trusted parameters"}},{"msg": "Pass","metadata": {"code": "trusted_task.valid_trusted_artifact_inputs","collections": ["redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "All input trusted artifacts must be produced on the pipeline. If they are not the artifact could have been injected by a rogue task.","title": "Trusted Artifact produced in pipeline"}},{"msg": "Pass","metadata": {"code": "volatile_config.expired_rule","collections": ["minimal","redhat"],"description": "Generates a warning when a volatile configuration rule has passed its effectiveUntil date. Expired rules are no longer active and should be removed from the policy configuration.","title": "Volatile rule has expired"}},{"msg": "Pass","metadata": {"code": "volatile_config.expiring_rule","collections": ["minimal","redhat"],"description": "Generates a warning when a volatile configuration rule will expire within the configured warning threshold (default 30 days). This provides advance notice to extend or replace the rule before it expires.","title": "Volatile rule expiring soon"}},{"msg": "Pass","metadata": {"code": "volatile_config.invalid_config","collections": ["minimal","redhat"],"description": "Generates a warning when a volatile configuration rule has invalid date values that cannot be parsed. This indicates a configuration error that should be corrected.","title": "Volatile rule has invalid configuration"}},{"msg": "Pass","metadata": {"code": "volatile_config.no_expiration","collections": ["minimal","redhat"],"description": "Generates a warning when a volatile configuration rule has no effectiveUntil date set. Rules without expiration dates may accumulate over time and should be periodically reviewed.","title": "Volatile rule has no expiration"}},{"msg": "Pass","metadata": {"code": "volatile_config.pending_rule","collections": ["minimal","redhat"],"description": "Generates a warning when a volatile configuration rule has an effectiveOn date in the future, indicating it will become active at that time.","title": "Volatile rule pending activation"}}],"success": true,"signatures": [{"keyid": "","sig": "MEQCIAlhsKMOeRTjTemW2MS/tXpADCZ8GF1mSGdhRWMJdxiOAiAIvI9BFHy4di3rL4r0FIMWveiwOiFAnsQxdRBUpV9cPg=="}],"attestations": [{"type": "https://in-toto.io/Statement/v0.1","predicateType": "https://slsa.dev/provenance/v0.2","predicateBuildType": "tekton.dev/v1/PipelineRun","signatures": [{"keyid": "SHA256:IhiN7gY+Z3uSSd7tmj6w5Zfhqafzdhm3DZjIvGc6iYY","sig": "MEUCIQCOr4NGSb2O3et2BfmwPGGsZiCNU+534JxNZ/FaSjIiVAIgJXslvFG8bj0ipgY0EsU9elRh9GkulMLuUwH+icFS1Cc="}]}]},{"name": "-sha256:8258706e8caa93e835c946fac2224afdada4dea69962fcca8491c43cfb610e65-amd64","containerImage": "quay.io/konflux-ci/ec-golden-image@sha256:8258706e8caa93e835c946fac2224afdada4dea69962fcca8491c43cfb610e65","source": {},"warnings": [{"msg": "allowed_registry_prefixes is configured without signing_identities. Migrate to signature-based verification by setting signing_identities in rule data.","metadata": {"code": "base_image_registries.allowed_registries_provided","collections": ["minimal","redhat","policy_data","redhat_security"],"description": "Confirm that either the `allowed_registry_prefixes` or a `signing_identities` entry was provided, since at least one is required by the policy rules in this package.","severity": "warning","solution": "Make sure to configure either a signing identity under the `rh-release` key in the `signing_identities` https://conforma.dev/docs/cli/configuration.html#_data_sources or a list of trusted registry prefixes in `allowed_registry_prefixes`.","title": "Allowed base image registry prefixes list or signing identity was provided"}},{"msg": "Task \"buildah-remote-oci-ta\" is used by pipeline task \"build-container\" is or will be unsupported as of 2026-08-22T00:00:00Z. Upgrade to a newer version of the Task.","metadata": {"code": "tasks.unsupported","collections": ["redhat","redhat_rpms","redhat_security"],"depends_on": ["tasks.pipeline_has_tasks"],"description": "The Tekton Task used is or will be unsupported. The Task is annotated with `build.appstudio.redhat.com/expires-on` annotation marking it as unsupported after a certain date.","effective_on": "2026-08-22T00:00:00Z","term": "buildah-remote-oci-ta","title": "Task version unsupported"}},{"msg": "Task \"git-clone-oci-ta\" is used by pipeline task \"clone-repository\" is or will be unsupported as of 2026-08-20T00:00:00Z. Upgrade to a newer version of the Task.","metadata": {"code": "tasks.unsupported","collections": ["redhat","redhat_rpms","redhat_security"],"depends_on": ["tasks.pipeline_has_tasks"],"description": "The Tekton Task used is or will be unsupported. The Task is annotated with `build.appstudio.redhat.com/expires-on` annotation marking it as unsupported after a certain date.","effective_on": "2026-08-20T00:00:00Z","term": "git-clone-oci-ta","title": "Task version unsupported"}},{"msg": "The Task \"ecosystem-cert-preflight-checks\" from the build Pipeline reports a failed informative test","metadata": {"code": "test.no_failed_informative_tests","collections": ["redhat"],"depends_on": ["test.test_data_found"],"description": "Produce a warning if any informative tests have their result set to \"FAILED\". The result type is configurable by the \"failed_tests_results\" key, and the list of informative tests is configurable by the \"informative_tests\" key in the rule data.","solution": "There is a test that failed. Make sure that any task in the build pipeline with a result named 'TEST_OUTPUT' does not fail. More information about the test should be available in the logs for the build Pipeline.","term": "ecosystem-cert-preflight-checks","title": "No informative tests failed"}},{ "msg": "Task \"build-container\" will be denied by rule pattern \"oci://quay.io/konflux-ci/tekton-catalog/task-buildah-remote-oci-ta\" starting on 2026-09-05T00:00:00Z.","metadata": {"code": "trusted_task.future_deny_rule","collections": ["redhat"],"description": "Warn when a task matches a deny rule that has an effective_on date in the future. This provides advance notice that a task will become untrusted when the deny rule takes effect.","solution": "Update the Task to a version that will not match the future deny rule before its effective date.","term": "buildah-remote-oci-ta","title": "Future deny rule will apply"}},{"msg": "Task \"clone-repository\" will be denied by rule pattern \"oci://quay.io/konflux-ci/tekton-catalog/task-git-clone-oci-ta\" starting on 2026-09-05T00:00:00Z.","metadata": {"code": "trusted_task.future_deny_rule","collections": ["redhat"],"description": "Warn when a task matches a deny rule that has an effective_on date in the future. This provides advance notice that a task will become untrusted when the deny rule takes effect.","solution": "Update the Task to a version that will not match the future deny rule before its effective date.","term": "git-clone-oci-ta","title": "Future deny rule will apply"}},{"msg": "Task \"rpms-signature-scan\" will be denied by rule pattern \"oci://quay.io/konflux-ci/konflux-vanguard/*\" starting on 2026-09-24T00:00:00Z.","metadata": {"code": "trusted_task.future_deny_rule","collections": ["redhat"],"description": "Warn when a task matches a deny rule that has an effective_on date in the future. This provides advance notice that a task will become untrusted when the deny rule takes effect.","solution": "Update the Task to a version that will not match the future deny rule before its effective date.","term": "rpms-signature-scan","title": "Future deny rule will apply"}},{"msg": "Task \"sast-snyk-check\" will be denied by rule pattern \"oci://quay.io/konflux-ci/tekton-catalog/task-sast-snyk-check-oci-ta\" starting on 2026-09-05T00:00:00Z.","metadata": {"code": "trusted_task.future_deny_rule","collections": ["redhat"],"description": "Warn when a task matches a deny rule that has an effective_on date in the future. This provides advance notice that a task will become untrusted when the deny rule takes effect.","solution": "Update the Task to a version that will not match the future deny rule before its effective date.","term": "sast-snyk-check-oci-ta","title": "Future deny rule will apply"}}],"successes": [{"msg": "Pass","metadata": {"code": "attestation_type.deprecated_policy_attestation_format","collections": ["minimal","redhat","redhat_rpms"],"description": "The Conforma CLI now places the attestation data in a different location. This check fails if the expected new format is not found.","effective_on": "2023-08-31T00:00:00Z","title": "Deprecated policy attestation format"}},{"msg": "Pass","metadata": {"code": "attestation_type.known_attestation_type","collections": ["minimal","redhat","redhat_rpms","slsa3","redhat_security"],"depends_on": ["attestation_type.pipelinerun_attestation_found"],"description": "Confirm the attestation found for the image has a known attestation type.","title": "Known attestation type found"}},{"msg": "Pass","metadata": {"code": "attestation_type.known_attestation_types_provided","collections": ["minimal","redhat","redhat_rpms","policy_data","redhat_security"],"description": "Confirm the `known_attestation_types` rule data was provided.","title": "Known attestation types provided"}},{"msg": "Pass","metadata": {"code": "attestation_type.pipelinerun_attestation_found","collections": ["minimal","redhat","redhat_rpms","slsa3","redhat_security"],"description": "Confirm at least one PipelineRun attestation is present.","title": "PipelineRun attestation found"}},{"msg": "Pass","metadata": {"code": "base_image_registries.base_image_info_found","collections": ["minimal","redhat","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify the expected information was provided about which base images were used during the build process. The list of base images comes from any associated CycloneDX or SPDX SBOMs.","title": "Base images provided"}},{"msg": "Pass","metadata": {"code": "base_image_registries.base_image_permitted","collections": ["minimal","redhat","redhat_security"],"depends_on": ["base_image_registries.base_image_info_found","base_image_registries.allowed_registries_provided"],"description": "Verify that the base images used when building a container image are permitted. Images can be permitted in three ways: by having a valid signature verified against the `rh-release` entry in `signing_identities` rule data (preferred), by matching a component digest in the snapshot, or by matching a registry prefix from `allowed_registry_prefixes` rule data (deprecated). Registry prefix matching is deprecated and will be removed in a future release.","title": "Base image is permitted"}},{"msg": "Pass","metadata": {"code": "buildah_build_task.add_capabilities_param","collections": ["redhat","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify the ADD_CAPABILITIES parameter of a builder Tasks was not used.","effective_on": "2024-08-31T00:00:00Z","title": "ADD_CAPABILITIES parameter"}},{"msg": "Pass","metadata": {"code": "buildah_build_task.buildah_uses_local_dockerfile","collections": ["redhat","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify the Dockerfile used in the buildah task was not fetched from an external source.","title": "Buildah task uses a local Dockerfile"}},{"msg": "Pass","metadata": {"code": "buildah_build_task.disallowed_platform_patterns_pattern","collections": ["redhat","policy_data"],"description": "Confirm the `disallowed_platform_patterns` rule data, if provided matches the expected format.","title": "disallowed_platform_patterns format"}},{"msg": "Pass","metadata": {"code": "buildah_build_task.platform_param","collections": ["redhat"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify the value of the PLATFORM parameter of a builder Task is allowed by matching against a list of disallowed patterns. The list of patterns can be customized via the `disallowed_platform_patterns` rule data key. If empty, all values are allowed.","effective_on": "2024-09-01T00:00:00Z","title": "PLATFORM parameter"}},{"msg": "Pass","metadata": {"code": "buildah_build_task.privileged_nested_param","collections": ["redhat","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify the PRIVILEGED_NESTED parameter of a builder Tasks was not set to `true`.","title": "PRIVILEGED_NESTED parameter"}},{"msg": "Pass","metadata": {"code": "builtin.attestation.signature_check","description": "The attestation signature matches available signing materials.","title": "Attestation signature check passed"}},{"msg": "Pass","metadata": {"code": "builtin.attestation.syntax_check","description": "The attestation has correct syntax.","title": "Attestation syntax check passed"}},{"msg": "Pass","metadata": {"code": "builtin.image.signature_check","description": "The image signature matches available signing materials.","title": "Image signature check passed"}},{"msg": "Pass","metadata": {"code": "cve.cve_blockers","collections": ["minimal","redhat","redhat_security"],"depends_on": ["cve.cve_results_found"], "description": "The SLSA Provenance attestation for the image is inspected to ensure CVEs that have a known fix and meet a certain security level have not been detected. If detected, this policy rule will fail. By default, only CVEs of critical and high security level cause a failure. This is configurable by the rule data key `restrict_cve_security_levels`. The available levels are critical, high, medium, low, and unknown. In addition to that leeway can be granted per severity using the `cve_leeway` rule data key containing days of allowed leeway, measured as time between found vulnerability's public disclosure date and current effective time, per severity level.","title": "Blocking CVE check"}},{"msg": "Pass","metadata": {"code": "cve.cve_warnings","collections": ["minimal","redhat"],"depends_on": ["cve.cve_results_found"],"description": "The SLSA Provenance attestation for the image is inspected to ensure CVEs that have a known fix and meet a certain security level have not been detected. If detected, this policy rule will raise a warning. By default, the list of CVE security levels used by this policy is empty. However, this is configurable by the rule data key `warn_cve_security_levels`. The available levels are critical, high, medium, low, and unknown.","title": "Non-blocking CVE check"}},{"msg": "Pass","metadata": {"code": "cve.rule_data_provided","collections": ["minimal","redhat","policy_data","redhat_security"],"description": "Confirm the expected rule data keys have been provided in the expected format. The keys are `restrict_cve_security_levels`,\t`warn_cve_security_levels`, `restrict_unpatched_cve_security_levels`, and `warn_unpatched_cve_security_levels`.","title": "Rule data provided"}},{"msg": "Pass","metadata": {"code": "cve.unpatched_cve_blockers","collections": ["minimal","redhat","redhat_security"],"depends_on": ["cve.cve_results_found"],"description": "The SLSA Provenance attestation for the image is inspected to ensure CVEs that do NOT have a known fix and meet a certain security level have not been detected. If detected, this policy rule will fail. By default, the list of security levels used by this policy is empty. This is configurable by the rule data key `restrict_unpatched_cve_security_levels`. The available levels are critical, high, medium, low, and unknown. In addition to that leeway can be granted per severity using the `cve_leeway` rule data key containing days of allowed leeway, measured as time between found vulnerability's public disclosure date and current effective time, per severity level.","title": "Blocking unpatched CVE check"}},{"msg": "Pass","metadata": {"code": "cve.unpatched_cve_warnings","collections": ["minimal","redhat"],"depends_on": ["cve.cve_results_found"],"description": "The SLSA Provenance attestation for the image is inspected to ensure CVEs that do NOT have a known fix and meet a certain security level have not been detected. If detected, this policy rule will raise a warning. By default, only CVEs of critical and high security level cause a warning. This is configurable by the rule data key `warn_unpatched_cve_security_levels`. The available levels are critical, high, medium, low, and unknown.","title": "Non-blocking unpatched CVE check"}},{"msg": "Pass","metadata": {"code": "hermetic_task.hermetic","collections": ["redhat","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify the task in the PipelineRun attestation was invoked with the proper parameters to make the task execution hermetic.","title": "Task called with hermetic param set"}},{"msg": "Pass","metadata": {"code": "labels.deprecated_labels","collections": ["redhat"],"description": "Check the image for the presence of labels that have been deprecated. Use the rule data key `deprecated_labels` to set the list of labels to check.","title": "Deprecated labels"}},{"msg": "Pass","metadata": {"code": "labels.disallowed_inherited_labels","collections": ["redhat"],"description": "Check that certain labels on the image have different values than the labels from the parent image. If the label is inherited from the parent image but not redefined for the image, it will contain an incorrect value for the image. Use the rule data `disallowed_inherited_labels` key to set the list of labels to check, or the `fbc_disallowed_inherited_labels` key for fbc images.","title": "Disallowed inherited labels"}},{"msg": "Pass","metadata": {"code": "labels.inaccessible_config","collections": ["redhat"],"description": "The image config is not accessible.","title": "Inaccessible image config"}},{"msg": "Pass","metadata": {"code": "labels.inaccessible_manifest","collections": ["redhat","redhat_security"],"description": "The image manifest is not accessible.","title": "Inaccessible image manifest"}},{"msg": "Pass","metadata": {"code": "labels.inaccessible_parent_config","collections": ["redhat"],"description": "The parent image config is not accessible.","title": "Inaccessible parent image config"}},{"msg": "Pass","metadata": {"code": "labels.inaccessible_parent_manifest","collections": ["redhat","redhat_security"],"description": "The parent image manifest is not accessible.","title": "Inaccessible parent image manifest"}},{"msg": "Pass","metadata": {"code": "labels.optional_labels","collections": ["redhat"],"description": "Check the image for the presence of labels that are recommended, but not required. Use the rule data `optional_labels` key to set the list of labels to check, or the `fbc_optional_labels` key for fbc images.","title": "Optional labels"}},{"msg": "Pass","metadata": {"code": "labels.required_labels","collections": ["redhat","redhat_security"],"description": "Check the image for the presence of labels that are required. Use the rule data `required_labels` key to set the list of labels to check, or the `fbc_required_labels` key for fbc images.","title": "Required labels"}},{"msg": "Pass","metadata": {"code": "labels.rule_data_provided","collections": ["redhat","policy_data","redhat_security"],"description": "Confirm the expected rule data keys have been provided in the expected format. The keys are `required_labels`,\t`fbc_required_labels`, `optional_labels`, `fbc_optional_labels`, `disallowed_inherited_labels`, `fbc_disallowed_inherited_labels`, and `deprecated_labels`.","title": "Rule data provided"}},{"msg": "Pass","metadata": {"code": "olm.allowed_registries","collections": ["redhat","redhat_security"],"description": "Each image referenced by the OLM bundle should match an entry in the list of prefixes defined by the rule data key `allowed_olm_image_registry_prefixes` in your policy configuration.","effective_on": "2024-09-01T00:00:00Z","title": "Images referenced by OLM bundle are from allowed registries"}},{"msg": "Pass","metadata": {"code": "olm.allowed_registries_related","collections": ["redhat","redhat_security"],"description": "Each image indicated as a related image should match an entry in the list of prefixes defined by the rule data key `allowed_olm_image_registry_prefixes` in your policy configuration.","effective_on": "2025-04-15T00:00:00Z","title": "Related images references are from allowed registries"}},{"msg": "Pass","metadata": {"code": "olm.allowed_resource_kinds","collections": ["redhat","redhat_security"],"description": "Every manifest in an OLM bundle must be of an allowed resource kind, as defined by the rule data key `allowed_olm_resource_kinds`.","title": "OLM bundle image manifests contain only allowed resource kinds"}},{"msg": "Pass","metadata": {"code": "olm.csv_semver_format","collections": ["redhat","redhat_security"],"description": "Check the `spec.version` value in the ClusterServiceVersion manifest of the OLM bundle uses a properly formatted semver.","title": "ClusterServiceVersion semver format"}},{"msg": "Pass","metadata": {"code": "olm.feature_annotations_format","collections": ["redhat"], "description": "Check the feature annotations in the ClusterServiceVersion manifest of the OLM bundle. All of required feature annotations must be present and set to either the string `\"true\"` or the string `\"false\"`. The list of feature annotations can be customize via the `required_olm_features_annotations` rule data.","title": "Feature annotations have expected value"}},{"msg": "Pass","metadata": {"code": "olm.inaccessible_related_images","collections": ["redhat"],"description": "Check the input image for the presence of related images. Ensure that all images are accessible.","effective_on": "2025-03-10T00:00:00Z","title": "Unable to access related images for a component"}},{"msg": "Pass","metadata": {"code": "olm.olm_bundle_multi_arch","collections": ["redhat"],"description": "OLM bundle images should be built for a single architecture. They should not be OCI image indexes nor should they be Docker v2s2 manifest lists.","effective_on": "2025-05-01T00:00:00Z","title": "OLM bundle images are not multi-arch"}},{"msg": "Pass","metadata": {"code": "olm.required_network_policy_rbac_for_operands","collections": ["redhat","redhat_security"],"description": "Operators are required to manage the network policies of their operands. This rule verifies that operator bundles request sufficient RBAC permissions to manage NetworkPolicy lifecycle (create, delete, and update/patch) for networking.k8s.io/networkpolicies in their ClusterServiceVersion. Bundles whose operator name and major.minor version are listed in the `operator_network_policy_rbac_exceptions` rule data key are exempt from this requirement.","effective_on": "2026-08-07T00:00:00Z","title": "NetworkPolicy RBAC present in OLM bundle"}},{"msg": "Pass","metadata": {"code": "olm.required_olm_features_annotations_provided","collections": ["redhat","policy_data"],"description": "Confirm the `required_olm_features_annotations` rule data was provided, since it's required by the policy rules in this package.","title": "Required OLM feature annotations list provided"}},{"msg": "Pass","metadata": {"code": "olm.subscriptions_annotation_format","collections": ["redhat"],"description": "Check the value of the operators.openshift.io/valid-subscription annotation from the ClusterServiceVersion manifest is in the expected format, i.e. JSON encoded non-empty array of strings.","effective_on": "2024-04-18T00:00:00Z","title": "Subscription annotation has expected value"}},{"msg": "Pass","metadata": {"code": "olm.unmapped_references","collections": ["redhat"],"description": "Check the OLM bundle image for the presence of unmapped image references. Unmapped image pull references are references to images found in link:https://osbs.readthedocs.io/en/latest/users.html#pullspec-locations[varying locations] that are either not in the RPA about to be released or not accessible already.","effective_on": "2024-08-15T00:00:00Z","title": "Unmapped images in OLM bundle"}},{"msg": "Pass","metadata": {"code": "olm.unpinned_references","collections": ["redhat","redhat_security"],"description": "Check the OLM bundle image for the presence of unpinned image references. Unpinned image pull references are references to images found in link:https://osbs.readthedocs.io/en/latest/users.html#pullspec-locations[varying locations] that do not contain a digest -- uniquely identifying the version of the image being pulled.","title": "Unpinned images in OLM bundle"}},{"msg": "Pass","metadata": {"code": "olm.unpinned_related_images","collections": ["redhat","redhat_security"],"description": "Check the input image for the presence of related images. Ensure all related image references include a digest.","title": "Unpinned related images for a component"}},{"msg": "Pass","metadata": {"code": "olm.unpinned_snapshot_references","collections": ["redhat","redhat_security"],"description": "Check the input snapshot for the presence of unpinned image references. Unpinned image pull references are references to images that do not contain a digest -- uniquely identifying the version of the image being pulled.","effective_on": "2024-08-15T00:00:00Z","title": "Unpinned images in input snapshot"}},{"msg": "Pass","metadata": {"code": "pre_build_script_task.pre_build_script_task_runner_image_allowed","collections": ["redhat","redhat_security"],"depends_on": ["attestation_type.known_attestation_type","base_image_registries.allowed_registries_provided"],"description": "Verify that the images used to run the pre-build script tasks come from a known set of trusted registries to reduce potential supply chain attacks. By default this policy defines trusted registries as registries that are fully maintained by Red Hat and only contain content produced by Red Hat. The list of allowed registries can be customized by setting the `allowed_registry_prefixes` list in the rule data.","title": "Script runner image comes from allowed registry"}},{"msg": "Pass","metadata": {"code": "pre_build_script_task.pre_build_script_task_runner_image_in_results","collections": ["redhat","redhat_security"],"description": "Verify that the image used to run the pre-build script task is listed in the task result SCRIPT_RUNNER_IMAGE_REFERENCE","title": "Script runner image is listed in the task results"}},{"msg": "Pass","metadata": {"code": "pre_build_script_task.pre_build_script_task_runner_image_in_sbom","collections": ["redhat","redhat_security"],"description": "Verify that the image used to run the pre-build script task is included in the SBOM","title": "Script runner image is included in the sbom"}},{"msg": "Pass","metadata": {"code": "pre_build_script_task.valid_pre_build_script_task_runner_image_ref","collections": ["redhat","redhat_security"],"description": "Verify that a valid image reference is specified as image being used to run the pre-build script task","title": "Script runner image is a valid image reference"}},{"msg": "Pass","metadata": {"code": "prefetch_dependencies.mode_not_permissive","collections": ["redhat","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify the prefetch-dependencies task in the PipelineRun attestation was not invoked with the \"permissive\" mode parameter, which could compromise security.","title": "Prefetch dependencies mode parameter check"}},{"msg": "Pass","metadata": {"code": "prefetch_dependencies.package_registry_proxy_enabled","collections": ["redhat","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify that prefetch-dependencies tasks have the enable-package-registry-proxy parameter set to true. This ensures that dependency prefetching uses the package registry proxy.","effective_on": "2026-05-13T00:00:00Z","title": "Prefetch task has package registry proxy enabled"}},{"msg": "Pass","metadata": {"code": "provenance_materials.git_clone_source_matches_provenance","collections": ["minimal","redhat","redhat_rpms","redhat_security"],"depends_on": ["provenance_materials.git_clone_task_found"],"description": "Confirm that the result of the git-clone task is included in the materials section of the SLSA provenance attestation.","title": "Git clone source matches materials provenance"}},{"msg": "Pass","metadata": {"code": "provenance_materials.git_clone_task_found","collections": ["minimal","redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Confirm that the attestation contains a git-clone task with `commit` and `url` task results.","title": "Git clone task found"}},{"msg": "Pass","metadata": {"code": "quay_expiration.expires_label","collections": ["redhat"],"description": "Check the image metadata for the presence of a \"quay.expires-after\" label. If it's present then produce a violation. This check is enforced only for a \"release\", \"production\", or \"staging\" pipeline, as determined by the value of the `pipeline_intention` rule data.","title": "Expires label"}},{"msg": "Pass", "metadata": {"code": "rpm_ostree_task.builder_image_param","collections": ["redhat","redhat_security"],"description": "Verify the BUILDER_IMAGE parameter of the rpm-ostree Task uses an image reference that is both pinned to a digest and starts with a pre-defined list of prefixes. By default, the list of prefixes is empty allowing any pinned image reference to be used. This is customizable via the `allowed_rpm_ostree_builder_image_prefixes` rule data.","effective_on": "2024-03-20T00:00:00Z","title": "Builder image parameter"}},{"msg": "Pass","metadata": {"code": "rpm_ostree_task.rule_data","collections": ["redhat","redhat_security"],"description": "Verify the rule data used by this package, `allowed_rpm_ostree_builder_image_prefixes`, is in the expected format.","title": "Rule data"}},{"msg": "Pass","metadata": {"code": "rpm_packages.unique_version","collections": ["redhat"],"description": "Check if a multi-arch build has the same RPM versions installed across each different architecture. This check only applies for Image Indexes, aka multi-platform images. Use the `non_unique_rpm_names` rule data key to ignore certain RPMs.","title": "Unique Version"}},{"msg": "Pass","metadata": {"code": "rpm_repos.ids_known","collections": ["redhat","redhat_rpms","redhat_security"],"description": "Each RPM package listed in an SBOM must specify the repository id that it comes from, and that repository id must be present in the list of known and permitted repository ids. Currently this is rule enforced only for SBOM components created by cachi2.","effective_on": "2024-11-10T00:00:00Z","title": "All rpms have known repo ids"}},{"msg": "Pass","metadata": {"code": "rpm_repos.rule_data_provided","collections": ["redhat","redhat_rpms","policy_data","redhat_security"],"description": "A list of known and permitted repository ids should be available in the rule data.","title": "Known repo id list provided"}},{"msg": "Pass","metadata": {"code": "rpm_signature.allowed","collections": ["redhat","redhat_rpms","redhat_security"],"description": "The SLSA Provenance attestation for the image is inspected to ensure RPMs have been signed by pre-defined set of signing keys. The list of signing keys can be set via the `allowed_rpm_signature_keys` rule data. Use the special value \"unsigned\" to allow unsigned RPMs.","effective_on": "2024-10-05T00:00:00Z","title": "Allowed RPM signature key"}},{"msg": "Pass","metadata": {"code": "rpm_signature.result_format","collections": ["redhat","redhat_rpms","redhat_security"],"description": "Confirm the format of the RPMS_DATA result is in the expected format.","effective_on": "2024-10-05T00:00:00Z","title": "Result format"}},{"msg": "Pass","metadata": {"code": "rpm_signature.rule_data_provided","collections": ["redhat","redhat_rpms","policy_data","redhat_security"],"description": "Confirm the expected `allowed_rpm_signature_keys` rule data key has been provided in the expected format.","effective_on": "2024-10-05T00:00:00Z","title": "Rule data provided"}},{"msg": "Pass","metadata": {"code": "sbom.disallowed_packages_provided","collections": ["redhat","policy_data","redhat_rpms","redhat_security"],"description": "Confirm the `disallowed_packages` and `disallowed_attributes` rule data were provided, since they are required by the policy rules in this package.","title": "Disallowed packages list is provided"}},{"msg": "Pass","metadata": {"code": "sbom.found","collections": ["minimal","redhat","redhat_security"],"description": "Confirm an SBOM attestation exists.","title": "Found"}},{"msg": "Pass","metadata": {"code": "sbom_cyclonedx.allowed","collections": ["redhat","redhat_rpms","redhat_security"],"description": "Confirm the CycloneDX SBOM contains only allowed packages. By default all packages are allowed. Use the \"disallowed_packages\" rule data key to provide a list of disallowed packages.","title": "Allowed"}},{"msg": "Pass","metadata": {"code": "sbom_cyclonedx.allowed_package_external_references","collections": ["redhat","redhat_rpms","policy_data","redhat_security"],"description": "Confirm the CycloneDX SBOM contains only packages with explicitly allowed external references. By default all external references are allowed unless the \"allowed_external_references\" rule data key provides a list of type-pattern pairs that forbid the use of any other external reference of the given type where the reference url matches the given pattern.","title": "Allowed package external references"}},{"msg": "Pass","metadata": {"code": "sbom_cyclonedx.allowed_package_sources","collections": ["redhat","redhat_rpms","policy_data","redhat_security"],"description": "For each of the components fetched by Hermeto which define externalReferences of type distribution, verify they are allowed based on the allowed_package_sources rule data key. By default, allowed_package_sources is empty, which means no components with such references are allowed.","effective_on": "2024-12-15T00:00:00Z","title": "Allowed package sources"}},{"msg": "Pass","metadata": {"code": "sbom_cyclonedx.allowed_proxy_urls","collections": ["redhat","policy_data","redhat_security"],"description": "For components found by Hermeto with a PURL type listed in proxy_enabled_purl_types that are registry dependencies (no download_url or vcs_url qualifier, not bundled), verify proxy URLs in externalReferences of type distribution with comment \"proxy URL\" match at least one pattern from allowed_proxy_url_patterns. The \"proxy_enabled_purl_types\" rule data key is a list of PURL type strings (e.g. [\"maven\", \"npm\"]). The \"allowed_proxy_url_patterns\" rule data key is an object mapping each PURL type string to a list of regular expression patterns (e.g. {\"maven\": [\"^https://proxy\\\\.example\\\\.com/maven/.*\"]}). If a PURL type is listed in proxy_enabled_purl_types but has no entry in allowed_proxy_url_patterns, all components of that type are denied.","effective_on": "2026-06-01T00:00:00Z","title": "Allowed proxy URLs"}},{"msg": "Pass","metadata": {"code": "sbom_cyclonedx.cdx_supported_version","collections": ["minimal","redhat","redhat_rpms","redhat_security"],"description": "Check that the CycloneDX SBOM specifies a supported schema version (1.4, 1.5 or 1.6).","title": "Supported Version"}},{"msg": "Pass","metadata": {"code": "sbom_cyclonedx.disallowed_package_attributes","collections": ["redhat","redhat_rpms","policy_data","redhat_security"],"description": "Confirm the CycloneDX SBOM contains only packages without disallowed attributes. By default all attributes are allowed. Use the \"disallowed_attributes\" rule data key to provide a list of key-value pairs that forbid the use of an attribute set to the given value. Each entry may include an optional \"except_when\" field to suppress violations when a PURL qualifier matches specified regex patterns.","effective_on": "2024-07-31T00:00:00Z","title": "Disallowed package attributes"}},{"msg": "Pass","metadata": {"code": "sbom_cyclonedx.disallowed_package_external_references","collections": ["redhat","redhat_rpms","policy_data","redhat_security"],"description": "Confirm the CycloneDX SBOM contains only packages without disallowed external references. By default all external references are allowed. Use the \"disallowed_external_references\" rule data key to provide a list of type-pattern pairs that forbid the use of an external reference of the given type where the reference url matches the given pattern.","effective_on": "2024-07-31T00:00:00Z","title": "Disallowed package external references"}},{"msg": "Pass","metadata": {"code": "sbom_cyclonedx.experimental_hermeto_backend","collections": ["minimal","redhat","redhat_rpms"],"description": "Verify that no components in the CycloneDX SBOM were fetched using an experimental Hermeto backend. Experimental backends are identified by top-level annotations whose text starts with \"hermeto:backend:experimental:\".","effective_on": "2026-08-01T00:00:00Z","title": "Experimental Hermeto backend"}},{ "msg": "Pass","metadata": {"code": "sbom_cyclonedx.hermeto_attribution_required","collections": ["redhat","policy_data","redhat_security"],"description": "Registry dependencies with a PURL type listed in vendored_purl_types must be processed by Hermeto. When a hermetic build omits prefetch-input for a vendored ecosystem, Hermeto never runs and the SBOM contains only Syft-reported module-level data, which is insufficient for CVE analysis. This rule denies any such component that lacks the hermeto:found_by (or cachi2:found_by) property.","effective_on": "2026-10-01T00:00:00Z","title": "Hermeto attribution required"}},{"msg": "Pass","metadata": {"code": "sbom_cyclonedx.proxy_metadata_required","collections": ["redhat","policy_data","redhat_security"],"description": "For components found by Hermeto with a PURL type listed in proxy_enabled_purl_types that are registry dependencies (no download_url or vcs_url qualifier, not bundled), verify that proxy metadata is present. In CycloneDX, this means at least one externalReference with type \"distribution\" and comment \"proxy URL\" must exist.","effective_on": "2026-05-13T00:00:00Z","title": "Proxy metadata required"}},{"msg": "Pass","metadata": {"code": "sbom_cyclonedx.valid_cdx_1_4","collections": ["minimal","redhat","redhat_rpms","redhat_security"],"description": "Check the CycloneDX SBOM has the expected format. It verifies the CycloneDX SBOM matches the 1.4 version of the schema.","title": "Valid 1.4"}},{"msg": "Pass","metadata": {"code": "sbom_cyclonedx.valid_cdx_1_5","collections": ["minimal","redhat","redhat_rpms","redhat_security"],"description": "Check the CycloneDX SBOM has the expected format. It verifies the CycloneDX SBOM matches the 1.5 version of the schema.","title": "Valid 1.5"}},{"msg": "Pass","metadata": {"code": "sbom_cyclonedx.valid_cdx_1_6","collections": ["minimal","redhat","redhat_rpms","redhat_security"],"description": "Check the CycloneDX SBOM has the expected format. It verifies the CycloneDX SBOM matches the 1.6 version of the schema.","title": "Valid 1.6"}},{"msg": "Pass","metadata": {"code": "sbom_spdx.allowed","collections": ["redhat","redhat_rpms","redhat_security"],"description": "Confirm the SPDX SBOM contains only allowed packages. By default all packages are allowed. Use the \"disallowed_packages\" rule data key to provide a list of disallowed packages.","title": "Allowed"}},{"msg": "Pass","metadata": {"code": "sbom_spdx.allowed_package_external_references","collections": ["redhat","redhat_rpms","policy_data","redhat_security"],"description": "Confirm the SPDX SBOM contains only packages with explicitly allowed external references. By default all external references are allowed unless the \"allowed_external_references\" rule data key provides a list of type-pattern pairs that forbid the use of any other external reference of the given type where the reference url matches the given pattern.","title": "Allowed package external references"}},{"msg": "Pass","metadata": {"code": "sbom_spdx.allowed_package_sources","collections": ["redhat","redhat_rpms","policy_data","redhat_security"],"description": "For each of the packages fetched by Hermeto which define externalReferences, verify they are allowed based on the allowed_package_sources rule data key. By default, allowed_package_sources is empty, which means no components with such references are allowed.","effective_on": "2025-02-17T00:00:00Z","title": "Allowed package sources"}},{"msg": "Pass","metadata": {"code": "sbom_spdx.allowed_proxy_urls","collections": ["redhat","policy_data","redhat_security"],"description": "For packages found by Hermeto with a PURL type listed in proxy_enabled_purl_types that are registry dependencies (no download_url or vcs_url qualifier, not bundled), verify each proxy URL in sourceInfo matches at least one pattern from allowed_proxy_url_patterns. Hermeto records proxy URLs in the sourceInfo field, semicolon-separated when multiple proxies are used. The \"proxy_enabled_purl_types\" rule data key is a list of PURL type strings (e.g. [\"maven\", \"npm\"]). The \"allowed_proxy_url_patterns\" rule data key is an object mapping each PURL type string to a list of regular expression patterns (e.g. {\"maven\": [\"^https://proxy\\\\.example\\\\.com/maven/.*\"]}). If a PURL type is listed in proxy_enabled_purl_types but has no entry in allowed_proxy_url_patterns, all packages of that type are denied.","effective_on": "2026-06-01T00:00:00Z","title": "Allowed proxy URLs"}},{"msg": "Pass","metadata": {"code": "sbom_spdx.disallowed_package_attributes","collections": ["redhat","redhat_rpms","policy_data","redhat_security"],"description": "Confirm the SPDX SBOM contains only packages without disallowed attributes. By default all attributes are allowed. Use the \"disallowed_attributes\" rule data key to provide a list of key-value pairs that forbid the use of an attribute set to the given value. Each entry may include an optional \"except_when\" field to suppress violations when a PURL qualifier matches specified regex patterns.","effective_on": "2025-02-04T00:00:00Z","title": "Disallowed package attributes"}},{"msg": "Pass","metadata": {"code": "sbom_spdx.disallowed_package_external_references","collections": ["redhat","redhat_rpms","policy_data","redhat_security"],"description": "Confirm the SPDX SBOM contains only packages without disallowed external references. By default all external references are allowed. Use the \"disallowed_external_references\" rule data key to provide a list of type-pattern pairs that forbid the use of an external reference of the given type where the reference url matches the given pattern.","effective_on": "2024-07-31T00:00:00Z","title": "Disallowed package external references"}},{"msg": "Pass","metadata": {"code": "sbom_spdx.experimental_hermeto_backend","collections": ["minimal","redhat","redhat_rpms"],"description": "Verify that no packages in the SPDX SBOM were fetched using an experimental Hermeto backend. Experimental backends are identified by annotations with annotator \"Tool: hermeto:backend\" whose comment starts with \"hermeto:backend:experimental:\".","effective_on": "2026-08-01T00:00:00Z","title": "Experimental Hermeto backend"}},{"msg": "Pass","metadata": {"code": "sbom_spdx.hermeto_attribution_required","collections": ["redhat","policy_data","redhat_security"],"description": "Registry dependencies with a PURL type listed in vendored_purl_types must be processed by Hermeto. When a hermetic build omits prefetch-input for a vendored ecosystem, Hermeto never runs and the SBOM contains only Syft-reported module-level data, which is insufficient for CVE analysis. This rule denies any such package that lacks the hermeto:found_by (or cachi2:found_by) annotation.","effective_on": "2026-10-01T00:00:00Z","title": "Hermeto attribution required"}},{"msg": "Pass","metadata": {"code": "sbom_spdx.proxy_metadata_required","collections": ["redhat","policy_data","redhat_security"],"description": "For packages found by Hermeto with a PURL type listed in proxy_enabled_purl_types that are registry dependencies (no download_url or vcs_url qualifier, not bundled), verify that proxy metadata is present. In SPDX, the sourceInfo field must be non-empty.","effective_on": "2026-05-13T00:00:00Z","title": "Proxy metadata required"}},{"msg": "Pass","metadata": {"code": "sbom_spdx.valid","collections": ["minimal","redhat","redhat_rpms","redhat_security"],"description": "Check the SPDX SBOM has the expected format. It verifies the SPDX SBOM matches the 2.3 version of the schema.","title": "Valid"}},{"msg": "Pass","metadata": {"code": "schedule.date_restriction","collections": ["redhat"], "description": "Check if the current date is not allowed based on the rule data value from the key `disallowed_dates`. By default, the list is empty in which case *any* day is allowed. This check is enforced only for a \"release\" or \"production\" pipeline, as determined by the value of the `pipeline_intention` rule data.","title": "Date Restriction"}},{"msg": "Pass","metadata": {"code": "schedule.rule_data_provided","collections": ["redhat","policy_data"],"description": "Confirm the expected rule data keys have been provided in the expected format. The keys are `disallowed_weekdays` and `disallowed_dates`.","title": "Rule data provided"}},{"msg": "Pass","metadata": {"code": "schedule.weekday_restriction","collections": ["redhat"],"description": "Check if the current weekday is allowed based on the rule data value from the key `disallowed_weekdays`. By default, the list is empty in which case *any* weekday is allowed. This check is enforced only for a \"release\" or \"production\" pipeline, as determined by the value of the `pipeline_intention` rule data.","title": "Weekday Restriction"}},{"msg": "Pass","metadata": {"code": "slsa_build_build_service.allowed_builder_ids_provided","collections": ["slsa3","redhat","redhat_rpms","policy_data","redhat_security"],"description": "Confirm the `allowed_builder_ids` rule data was provided, since it is required by the policy rules in this package.","title": "Allowed builder IDs provided"}},{"msg": "Pass","metadata": {"code": "slsa_build_build_service.slsa_builder_id_accepted","collections": ["slsa3","redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify that the attestation attribute predicate.builder.id is set to one of the values in the `allowed_builder_ids` rule data, e.g. \"https://tekton.dev/chains/v2\".","title": "SLSA Builder ID is known and accepted"}},{"msg": "Pass","metadata": {"code": "slsa_build_build_service.slsa_builder_id_found","collections": ["slsa3","redhat","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify that the attestation attribute predicate.builder.id is set.","title": "SLSA Builder ID found"}},{"msg": "Pass","metadata": {"code": "slsa_build_scripted_build.build_script_used","collections": ["slsa3","redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify that the predicate.buildConfig.tasks.steps attribute for the task responsible for building and pushing the image is not empty.","title": "Build task contains steps"}},{"msg": "Pass","metadata": {"code": "slsa_build_scripted_build.build_task_image_results_found","collections": ["slsa3","redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Confirm that a build task exists and it has the expected IMAGE_DIGEST and IMAGE_URL task results.","title": "Build task set image digest and url task results"}},{"msg": "Pass","metadata": {"code": "slsa_build_scripted_build.image_built_by_trusted_task","collections": ["redhat","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify the digest of the image being validated is reported by a trusted Task in its IMAGE_DIGEST result.","title": "Image built by trusted Task"}},{"msg": "Pass","metadata": {"code": "slsa_build_scripted_build.subject_build_task_matches","collections": ["slsa3","redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify the subject of the attestations matches the IMAGE_DIGEST and IMAGE_URL values from the build task.","title": "Provenance subject matches build task image result"}},{"msg": "Pass","metadata": {"code": "slsa_provenance_available.allowed_predicate_types_provided","collections": ["minimal","slsa3","redhat","redhat_rpms","policy_data","redhat_security"],"description": "Confirm the `allowed_predicate_types` rule data was provided, since it is required by the policy rules in this package.","title": "Allowed predicate types provided"}},{"msg": "Pass","metadata": {"code": "slsa_provenance_available.attestation_predicate_type_accepted","collections": ["minimal","slsa3","redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify that the predicateType field of the attestation indicates the in-toto SLSA Provenance format was used to attest the PipelineRun.","title": "Expected attestation predicate type found"}},{"msg": "Pass","metadata": {"code": "slsa_source_correlated.attested_source_code_reference","collections": ["minimal","slsa3","redhat","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Attestation contains source reference.","title": "Source reference"}},{"msg": "Pass","metadata": {"code": "slsa_source_correlated.expected_source_code_reference","collections": ["minimal","slsa3","redhat","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify that the provided source code reference is the one being attested.","title": "Expected source code reference"}},{"msg": "Pass","metadata": {"code": "slsa_source_correlated.rule_data_provided","collections": ["minimal","slsa3","redhat","redhat_rpms","policy_data","redhat_security"],"description": "Confirm the expected rule data keys have been provided in the expected format. The keys are `supported_vcs` and `supported_digests`.","title": "Rule data provided"}},{"msg": "Pass","metadata": {"code": "slsa_source_version_controlled.materials_format_okay","collections": ["minimal","slsa3","redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Confirm at least one entry in the predicate.materials array of the attestation contains the expected attributes: uri and digest.sha1.","title": "Materials have uri and digest"}},{"msg": "Pass","metadata": {"code": "slsa_source_version_controlled.materials_include_git_sha","collections": ["minimal","slsa3","redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Ensure that each entry in the predicate.materials array with a SHA-1 digest includes a valid Git commit SHA.","title": "Materials include git commit shas"}},{"msg": "Pass","metadata": {"code": "slsa_source_version_controlled.materials_uri_is_git_repo","collections": ["minimal","slsa3","redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Ensure each entry in the predicate.materials array with a SHA-1 digest includes a valid Git URI.","title": "Material uri is a git repo"}},{"msg": "Pass","metadata": {"code": "source_image.exists","collections": ["redhat","redhat_security"],"description": "Verify the source container image exists.","effective_on": "2024-06-05T00:00:00Z","title": "Exists"}},{"msg": "Pass","metadata": {"code": "source_image.signed","collections": ["redhat","redhat_security"],"depends_on": ["source_image.exists"],"description": "Verify the source container image is signed.","effective_on": "2024-05-04T00:00:00Z","title": "Signed"}},{"msg": "Pass","metadata": {"code": "tasks.data_provided","collections": ["redhat","redhat_rpms","policy_data","redhat_security"],"description": "Confirm the expected data keys have been provided in the expected format. The keys are `pipeline-required-tasks` and `required-tasks`.","title": "Data provided"}},{"msg": "Pass","metadata": {"code": "tasks.future_required_tasks_found","collections": ["redhat","redhat_rpms"],"depends_on": ["tasks.pipeline_has_tasks"],"description": "Produce a warning when a task that will be required in the future was not included in the PipelineRun attestation.","title": "Future required tasks were found"}},{"msg": "Pass","metadata": {"code": "tasks.pinned_task_refs","collections": ["redhat", "redhat_security"],"depends_on": ["tasks.pipeline_has_tasks"],"description": "Ensure that all Tasks in the SLSA Provenance attestation use an immuntable reference to the Task definition.","title": "Pinned Task references"}},{"msg": "Pass","metadata": {"code": "tasks.pipeline_has_tasks","collections": ["minimal","redhat","redhat_rpms","slsa3","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Ensure that at least one Task is present in the PipelineRun attestation.","title": "Pipeline run includes at least one task"}},{"msg": "Pass","metadata": {"code": "tasks.pipeline_required_tasks_list_provided","collections": ["redhat","redhat_rpms","redhat_security"],"depends_on": ["tasks.pipeline_has_tasks"],"description": "Produce a warning if the required tasks list rule data was not provided.","title": "Required tasks list for pipeline was provided"}},{"msg": "Pass","metadata": {"code": "tasks.required_tasks_found","collections": ["redhat","redhat_security"],"depends_on": ["tasks.pipeline_has_tasks"],"description": "Ensure that the set of required tasks are included in the PipelineRun attestation.","title": "All required tasks were included in the pipeline"}},{"msg": "Pass","metadata": {"code": "tasks.required_tasks_list_provided","collections": ["redhat","redhat_rpms","redhat_security"],"depends_on": ["tasks.pipeline_has_tasks"],"description": "Confirm the `required-tasks` rule data was provided, since it's required by the policy rules in this package.","title": "Required tasks list was provided"}},{"msg": "Pass","metadata": {"code": "tasks.required_untrusted_task_found","collections": ["redhat","redhat_rpms","redhat_security"],"depends_on": ["tasks.pipeline_has_tasks"],"description": "Ensure that the all required tasks are resolved from trusted tasks.","title": "All required tasks are from trusted tasks"}},{"msg": "Pass","metadata": {"code": "tasks.successful_pipeline_tasks","collections": ["minimal","redhat","redhat_rpms","slsa3","redhat_security"],"depends_on": ["tasks.pipeline_has_tasks"],"description": "Ensure that all of the Tasks in the Pipeline completed successfully. Note that skipped Tasks are not taken into account and do not influence the outcome.","title": "Successful pipeline tasks"}},{"msg": "Pass","metadata": {"code": "test.no_erred_tests","collections": ["redhat","redhat_security"],"depends_on": ["test.test_data_found"],"description": "Produce a violation if any tests have their result set to \"ERROR\". The result type is configurable by the \"erred_tests_results\" key in the rule data.","title": "No tests erred"}},{"msg": "Pass","metadata": {"code": "test.no_failed_tests","collections": ["redhat","redhat_security"],"depends_on": ["test.test_data_found"],"description": "Produce a violation if any non-informative tests have their result set to \"FAILED\". The result type is configurable by the \"failed_tests_results\" key, and the list of informative tests is configurable by the \"informative_tests\" key in the rule data.","title": "No tests failed"}},{"msg": "Pass","metadata": {"code": "test.no_skipped_tests","collections": ["redhat","redhat_security"],"depends_on": ["test.test_data_found"],"description": "Produce a violation if any tests have their result set to \"SKIPPED\". A skipped result means a pre-requirement for executing the test was not met, e.g. a license key for executing a scanner was not provided. The result type is configurable by the \"skipped_tests_results\" key in the rule data.","effective_on": "2023-12-08T00:00:00Z","title": "No tests were skipped"}},{"msg": "Pass","metadata": {"code": "test.no_test_warnings","collections": ["redhat"],"depends_on": ["test.test_data_found"],"description": "Produce a warning if any tests have their result set to \"WARNING\". The result type is configurable by the \"warned_tests_results\" key in the rule data.","title": "No tests produced warnings"}},{"msg": "Pass","metadata": {"code": "test.rule_data_provided","collections": ["redhat","policy_data","redhat_security"],"description": "Confirm the expected rule data keys have been provided in the expected format. The keys are `supported_tests_results`, `failed_tests_results`, `informative_tests`, `erred_tests_results`, `skipped_tests_results`, and `warned_tests_results`.","title": "Rule data provided"}},{"msg": "Pass","metadata": {"code": "test.test_all_images","collections": ["redhat","redhat_security"],"description": "Ensure that task producing the IMAGES_PROCESSED result contains the digests of the built image.","effective_on": "2024-05-29T00:00:00Z","title": "Image digest is present in IMAGES_PROCESSED result"}},{"msg": "Pass","metadata": {"code": "test.test_data_found","collections": ["redhat","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Ensure that at least one of the tasks in the pipeline includes a TEST_OUTPUT task result, which is where Conforma expects to find test result data.","title": "Test data found in task results"}},{"msg": "Pass","metadata": {"code": "test.test_results_found","collections": ["redhat","redhat_security"],"depends_on": ["test.test_data_found"],"description": "Each test result is expected to have a `results` key. Verify that the `results` key is present in all of the TEST_OUTPUT task results.","title": "Test data includes results key"}},{"msg": "Pass","metadata": {"code": "test.test_results_known","collections": ["redhat","redhat_security"],"depends_on": ["test.test_data_found"],"description": "Ensure all test data result values are in the set of known/supported result values.","title": "No unsupported test result values found"}},{"msg": "Pass","metadata": {"code": "test_attestation.no_erred_test_attestations","collections": ["redhat"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Produce a violation if any test result attestation has an erred result. The result type is configurable by the \"erred_test_attestation_results\" key in the rule data.","title": "No erred test attestations"}},{"msg": "Pass","metadata": {"code": "test_attestation.no_failed_informative_test_attestations","collections": ["redhat"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Produce a warning if any informative test attestation has a failed result. Informative tests produce warnings instead of violations, allowing teams to roll out new tests without blocking releases. The list of informative tests is configurable by the \"informative_test_attestations\" key, and the result type by the \"failed_test_attestation_results\" key in the rule data.","title": "No failed informative test attestations"}},{"msg": "Pass","metadata": {"code": "test_attestation.no_failed_tests","collections": ["redhat","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Produce a violation if any non-informative test result attestation has a failed result. Failed test names from the attestation predicate are included in the message when available. The result type is configurable by the \"failed_test_attestation_results\" key, and the list of informative tests by the \"informative_test_attestations\" key in the rule data.","title": "No failed test attestations"}},{"msg": "Pass","metadata": {"code": "test_attestation.no_skipped_test_attestations","collections": ["redhat"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Produce a violation if any test result attestation has a skipped result. A skipped result means a pre-requirement for executing the test was not met. The result type is configurable by the \"skipped_test_attestation_results\" key in the rule data.","title": "No skipped test attestations"}},{"msg": "Pass","metadata": {"code": "test_attestation.no_test_warnings","collections": ["redhat"],"depends_on": ["attestation_type.known_attestation_type"], "description": "Produce a warning if any test result attestation has a warned result. Warned test names from the attestation predicate are included in the message when available. The result type is configurable by the \"warned_test_attestation_results\" key in the rule data.","title": "No test attestation warnings"}},{"msg": "Pass","metadata": {"code": "test_attestation.rule_data_provided","collections": ["redhat","policy_data"],"description": "Confirm the expected rule data keys have been provided in the expected format. The keys are \"supported_test_attestation_results\", \"failed_test_attestation_results\", \"erred_test_attestation_results\", \"skipped_test_attestation_results\", \"warned_test_attestation_results\", and \"informative_test_attestations\".","title": "Rule data provided"}},{"msg": "Pass","metadata": {"code": "test_attestation.subject_mismatch","collections": ["redhat"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Verify that each test-result attestation's subject includes the digest of the image being evaluated. An attestation produced for a different image should not satisfy this image's test requirements.","title": "Test attestation subject matches image"}},{"msg": "Pass","metadata": {"code": "test_attestation.test_data_found","collections": ["redhat","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Each test result attestation must include a result field in its predicate. Verify that the result field is present.","title": "Test attestation data includes result"}},{"msg": "Pass","metadata": {"code": "test_attestation.test_result_known","collections": ["redhat","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "Ensure the result field of each test result attestation is a recognized value. Valid values are configurable by the \"supported_test_attestation_results\" key in the rule data. Defaults are PASSED, WARNED, FAILED, ERROR, and SKIPPED per the in-toto test-result predicate specification.","title": "No unsupported test attestation result values"}},{"msg": "Pass","metadata": {"code": "trusted_task.current","collections": ["redhat","redhat_rpms","redhat_security"],"description": "Check if all Tekton Tasks use the latest known Task reference. When warnings will be reported can be configured using the `task_expiry_warning_days` rule data setting. It holds the number of days before the task is to expire within which the warnings will be reported.","effective_on": "2024-05-07T00:00:00Z","title": "Tasks using the latest versions"}},{"msg": "Pass","metadata": {"code": "trusted_task.data","collections": ["redhat","redhat_rpms","redhat_security"],"description": "Confirm the `trusted_tasks` rule data was provided, since it's required by the policy rules in this package.","effective_on": "2024-05-07T00:00:00Z","title": "Task tracking data was provided"}},{"msg": "Pass","metadata": {"code": "trusted_task.data_format","collections": ["redhat","redhat_rpms","policy_data","redhat_security"],"description": "Confirm the expected `trusted_tasks` data keys have been provided in the expected format.","title": "Data format"}},{"msg": "Pass","metadata": {"code": "trusted_task.pinned","collections": ["redhat","redhat_rpms","redhat_security"],"description": "Check if all Tekton Tasks use a Task definition by a pinned reference. When using the git resolver, a commit ID is expected for the revision parameter. When using the bundles resolver, the bundle parameter is expected to include an image reference with a digest.","effective_on": "2024-05-07T00:00:00Z","title": "Task references are pinned"}},{"msg": "Pass","metadata": {"code": "trusted_task.tagged","collections": ["redhat","redhat_rpms"],"description": "Check if all Tekton Tasks defined with the bundle format contain a tag reference.","effective_on": "2024-05-07T00:00:00Z","title": "Task references are tagged"}},{"msg": "Pass","metadata": {"code": "trusted_task.trusted","collections": ["redhat","redhat_security"],"description": "Check the trust of the Tekton Tasks used in the build Pipeline. There are two modes in which trust is verified. The first mode is used if Trusted Artifacts are enabled. In this case, a chain of trust is established for all the Tasks involved in creating an artifact. If the chain contains an untrusted Task, then a violation is emitted. The second mode is used as a fallback when Trusted Artifacts are not enabled. In this case, **all** Tasks in the build Pipeline must be trusted.","effective_on": "2024-05-07T00:00:00Z","title": "Tasks are trusted"}},{"msg": "Pass","metadata": {"code": "trusted_task.trusted_parameters","collections": ["redhat","redhat_security"],"description": "Confirm certain parameters provided to each builder Task have come from trusted Tasks. Trust can be defined using pattern-based rules (trusted_task_rules) or an explicit allow list with expiry dates (trusted_tasks).","effective_on": "2021-07-04T00:00:00Z","title": "Trusted parameters"}},{"msg": "Pass","metadata": {"code": "trusted_task.valid_trusted_artifact_inputs","collections": ["redhat","redhat_rpms","redhat_security"],"depends_on": ["attestation_type.known_attestation_type"],"description": "All input trusted artifacts must be produced on the pipeline. If they are not the artifact could have been injected by a rogue task.","title": "Trusted Artifact produced in pipeline"}},{"msg": "Pass","metadata": {"code": "volatile_config.expired_rule","collections": ["minimal","redhat"],"description": "Generates a warning when a volatile configuration rule has passed its effectiveUntil date. Expired rules are no longer active and should be removed from the policy configuration.","title": "Volatile rule has expired"}},{"msg": "Pass","metadata": {"code": "volatile_config.expiring_rule","collections": ["minimal","redhat"],"description": "Generates a warning when a volatile configuration rule will expire within the configured warning threshold (default 30 days). This provides advance notice to extend or replace the rule before it expires.","title": "Volatile rule expiring soon"}},{"msg": "Pass","metadata": {"code": "volatile_config.invalid_config","collections": ["minimal","redhat"],"description": "Generates a warning when a volatile configuration rule has invalid date values that cannot be parsed. This indicates a configuration error that should be corrected.","title": "Volatile rule has invalid configuration"}},{"msg": "Pass","metadata": {"code": "volatile_config.no_expiration","collections": ["minimal","redhat"],"description": "Generates a warning when a volatile configuration rule has no effectiveUntil date set. Rules without expiration dates may accumulate over time and should be periodically reviewed.","title": "Volatile rule has no expiration"}},{"msg": "Pass","metadata": {"code": "volatile_config.pending_rule","collections": ["minimal","redhat"],"description": "Generates a warning when a volatile configuration rule has an effectiveOn date in the future, indicating it will become active at that time.","title": "Volatile rule pending activation"}}],"success": true,"signatures": [{"keyid": "","sig": "MEQCIEh+epJwgojJoU6IYVUiDqEdb58QBySkOQlc3N11jdYIAiA3hEc3o8UKYx6oegIBjb+HQKm+6pwtAXPQItXxMmXgiw=="},{"keyid": "","sig": "MEUCIQCdQVEmAAID78fMWobT+VmjYDiiEfnD2HYfozVWadZyXQIgUDxIHdw4Dt5Z0/Sha7G4LEdCVXRU+443cKhhHBYigKA="}],"attestations": [{"type": "https://in-toto.io/Statement/v0.1","predicateType": "https://slsa.dev/provenance/v0.2","predicateBuildType": "tekton.dev/v1/PipelineRun","signatures": [{"keyid": "SHA256:IhiN7gY+Z3uSSd7tmj6w5Zfhqafzdhm3DZjIvGc6iYY","sig": "MEUCIQCOr4NGSb2O3et2BfmwPGGsZiCNU+534JxNZ/FaSjIiVAIgJXslvFG8bj0ipgY0EsU9elRh9GkulMLuUwH+icFS1Cc="}]}]}],"key": "-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZP/0htjhVt2y0ohjgtIIgICOtQtA\nnaYJRuLprwIv6FDhZ5yFjYUEtsmoNcW7rx2KM6FOXGsCX3BNc7qhHELT+g==\n-----END PUBLIC KEY-----\n","policy": {"name": "Red Hat", Version v0.9.25 Source ID b345847182602d9a5ce9e957fa76fe02575c8018 Change date 2026-04-27 12:52:43 +0000 UTC (15 weeks ago) ECC v0.1.7 OPA v1.15.2 Conftest v0.68.2 Cosign v3.0.4 Sigstore v1.10.4 Rekor v1.5.0 Tekton Pipeline v1.9.2 Kubernetes Client v0.35.0 Success: true Result: WARNING Violations: 0, Warnings: 24, Successes: 435 Components: - Name: -sha256:ef5ab8d75ed0717b1c9000ee8dab8ae927c4c8663b0fe33247792ca3cd7c4adb-arm64 ImageRef: quay.io/konflux-ci/ec-golden-image@sha256:ef5ab8d75ed0717b1c9000ee8dab8ae927c4c8663b0fe33247792ca3cd7c4adb Violations: 0, Warnings: 8, Successes: 145 - Name: ImageRef: quay.io/konflux-ci/ec-golden-image@sha256:d6162d4d6e9a810c5d94c7b00d8a093576a5d4e5d11bc536450843e422d3f7d3 Violations: 0, Warnings: 8, Successes: 145 - Name: -sha256:8258706e8caa93e835c946fac2224afdada4dea69962fcca8491c43cfb610e65-amd64 ImageRef: quay.io/konflux-ci/ec-golden-image@sha256:8258706e8caa93e835c946fac2224afdada4dea69962fcca8491c43cfb610e65 Violations: 0, Warnings: 8, Successes: 145 Results: › [Warning] base_image_registries.allowed_registries_provided ImageRef: quay.io/konflux-ci/ec-golden-image@sha256:ef5ab8d75ed0717b1c9000ee8dab8ae927c4c8663b0fe33247792ca3cd7c4adb Reason: allowed_registry_prefixes is configured without signing_identities. Migrate to signature-based verification by setting signing_identities in rule data. Title: Allowed base image registry prefixes list or signing identity was provided Description: Confirm that either the `allowed_registry_prefixes` or a `signing_identities` entry was provided, since at least one is required by the policy rules in this package. Solution: Make sure to configure either a signing identity under the `rh-release` key in the `signing_identities` https://conforma.dev/docs/cli/configuration.html#_data_sources or a list of trusted registry prefixes in `allowed_registry_prefixes`. › [Warning] tasks.unsupported ImageRef: quay.io/konflux-ci/ec-golden-image@sha256:ef5ab8d75ed0717b1c9000ee8dab8ae927c4c8663b0fe33247792ca3cd7c4adb Reason: Task "buildah-remote-oci-ta" is used by pipeline task "build-container" is or will be unsupported as of 2026-08-22T00:00:00Z. Upgrade to a newer version of the Task. Term: buildah-remote-oci-ta Title: Task version unsupported Description: The Tekton Task used is or will be unsupported. The Task is annotated with `build.appstudio.redhat.com/expires-on` annotation marking it as unsupported after a certain date. › [Warning] tasks.unsupported ImageRef: quay.io/konflux-ci/ec-golden-image@sha256:ef5ab8d75ed0717b1c9000ee8dab8ae927c4c8663b0fe33247792ca3cd7c4adb Reason: Task "git-clone-oci-ta" is used by pipeline task "clone-repository" is or will be unsupported as of 2026-08-20T00:00:00Z. Upgrade to a newer version of the Task. Term: git-clone-oci-ta Title: Task version unsupported Description: The Tekton Task used is or will be unsupported. The Task is annotated with `build.appstudio.redhat.com/expires-on` annotation marking it as unsupported after a certain date. › [Warning] test.no_failed_informative_tests ImageRef: quay.io/konflux-ci/ec-golden-image@sha256:ef5ab8d75ed0717b1c9000ee8dab8ae927c4c8663b0fe33247792ca3cd7c4adb Reason: The Task "ecosystem-cert-preflight-checks" from the build Pipeline reports a failed informative test Term: ecosystem-cert-preflight-checks Title: No informative tests failed Description: Produce a warning if any informative tests have their result set to "FAILED". The result type is configurable by the "failed_tests_results" key, and the list of informative tests is configurable by the "informative_tests" key in the rule data. Solution: There is a test that failed. Make sure that any task in the build pipeline with a result named 'TEST_OUTPUT' does not fail. More information about the test should be available in the logs for the build Pipeline. › [Warning] trusted_task.future_deny_rule ImageRef: quay.io/konflux-ci/ec-golden-image@sha256:ef5ab8d75ed0717b1c9000ee8dab8ae927c4c8663b0fe33247792ca3cd7c4adb Reason: Task "build-container" will be denied by rule pattern "oci://quay.io/konflux-ci/tekton-catalog/task-buildah-remote-oci-ta" starting on 2026-09-05T00:00:00Z. Term: buildah-remote-oci-ta Title: Future deny rule will apply Description: Warn when a task matches a deny rule that has an effective_on date in the future. This provides advance notice that a task will become untrusted when the deny rule takes effect. Solution: Update the Task to a version that will not match the future deny rule before its effective date. › [Warning] trusted_task.future_deny_rule ImageRef: quay.io/konflux-ci/ec-golden-image@sha256:ef5ab8d75ed0717b1c9000ee8dab8ae927c4c8663b0fe33247792ca3cd7c4adb Reason: Task "clone-repository" will be denied by rule pattern "oci://quay.io/konflux-ci/tekton-catalog/task-git-clone-oci-ta" starting on 2026-09-05T00:00:00Z. Term: git-clone-oci-ta Title: Future deny rule will apply Description: Warn when a task matches a deny rule that has an effective_on date in the future. This provides advance notice that a task will become untrusted when the deny rule takes effect. Solution: Update the Task to a version that will not match the future deny rule before its effective date. › [Warning] trusted_task.future_deny_rule ImageRef: quay.io/konflux-ci/ec-golden-image@sha256:ef5ab8d75ed0717b1c9000ee8dab8ae927c4c8663b0fe33247792ca3cd7c4adb Reason: Task "rpms-signature-scan" will be denied by rule pattern "oci://quay.io/konflux-ci/konflux-vanguard/*" starting on 2026-09-24T00:00:00Z. Term: rpms-signature-scan Title: Future deny rule will apply Description: Warn when a task matches a deny rule that has an effective_on date in the future. This provides advance notice that a task will become untrusted when the deny rule takes effect. Solution: Update the Task to a version that will not match the future deny rule before its effective date. › [Warning] trusted_task.future_deny_rule ImageRef: quay.io/konflux-ci/ec-golden-image@sha256:ef5ab8d75ed0717b1c9000ee8dab8ae927c4c8663b0fe33247792ca3cd7c4adb Reason: Task "sast-snyk-check" will be denied by rule pattern "oci://quay.io/konflux-ci/tekton-catalog/task-sast-snyk-check-oci-ta" starting on 2026-09-05T00:00:00Z. Term: sast-snyk-check-oci-ta Title: Future deny rule will apply Description: Warn when a task matches a deny rule that has an effective_on date in the future. This provides advance notice that a task will become untrusted when the deny rule takes effect. Solution: Update the Task to a version that will not match the future deny rule before its effective date. › [Warning] base_image_registries.allowed_registries_provided ImageRef: quay.io/konflux-ci/ec-golden-image@sha256:d6162d4d6e9a810c5d94c7b00d8a093576a5d4e5d11bc536450843e422d3f7d3 Reason: allowed_registry_prefixes is configured without signing_identities. Migrate to signature-based verification by setting signing_identities in rule data. Title: Allowed base image registry prefixes list or signing identity was provided Description: Confirm that either the `allowed_registry_prefixes` or a `signing_identities` entry was provided, since at least one is required by the policy rules in this package. Solution: Make sure to configure either a signing identity under the `rh-release` key in the `signing_identities` https://conforma.dev/docs/cli/configuration.html#_data_sources or a list of trusted registry prefixes in `allowed_registry_prefixes`. › [Warning] tasks.unsupported ImageRef: quay.io/konflux-ci/ec-golden-image@sha256:d6162d4d6e9a810c5d94c7b00d8a093576a5d4e5d11bc536450843e422d3f7d3 Reason: Task "buildah-remote-oci-ta" is used by pipeline task "build-container" is or will be unsupported as of 2026-08-22T00:00:00Z. Upgrade to a newer version of the Task. Term: buildah-remote-oci-ta Title: Task version unsupported Description: The Tekton Task used is or will be unsupported. The Task is annotated with `build.appstudio.redhat.com/expires-on` annotation marking it as unsupported after a certain date. › [Warning] tasks.unsupported ImageRef: quay.io/konflux-ci/ec-golden-image@sha256:d6162d4d6e9a810c5d94c7b00d8a093576a5d4e5d11bc536450843e422d3f7d3 Reason: Task "git-clone-oci-ta" is used by pipeline task "clone-repository" is or will be unsupported as of 2026-08-20T00:00:00Z. Upgrade to a newer version of the Task. Term: git-clone-oci-ta Title: Task version unsupported Description: The Tekton Task used is or will be unsupported. The Task is annotated with `build.appstudio.redhat.com/expires-on` annotation marking it as unsupported after a certain date. › [Warning] test.no_failed_informative_tests ImageRef: quay.io/konflux-ci/ec-golden-image@sha256:d6162d4d6e9a810c5d94c7b00d8a093576a5d4e5d11bc536450843e422d3f7d3 Reason: The Task "ecosystem-cert-preflight-checks" from the build Pipeline reports a failed informative test Term: ecosystem-cert-preflight-checks Title: No informative tests failed Description: Produce a warning if any informative tests have their result set to "FAILED". The result type is configurable by the "failed_tests_results" key, and the list of informative tests is configurable by the "informative_tests" key in the rule data. Solution: There is a test that failed. Make sure that any task in the build pipeline with a result named 'TEST_OUTPUT' does not fail. More information about the test should be available in the logs for the build Pipeline. › [Warning] trusted_task.future_deny_rule ImageRef: quay.io/konflux-ci/ec-golden-image@sha256:d6162d4d6e9a810c5d94c7b00d8a093576a5d4e5d11bc536450843e422d3f7d3 Reason: Task "build-container" will be denied by rule pattern "oci://quay.io/konflux-ci/tekton-catalog/task-buildah-remote-oci-ta" starting on 2026-09-05T00:00:00Z. Term: buildah-remote-oci-ta Title: Future deny rule will apply Description: Warn when a task matches a deny rule that has an effective_on date in the future. This provides advance notice that a task will become untrusted when the deny rule takes effect. Solution: Update the Task to a version that will not match the future deny rule before its effective date. › [Warning] trusted_task.future_deny_rule ImageRef: quay.io/konflux-ci/ec-golden-image@sha256:d6162d4d6e9a810c5d94c7b00d8a093576a5d4e5d11bc536450843e422d3f7d3 Reason: Task "clone-repository" will be denied by rule pattern "oci://quay.io/konflux-ci/tekton-catalog/task-git-clone-oci-ta" starting on 2026-09-05T00:00:00Z. Term: git-clone-oci-ta Title: Future deny rule will apply Description: Warn when a task matches a deny rule that has an effective_on date in the future. This provides advance notice that a task will become untrusted when the deny rule takes effect. Solution: Update the Task to a version that will not match the future deny rule before its effective date. › [Warning] trusted_task.future_deny_rule ImageRef: quay.io/konflux-ci/ec-golden-image@sha256:d6162d4d6e9a810c5d94c7b00d8a093576a5d4e5d11bc536450843e422d3f7d3 Reason: Task "rpms-signature-scan" will be denied by rule pattern "oci://quay.io/konflux-ci/konflux-vanguard/*" starting on 2026-09-24T00:00:00Z. Term: rpms-signature-scan Title: Future deny rule will apply Description: Warn when a task matches a deny rule that has an effective_on date in the future. This provides advance notice that a task will become untrusted when the deny rule takes effect. Solution: Update the Task to a version that will not match the future deny rule before its effective date. › [Warning] trusted_task.future_deny_rule ImageRef: quay.io/konflux-ci/ec-golden-image@sha256:d6162d4d6e9a810c5d94c7b00d8a093576a5d4e5d11bc536450843e422d3f7d3 Reason: Task "sast-snyk-check" will be denied by rule pattern "oci://quay.io/konflux-ci/tekton-catalog/task-sast-snyk-check-oci-ta" starting on 2026-09-05T00:00:00Z. Term: sast-snyk-check-oci-ta Title: Future deny rule will apply Description: Warn when a task matches a deny rule that has an effective_on date in the future. This provides advance notice that a task will become untrusted when the deny rule takes effect. Solution: Update the Task to a version that will not match the future deny rule before its effective date. › [Warning] base_image_registries.allowed_registries_provided ImageRef: quay.io/konflux-ci/ec-golden-image@sha256:8258706e8caa93e835c946fac2224afdada4dea69962fcca8491c43cfb610e65 Reason: allowed_registry_prefixes is configured without signing_identities. Migrate to signature-based verification by setting signing_identities in rule data. Title: Allowed base image registry prefixes list or signing identity was provided Description: Confirm that either the `allowed_registry_prefixes` or a `signing_identities` entry was provided, since at least one is required by the policy rules in this package. Solution: Make sure to configure either a signing identity under the `rh-release` key in the `signing_identities` https://conforma.dev/docs/cli/configuration.html#_data_sources or a list of trusted registry prefixes in `allowed_registry_prefixes`. › [Warning] tasks.unsupported ImageRef: quay.io/konflux-ci/ec-golden-image@sha256:8258706e8caa93e835c946fac2224afdada4dea69962fcca8491c43cfb610e65 Reason: Task "buildah-remote-oci-ta" is used by pipeline task "build-container" is or will be unsupported as of 2026-08-22T00:00:00Z. Upgrade to a newer version of the Task. Term: buildah-remote-oci-ta Title: Task version unsupported Description: The Tekton Task used is or will be unsupported. The Task is annotated with `build.appstudio.redhat.com/expires-on` annotation marking it as unsupported after a certain date. › [Warning] tasks.unsupported ImageRef: quay.io/konflux-ci/ec-golden-image@sha256:8258706e8caa93e835c946fac2224afdada4dea69962fcca8491c43cfb610e65 Reason: Task "git-clone-oci-ta" is used by pipeline task "clone-repository" is or will be unsupported as of 2026-08-20T00:00:00Z. Upgrade to a newer version of the Task. Term: git-clone-oci-ta Title: Task version unsupported Description: The Tekton Task used is or will be unsupported. The Task is annotated with `build.appstudio.redhat.com/expires-on` annotation marking it as unsupported after a certain date. › [Warning] test.no_failed_informative_tests ImageRef: quay.io/konflux-ci/ec-golden-image@sha256:8258706e8caa93e835c946fac2224afdada4dea69962fcca8491c43cfb610e65 Reason: The Task "ecosystem-cert-preflight-checks" from the build Pipeline reports a failed informative test Term: ecosystem-cert-preflight-checks Title: No informative tests failed Description: Produce a warning if any informative tests have their result set to "FAILED". The result type is configurable by the "failed_tests_results" key, and the list of informative tests is configurable by the "informative_tests" key in the rule data. Solution: There is a test that failed. Make sure that any task in the build pipeline with a result named 'TEST_OUTPUT' does not fail. More information about the test should be available in the logs for the build Pipeline. › [Warning] trusted_task.future_deny_rule ImageRef: quay.io/konflux-ci/ec-golden-image@sha256:8258706e8caa93e835c946fac2224afdada4dea69962fcca8491c43cfb610e65 Reason: Task "build-container" will be denied by rule pattern "oci://quay.io/konflux-ci/tekton-catalog/task-buildah-remote-oci-ta" starting on 2026-09-05T00:00:00Z. Term: buildah-remote-oci-ta Title: Future deny rule will apply Description: Warn when a task matches a deny rule that has an effective_on date in the future. This provides advance notice that a task will become untrusted when the deny rule takes effect. Solution: Update the Task to a version that will not match the future deny rule before its effective date. › [Warning] trusted_task.future_deny_rule ImageRef: quay.io/konflux-ci/ec-golden-image@sha256:8258706e8caa93e835c946fac2224afdada4dea69962fcca8491c43cfb610e65 Reason: Task "clone-repository" will be denied by rule pattern "oci://quay.io/konflux-ci/tekton-catalog/task-git-clone-oci-ta" starting on 2026-09-05T00:00:00Z. Term: git-clone-oci-ta Title: Future deny rule will apply Description: Warn when a task matches a deny rule that has an effective_on date in the future. This provides advance notice that a task will become untrusted when the deny rule takes effect. Solution: Update the Task to a version that will not match the future deny rule before its effective date. › [Warning] trusted_task.future_deny_rule ImageRef: quay.io/konflux-ci/ec-golden-image@sha256:8258706e8caa93e835c946fac2224afdada4dea69962fcca8491c43cfb610e65 Reason: Task "rpms-signature-scan" will be denied by rule pattern "oci://quay.io/konflux-ci/konflux-vanguard/*" starting on 2026-09-24T00:00:00Z. Term: rpms-signature-scan Title: Future deny rule will apply Description: Warn when a task matches a deny rule that has an effective_on date in the future. This provides advance notice that a task will become untrusted when the deny rule takes effect. Solution: Update the Task to a version that will not match the future deny rule before its effective date. › [Warning] trusted_task.future_deny_rule ImageRef: quay.io/konflux-ci/ec-golden-image@sha256:8258706e8caa93e835c946fac2224afdada4dea69962fcca8491c43cfb610e65 Reason: Task "sast-snyk-check" will be denied by rule pattern "oci://quay.io/konflux-ci/tekton-catalog/task-sast-snyk-check-oci-ta" starting on 2026-09-05T00:00:00Z. Term: sast-snyk-check-oci-ta Title: Future deny rule will apply Description: Warn when a task matches a deny rule that has an effective_on date in the future. This provides advance notice that a task will become untrusted when the deny rule takes effect. Solution: Update the Task to a version that will not match the future deny rule before its effective date. For more information about policy issues, see the policy documentation: https://conforma.dev/docs/policy/ { "timestamp": "1786682472", "namespace": "", "successes": 435, "failures": 0, "warnings": 24, "result": "WARNING" } { "policy": { "name": "Red Hat", "description": "Includes the full set of rules and policies required internally by Red Hat when building Red Hat products. Source: https://github.com/conforma/config/blob/main/redhat/policy.yaml", "sources": [ { "name": "Default", "policy": [ "oci::quay.io/enterprise-contract/ec-release-policy:konflux@sha256:ee5c3a020c9545eca738ed87198af0b235463069b2d72c5dba609364a83321d2" ], "data": [ "git::github.com/release-engineering/rhtap-ec-policy//data?ref=a32d53f84f63c1157d0df30d949d07b064ed74a2", "oci::quay.io/konflux-ci/tekton-catalog/data-acceptable-bundles:latest@sha256:f8cb3e1240c4ff6061d370b91b661800c09cc96db791fc9d6925f72e4ba70109", "oci::quay.io/konflux-ci/konflux-vanguard/data-acceptable-bundles:latest@sha256:0b31c7bc77a7463a1bc52f3d3625ef0e0e75443da7fd2de8005d7885282138ea", "oci::quay.io/konflux-ci/integration-service-catalog/data-acceptable-bundles:latest@sha256:7b00455045ea3873a72caeb1e7ac7d036bd53963a26409891a4cc9d0d242b9fc" ], "config": { "exclude": [ "slsa_source_correlated.source_code_reference_provided", "cve.cve_results_found" ], "include": [ "@redhat" ] } } ], "publicKey": "k8s://chains-e2e-ozqz/golden-image-public-keyxvablwmozd" }, "key": "-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZP/0htjhVt2y0ohjgtIIgICOtQtA\nnaYJRuLprwIv6FDhZ5yFjYUEtsmoNcW7rx2KM6FOXGsCX3BNc7qhHELT+g==\n-----END PUBLIC KEY-----\n", "effective-time": "2026-08-14T04:40:47.493433737Z" } 2026-08-14T04:41:17.571114Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Found new file to watch. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-df1de1928415534734e0490c356ee704-pod_458f2040-b02f-4e58-a9e5-1b3ea98acc7c/place-scripts/0.log 2026-08-14T04:41:18.604314Z WARN source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Currently ignoring file too small to fingerprint. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-df1de1928415534734e0490c356ee704-pod_458f2040-b02f-4e58-a9e5-1b3ea98acc7c/step-initialize-tuf/0.log 2026-08-14T04:41:18.604348Z WARN source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Currently ignoring file too small to fingerprint. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-df1de1928415534734e0490c356ee704-pod_458f2040-b02f-4e58-a9e5-1b3ea98acc7c/step-reduce/0.log 2026-08-14T04:41:18.604356Z WARN source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Currently ignoring file too small to fingerprint. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-df1de1928415534734e0490c356ee704-pod_458f2040-b02f-4e58-a9e5-1b3ea98acc7c/step-report-json/0.log 2026-08-14T04:41:18.604363Z WARN source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Currently ignoring file too small to fingerprint. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-df1de1928415534734e0490c356ee704-pod_458f2040-b02f-4e58-a9e5-1b3ea98acc7c/step-show-config/0.log 2026-08-14T04:41:18.604370Z WARN source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Currently ignoring file too small to fingerprint. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-df1de1928415534734e0490c356ee704-pod_458f2040-b02f-4e58-a9e5-1b3ea98acc7c/step-summary/0.log 2026-08-14T04:41:18.604377Z WARN source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Currently ignoring file too small to fingerprint. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-df1de1928415534734e0490c356ee704-pod_458f2040-b02f-4e58-a9e5-1b3ea98acc7c/step-validate/0.log 2026-08-14T04:41:18.604384Z WARN source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Currently ignoring file too small to fingerprint. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-df1de1928415534734e0490c356ee704-pod_458f2040-b02f-4e58-a9e5-1b3ea98acc7c/step-version/0.log 2026/08/14 04:41:16 Entrypoint initialization 2026-08-14T04:41:19.631052Z WARN source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Currently ignoring file too small to fingerprint. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-df1de1928415534734e0490c356ee704-pod_458f2040-b02f-4e58-a9e5-1b3ea98acc7c/step-assert/0.log 2026-08-14T04:41:19.631084Z WARN source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Currently ignoring file too small to fingerprint. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-df1de1928415534734e0490c356ee704-pod_458f2040-b02f-4e58-a9e5-1b3ea98acc7c/step-detailed-report/0.log 2026/08/14 04:41:17 Decoded script /tekton/scripts/script-2-xl9dz 2026-08-14T04:41:21.680562Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Found new file to watch. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-df1de1928415534734e0490c356ee704-pod_458f2040-b02f-4e58-a9e5-1b3ea98acc7c/step-initialize-tuf/0.log 2026-08-14T04:41:21.680609Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Found new file to watch. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-df1de1928415534734e0490c356ee704-pod_458f2040-b02f-4e58-a9e5-1b3ea98acc7c/step-reduce/0.log 2026/08/14 04:41:21 INFO Step was skipped due to when expressions were evaluated to false. Single Component mode? false { "components": [ { "name": "", "containerImage": "quay.io/konflux-ci/ec-golden-image:e2e-test-unacceptable-task", "source": {} } ], "artifacts": {} } 2026-08-14T04:41:29.893369Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Found new file to watch. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-df1de1928415534734e0490c356ee704-pod_458f2040-b02f-4e58-a9e5-1b3ea98acc7c/step-assert/0.log 2026-08-14T04:41:29.893415Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Found new file to watch. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-df1de1928415534734e0490c356ee704-pod_458f2040-b02f-4e58-a9e5-1b3ea98acc7c/step-detailed-report/0.log 2026-08-14T04:41:29.893458Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Found new file to watch. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-df1de1928415534734e0490c356ee704-pod_458f2040-b02f-4e58-a9e5-1b3ea98acc7c/step-report-json/0.log 2026-08-14T04:41:29.893472Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Found new file to watch. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-df1de1928415534734e0490c356ee704-pod_458f2040-b02f-4e58-a9e5-1b3ea98acc7c/step-show-config/0.log 2026-08-14T04:41:29.893485Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Found new file to watch. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-df1de1928415534734e0490c356ee704-pod_458f2040-b02f-4e58-a9e5-1b3ea98acc7c/step-summary/0.log 2026-08-14T04:41:29.893504Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Found new file to watch. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-df1de1928415534734e0490c356ee704-pod_458f2040-b02f-4e58-a9e5-1b3ea98acc7c/step-version/0.log 2026-08-14T04:41:31.970857Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Found new file to watch. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-61e7807adcbc4ea2da3381d22adf4dd3-pod_5dd88e24-3b06-4032-8007-fe2bfae660e7/prepare/0.log 2026-08-14T04:41:32.491298Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Found new file to watch. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-61e7807adcbc4ea2da3381d22adf4dd3-pod_5dd88e24-3b06-4032-8007-fe2bfae660e7/place-scripts/0.log {"success": false,"components": [{"name": "","containerImage": "quay.io/konflux-ci/ec-golden-image@sha256:304040ca1911aa4d911bd7c6d6d07193c57dc49dbc43e63828b42ab204fb1b25","source": {},"violations": [{"msg": "PipelineTask \"build-container\" uses an untrusted task reference: oci://quay.io/redhat-appstudio-tekton-catalog/task-buildah:0.1@sha256:c3712257615d206ef40013bf1c5c681670fc8f7fd6aac9fa4c86f7afeff627ef. The denial reason is: not_allowed","metadata": {"code": "trusted_task.trusted","collections": ["redhat","redhat_security"],"description": "Check the trust of the Tekton Tasks used in the build Pipeline. There are two modes in which trust is verified. The first mode is used if Trusted Artifacts are enabled. In this case, a chain of trust is established for all the Tasks involved in creating an artifact. If the chain contains an untrusted Task, then a violation is emitted. The second mode is used as a fallback when Trusted Artifacts are not enabled. In this case, **all** Tasks in the build Pipeline must be trusted. To exclude this rule add \"trusted_task.trusted:buildah\" to the `exclude` section of the policy configuration.","solution": "If using Trusted Artifacts, be sure every Task in the build Pipeline responsible for producing a Trusted Artifact is trusted. Otherwise, ensure **all** Tasks in the build Pipeline are trusted. Note that trust is eventually revoked from Tasks when newer versions are made available.","term": "buildah","title": "Tasks are trusted"}},{"msg": "PipelineTask \"clair-scan\" uses an untrusted task reference: oci://quay.io/redhat-appstudio-tekton-catalog/task-clair-scan:0.1@sha256:fba8170329ab00b864ee7d16e0358df4c4386880e10894fd7bbbb1457112477b. The denial reason is: not_allowed","metadata": {"code": "trusted_task.trusted","collections": ["redhat","redhat_security"],"description": "Check the trust of the Tekton Tasks used in the build Pipeline. There are two modes in which trust is verified. The first mode is used if Trusted Artifacts are enabled. In this case, a chain of trust is established for all the Tasks involved in creating an artifact. If the chain contains an untrusted Task, then a violation is emitted. The second mode is used as a fallback when Trusted Artifacts are not enabled. In this case, **all** Tasks in the build Pipeline must be trusted. To exclude this rule add \"trusted_task.trusted:clair-scan\" to the `exclude` section of the policy configuration.","solution": "If using Trusted Artifacts, be sure every Task in the build Pipeline responsible for producing a Trusted Artifact is trusted. Otherwise, ensure **all** Tasks in the build Pipeline are trusted. Note that trust is eventually revoked from Tasks when newer versions are made available.","term": "clair-scan","title": "Tasks are trusted"}},{"msg": "PipelineTask \"clamav-scan\" uses an untrusted task reference: oci://quay.io/redhat-appstudio-tekton-catalog/task-clamav-scan:0.1@sha256:28b425322aa84f988c6c4f8d503787b3fb301668b2ad6728846b8f8c45ba012b. The denial reason is: not_allowed","metadata": {"code": "trusted_task.trusted","collections": ["redhat","redhat_security"],"description": "Check the trust of the Tekton Tasks used in the build Pipeline. There are two modes in which trust is verified. The first mode is used if Trusted Artifacts are enabled. In this case, a chain of trust is established for all the Tasks involved in creating an artifact. If the chain contains an untrusted Task, then a violation is emitted. The second mode is used as a fallback when Trusted Artifacts are not enabled. In this case, **all** Tasks in the build Pipeline must be trusted. To exclude this rule add \"trusted_task.trusted:clamav-scan\" to the `exclude` section of the policy configuration.","solution": "If using Trusted Artifacts, be sure every Task in the build Pipeline responsible for producing a Trusted Artifact is trusted. Otherwise, ensure **all** Tasks in the build Pipeline are trusted. Note that trust is eventually revoked from Tasks when newer versions are made available.","term": "clamav-scan","title": "Tasks are trusted"}},{"msg": "PipelineTask \"deprecated-base-image-check\" uses an untrusted task reference: oci://quay.io/redhat-appstudio-tekton-catalog/task-deprecated-image-check:0.1@sha256:28d724dd6f6c365b2a839d9e52baac91559fd78c160774769c1ec724301f78d4. The denial reason is: not_allowed","metadata": {"code": "trusted_task.trusted","collections": ["redhat","redhat_security"],"description": "Check the trust of the Tekton Tasks used in the build Pipeline. There are two modes in which trust is verified. The first mode is used if Trusted Artifacts are enabled. In this case, a chain of trust is established for all the Tasks involved in creating an artifact. If the chain contains an untrusted Task, then a violation is emitted. The second mode is used as a fallback when Trusted Artifacts are not enabled. In this case, **all** Tasks in the build Pipeline must be trusted. To exclude this rule add \"trusted_task.trusted:deprecated-image-check\" to the `exclude` section of the policy configuration.","solution": "If using Trusted Artifacts, be sure every Task in the build Pipeline responsible for producing a Trusted Artifact is trusted. Otherwise, ensure **all** Tasks in the build Pipeline are trusted. Note that trust is eventually revoked from Tasks when newer versions are made available.","term": "deprecated-image-check","title": "Tasks are trusted"}},{"msg": "PipelineTask \"clone-repository\" uses an untrusted task reference: oci://quay.io/redhat-appstudio-tekton-catalog/task-git-clone:0.1@sha256:f4e37778cba00296606ddfbc1c58181330899cafcaa1ee41c75a7cf8bed312f0. The denial reason is: not_allowed","metadata": {"code": "trusted_task.trusted","collections": ["redhat","redhat_security"],"description": "Check the trust of the Tekton Tasks used in the build Pipeline. There are two modes in which trust is verified. The first mode is used if Trusted Artifacts are enabled. In this case, a chain of trust is established for all the Tasks involved in creating an artifact. If the chain contains an untrusted Task, then a violation is emitted. The second mode is used as a fallback when Trusted Artifacts are not enabled. In this case, **all** Tasks in the build Pipeline must be trusted. To exclude this rule add \"trusted_task.trusted:git-clone\" to the `exclude` section of the policy configuration.","solution": "If using Trusted Artifacts, be sure every Task in the build Pipeline responsible for producing a Trusted Artifact is trusted. Otherwise, ensure **all** Tasks in the build Pipeline are trusted. Note that trust is eventually revoked from Tasks when newer versions are made available.","term": "git-clone","title": "Tasks are trusted"}},{"msg": "PipelineTask \"init\" uses an untrusted task reference: oci://quay.io/redhat-appstudio-tekton-catalog/task-init:0.1@sha256:5ce77110e2a49407a69a7922042dc0859f7e8f5f75dc0cd0bcc2d17860469bdb. The denial reason is: not_allowed","metadata": {"code": "trusted_task.trusted","collections": ["redhat","redhat_security"],"description": "Check the trust of the Tekton Tasks used in the build Pipeline. There are two modes in which trust is verified. The first mode is used if Trusted Artifacts are enabled. In this case, a chain of trust is established for all the Tasks involved in creating an artifact. If the chain contains an untrusted Task, then a violation is emitted. The second mode is used as a fallback when Trusted Artifacts are not enabled. In this case, **all** Tasks in the build Pipeline must be trusted. To exclude this rule add \"trusted_task.trusted:init\" to the `exclude` section of the policy configuration.","solution": "If using Trusted Artifacts, be sure every Task in the build Pipeline responsible for producing a Trusted Artifact is trusted. Otherwise, ensure **all** Tasks in the build Pipeline are trusted. Note that trust is eventually revoked from Tasks when newer versions are made available.","term": "init","title": "Tasks are trusted" }},{"msg": "PipelineTask \"sanity-inspect-image\" uses an untrusted task reference: oci://quay.io/redhat-appstudio-tekton-catalog/task-sanity-inspect-image:0.1@sha256:fd4efd9d12eea3a8d47532c4226e685618845d0ba95abb98e008020243d96301. The denial reason is: not_allowed","metadata": {"code": "trusted_task.trusted","collections": ["redhat","redhat_security"],"description": "Check the trust of the Tekton Tasks used in the build Pipeline. There are two modes in which trust is verified. The first mode is used if Trusted Artifacts are enabled. In this case, a chain of trust is established for all the Tasks involved in creating an artifact. If the chain contains an untrusted Task, then a violation is emitted. The second mode is used as a fallback when Trusted Artifacts are not enabled. In this case, **all** Tasks in the build Pipeline must be trusted. To exclude this rule add \"trusted_task.trusted:sanity-inspect-image\" to the `exclude` section of the policy configuration.","solution": "If using Trusted Artifacts, be sure every Task in the build Pipeline responsible for producing a Trusted Artifact is trusted. Otherwise, ensure **all** Tasks in the build Pipeline are trusted. Note that trust is eventually revoked from Tasks when newer versions are made available.","term": "sanity-inspect-image","title": "Tasks are trusted"}},{"msg": "PipelineTask \"sanity-label-check\" uses an untrusted task reference: oci://quay.io/redhat-appstudio-tekton-catalog/task-sanity-label-check:0.1@sha256:534770bf7a7c10277ab5f9c1e7b766abbffb343cc864dd9545aecc5278257dc3. The denial reason is: not_allowed","metadata": {"code": "trusted_task.trusted","collections": ["redhat","redhat_security"],"description": "Check the trust of the Tekton Tasks used in the build Pipeline. There are two modes in which trust is verified. The first mode is used if Trusted Artifacts are enabled. In this case, a chain of trust is established for all the Tasks involved in creating an artifact. If the chain contains an untrusted Task, then a violation is emitted. The second mode is used as a fallback when Trusted Artifacts are not enabled. In this case, **all** Tasks in the build Pipeline must be trusted. To exclude this rule add \"trusted_task.trusted:sanity-label-check\" to the `exclude` section of the policy configuration.","solution": "If using Trusted Artifacts, be sure every Task in the build Pipeline responsible for producing a Trusted Artifact is trusted. Otherwise, ensure **all** Tasks in the build Pipeline are trusted. Note that trust is eventually revoked from Tasks when newer versions are made available.","term": "sanity-label-check","title": "Tasks are trusted"}},{"msg": "PipelineTask \"sanity-optional-label-check\" uses an untrusted task reference: oci://quay.io/redhat-appstudio-tekton-catalog/task-sanity-label-check:0.1@sha256:534770bf7a7c10277ab5f9c1e7b766abbffb343cc864dd9545aecc5278257dc3. The denial reason is: not_allowed","metadata": {"code": "trusted_task.trusted","collections": ["redhat","redhat_security"],"description": "Check the trust of the Tekton Tasks used in the build Pipeline. There are two modes in which trust is verified. The first mode is used if Trusted Artifacts are enabled. In this case, a chain of trust is established for all the Tasks involved in creating an artifact. If the chain contains an untrusted Task, then a violation is emitted. The second mode is used as a fallback when Trusted Artifacts are not enabled. In this case, **all** Tasks in the build Pipeline must be trusted. To exclude this rule add \"trusted_task.trusted:sanity-label-check\" to the `exclude` section of the policy configuration.","solution": "If using Trusted Artifacts, be sure every Task in the build Pipeline responsible for producing a Trusted Artifact is trusted. Otherwise, ensure **all** Tasks in the build Pipeline are trusted. Note that trust is eventually revoked from Tasks when newer versions are made available.","term": "sanity-label-check","title": "Tasks are trusted"}},{"msg": "PipelineTask \"sbom-json-check\" uses an untrusted task reference: oci://quay.io/redhat-appstudio-tekton-catalog/task-sbom-json-check:0.1@sha256:ce6a0932da9b41080108284d1366fc2de8374fca5137500138e16ad9e04610c6. The denial reason is: not_allowed","metadata": {"code": "trusted_task.trusted","collections": ["redhat","redhat_security"],"description": "Check the trust of the Tekton Tasks used in the build Pipeline. There are two modes in which trust is verified. The first mode is used if Trusted Artifacts are enabled. In this case, a chain of trust is established for all the Tasks involved in creating an artifact. If the chain contains an untrusted Task, then a violation is emitted. The second mode is used as a fallback when Trusted Artifacts are not enabled. In this case, **all** Tasks in the build Pipeline must be trusted. To exclude this rule add \"trusted_task.trusted:sbom-json-check\" to the `exclude` section of the policy configuration.","solution": "If using Trusted Artifacts, be sure every Task in the build Pipeline responsible for producing a Trusted Artifact is trusted. Otherwise, ensure **all** Tasks in the build Pipeline are trusted. Note that trust is eventually revoked from Tasks when newer versions are made available.","term": "sbom-json-check","title": "Tasks are trusted"}},{"msg": "PipelineTask \"show-summary\" uses an untrusted task reference: oci://quay.io/redhat-appstudio-tekton-catalog/task-summary:0.1@sha256:c0f66b28c338426774e34a8d4a00349fbab798b19df5841a95727148d5ef3c65. The denial reason is: not_allowed","metadata": {"code": "trusted_task.trusted","collections": ["redhat","redhat_security"],"description": "Check the trust of the Tekton Tasks used in the build Pipeline. There are two modes in which trust is verified. The first mode is used if Trusted Artifacts are enabled. In this case, a chain of trust is established for all the Tasks involved in creating an artifact. If the chain contains an untrusted Task, then a violation is emitted. The second mode is used as a fallback when Trusted Artifacts are not enabled. In this case, **all** Tasks in the build Pipeline must be trusted. To exclude this rule add \"trusted_task.trusted:summary\" to the `exclude` section of the policy configuration.","solution": "If using Trusted Artifacts, be sure every Task in the build Pipeline responsible for producing a Trusted Artifact is trusted. Otherwise, ensure **all** Tasks in the build Pipeline are trusted. Note that trust is eventually revoked from Tasks when newer versions are made available.","term": "summary","title": "Tasks are trusted"}}],"successes": [{"msg": "Pass","metadata": {"code": "builtin.attestation.signature_check","description": "The attestation signature matches available signing materials.","title": "Attestation signature check passed"}},{"msg": "Pass","metadata": {"code": "builtin.attestation.syntax_check","description": "The attestation has correct syntax.","title": "Attestation syntax check passed"}},{"msg": "Pass","metadata": {"code": "builtin.image.signature_check","description": "The image signature matches available signing materials.","title": "Image signature check passed"}}],"success": false,"signatures": [{"keyid": "","sig": "MEUCIQD86lmOqCovYZDPKm0XxxsLgDQcFIFAv+QZxrFSHmCvQAIgTd1I005ox8MfABqsAen6PZEyg2MCEQNBCx1NLS3V0JQ="}],"attestations": [{"type": "https://in-toto.io/Statement/v0.1","predicateType": "https://slsa.dev/provenance/v0.2","predicateBuildType": "tekton.dev/v1beta1/TaskRun","signatures": [{"keyid": "SHA256:IhiN7gY+Z3uSSd7tmj6w5Zfhqafzdhm3DZjIvGc6iYY","sig": "MEUCIQDcgZIwEkLFqD7U9HrobgEC8Jo7wm+xJ5AoyO3qg+aj8QIgb9xDpjYGRMmpVk+QATeVKlHonzBiu51HtT3J+lQXPXc="}]},{"type": "https://in-toto.io/Statement/v0.1","predicateType": "https://slsa.dev/provenance/v0.2","predicateBuildType": "tekton.dev/v1beta1/PipelineRun","signatures": [{"keyid": "SHA256:IhiN7gY+Z3uSSd7tmj6w5Zfhqafzdhm3DZjIvGc6iYY", Success: false Result: FAILURE Violations: 11, Warnings: 0, Successes: 3 Component: ImageRef: quay.io/konflux-ci/ec-golden-image@sha256:304040ca1911aa4d911bd7c6d6d07193c57dc49dbc43e63828b42ab204fb1b25 Results: ✕ [Violation] trusted_task.trusted ImageRef: quay.io/konflux-ci/ec-golden-image@sha256:304040ca1911aa4d911bd7c6d6d07193c57dc49dbc43e63828b42ab204fb1b25 Reason: PipelineTask "build-container" uses an untrusted task reference: oci://quay.io/redhat-appstudio-tekton-catalog/task-buildah:0.1@sha256:c3712257615d206ef40013bf1c5c681670fc8f7fd6aac9fa4c86f7afeff627ef. The denial reason is: not_allowed Term: buildah Title: Tasks are trusted Description: Check the trust of the Tekton Tasks used in the build Pipeline. There are two modes in which trust is verified. The first mode is used if Trusted Artifacts are enabled. In this case, a chain of trust is established for all the Tasks involved in creating an artifact. If the chain contains an untrusted Task, then a violation is emitted. The second mode is used as a fallback when Trusted Artifacts are not enabled. In this case, **all** Tasks in the build Pipeline must be trusted. To exclude this rule add "trusted_task.trusted:buildah" to the `exclude` section of the policy configuration. Solution: If using Trusted Artifacts, be sure every Task in the build Pipeline responsible for producing a Trusted Artifact is trusted. Otherwise, ensure **all** Tasks in the build Pipeline are trusted. Note that trust is eventually revoked from Tasks when newer versions are made available. ✕ [Violation] trusted_task.trusted ImageRef: quay.io/konflux-ci/ec-golden-image@sha256:304040ca1911aa4d911bd7c6d6d07193c57dc49dbc43e63828b42ab204fb1b25 Reason: PipelineTask "clair-scan" uses an untrusted task reference: oci://quay.io/redhat-appstudio-tekton-catalog/task-clair-scan:0.1@sha256:fba8170329ab00b864ee7d16e0358df4c4386880e10894fd7bbbb1457112477b. The denial reason is: not_allowed Term: clair-scan Title: Tasks are trusted Description: Check the trust of the Tekton Tasks used in the build Pipeline. There are two modes in which trust is verified. The first mode is used if Trusted Artifacts are enabled. In this case, a chain of trust is established for all the Tasks involved in creating an artifact. If the chain contains an untrusted Task, then a violation is emitted. The second mode is used as a fallback when Trusted Artifacts are not enabled. In this case, **all** Tasks in the build Pipeline must be trusted. To exclude this rule add "trusted_task.trusted:clair-scan" to the `exclude` section of the policy configuration. Solution: If using Trusted Artifacts, be sure every Task in the build Pipeline responsible for producing a Trusted Artifact is trusted. Otherwise, ensure **all** Tasks in the build Pipeline are trusted. Note that trust is eventually revoked from Tasks when newer versions are made available. ✕ [Violation] trusted_task.trusted ImageRef: quay.io/konflux-ci/ec-golden-image@sha256:304040ca1911aa4d911bd7c6d6d07193c57dc49dbc43e63828b42ab204fb1b25 Reason: PipelineTask "clamav-scan" uses an untrusted task reference: oci://quay.io/redhat-appstudio-tekton-catalog/task-clamav-scan:0.1@sha256:28b425322aa84f988c6c4f8d503787b3fb301668b2ad6728846b8f8c45ba012b. The denial reason is: not_allowed Term: clamav-scan Title: Tasks are trusted Description: Check the trust of the Tekton Tasks used in the build Pipeline. There are two modes in which trust is verified. The first mode is used if Trusted Artifacts are enabled. In this case, a chain of trust is established for all the Tasks involved in creating an artifact. If the chain contains an untrusted Task, then a violation is emitted. The second mode is used as a fallback when Trusted Artifacts are not enabled. In this case, **all** Tasks in the build Pipeline must be trusted. To exclude this rule add "trusted_task.trusted:clamav-scan" to the `exclude` section of the policy configuration. Solution: If using Trusted Artifacts, be sure every Task in the build Pipeline responsible for producing a Trusted Artifact is trusted. Otherwise, ensure **all** Tasks in the build Pipeline are trusted. Note that trust is eventually revoked from Tasks when newer versions are made available. ✕ [Violation] trusted_task.trusted ImageRef: quay.io/konflux-ci/ec-golden-image@sha256:304040ca1911aa4d911bd7c6d6d07193c57dc49dbc43e63828b42ab204fb1b25 Reason: PipelineTask "deprecated-base-image-check" uses an untrusted task reference: oci://quay.io/redhat-appstudio-tekton-catalog/task-deprecated-image-check:0.1@sha256:28d724dd6f6c365b2a839d9e52baac91559fd78c160774769c1ec724301f78d4. The denial reason is: not_allowed Term: deprecated-image-check Title: Tasks are trusted Description: Check the trust of the Tekton Tasks used in the build Pipeline. There are two modes in which trust is verified. The first mode is used if Trusted Artifacts are enabled. In this case, a chain of trust is established for all the Tasks involved in creating an artifact. If the chain contains an untrusted Task, then a violation is emitted. The second mode is used as a fallback when Trusted Artifacts are not enabled. In this case, **all** Tasks in the build Pipeline must be trusted. To exclude this rule add "trusted_task.trusted:deprecated-image-check" to the `exclude` section of the policy configuration. Solution: If using Trusted Artifacts, be sure every Task in the build Pipeline responsible for producing a Trusted Artifact is trusted. Otherwise, ensure **all** Tasks in the build Pipeline are trusted. Note that trust is eventually revoked from Tasks when newer versions are made available. ✕ [Violation] trusted_task.trusted ImageRef: quay.io/konflux-ci/ec-golden-image@sha256:304040ca1911aa4d911bd7c6d6d07193c57dc49dbc43e63828b42ab204fb1b25 Reason: PipelineTask "clone-repository" uses an untrusted task reference: oci://quay.io/redhat-appstudio-tekton-catalog/task-git-clone:0.1@sha256:f4e37778cba00296606ddfbc1c58181330899cafcaa1ee41c75a7cf8bed312f0. The denial reason is: not_allowed Term: git-clone Title: Tasks are trusted Description: Check the trust of the Tekton Tasks used in the build Pipeline. There are two modes in which trust is verified. The first mode is used if Trusted Artifacts are enabled. In this case, a chain of trust is established for all the Tasks involved in creating an artifact. If the chain contains an untrusted Task, then a violation is emitted. The second mode is used as a fallback when Trusted Artifacts are not enabled. In this case, **all** Tasks in the build Pipeline must be trusted. To exclude this rule add "trusted_task.trusted:git-clone" to the `exclude` section of the policy configuration. Solution: If using Trusted Artifacts, be sure every Task in the build Pipeline responsible for producing a Trusted Artifact is trusted. Otherwise, ensure **all** Tasks in the build Pipeline are trusted. Note that trust is eventually revoked from Tasks when newer versions are made available. ✕ [Violation] trusted_task.trusted ImageRef: quay.io/konflux-ci/ec-golden-image@sha256:304040ca1911aa4d911bd7c6d6d07193c57dc49dbc43e63828b42ab204fb1b25 Reason: PipelineTask "init" uses an untrusted task reference: oci://quay.io/redhat-appstudio-tekton-catalog/task-init:0.1@sha256:5ce77110e2a49407a69a7922042dc0859f7e8f5f75dc0cd0bcc2d17860469bdb. The denial reason is: not_allowed Term: init Title: Tasks are trusted Description: Check the trust of the Tekton Tasks used in the build Pipeline. There are two modes in which trust is verified. The first mode is used if Trusted Artifacts are enabled. In this case, a chain of trust is established for all the Tasks involved in creating an artifact. If the chain contains an untrusted Task, then a violation is emitted. The second mode is used as a fallback when Trusted Artifacts are not enabled. In this case, **all** Tasks in the build Pipeline must be trusted. To exclude this rule add "trusted_task.trusted:init" to the `exclude` section of the policy configuration. Solution: If using Trusted Artifacts, be sure every Task in the build Pipeline responsible for producing a Trusted Artifact is trusted. Otherwise, ensure **all** Tasks in the build Pipeline are trusted. Note that trust is eventually revoked from Tasks when newer versions are made available. ✕ [Violation] trusted_task.trusted ImageRef: quay.io/konflux-ci/ec-golden-image@sha256:304040ca1911aa4d911bd7c6d6d07193c57dc49dbc43e63828b42ab204fb1b25 Reason: PipelineTask "sanity-inspect-image" uses an untrusted task reference: oci://quay.io/redhat-appstudio-tekton-catalog/task-sanity-inspect-image:0.1@sha256:fd4efd9d12eea3a8d47532c4226e685618845d0ba95abb98e008020243d96301. The denial reason is: not_allowed Term: sanity-inspect-image Title: Tasks are trusted Description: Check the trust of the Tekton Tasks used in the build Pipeline. There are two modes in which trust is verified. The first mode is used if Trusted Artifacts are enabled. In this case, a chain of trust is established for all the Tasks involved in creating an artifact. If the chain contains an untrusted Task, then a violation is emitted. The second mode is used as a fallback when Trusted Artifacts are not enabled. In this case, **all** Tasks in the build Pipeline must be trusted. To exclude this rule add "trusted_task.trusted:sanity-inspect-image" to the `exclude` section of the policy configuration. Solution: If using Trusted Artifacts, be sure every Task in the build Pipeline responsible for producing a Trusted Artifact is trusted. Otherwise, ensure **all** Tasks in the build Pipeline are trusted. Note that trust is eventually revoked from Tasks when newer versions are made available. ✕ [Violation] trusted_task.trusted ImageRef: quay.io/konflux-ci/ec-golden-image@sha256:304040ca1911aa4d911bd7c6d6d07193c57dc49dbc43e63828b42ab204fb1b25 Reason: PipelineTask "sanity-label-check" uses an untrusted task reference: oci://quay.io/redhat-appstudio-tekton-catalog/task-sanity-label-check:0.1@sha256:534770bf7a7c10277ab5f9c1e7b766abbffb343cc864dd9545aecc5278257dc3. The denial reason is: not_allowed Term: sanity-label-check Title: Tasks are trusted Description: Check the trust of the Tekton Tasks used in the build Pipeline. There are two modes in which trust is verified. The first mode is used if Trusted Artifacts are enabled. In this case, a chain of trust is established for all the Tasks involved in creating an artifact. If the chain contains an untrusted Task, then a violation is emitted. The second mode is used as a fallback when Trusted Artifacts are not enabled. In this case, **all** Tasks in the build Pipeline must be trusted. To exclude this rule add "trusted_task.trusted:sanity-label-check" to the `exclude` section of the policy configuration. Solution: If using Trusted Artifacts, be sure every Task in the build Pipeline responsible for producing a Trusted Artifact is trusted. Otherwise, ensure **all** Tasks in the build Pipeline are trusted. Note that trust is eventually revoked from Tasks when newer versions are made available. ✕ [Violation] trusted_task.trusted ImageRef: quay.io/konflux-ci/ec-golden-image@sha256:304040ca1911aa4d911bd7c6d6d07193c57dc49dbc43e63828b42ab204fb1b25 Reason: PipelineTask "sanity-optional-label-check" uses an untrusted task reference: oci://quay.io/redhat-appstudio-tekton-catalog/task-sanity-label-check:0.1@sha256:534770bf7a7c10277ab5f9c1e7b766abbffb343cc864dd9545aecc5278257dc3. The denial reason is: not_allowed Term: sanity-label-check Title: Tasks are trusted Description: Check the trust of the Tekton Tasks used in the build Pipeline. There are two modes in which trust is verified. The first mode is used if Trusted Artifacts are enabled. In this case, a chain of trust is established for all the Tasks involved in creating an artifact. If the chain contains an untrusted Task, then a violation is emitted. The second mode is used as a fallback when Trusted Artifacts are not enabled. In this case, **all** Tasks in the build Pipeline must be trusted. To exclude this rule add "trusted_task.trusted:sanity-label-check" to the `exclude` section of the policy configuration. Solution: If using Trusted Artifacts, be sure every Task in the build Pipeline responsible for producing a Trusted Artifact is trusted. Otherwise, ensure **all** Tasks in the build Pipeline are trusted. Note that trust is eventually revoked from Tasks when newer versions are made available. ✕ [Violation] trusted_task.trusted ImageRef: quay.io/konflux-ci/ec-golden-image@sha256:304040ca1911aa4d911bd7c6d6d07193c57dc49dbc43e63828b42ab204fb1b25 Reason: PipelineTask "sbom-json-check" uses an untrusted task reference: oci://quay.io/redhat-appstudio-tekton-catalog/task-sbom-json-check:0.1@sha256:ce6a0932da9b41080108284d1366fc2de8374fca5137500138e16ad9e04610c6. The denial reason is: not_allowed Term: sbom-json-check Title: Tasks are trusted Description: Check the trust of the Tekton Tasks used in the build Pipeline. There are two modes in which trust is verified. The first mode is used if Trusted Artifacts are enabled. In this case, a chain of trust is established for all the Tasks involved in creating an artifact. If the chain contains an untrusted Task, then a violation is emitted. The second mode is used as a fallback when Trusted Artifacts are not enabled. In this case, **all** Tasks in the build Pipeline must be trusted. To exclude this rule add "trusted_task.trusted:sbom-json-check" to the `exclude` section of the policy configuration. Solution: If using Trusted Artifacts, be sure every Task in the build Pipeline responsible for producing a Trusted Artifact is trusted. Otherwise, ensure **all** Tasks in the build Pipeline are trusted. Note that trust is eventually revoked from Tasks when newer versions are made available. ✕ [Violation] trusted_task.trusted ImageRef: quay.io/konflux-ci/ec-golden-image@sha256:304040ca1911aa4d911bd7c6d6d07193c57dc49dbc43e63828b42ab204fb1b25 Reason: PipelineTask "show-summary" uses an untrusted task reference: oci://quay.io/redhat-appstudio-tekton-catalog/task-summary:0.1@sha256:c0f66b28c338426774e34a8d4a00349fbab798b19df5841a95727148d5ef3c65. The denial reason is: not_allowed Term: summary Title: Tasks are trusted Description: Check the trust of the Tekton Tasks used in the build Pipeline. There are two modes in which trust is verified. The first mode is used if Trusted Artifacts are enabled. In this case, a chain of trust is established for all the Tasks involved in creating an artifact. If the chain contains an untrusted Task, then a violation is emitted. The second mode is used as a fallback when Trusted Artifacts are not enabled. In this case, **all** Tasks in the build Pipeline must be trusted. To exclude this rule add "trusted_task.trusted:summary" to the `exclude` section of the policy configuration. Solution: If using Trusted Artifacts, be sure every Task in the build Pipeline responsible for producing a Trusted Artifact is trusted. Otherwise, ensure **all** Tasks in the build Pipeline are trusted. Note that trust is eventually revoked from Tasks when newer versions are made available. For more information about policy issues, see the policy documentation: https://conforma.dev/docs/policy/ Version v0.9.25 Source ID b345847182602d9a5ce9e957fa76fe02575c8018 Change date 2026-04-27 12:52:43 +0000 UTC (15 weeks ago) ECC v0.1.7 OPA v1.15.2 Conftest v0.68.2 Cosign v3.0.4 Sigstore v1.10.4 Rekor v1.5.0 Tekton Pipeline v1.9.2 Kubernetes Client v0.35.0 { "policy": { "name": "Default", "description": "Includes rules for levels 1, 2 & 3 of SLSA v0.1. This is the default config used for new Konflux applications. Source: https://github.com/conforma/config/blob/main/default/policy.yaml", "sources": [ { "name": "Default", "policy": [ "oci::quay.io/enterprise-contract/ec-release-policy:konflux@sha256:ee5c3a020c9545eca738ed87198af0b235463069b2d72c5dba609364a83321d2" ], "data": [ "git::github.com/release-engineering/rhtap-ec-policy//data?ref=a32d53f84f63c1157d0df30d949d07b064ed74a2", "oci::quay.io/konflux-ci/tekton-catalog/data-acceptable-bundles:latest@sha256:f8cb3e1240c4ff6061d370b91b661800c09cc96db791fc9d6925f72e4ba70109", "oci::quay.io/konflux-ci/konflux-vanguard/data-acceptable-bundles:latest@sha256:0b31c7bc77a7463a1bc52f3d3625ef0e0e75443da7fd2de8005d7885282138ea", "oci::quay.io/konflux-ci/integration-service-catalog/data-acceptable-bundles:latest@sha256:7b00455045ea3873a72caeb1e7ac7d036bd53963a26409891a4cc9d0d242b9fc" ], "config": { "include": [ "trusted_task.trusted" ] } } ], "publicKey": "k8s://chains-e2e-ozqz/golden-image-public-keyqrmurmmrtn" }, "key": "-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZP/0htjhVt2y0ohjgtIIgICOtQtA\nnaYJRuLprwIv6FDhZ5yFjYUEtsmoNcW7rx2KM6FOXGsCX3BNc7qhHELT+g==\n-----END PUBLIC KEY-----\n", "effective-time": "2026-08-14T04:41:21.557198891Z" } { "timestamp": "1786682488", "namespace": "", "successes": 3, "failures": 11, "warnings": 0, "result": "FAILURE" } false 2026-08-14T04:41:33.525019Z WARN source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Currently ignoring file too small to fingerprint. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-61e7807adcbc4ea2da3381d22adf4dd3-pod_5dd88e24-3b06-4032-8007-fe2bfae660e7/step-initialize-tuf/0.log 2026-08-14T04:41:33.525049Z WARN source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Currently ignoring file too small to fingerprint. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-61e7807adcbc4ea2da3381d22adf4dd3-pod_5dd88e24-3b06-4032-8007-fe2bfae660e7/step-reduce/0.log 2026-08-14T04:41:33.525056Z WARN source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Currently ignoring file too small to fingerprint. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-61e7807adcbc4ea2da3381d22adf4dd3-pod_5dd88e24-3b06-4032-8007-fe2bfae660e7/step-report-json/0.log 2026-08-14T04:41:33.525063Z WARN source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Currently ignoring file too small to fingerprint. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-61e7807adcbc4ea2da3381d22adf4dd3-pod_5dd88e24-3b06-4032-8007-fe2bfae660e7/step-summary/0.log 2026-08-14T04:41:33.525069Z WARN source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Currently ignoring file too small to fingerprint. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-61e7807adcbc4ea2da3381d22adf4dd3-pod_5dd88e24-3b06-4032-8007-fe2bfae660e7/step-validate/0.log 2026-08-14T04:41:34.551279Z WARN source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Currently ignoring file too small to fingerprint. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-61e7807adcbc4ea2da3381d22adf4dd3-pod_5dd88e24-3b06-4032-8007-fe2bfae660e7/step-assert/0.log 2026-08-14T04:41:34.551310Z WARN source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Currently ignoring file too small to fingerprint. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-61e7807adcbc4ea2da3381d22adf4dd3-pod_5dd88e24-3b06-4032-8007-fe2bfae660e7/step-detailed-report/0.log 2026-08-14T04:41:34.551331Z WARN source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Currently ignoring file too small to fingerprint. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-61e7807adcbc4ea2da3381d22adf4dd3-pod_5dd88e24-3b06-4032-8007-fe2bfae660e7/step-show-config/0.log 2026-08-14T04:41:34.551346Z WARN source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Currently ignoring file too small to fingerprint. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-61e7807adcbc4ea2da3381d22adf4dd3-pod_5dd88e24-3b06-4032-8007-fe2bfae660e7/step-version/0.log 2026/08/14 04:41:32 Decoded script /tekton/scripts/script-2-qqv86 2026/08/14 04:41:31 Entrypoint initialization 2026-08-14T04:41:36.601733Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Found new file to watch. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-61e7807adcbc4ea2da3381d22adf4dd3-pod_5dd88e24-3b06-4032-8007-fe2bfae660e7/step-initialize-tuf/0.log 2026-08-14T04:41:36.609952Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Found new file to watch. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-61e7807adcbc4ea2da3381d22adf4dd3-pod_5dd88e24-3b06-4032-8007-fe2bfae660e7/step-reduce/0.log Single Component mode? false { "components": [ { "name": "", "containerImage": "quay.io/redhat-appstudio-qe/enterprise-contract-tests:e2e-test-unpinned-task-bundle", "source": {} } ], "artifacts": {} } 2026/08/14 04:41:36 INFO Step was skipped due to when expressions were evaluated to false. 2026-08-14T04:41:44.821189Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Found new file to watch. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-61e7807adcbc4ea2da3381d22adf4dd3-pod_5dd88e24-3b06-4032-8007-fe2bfae660e7/step-assert/0.log 2026-08-14T04:41:44.821246Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Found new file to watch. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-61e7807adcbc4ea2da3381d22adf4dd3-pod_5dd88e24-3b06-4032-8007-fe2bfae660e7/step-detailed-report/0.log 2026-08-14T04:41:44.821289Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Found new file to watch. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-61e7807adcbc4ea2da3381d22adf4dd3-pod_5dd88e24-3b06-4032-8007-fe2bfae660e7/step-report-json/0.log 2026-08-14T04:41:44.821304Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Found new file to watch. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-61e7807adcbc4ea2da3381d22adf4dd3-pod_5dd88e24-3b06-4032-8007-fe2bfae660e7/step-show-config/0.log 2026-08-14T04:41:44.821321Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Found new file to watch. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-61e7807adcbc4ea2da3381d22adf4dd3-pod_5dd88e24-3b06-4032-8007-fe2bfae660e7/step-summary/0.log 2026-08-14T04:41:44.821351Z INFO source{component_kind="source" component_id=kubernetes_logs component_type=kubernetes_logs}:file_server: vector::internal_events::file::source: Found new file to watch. file=/var/log/pods/chains-e2e-ozqz_verify-enterprise-contract-61e7807adcbc4ea2da3381d22adf4dd3-pod_5dd88e24-3b06-4032-8007-fe2bfae660e7/step-version/0.log Version v0.9.25 Source ID b345847182602d9a5ce9e957fa76fe02575c8018 Change date 2026-04-27 12:52:43 +0000 UTC (15 weeks ago) ECC v0.1.7 OPA v1.15.2 Conftest v0.68.2 Cosign v3.0.4 Sigstore v1.10.4 Rekor v1.5.0 Tekton Pipeline v1.9.2 Kubernetes Client v0.35.0 { "timestamp": "1786682503", "namespace": "", "successes": 3, "failures": 0, "warnings": 16, "result": "WARNING" } { "policy": { "name": "Default", "description": "Includes rules for levels 1, 2 & 3 of SLSA v0.1. This is the default config used for new Konflux applications. Source: https://github.com/conforma/config/blob/main/default/policy.yaml", "sources": [ { "name": "Default", "policy": [ "oci::quay.io/enterprise-contract/ec-release-policy:konflux@sha256:ee5c3a020c9545eca738ed87198af0b235463069b2d72c5dba609364a83321d2" ], "data": [ "git::github.com/release-engineering/rhtap-ec-policy//data?ref=a32d53f84f63c1157d0df30d949d07b064ed74a2", "oci::quay.io/konflux-ci/tekton-catalog/data-acceptable-bundles:latest@sha256:f8cb3e1240c4ff6061d370b91b661800c09cc96db791fc9d6925f72e4ba70109", "oci::quay.io/konflux-ci/konflux-vanguard/data-acceptable-bundles:latest@sha256:0b31c7bc77a7463a1bc52f3d3625ef0e0e75443da7fd2de8005d7885282138ea", "oci::quay.io/konflux-ci/integration-service-catalog/data-acceptable-bundles:latest@sha256:7b00455045ea3873a72caeb1e7ac7d036bd53963a26409891a4cc9d0d242b9fc" ], "config": { "include": [ "trusted_task.pinned" ] } } ], "publicKey": "k8s://chains-e2e-ozqz/unpinned-task-bundle-public-keyoruszyefnk" }, "key": "-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEPfwkY/ru2JRd6FSqIp7lT3gzjaEC\nEAg+paWtlme2KNcostCsmIbwz+bc2aFV+AxCOpRjRpp3vYrbS5KhkmgC1Q==\n-----END PUBLIC KEY-----\n", "effective-time": "2026-08-14T04:41:36.690529934Z" } true Success: true Result: WARNING Violations: 0, Warnings: 16, Successes: 3 Component: ImageRef: quay.io/redhat-appstudio-qe/enterprise-contract-tests@sha256:c1a2330b0117c4ccd642ba95539a499ae54f0282b124f0514ee57b274d674f10 Results: › [Warning] trusted_task.pinned ImageRef: quay.io/redhat-appstudio-qe/enterprise-contract-tests@sha256:c1a2330b0117c4ccd642ba95539a499ae54f0282b124f0514ee57b274d674f10 Reason: Pipeline task "build-container" uses an unpinned task reference, oci://quay.io/redhat-appstudio/appstudio-tasks:8be37c13984bc3f8af4d6314d87b1ec5e494b6ca-1@ Term: buildah Title: Task references are pinned Description: Check if all Tekton Tasks use a Task definition by a pinned reference. When using the git resolver, a commit ID is expected for the revision parameter. When using the bundles resolver, the bundle parameter is expected to include an image reference with a digest. Solution: Update the Pipeline definition so that all Task references have a pinned value as mentioned in the description. › [Warning] trusted_task.pinned ImageRef: quay.io/redhat-appstudio-qe/enterprise-contract-tests@sha256:c1a2330b0117c4ccd642ba95539a499ae54f0282b124f0514ee57b274d674f10 Reason: Pipeline task "clamav-scan" uses an unpinned task reference, oci://quay.io/redhat-appstudio/appstudio-tasks:8be37c13984bc3f8af4d6314d87b1ec5e494b6ca-1@ Term: clamav-scan Title: Task references are pinned Description: Check if all Tekton Tasks use a Task definition by a pinned reference. When using the git resolver, a commit ID is expected for the revision parameter. When using the bundles resolver, the bundle parameter is expected to include an image reference with a digest. Solution: Update the Pipeline definition so that all Task references have a pinned value as mentioned in the description. › [Warning] trusted_task.pinned ImageRef: quay.io/redhat-appstudio-qe/enterprise-contract-tests@sha256:c1a2330b0117c4ccd642ba95539a499ae54f0282b124f0514ee57b274d674f10 Reason: Pipeline task "appstudio-configure-build" uses an unpinned task reference, oci://quay.io/redhat-appstudio/appstudio-tasks:8be37c13984bc3f8af4d6314d87b1ec5e494b6ca-1@ Term: configure-build Title: Task references are pinned Description: Check if all Tekton Tasks use a Task definition by a pinned reference. When using the git resolver, a commit ID is expected for the revision parameter. When using the bundles resolver, the bundle parameter is expected to include an image reference with a digest. Solution: Update the Pipeline definition so that all Task references have a pinned value as mentioned in the description. › [Warning] trusted_task.pinned ImageRef: quay.io/redhat-appstudio-qe/enterprise-contract-tests@sha256:c1a2330b0117c4ccd642ba95539a499ae54f0282b124f0514ee57b274d674f10 Reason: Pipeline task "conftest-clair" uses an unpinned task reference, oci://quay.io/redhat-appstudio/appstudio-tasks:8be37c13984bc3f8af4d6314d87b1ec5e494b6ca-1@ Term: conftest-clair Title: Task references are pinned Description: Check if all Tekton Tasks use a Task definition by a pinned reference. When using the git resolver, a commit ID is expected for the revision parameter. When using the bundles resolver, the bundle parameter is expected to include an image reference with a digest. Solution: Update the Pipeline definition so that all Task references have a pinned value as mentioned in the description. › [Warning] trusted_task.pinned ImageRef: quay.io/redhat-appstudio-qe/enterprise-contract-tests@sha256:c1a2330b0117c4ccd642ba95539a499ae54f0282b124f0514ee57b274d674f10 Reason: Pipeline task "deprecated-base-image-check" uses an unpinned task reference, oci://quay.io/redhat-appstudio/appstudio-tasks:8be37c13984bc3f8af4d6314d87b1ec5e494b6ca-1@ Term: deprecated-image-check Title: Task references are pinned Description: Check if all Tekton Tasks use a Task definition by a pinned reference. When using the git resolver, a commit ID is expected for the revision parameter. When using the bundles resolver, the bundle parameter is expected to include an image reference with a digest. Solution: Update the Pipeline definition so that all Task references have a pinned value as mentioned in the description. › [Warning] trusted_task.pinned ImageRef: quay.io/redhat-appstudio-qe/enterprise-contract-tests@sha256:c1a2330b0117c4ccd642ba95539a499ae54f0282b124f0514ee57b274d674f10 Reason: Pipeline task "get-clair-results" uses an unpinned task reference, oci://quay.io/redhat-appstudio/appstudio-tasks:8be37c13984bc3f8af4d6314d87b1ec5e494b6ca-1@ Term: get-clair-scan Title: Task references are pinned Description: Check if all Tekton Tasks use a Task definition by a pinned reference. When using the git resolver, a commit ID is expected for the revision parameter. When using the bundles resolver, the bundle parameter is expected to include an image reference with a digest. Solution: Update the Pipeline definition so that all Task references have a pinned value as mentioned in the description. › [Warning] trusted_task.pinned ImageRef: quay.io/redhat-appstudio-qe/enterprise-contract-tests@sha256:c1a2330b0117c4ccd642ba95539a499ae54f0282b124f0514ee57b274d674f10 Reason: Pipeline task "clone-repository" uses an unpinned task reference, oci://quay.io/redhat-appstudio/appstudio-tasks:8be37c13984bc3f8af4d6314d87b1ec5e494b6ca-1@ Term: git-clone Title: Task references are pinned Description: Check if all Tekton Tasks use a Task definition by a pinned reference. When using the git resolver, a commit ID is expected for the revision parameter. When using the bundles resolver, the bundle parameter is expected to include an image reference with a digest. Solution: Update the Pipeline definition so that all Task references have a pinned value as mentioned in the description. › [Warning] trusted_task.pinned ImageRef: quay.io/redhat-appstudio-qe/enterprise-contract-tests@sha256:c1a2330b0117c4ccd642ba95539a499ae54f0282b124f0514ee57b274d674f10 Reason: Pipeline task "hacbs-test-evaluation" uses an unpinned task reference, oci://quay.io/redhat-appstudio/appstudio-tasks:8be37c13984bc3f8af4d6314d87b1ec5e494b6ca-1@ Term: hacbs-test-evaluation Title: Task references are pinned Description: Check if all Tekton Tasks use a Task definition by a pinned reference. When using the git resolver, a commit ID is expected for the revision parameter. When using the bundles resolver, the bundle parameter is expected to include an image reference with a digest. Solution: Update the Pipeline definition so that all Task references have a pinned value as mentioned in the description. › [Warning] trusted_task.pinned ImageRef: quay.io/redhat-appstudio-qe/enterprise-contract-tests@sha256:c1a2330b0117c4ccd642ba95539a499ae54f0282b124f0514ee57b274d674f10 Reason: Pipeline task "appstudio-init" uses an unpinned task reference, oci://quay.io/redhat-appstudio/appstudio-tasks:8be37c13984bc3f8af4d6314d87b1ec5e494b6ca-1@ Term: init Title: Task references are pinned Description: Check if all Tekton Tasks use a Task definition by a pinned reference. When using the git resolver, a commit ID is expected for the revision parameter. When using the bundles resolver, the bundle parameter is expected to include an image reference with a digest. Solution: Update the Pipeline definition so that all Task references have a pinned value as mentioned in the description. › [Warning] trusted_task.pinned ImageRef: quay.io/redhat-appstudio-qe/enterprise-contract-tests@sha256:c1a2330b0117c4ccd642ba95539a499ae54f0282b124f0514ee57b274d674f10 Reason: Pipeline task "sanity-inspect-image" uses an unpinned task reference, oci://quay.io/redhat-appstudio/appstudio-tasks:8be37c13984bc3f8af4d6314d87b1ec5e494b6ca-2@ Term: sanity-inspect-image Title: Task references are pinned Description: Check if all Tekton Tasks use a Task definition by a pinned reference. When using the git resolver, a commit ID is expected for the revision parameter. When using the bundles resolver, the bundle parameter is expected to include an image reference with a digest. Solution: Update the Pipeline definition so that all Task references have a pinned value as mentioned in the description. › [Warning] trusted_task.pinned ImageRef: quay.io/redhat-appstudio-qe/enterprise-contract-tests@sha256:c1a2330b0117c4ccd642ba95539a499ae54f0282b124f0514ee57b274d674f10 Reason: Pipeline task "sanity-label-check" uses an unpinned task reference, oci://quay.io/redhat-appstudio/appstudio-tasks:8be37c13984bc3f8af4d6314d87b1ec5e494b6ca-2@ Term: sanity-label-check Title: Task references are pinned Description: Check if all Tekton Tasks use a Task definition by a pinned reference. When using the git resolver, a commit ID is expected for the revision parameter. When using the bundles resolver, the bundle parameter is expected to include an image reference with a digest. Solution: Update the Pipeline definition so that all Task references have a pinned value as mentioned in the description. › [Warning] trusted_task.pinned ImageRef: quay.io/redhat-appstudio-qe/enterprise-contract-tests@sha256:c1a2330b0117c4ccd642ba95539a499ae54f0282b124f0514ee57b274d674f10 Reason: Pipeline task "sanity-optional-label-check" uses an unpinned task reference, oci://quay.io/redhat-appstudio/appstudio-tasks:8be37c13984bc3f8af4d6314d87b1ec5e494b6ca-2@ Term: sanity-label-check Title: Task references are pinned Description: Check if all Tekton Tasks use a Task definition by a pinned reference. When using the git resolver, a commit ID is expected for the revision parameter. When using the bundles resolver, the bundle parameter is expected to include an image reference with a digest. Solution: Update the Pipeline definition so that all Task references have a pinned value as mentioned in the description. › [Warning] trusted_task.pinned ImageRef: quay.io/redhat-appstudio-qe/enterprise-contract-tests@sha256:c1a2330b0117c4ccd642ba95539a499ae54f0282b124f0514ee57b274d674f10 Reason: Pipeline task "sast-go" uses an unpinned task reference, oci://quay.io/redhat-appstudio/appstudio-tasks:8be37c13984bc3f8af4d6314d87b1ec5e494b6ca-2@ Term: sast-go Title: Task references are pinned Description: Check if all Tekton Tasks use a Task definition by a pinned reference. When using the git resolver, a commit ID is expected for the revision parameter. When using the bundles resolver, the bundle parameter is expected to include an image reference with a digest. Solution: Update the Pipeline definition so that all Task references have a pinned value as mentioned in the description. › [Warning] trusted_task.pinned ImageRef: quay.io/redhat-appstudio-qe/enterprise-contract-tests@sha256:c1a2330b0117c4ccd642ba95539a499ae54f0282b124f0514ee57b274d674f10 Reason: Pipeline task "sast-java-sec-check" uses an unpinned task reference, oci://quay.io/redhat-appstudio/appstudio-tasks:8be37c13984bc3f8af4d6314d87b1ec5e494b6ca-2@ Term: sast-java-sec-check Title: Task references are pinned Description: Check if all Tekton Tasks use a Task definition by a pinned reference. When using the git resolver, a commit ID is expected for the revision parameter. When using the bundles resolver, the bundle parameter is expected to include an image reference with a digest. Solution: Update the Pipeline definition so that all Task references have a pinned value as mentioned in the description. › [Warning] trusted_task.pinned ImageRef: quay.io/redhat-appstudio-qe/enterprise-contract-tests@sha256:c1a2330b0117c4ccd642ba95539a499ae54f0282b124f0514ee57b274d674f10 Reason: Pipeline task "sast-snyk-check" uses an unpinned task reference, oci://quay.io/redhat-appstudio/appstudio-tasks:8be37c13984bc3f8af4d6314d87b1ec5e494b6ca-2@ Term: sast-snyk-check Title: Task references are pinned Description: Check if all Tekton Tasks use a Task definition by a pinned reference. When using the git resolver, a commit ID is expected for the revision parameter. When using the bundles resolver, the bundle parameter is expected to include an image reference with a digest. Solution: Update the Pipeline definition so that all Task references have a pinned value as mentioned in the description. › [Warning] trusted_task.pinned ImageRef: quay.io/redhat-appstudio-qe/enterprise-contract-tests@sha256:c1a2330b0117c4ccd642ba95539a499ae54f0282b124f0514ee57b274d674f10 Reason: Pipeline task "show-summary" uses an unpinned task reference, oci://quay.io/redhat-appstudio/appstudio-tasks:8be37c13984bc3f8af4d6314d87b1ec5e494b6ca-2@ Term: summary Title: Task references are pinned Description: Check if all Tekton Tasks use a Task definition by a pinned reference. When using the git resolver, a commit ID is expected for the revision parameter. When using the bundles resolver, the bundle parameter is expected to include an image reference with a digest. Solution: Update the Pipeline definition so that all Task references have a pinned value as mentioned in the description. For more information about policy issues, see the policy documentation: https://conforma.dev/docs/policy/ {"success": true,"components": [{"name": "","containerImage": "quay.io/redhat-appstudio-qe/enterprise-contract-tests@sha256:c1a2330b0117c4ccd642ba95539a499ae54f0282b124f0514ee57b274d674f10","source": {},"warnings": [{"msg": "Pipeline task \"build-container\" uses an unpinned task reference, oci://quay.io/redhat-appstudio/appstudio-tasks:8be37c13984bc3f8af4d6314d87b1ec5e494b6ca-1@","metadata": {"code": "trusted_task.pinned","collections": ["redhat","redhat_rpms","redhat_security"],"description": "Check if all Tekton Tasks use a Task definition by a pinned reference. When using the git resolver, a commit ID is expected for the revision parameter. When using the bundles resolver, the bundle parameter is expected to include an image reference with a digest.","solution": "Update the Pipeline definition so that all Task references have a pinned value as mentioned in the description.","term": "buildah","title": "Task references are pinned"}},{"msg": "Pipeline task \"clamav-scan\" uses an unpinned task reference, oci://quay.io/redhat-appstudio/appstudio-tasks:8be37c13984bc3f8af4d6314d87b1ec5e494b6ca-1@","metadata": {"code": "trusted_task.pinned","collections": ["redhat","redhat_rpms","redhat_security"],"description": "Check if all Tekton Tasks use a Task definition by a pinned reference. When using the git resolver, a commit ID is expected for the revision parameter. When using the bundles resolver, the bundle parameter is expected to include an image reference with a digest.","solution": "Update the Pipeline definition so that all Task references have a pinned value as mentioned in the description.","term": "clamav-scan","title": "Task references are pinned"}},{"msg": "Pipeline task \"appstudio-configure-build\" uses an unpinned task reference, oci://quay.io/redhat-appstudio/appstudio-tasks:8be37c13984bc3f8af4d6314d87b1ec5e494b6ca-1@","metadata": {"code": "trusted_task.pinned","collections": ["redhat","redhat_rpms","redhat_security"],"description": "Check if all Tekton Tasks use a Task definition by a pinned reference. When using the git resolver, a commit ID is expected for the revision parameter. When using the bundles resolver, the bundle parameter is expected to include an image reference with a digest.","solution": "Update the Pipeline definition so that all Task references have a pinned value as mentioned in the description.","term": "configure-build","title": "Task references are pinned"}},{"msg": "Pipeline task \"conftest-clair\" uses an unpinned task reference, oci://quay.io/redhat-appstudio/appstudio-tasks:8be37c13984bc3f8af4d6314d87b1ec5e494b6ca-1@","metadata": {"code": "trusted_task.pinned","collections": ["redhat","redhat_rpms","redhat_security"],"description": "Check if all Tekton Tasks use a Task definition by a pinned reference. When using the git resolver, a commit ID is expected for the revision parameter. When using the bundles resolver, the bundle parameter is expected to include an image reference with a digest.","solution": "Update the Pipeline definition so that all Task references have a pinned value as mentioned in the description.","term": "conftest-clair","title": "Task references are pinned"}},{"msg": "Pipeline task \"deprecated-base-image-check\" uses an unpinned task reference, oci://quay.io/redhat-appstudio/appstudio-tasks:8be37c13984bc3f8af4d6314d87b1ec5e494b6ca-1@","metadata": {"code": "trusted_task.pinned","collections": ["redhat","redhat_rpms","redhat_security"],"description": "Check if all Tekton Tasks use a Task definition by a pinned reference. When using the git resolver, a commit ID is expected for the revision parameter. When using the bundles resolver, the bundle parameter is expected to include an image reference with a digest.","solution": "Update the Pipeline definition so that all Task references have a pinned value as mentioned in the description.","term": "deprecated-image-check","title": "Task references are pinned"}},{"msg": "Pipeline task \"get-clair-results\" uses an unpinned task reference, oci://quay.io/redhat-appstudio/appstudio-tasks:8be37c13984bc3f8af4d6314d87b1ec5e494b6ca-1@","metadata": {"code": "trusted_task.pinned","collections": ["redhat","redhat_rpms","redhat_security"],"description": "Check if all Tekton Tasks use a Task definition by a pinned reference. When using the git resolver, a commit ID is expected for the revision parameter. When using the bundles resolver, the bundle parameter is expected to include an image reference with a digest.","solution": "Update the Pipeline definition so that all Task references have a pinned value as mentioned in the description.","term": "get-clair-scan","title": "Task references are pinned"}},{"msg": "Pipeline task \"clone-repository\" uses an unpinned task reference, oci://quay.io/redhat-appstudio/appstudio-tasks:8be37c13984bc3f8af4d6314d87b1ec5e494b6ca-1@","metadata": {"code": "trusted_task.pinned","collections": ["redhat","redhat_rpms","redhat_security"],"description": "Check if all Tekton Tasks use a Task definition by a pinned reference. When using the git resolver, a commit ID is expected for the revision parameter. When using the bundles resolver, the bundle parameter is expected to include an image reference with a digest.","solution": "Update the Pipeline definition so that all Task references have a pinned value as mentioned in the description.","term": "git-clone","title": "Task references are pinned"}},{"msg": "Pipeline task \"hacbs-test-evaluation\" uses an unpinned task reference, oci://quay.io/redhat-appstudio/appstudio-tasks:8be37c13984bc3f8af4d6314d87b1ec5e494b6ca-1@","metadata": {"code": "trusted_task.pinned","collections": ["redhat","redhat_rpms","redhat_security"],"description": "Check if all Tekton Tasks use a Task definition by a pinned reference. When using the git resolver, a commit ID is expected for the revision parameter. When using the bundles resolver, the bundle parameter is expected to include an image reference with a digest.","solution": "Update the Pipeline definition so that all Task references have a pinned value as mentioned in the description.","term": "hacbs-test-evaluation","title": "Task references are pinned"}},{"msg": "Pipeline task \"appstudio-init\" uses an unpinned task reference, oci://quay.io/redhat-appstudio/appstudio-tasks:8be37c13984bc3f8af4d6314d87b1ec5e494b6ca-1@","metadata": {"code": "trusted_task.pinned","collections": ["redhat","redhat_rpms","redhat_security"],"description": "Check if all Tekton Tasks use a Task definition by a pinned reference. When using the git resolver, a commit ID is expected for the revision parameter. When using the bundles resolver, the bundle parameter is expected to include an image reference with a digest.","solution": "Update the Pipeline definition so that all Task references have a pinned value as mentioned in the description.","term": "init","title": "Task references are pinned"}},{"msg": "Pipeline task \"sanity-inspect-image\" uses an unpinned task reference, oci://quay.io/redhat-appstudio/appstudio-tasks:8be37c13984bc3f8af4d6314d87b1ec5e494b6ca-2@","metadata": {"code": "trusted_task.pinned","collections": ["redhat","redhat_rpms","redhat_security"],"description": "Check if all Tekton Tasks use a Task definition by a pinned reference. When using the git resolver, a commit ID is expected for the revision parameter. When using the bundles resolver, the bundle parameter is expected to include an image reference with a digest.","solution": "Update the Pipeline definition so that all Task references have a pinned value as mentioned in the description.","term": "sanity-inspect-image","title": "Task references are pinned"}},{"msg": "Pipeline task \"sanity-label-check\" uses an unpinned task reference, oci://quay.io/redhat-appstudio/appstudio-tasks:8be37c13984bc3f8af4d6314d87b1ec5e494b6ca-2@","metadata": {"code": "trusted_task.pinned","collections": ["redhat","redhat_rpms","redhat_security"], "description": "Includes the full set of rules and policies required internally by Red Hat when building Red Hat products. Source: https://github.com/conforma/config/blob/main/redhat/policy.yaml","sources": [{"name": "Default","policy": ["oci::quay.io/enterprise-contract/ec-release-policy:konflux@sha256:ee5c3a020c9545eca738ed87198af0b235463069b2d72c5dba609364a83321d2"],"data": ["git::github.com/release-engineering/rhtap-ec-policy//data?ref=a32d53f84f63c1157d0df30d949d07b064ed74a2","oci::quay.io/konflux-ci/tekton-catalog/data-acceptable-bundles:latest@sha256:f8cb3e1240c4ff6061d370b91b661800c09cc96db791fc9d6925f72e4ba70109","oci::quay.io/konflux-ci/konflux-vanguard/data-acceptable-bundles:latest@sha256:0b31c7bc77a7463a1bc52f3d3625ef0e0e75443da7fd2de8005d7885282138ea","oci::quay.io/konflux-ci/integration-service-catalog/data-acceptable-bundles:latest@sha256:7b00455045ea3873a72caeb1e7ac7d036bd53963a26409891a4cc9d0d242b9fc"],"config": {"exclude": ["slsa_source_correlated.source_code_reference_provided","cve.cve_results_found"],"include": ["@redhat"]}}],"publicKey": "k8s://chains-e2e-ozqz/golden-image-public-keyxvablwmozd"},"ec-version": "v0.9.25","effective-time": "2026-08-14T04:40:47.493433737Z"} "sig": "MEYCIQDKSihaAR/zAhJhR5GCqleDvfUUtvRw61vk0YeTBAnOSQIhAKa09B4yEfaSJronmWBFbu5cVPNxm17CMl/PElEz1POa"}]}]}],"key": "-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZP/0htjhVt2y0ohjgtIIgICOtQtA\nnaYJRuLprwIv6FDhZ5yFjYUEtsmoNcW7rx2KM6FOXGsCX3BNc7qhHELT+g==\n-----END PUBLIC KEY-----\n","policy": {"name": "Default","description": "Includes rules for levels 1, 2 & 3 of SLSA v0.1. This is the default config used for new Konflux applications. Source: https://github.com/conforma/config/blob/main/default/policy.yaml","sources": [{"name": "Default","policy": ["oci::quay.io/enterprise-contract/ec-release-policy:konflux@sha256:ee5c3a020c9545eca738ed87198af0b235463069b2d72c5dba609364a83321d2"],"data": ["git::github.com/release-engineering/rhtap-ec-policy//data?ref=a32d53f84f63c1157d0df30d949d07b064ed74a2","oci::quay.io/konflux-ci/tekton-catalog/data-acceptable-bundles:latest@sha256:f8cb3e1240c4ff6061d370b91b661800c09cc96db791fc9d6925f72e4ba70109","oci::quay.io/konflux-ci/konflux-vanguard/data-acceptable-bundles:latest@sha256:0b31c7bc77a7463a1bc52f3d3625ef0e0e75443da7fd2de8005d7885282138ea","oci::quay.io/konflux-ci/integration-service-catalog/data-acceptable-bundles:latest@sha256:7b00455045ea3873a72caeb1e7ac7d036bd53963a26409891a4cc9d0d242b9fc"],"config": {"include": ["trusted_task.trusted"]}}],"publicKey": "k8s://chains-e2e-ozqz/golden-image-public-keyqrmurmmrtn"},"ec-version": "v0.9.25","effective-time": "2026-08-14T04:41:21.557198891Z"} "description": "Check if all Tekton Tasks use a Task definition by a pinned reference. When using the git resolver, a commit ID is expected for the revision parameter. When using the bundles resolver, the bundle parameter is expected to include an image reference with a digest.","solution": "Update the Pipeline definition so that all Task references have a pinned value as mentioned in the description.","term": "sanity-label-check","title": "Task references are pinned"}},{"msg": "Pipeline task \"sanity-optional-label-check\" uses an unpinned task reference, oci://quay.io/redhat-appstudio/appstudio-tasks:8be37c13984bc3f8af4d6314d87b1ec5e494b6ca-2@","metadata": {"code": "trusted_task.pinned","collections": ["redhat","redhat_rpms","redhat_security"],"description": "Check if all Tekton Tasks use a Task definition by a pinned reference. When using the git resolver, a commit ID is expected for the revision parameter. When using the bundles resolver, the bundle parameter is expected to include an image reference with a digest.","solution": "Update the Pipeline definition so that all Task references have a pinned value as mentioned in the description.","term": "sanity-label-check","title": "Task references are pinned"}},{"msg": "Pipeline task \"sast-go\" uses an unpinned task reference, oci://quay.io/redhat-appstudio/appstudio-tasks:8be37c13984bc3f8af4d6314d87b1ec5e494b6ca-2@","metadata": {"code": "trusted_task.pinned","collections": ["redhat","redhat_rpms","redhat_security"],"description": "Check if all Tekton Tasks use a Task definition by a pinned reference. When using the git resolver, a commit ID is expected for the revision parameter. When using the bundles resolver, the bundle parameter is expected to include an image reference with a digest.","solution": "Update the Pipeline definition so that all Task references have a pinned value as mentioned in the description.","term": "sast-go","title": "Task references are pinned"}},{"msg": "Pipeline task \"sast-java-sec-check\" uses an unpinned task reference, oci://quay.io/redhat-appstudio/appstudio-tasks:8be37c13984bc3f8af4d6314d87b1ec5e494b6ca-2@","metadata": {"code": "trusted_task.pinned","collections": ["redhat","redhat_rpms","redhat_security"],"description": "Check if all Tekton Tasks use a Task definition by a pinned reference. When using the git resolver, a commit ID is expected for the revision parameter. When using the bundles resolver, the bundle parameter is expected to include an image reference with a digest.","solution": "Update the Pipeline definition so that all Task references have a pinned value as mentioned in the description.","term": "sast-java-sec-check","title": "Task references are pinned"}},{"msg": "Pipeline task \"sast-snyk-check\" uses an unpinned task reference, oci://quay.io/redhat-appstudio/appstudio-tasks:8be37c13984bc3f8af4d6314d87b1ec5e494b6ca-2@","metadata": {"code": "trusted_task.pinned","collections": ["redhat","redhat_rpms","redhat_security"],"description": "Check if all Tekton Tasks use a Task definition by a pinned reference. When using the git resolver, a commit ID is expected for the revision parameter. When using the bundles resolver, the bundle parameter is expected to include an image reference with a digest.","solution": "Update the Pipeline definition so that all Task references have a pinned value as mentioned in the description.","term": "sast-snyk-check","title": "Task references are pinned"}},{"msg": "Pipeline task \"show-summary\" uses an unpinned task reference, oci://quay.io/redhat-appstudio/appstudio-tasks:8be37c13984bc3f8af4d6314d87b1ec5e494b6ca-2@","metadata": {"code": "trusted_task.pinned","collections": ["redhat","redhat_rpms","redhat_security"],"description": "Check if all Tekton Tasks use a Task definition by a pinned reference. When using the git resolver, a commit ID is expected for the revision parameter. When using the bundles resolver, the bundle parameter is expected to include an image reference with a digest.","solution": "Update the Pipeline definition so that all Task references have a pinned value as mentioned in the description.","term": "summary","title": "Task references are pinned"}}],"successes": [{"msg": "Pass","metadata": {"code": "builtin.attestation.signature_check","description": "The attestation signature matches available signing materials.","title": "Attestation signature check passed"}},{"msg": "Pass","metadata": {"code": "builtin.attestation.syntax_check","description": "The attestation has correct syntax.","title": "Attestation syntax check passed"}},{"msg": "Pass","metadata": {"code": "builtin.image.signature_check","description": "The image signature matches available signing materials.","title": "Image signature check passed"}}],"success": true,"signatures": [{"keyid": "","sig": "MEYCIQD0M+eFk8KPeOHvC6GNIQkaJGZvtOvvDqBvzi+qYgiS2gIhAP7stpq7Nl9vpF4tjqLC7/gr6t5yXc9Y353Btfe3DcEM"},{"keyid": "","sig": "MEUCIDkj9PKADlbayhD4DIUm5SRw2pCzSTeak1dJHAZOyQyQAiEApp4BQneeSKSbKbojFEzeJbVTPGBQrA7QnTzTblnU7nE="}],"attestations": [{"type": "https://in-toto.io/Statement/v0.1","predicateType": "https://slsa.dev/provenance/v0.2","predicateBuildType": "https://tekton.dev/attestations/chains@v2","signatures": [{"keyid": "SHA256:w1ABTR6Lt6NlJapY8sIR8F2BvXZ6qn2q+GrC+jWwpqE","sig": "MEQCICXkO7VwYxRHIYd+EbSeIvN+tKMyM4YSZkbUewMSefclAiBCoWnkdF5X4z6rY2YnOlwF5NrrPJh4f/tIvGJe1E3HIQ=="}]},{"type": "https://in-toto.io/Statement/v0.1","predicateType": "https://slsa.dev/provenance/v0.2","predicateBuildType": "https://tekton.dev/attestations/chains@v2","signatures": [{"keyid": "SHA256:w1ABTR6Lt6NlJapY8sIR8F2BvXZ6qn2q+GrC+jWwpqE","sig": "MEUCIQCmcnxF+boyOwR1RSLnZHUJgGtuQ5y0pm+hBjAhyb9TOwIgTtn/WYNIDWeW9WEALawsVBBtcsdeG91wuwIHpYo2zpc="}]},{"type": "https://in-toto.io/Statement/v0.1","predicateType": "https://slsa.dev/provenance/v0.2","predicateBuildType": "https://tekton.dev/attestations/chains/pipelinerun@v2","signatures": [{"keyid": "SHA256:w1ABTR6Lt6NlJapY8sIR8F2BvXZ6qn2q+GrC+jWwpqE","sig": "MEUCIQCrK8Zvo5I45A0j/gvxmsJV30nb6/iQxQVeOMhELH964AIgXm12BtB+JHO5YWoFZAAAR+yMrpgeNBvn5vvVLYoYpHA="}]}]}],"key": "-----BEGIN PUBLIC KEY-----\nMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEPfwkY/ru2JRd6FSqIp7lT3gzjaEC\nEAg+paWtlme2KNcostCsmIbwz+bc2aFV+AxCOpRjRpp3vYrbS5KhkmgC1Q==\n-----END PUBLIC KEY-----\n","policy": {"name": "Default","description": "Includes rules for levels 1, 2 & 3 of SLSA v0.1. This is the default config used for new Konflux applications. Source: https://github.com/conforma/config/blob/main/default/policy.yaml","sources": [{"name": "Default","policy": ["oci::quay.io/enterprise-contract/ec-release-policy:konflux@sha256:ee5c3a020c9545eca738ed87198af0b235463069b2d72c5dba609364a83321d2"],"data": ["git::github.com/release-engineering/rhtap-ec-policy//data?ref=a32d53f84f63c1157d0df30d949d07b064ed74a2","oci::quay.io/konflux-ci/tekton-catalog/data-acceptable-bundles:latest@sha256:f8cb3e1240c4ff6061d370b91b661800c09cc96db791fc9d6925f72e4ba70109","oci::quay.io/konflux-ci/konflux-vanguard/data-acceptable-bundles:latest@sha256:0b31c7bc77a7463a1bc52f3d3625ef0e0e75443da7fd2de8005d7885282138ea","oci::quay.io/konflux-ci/integration-service-catalog/data-acceptable-bundles:latest@sha256:7b00455045ea3873a72caeb1e7ac7d036bd53963a26409891a4cc9d0d242b9fc"],"config": {"include": ["trusted_task.pinned"]}}],"publicKey": "k8s://chains-e2e-ozqz/unpinned-task-bundle-public-keyoruszyefnk"},"ec-version": "v0.9.25","effective-time": "2026-08-14T04:41:36.690529934Z"}