diff --git a/administration/managing_users/roles_in_kosli.md b/administration/managing_users/roles_in_kosli.md
index 7c846df..cda1d22 100644
--- a/administration/managing_users/roles_in_kosli.md
+++ b/administration/managing_users/roles_in_kosli.md
@@ -43,7 +43,6 @@ Roles apply to service accounts the same way they apply to users. Wherever this
| **Attestations & Snapshots** | | | |
| Report attestations | ✅ | ✅ | ❌ | ❌ |
| Report environment snapshots | ✅ | ✅ | ✅ | ❌ |
-| Create and manage approvals | ✅ | ✅ | ❌ | ❌ |
| **Actions** | | | |
| Create, update, and delete actions | ✅ | ✅ | ❌ | ❌ |
| View actions | ✅ | ✅ | ✅ | ✅ |
@@ -74,7 +73,7 @@ The following sections provide more details about each Kosli user role, includin
- **Service Accounts**: Create and manage service accounts and their API keys
- **Integrations**: Configure integrations with external systems (Slack, LaunchDarkly, etc.)
- **Resource Management**: Create, update, and delete flows, environments, policies, and attestation types
- - **Attestations & Snapshots**: Report attestations, environment snapshots, and manage approvals
+ - **Attestations & Snapshots**: Report attestations and environment snapshots
- **Actions**: Create, update, and delete actions for automated workflows and notifications
- **Data Access**: View all trails, artifacts, attestations, and snapshots
@@ -101,7 +100,7 @@ The following sections provide more details about each Kosli user role, includin
- **Service Accounts**: Create and manage service accounts and their API keys
- **Integrations**: Configure integrations with external systems (Slack, LaunchDarkly, etc.)
- **Resource Management**: Create, update, and delete flows, environments, policies, and attestation types
- - **Attestations & Snapshots**: Report attestations, environment snapshots, and manage approvals
+ - **Attestations & Snapshots**: Report attestations and environment snapshots
- **Actions**: Create, update, and delete actions for automated workflows and notifications
- **Data Access**: View all trails, artifacts, attestations, and snapshots
@@ -139,7 +138,6 @@ The following sections provide more details about each Kosli user role, includin
- Use the dedicated update paths on an environment (PATCH, archive, rename, attach/detach policies).
- Create, update, or delete flows, policies, attestation types, or other resources.
- Report attestations.
- - Manage approvals.
- Create or manage actions.
- Configure integrations.
- Invite users or change settings.
@@ -173,7 +171,6 @@ The following sections provide more details about each Kosli user role, includin
Readers cannot:
- Create, update, or delete any resources
- Report attestations or snapshots
- - Manage approvals
- Create or manage actions
- Create or manage service accounts
- Configure integrations
diff --git a/changelog/index.mdx b/changelog/index.mdx
index d5a7321..50935e3 100644
--- a/changelog/index.mdx
+++ b/changelog/index.mdx
@@ -4,6 +4,28 @@ description: "Release notes for Kosli products."
rss: true
---
+
+
+## Breaking changes
+
+- **Approval commands removed** — `kosli assert approval`, `kosli get approval`, `kosli list approvals`, `kosli report approval`, and `kosli request approval` are gone, along with the `kosli request` parent command, since `request approval` was its only subcommand. They were deprecated in v2.20.0. Use [attestations](/getting_started/attestations) to record approval evidence instead.
+
+## Updates
+
+- **k8s-reporter Helm chart (2.6.0)** — the `--auto-environment` flag and its companions (`--environment-description`, `--include-scaling`, `--exclude-scaling`) are now exposed as `reporterConfig.*` values, so the reporter CronJob can auto-create a K8S environment on first run without editing the chart.
+
+[View on GitHub](https://github.com/kosli-dev/cli/releases/tag/v2.35.0)
+
+
+
+
+
+## Breaking changes
+
+- **Approval API removed** — the deprecated approval endpoints under `/api/v2/approvals/` no longer exist. Approvals are also gone from custom webhook notification payloads and from artifact responses. Use [attestations](/getting_started/attestations) to record approval evidence instead.
+
+
+
## New features
diff --git a/client_reference/kosli_get_trail.md b/client_reference/kosli_get_trail.md
index 7ab5028..6ea23ae 100644
--- a/client_reference/kosli_get_trail.md
+++ b/client_reference/kosli_get_trail.md
@@ -39,7 +39,7 @@ To view a live example of 'kosli get trail' you can run the command below (for t
export KOSLI_ORG=cyber-dojo
# The API token below is read-only
export KOSLI_API_TOKEN=Pj_XT2deaVA6V1qrTlthuaWsmjVt4eaHQwqnwqjRO3A
-kosli get trail dashboard-ci 1159a6f1193150681b8484545150334e89de6c1c --output=json
+kosli get trail dashboard-ci e4757683b74df7033c95aa544a7824b395c2f8bb --output=json
```
@@ -47,29 +47,31 @@ kosli get trail dashboard-ci 1159a6f1193150681b8484545150334e89de6c1c --output=j
```json
{
- "name": "1159a6f1193150681b8484545150334e89de6c1c",
- "description": "zhelezovartem - ci: update gh-workflow-tf-plan-apply action to get rid of deprecations",
+ "name": "e4757683b74df7033c95aa544a7824b395c2f8bb",
+ "description": "",
"git_commit_info": {
- "sha1": "1159a6f1193150681b8484545150334e89de6c1c",
- "message": "ci: update gh-workflow-tf-plan-apply action to get rid of deprecations",
- "author": "Artem Zhelezov <36639304+zhelezovartem@users.noreply.github.com>",
+ "sha1": "e4757683b74df7033c95aa544a7824b395c2f8bb",
+ "message": "Update kosli template with provenance facts+decision (#414)",
+ "author": "Jon Jagger ",
"branch": "main",
- "timestamp": 1711534976.0,
- "url": "https://github.com/cyber-dojo/dashboard/commit/1159a6f1193150681b8484545150334e89de6c1c"
+ "timestamp": 1783538510.0,
+ "url": "https://github.com/cyber-dojo/dashboard/commit/e4757683b74df7033c95aa544a7824b395c2f8bb"
},
- "origin_url": "https://github.com/cyber-dojo/dashboard/actions/runs/8450201221",
+ "origin_url": "https://github.com/cyber-dojo/dashboard/actions/runs/28969474194",
"user_data": {},
- "repo_ids": [],
- "last_modified_at": 1714814180.0268202,
- "created_at": 1711534991.83214,
+ "repo_ids": [
+ "4c546fde-c5ee-4a39-b399-8c71d7e1"
+ ],
+ "last_modified_at": 1783538679.7988548,
+ "created_at": 1783538535.1534083,
"compliance_status": {
"status": "COMPLIANT",
"is_compliant": true,
"attestations_statuses": [
{
"attestation_name": "pull-request",
- "attestation_type": null,
- "attestation_id": "76a44125-eccc-4fb7-8260-d4ff1866",
+ "attestation_type": "pull_request",
+ "attestation_id": "60045efd-1851-45f4-9b27-5f7ae946",
"overridden_attestation_id": null,
"status": "COMPLETE",
"is_compliant": true,
@@ -78,51 +80,87 @@ kosli get trail dashboard-ci 1159a6f1193150681b8484545150334e89de6c1c --output=j
],
"artifacts_statuses": {
"dashboard": {
- "artifact_fingerprint": "dddd83bf5038e81c228b222f01a0184ce2a8492cb45075b66be5baf5be803ca1",
- "artifact_id": "8803e410-8ab6-4ba7-af7a-4c769a92",
+ "artifact_fingerprint": "54f6da185cd0f0ef001a0b33c099565fa736546562e0411f706832e72dca47bb",
+ "artifact_id": "cc7c618f-d22e-4d95-b6f1-cea4fded",
"status": "COMPLIANT",
"is_compliant": true,
"attestations_statuses": [
{
- "attestation_name": "aws-beta-snyk-scan",
- "attestation_type": null,
- "attestation_id": "60bde45d-4724-4c46-a963-85fe1972",
+ "attestation_name": "provenance-facts",
+ "attestation_type": "custom:provenance-facts",
+ "attestation_id": "8753765c-0df9-421c-bfe3-c8aa1f8d",
+ "overridden_attestation_id": null,
+ "status": "COMPLETE",
+ "is_compliant": true,
+ "unexpected": false
+ },
+ {
+ "attestation_name": "provenance-decision",
+ "attestation_type": "system:decision",
+ "attestation_id": "b0786932-6ff7-4359-bb20-1bb43671",
"overridden_attestation_id": null,
"status": "COMPLETE",
"is_compliant": true,
- "unexpected": true
+ "unexpected": false
},
{
- "attestation_name": "aws-prod-snyk-scan",
- "attestation_type": null,
- "attestation_id": "333725e9-e82b-4a22-a81c-721adbae",
+ "attestation_name": "sbom-facts",
+ "attestation_type": "custom:sbom-facts",
+ "attestation_id": "7d834d1e-e7de-4890-870c-a783053b",
"overridden_attestation_id": null,
"status": "COMPLETE",
"is_compliant": true,
- "unexpected": true
+ "unexpected": false
+ },
+ {
+ "attestation_name": "sbom-decision",
+ "attestation_type": "system:decision",
+ "attestation_id": "d37cd3aa-3909-4d0d-a8c3-0c623de1",
+ "overridden_attestation_id": null,
+ "status": "COMPLETE",
+ "is_compliant": true,
+ "unexpected": false
},
{
"attestation_name": "snyk-container-scan",
- "attestation_type": null,
- "attestation_id": "70421c36-d79f-4813-8635-e77b760a",
+ "attestation_type": "system:decision",
+ "attestation_id": "2e01c56f-18f9-4e75-8b45-f7d5846e",
+ "overridden_attestation_id": null,
+ "status": "COMPLETE",
+ "is_compliant": true,
+ "unexpected": false
+ },
+ {
+ "attestation_name": "rubocop-lint",
+ "attestation_type": "junit",
+ "attestation_id": "d81b5df8-7c67-42ce-b332-5f10aba5",
+ "overridden_attestation_id": null,
+ "status": "COMPLETE",
+ "is_compliant": true,
+ "unexpected": false
+ },
+ {
+ "attestation_name": "sonarcloud-scan",
+ "attestation_type": "sonar",
+ "attestation_id": "c955d971-4600-4b45-950f-cd8b3642",
"overridden_attestation_id": null,
"status": "COMPLETE",
"is_compliant": true,
"unexpected": false
},
{
- "attestation_name": "snyk-code-scan",
- "attestation_type": null,
- "attestation_id": "bb3acddd-5336-4b6a-a7ea-e5b3e972",
+ "attestation_name": "unit-test",
+ "attestation_type": "junit",
+ "attestation_id": "084be09c-f101-4a29-985e-ee305d60",
"overridden_attestation_id": null,
"status": "COMPLETE",
"is_compliant": true,
"unexpected": false
},
{
- "attestation_name": "lint",
- "attestation_type": null,
- "attestation_id": "d3752b67-aefc-444c-a7dc-8115c5ef",
+ "attestation_name": "unit-test-coverage",
+ "attestation_type": "generic",
+ "attestation_id": "ede0b52b-d56e-474f-b04c-03e6be01",
"overridden_attestation_id": null,
"status": "COMPLETE",
"is_compliant": true,
@@ -130,12 +168,12 @@ kosli get trail dashboard-ci 1159a6f1193150681b8484545150334e89de6c1c --output=j
}
],
"unexpected": false,
- "evaluated_at": 1714814180.0264866,
- "flow_template_id": null
+ "evaluated_at": 1783538679.7988548,
+ "flow_template_id": "cba69d3f-7f48-4e00-9c23-fb63f98d"
}
},
- "evaluated_at": 1714814180.0265083,
- "flow_template_id": "cd1860d5-dc06-41e7-9a3b-be078e7f"
+ "evaluated_at": 1783538658.411656,
+ "flow_template_id": "cba69d3f-7f48-4e00-9c23-fb63f98d"
},
"template": {
"version": 1,
@@ -151,22 +189,46 @@ kosli get trail dashboard-ci 1159a6f1193150681b8484545150334e89de6c1c --output=j
"name": "dashboard",
"attestations": [
{
- "name": "lint",
- "type": "generic"
+ "name": "provenance-facts",
+ "type": "custom:provenance-facts"
+ },
+ {
+ "name": "provenance-decision",
+ "type": "decision"
},
{
- "name": "snyk-code-scan",
- "type": "snyk"
+ "name": "sbom-facts",
+ "type": "custom:sbom-facts"
+ },
+ {
+ "name": "sbom-decision",
+ "type": "decision"
},
{
"name": "snyk-container-scan",
- "type": "snyk"
+ "type": "decision"
+ },
+ {
+ "name": "rubocop-lint",
+ "type": "junit"
+ },
+ {
+ "name": "sonarcloud-scan",
+ "type": "sonar"
+ },
+ {
+ "name": "unit-test",
+ "type": "junit"
+ },
+ {
+ "name": "unit-test-coverage",
+ "type": "generic"
}
]
}
]
},
- "content": "version: 1\n\ntrail:\n attestations:\n - name: pull-request\n type: pull_request\n artifacts:\n - name: dashboard\n attestations:\n - name: lint\n type: generic\n - name: snyk-code-scan\n type: snyk\n - name: snyk-container-scan\n type: snyk\n"
+ "content": "version: 1\n\ntrail:\n attestations:\n - name: pull-request\n type: pull_request\n artifacts:\n - name: dashboard\n attestations:\n - name: provenance-facts\n type: custom:provenance-facts\n - name: provenance-decision\n type: decision\n\n - name: sbom-facts\n type: custom:sbom-facts\n - name: sbom-decision\n type: decision\n\n - name: snyk-container-scan\n type: decision\n\n - name: rubocop-lint\n type: junit\n - name: sonarcloud-scan\n type: sonar\n - name: unit-test\n type: junit\n - name: unit-test-coverage\n type: generic\n"
},
"compliance_state": "COMPLIANT",
"is_compliant": true,
@@ -174,609 +236,557 @@ kosli get trail dashboard-ci 1159a6f1193150681b8484545150334e89de6c1c --output=j
{
"org_id": "83acb2bc-2c26-48a7-8b87-90dfcce7",
"flow_id": "f60c8f3f-67cd-4496-8e17-ed6fdb1e",
- "trail_id": "7cc627bd-78ff-4051-b7b8-ef46fa15",
- "timestamp": 1711534991.83214,
+ "trail_id": "39e622ec-b847-447b-b7f8-7e9ea745",
+ "timestamp": 1783538535.1534083,
"type": "trail_reported",
"git_commit_info": {
- "sha1": "1159a6f1193150681b8484545150334e89de6c1c",
- "message": "ci: update gh-workflow-tf-plan-apply action to get rid of deprecations",
- "author": "Artem Zhelezov <36639304+zhelezovartem@users.noreply.github.com>",
+ "sha1": "e4757683b74df7033c95aa544a7824b395c2f8bb",
+ "message": "Update kosli template with provenance facts+decision (#414)",
+ "author": "Jon Jagger ",
"author_username": null,
"branch": "main",
- "timestamp": 1711534976.0,
- "url": "https://github.com/cyber-dojo/dashboard/commit/1159a6f1193150681b8484545150334e89de6c1c",
+ "timestamp": 1783538510.0,
+ "url": "https://github.com/cyber-dojo/dashboard/commit/e4757683b74df7033c95aa544a7824b395c2f8bb",
"parents": null,
"verified": null,
"signature_state": null
},
- "repo_info": null,
+ "repo_info": {
+ "inner_id": "4c546fde-c5ee-4a39-b399-8c71d7e1",
+ "org_id": "83acb2bc-2c26-48a7-8b87-90dfcce7",
+ "repo_id": "290597708",
+ "name": "cyber-dojo/dashboard",
+ "url": "https://github.com/cyber-dojo/dashboard",
+ "provider": "github",
+ "description": null,
+ "vcs_instance": null,
+ "namespace_path": null,
+ "additional_info": null,
+ "created_at": 1768639963.3866346,
+ "last_modified_at": 1783538535.13884,
+ "tags": {}
+ },
"setting_user_id": "da5d4ee8-aec0-4264-ab85-c491040c",
"trail_data_json": {
"org_id": "83acb2bc-2c26-48a7-8b87-90dfcce7",
"flow_id": "f60c8f3f-67cd-4496-8e17-ed6fdb1e",
- "name": "1159a6f1193150681b8484545150334e89de6c1c",
+ "name": "e4757683b74df7033c95aa544a7824b395c2f8bb",
"creating_user_id": "da5d4ee8-aec0-4264-ab85-c491040c",
- "description": "zhelezovartem - ci: update gh-workflow-tf-plan-apply action to get rid of deprecations",
+ "description": "",
"git_commit_info": {
- "sha1": "1159a6f1193150681b8484545150334e89de6c1c",
- "message": "ci: update gh-workflow-tf-plan-apply action to get rid of deprecations",
- "author": "Artem Zhelezov <36639304+zhelezovartem@users.noreply.github.com>",
+ "sha1": "e4757683b74df7033c95aa544a7824b395c2f8bb",
+ "message": "Update kosli template with provenance facts+decision (#414)",
+ "author": "Jon Jagger ",
"branch": "main",
- "timestamp": 1711534976.0,
- "url": "https://github.com/cyber-dojo/dashboard/commit/1159a6f1193150681b8484545150334e89de6c1c"
+ "timestamp": 1783538510.0,
+ "url": "https://github.com/cyber-dojo/dashboard/commit/e4757683b74df7033c95aa544a7824b395c2f8bb"
},
- "template_id": "cd1860d5-dc06-41e7-9a3b-be078e7f",
- "origin_url": "https://github.com/cyber-dojo/dashboard/actions/runs/8450201221",
- "user_data": "{}"
+ "template_id": "cba69d3f-7f48-4e00-9c23-fb63f98d",
+ "origin_url": "https://github.com/cyber-dojo/dashboard/actions/runs/28969474194",
+ "user_data": "{}",
+ "repo_ids": [
+ "4c546fde-c5ee-4a39-b399-8c71d7e1"
+ ]
}
},
{
"org_id": "83acb2bc-2c26-48a7-8b87-90dfcce7",
"flow_id": "f60c8f3f-67cd-4496-8e17-ed6fdb1e",
- "trail_id": "7cc627bd-78ff-4051-b7b8-ef46fa15",
- "timestamp": 1711535010.2210565,
+ "trail_id": "39e622ec-b847-447b-b7f8-7e9ea745",
+ "timestamp": 1783538554.443048,
"type": "trail_attestation_reported",
"git_commit_info": {
- "sha1": "1159a6f1193150681b8484545150334e89de6c1c",
- "message": "ci: update gh-workflow-tf-plan-apply action to get rid of deprecations",
- "author": "Artem Zhelezov <36639304+zhelezovartem@users.noreply.github.com>",
+ "sha1": "e4757683b74df7033c95aa544a7824b395c2f8bb",
+ "message": "Update kosli template with provenance facts+decision (#414)",
+ "author": "Jon Jagger ",
"author_username": null,
"branch": "main",
- "timestamp": 1711534976.0,
- "url": "https://github.com/cyber-dojo/dashboard/commit/1159a6f1193150681b8484545150334e89de6c1c",
+ "timestamp": 1783538510.0,
+ "url": "https://github.com/cyber-dojo/dashboard/commit/e4757683b74df7033c95aa544a7824b395c2f8bb",
"parents": null,
"verified": null,
"signature_state": null
},
- "repo_info": null,
+ "repo_info": {
+ "inner_id": "4c546fde-c5ee-4a39-b399-8c71d7e1",
+ "org_id": "83acb2bc-2c26-48a7-8b87-90dfcce7",
+ "repo_id": "290597708",
+ "name": "cyber-dojo/dashboard",
+ "url": "https://github.com/cyber-dojo/dashboard",
+ "provider": "github",
+ "description": null,
+ "vcs_instance": null,
+ "namespace_path": null,
+ "additional_info": null,
+ "created_at": 1768639963.3866346,
+ "last_modified_at": 1783538554.4352667,
+ "tags": {}
+ },
"attestation_type": "pull_request",
"is_compliant": true,
- "attestation_id": "76a44125-eccc-4fb7-8260-d4ff1866",
+ "attestation_id": "60045efd-1851-45f4-9b27-5f7ae946",
"template_reference_name": "pull-request"
},
{
"org_id": "83acb2bc-2c26-48a7-8b87-90dfcce7",
"flow_id": "f60c8f3f-67cd-4496-8e17-ed6fdb1e",
- "trail_id": "7cc627bd-78ff-4051-b7b8-ef46fa15",
- "timestamp": 1711535018.95352,
+ "trail_id": "39e622ec-b847-447b-b7f8-7e9ea745",
+ "timestamp": 1783538566.412186,
"type": "trail_attestation_for_artifact_reported",
"git_commit_info": {
- "sha1": "1159a6f1193150681b8484545150334e89de6c1c",
- "message": "ci: update gh-workflow-tf-plan-apply action to get rid of deprecations",
- "author": "Artem Zhelezov <36639304+zhelezovartem@users.noreply.github.com>",
+ "sha1": "e4757683b74df7033c95aa544a7824b395c2f8bb",
+ "message": "Update kosli template with provenance facts+decision (#414)",
+ "author": "Jon Jagger ",
"author_username": null,
"branch": "main",
- "timestamp": 1711534976.0,
- "url": "https://github.com/cyber-dojo/dashboard/commit/1159a6f1193150681b8484545150334e89de6c1c",
+ "timestamp": 1783538510.0,
+ "url": "https://github.com/cyber-dojo/dashboard/commit/e4757683b74df7033c95aa544a7824b395c2f8bb",
"parents": null,
"verified": null,
"signature_state": null
},
- "repo_info": null,
- "attestation_type": "generic",
+ "repo_info": {
+ "inner_id": "4c546fde-c5ee-4a39-b399-8c71d7e1",
+ "org_id": "83acb2bc-2c26-48a7-8b87-90dfcce7",
+ "repo_id": "290597708",
+ "name": "cyber-dojo/dashboard",
+ "url": "https://github.com/cyber-dojo/dashboard",
+ "provider": "github",
+ "description": null,
+ "vcs_instance": null,
+ "namespace_path": null,
+ "additional_info": null,
+ "created_at": 1768639963.3866346,
+ "last_modified_at": 1783538566.275227,
+ "tags": {}
+ },
+ "attestation_type": "junit",
"is_compliant": true,
- "attestation_id": "d3752b67-aefc-444c-a7dc-8115c5ef",
- "template_reference_name": "lint",
+ "attestation_id": "d81b5df8-7c67-42ce-b332-5f10aba5",
+ "template_reference_name": "rubocop-lint",
"target_artifact": "dashboard"
},
{
"org_id": "83acb2bc-2c26-48a7-8b87-90dfcce7",
"flow_id": "f60c8f3f-67cd-4496-8e17-ed6fdb1e",
- "trail_id": "7cc627bd-78ff-4051-b7b8-ef46fa15",
- "timestamp": 1711535027.3128896,
+ "trail_id": "39e622ec-b847-447b-b7f8-7e9ea745",
+ "timestamp": 1783538599.9910955,
"type": "artifact_creation_reported",
"git_commit_info": {
- "sha1": "1159a6f1193150681b8484545150334e89de6c1c",
- "message": "ci: update gh-workflow-tf-plan-apply action to get rid of deprecations",
- "author": "Artem Zhelezov <36639304+zhelezovartem@users.noreply.github.com>",
+ "sha1": "e4757683b74df7033c95aa544a7824b395c2f8bb",
+ "message": "Update kosli template with provenance facts+decision (#414)",
+ "author": "Jon Jagger ",
"author_username": null,
- "branch": "main",
- "timestamp": 1711534976.0,
- "url": "https://github.com/cyber-dojo/dashboard/commit/1159a6f1193150681b8484545150334e89de6c1c",
+ "branch": "",
+ "timestamp": 1783538510.0,
+ "url": "https://github.com/cyber-dojo/dashboard/commit/e4757683b74df7033c95aa544a7824b395c2f8bb",
"parents": null,
"verified": null,
"signature_state": null
},
- "repo_info": null,
- "artifact_fingerprint": "dddd83bf5038e81c228b222f01a0184ce2a8492cb45075b66be5baf5be803ca1",
- "artifact_name": "cyberdojo/dashboard:1159a6f",
- "artifact_id": "8803e410-8ab6-4ba7-af7a-4c769a92",
+ "repo_info": {
+ "inner_id": "4c546fde-c5ee-4a39-b399-8c71d7e1",
+ "org_id": "83acb2bc-2c26-48a7-8b87-90dfcce7",
+ "repo_id": "290597708",
+ "name": "cyber-dojo/dashboard",
+ "url": "https://github.com/cyber-dojo/dashboard",
+ "provider": "github",
+ "description": null,
+ "vcs_instance": null,
+ "namespace_path": null,
+ "additional_info": null,
+ "created_at": 1768639963.3866346,
+ "last_modified_at": 1783538599.9776034,
+ "tags": {}
+ },
+ "artifact_fingerprint": "54f6da185cd0f0ef001a0b33c099565fa736546562e0411f706832e72dca47bb",
+ "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:e475768",
+ "artifact_id": "cc7c618f-d22e-4d95-b6f1-cea4fded",
"template_reference_name": "dashboard",
- "git_commit": "1159a6f1193150681b8484545150334e89de6c1c"
+ "git_commit": "e4757683b74df7033c95aa544a7824b395c2f8bb"
},
{
"org_id": "83acb2bc-2c26-48a7-8b87-90dfcce7",
"flow_id": "f60c8f3f-67cd-4496-8e17-ed6fdb1e",
- "trail_id": "7cc627bd-78ff-4051-b7b8-ef46fa15",
- "timestamp": 1711535054.2601902,
+ "trail_id": "39e622ec-b847-447b-b7f8-7e9ea745",
+ "timestamp": 1783538601.4830513,
"type": "artifact_attestation_reported",
"git_commit_info": {
- "sha1": "1159a6f1193150681b8484545150334e89de6c1c",
- "message": "ci: update gh-workflow-tf-plan-apply action to get rid of deprecations",
- "author": "Artem Zhelezov <36639304+zhelezovartem@users.noreply.github.com>",
+ "sha1": "e4757683b74df7033c95aa544a7824b395c2f8bb",
+ "message": "Update kosli template with provenance facts+decision (#414)",
+ "author": "Jon Jagger ",
"author_username": null,
- "branch": "main",
- "timestamp": 1711534976.0,
- "url": "https://github.com/cyber-dojo/dashboard/commit/1159a6f1193150681b8484545150334e89de6c1c",
+ "branch": "",
+ "timestamp": 1783538510.0,
+ "url": "https://github.com/cyber-dojo/dashboard/commit/e4757683b74df7033c95aa544a7824b395c2f8bb",
"parents": null,
"verified": null,
"signature_state": null
},
- "repo_info": null,
- "attestation_type": "snyk",
- "is_compliant": true,
- "attestation_id": "bb3acddd-5336-4b6a-a7ea-e5b3e972",
- "template_reference_name": "snyk-code-scan",
- "artifact_fingerprint": "dddd83bf5038e81c228b222f01a0184ce2a8492cb45075b66be5baf5be803ca1",
- "artifact_name": "cyberdojo/dashboard:1159a6f",
- "target_artifact": "dashboard"
- },
- {
- "org_id": "83acb2bc-2c26-48a7-8b87-90dfcce7",
- "flow_id": "f60c8f3f-67cd-4496-8e17-ed6fdb1e",
- "trail_id": "7cc627bd-78ff-4051-b7b8-ef46fa15",
- "timestamp": 1711535059.1866503,
- "type": "artifact_attestation_reported",
- "git_commit_info": {
- "sha1": "1159a6f1193150681b8484545150334e89de6c1c",
- "message": "ci: update gh-workflow-tf-plan-apply action to get rid of deprecations",
- "author": "Artem Zhelezov <36639304+zhelezovartem@users.noreply.github.com>",
- "author_username": null,
- "branch": "main",
- "timestamp": 1711534976.0,
- "url": "https://github.com/cyber-dojo/dashboard/commit/1159a6f1193150681b8484545150334e89de6c1c",
- "parents": null,
- "verified": null,
- "signature_state": null
+ "repo_info": {
+ "inner_id": "4c546fde-c5ee-4a39-b399-8c71d7e1",
+ "org_id": "83acb2bc-2c26-48a7-8b87-90dfcce7",
+ "repo_id": "290597708",
+ "name": "cyber-dojo/dashboard",
+ "url": "https://github.com/cyber-dojo/dashboard",
+ "provider": "github",
+ "description": null,
+ "vcs_instance": null,
+ "namespace_path": null,
+ "additional_info": null,
+ "created_at": 1768639963.3866346,
+ "last_modified_at": 1783538601.4712045,
+ "tags": {}
},
- "repo_info": null,
- "attestation_type": "snyk",
+ "attestation_type": "custom:provenance-facts",
"is_compliant": true,
- "attestation_id": "70421c36-d79f-4813-8635-e77b760a",
- "template_reference_name": "snyk-container-scan",
- "artifact_fingerprint": "dddd83bf5038e81c228b222f01a0184ce2a8492cb45075b66be5baf5be803ca1",
- "artifact_name": "cyberdojo/dashboard:1159a6f",
+ "attestation_id": "8753765c-0df9-421c-bfe3-c8aa1f8d",
+ "template_reference_name": "provenance-facts",
+ "artifact_fingerprint": "54f6da185cd0f0ef001a0b33c099565fa736546562e0411f706832e72dca47bb",
+ "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:e475768",
"target_artifact": "dashboard"
},
{
"org_id": "83acb2bc-2c26-48a7-8b87-90dfcce7",
"flow_id": "f60c8f3f-67cd-4496-8e17-ed6fdb1e",
- "trail_id": "7cc627bd-78ff-4051-b7b8-ef46fa15",
- "timestamp": 1711535086.4269938,
- "type": "artifact_approval_reported",
- "git_commit_info": null,
- "repo_info": null,
- "artifact_fingerprint": "dddd83bf5038e81c228b222f01a0184ce2a8492cb45075b66be5baf5be803ca1",
- "approval_id": "fd9de9dd-37e7-4680-8353-c5082609",
- "approval_number": 70,
- "environment_id": "e44779bb-311d-4bac-9d19-a64a0843",
- "state": "APPROVED",
- "reviewer": "external://zhelezovartem"
- },
- {
- "org_id": "83acb2bc-2c26-48a7-8b87-90dfcce7",
- "flow_id": "f60c8f3f-67cd-4496-8e17-ed6fdb1e",
- "trail_id": "7cc627bd-78ff-4051-b7b8-ef46fa15",
- "timestamp": 1711535216.8064907,
- "type": "artifact_started_running",
- "git_commit_info": null,
- "repo_info": null,
- "artifact_fingerprint": "dddd83bf5038e81c228b222f01a0184ce2a8492cb45075b66be5baf5be803ca1",
- "environment_id": "e44779bb-311d-4bac-9d19-a64a0843",
- "environment_name": "aws-beta",
- "snapshot_index": 3429,
- "replica_number": 1,
- "template_reference_name": "dashboard"
- },
- {
- "org_id": "83acb2bc-2c26-48a7-8b87-90dfcce7",
- "flow_id": "f60c8f3f-67cd-4496-8e17-ed6fdb1e",
- "trail_id": "7cc627bd-78ff-4051-b7b8-ef46fa15",
- "timestamp": 1711535375.2659616,
- "type": "artifact_approval_reported",
- "git_commit_info": null,
- "repo_info": null,
- "artifact_fingerprint": "dddd83bf5038e81c228b222f01a0184ce2a8492cb45075b66be5baf5be803ca1",
- "approval_id": "2380af36-a5ff-4c52-ba30-a8483bb9",
- "approval_number": 71,
- "environment_id": "73965c45-e9a1-4bb9-ad01-dc5a526f",
- "state": "APPROVED",
- "reviewer": "external://zhelezovartem"
- },
- {
- "org_id": "83acb2bc-2c26-48a7-8b87-90dfcce7",
- "flow_id": "f60c8f3f-67cd-4496-8e17-ed6fdb1e",
- "trail_id": "7cc627bd-78ff-4051-b7b8-ef46fa15",
- "timestamp": 1711535487.4472156,
- "type": "artifact_started_running",
- "git_commit_info": null,
- "repo_info": null,
- "artifact_fingerprint": "dddd83bf5038e81c228b222f01a0184ce2a8492cb45075b66be5baf5be803ca1",
- "environment_id": "73965c45-e9a1-4bb9-ad01-dc5a526f",
- "environment_name": "aws-prod",
- "snapshot_index": 2509,
- "replica_number": 1,
- "template_reference_name": "dashboard"
- },
- {
- "org_id": "83acb2bc-2c26-48a7-8b87-90dfcce7",
- "flow_id": "f60c8f3f-67cd-4496-8e17-ed6fdb1e",
- "trail_id": "7cc627bd-78ff-4051-b7b8-ef46fa15",
- "timestamp": 1711789650.9179683,
+ "trail_id": "39e622ec-b847-447b-b7f8-7e9ea745",
+ "timestamp": 1783538605.8901985,
"type": "artifact_attestation_reported",
"git_commit_info": {
- "sha1": "cf3896a8bbd2f74c9e36336b69d8ee64eae1ff25",
- "message": "Run ci workflows with fixed Kosli trail-name",
- "author": "JonJagger ",
+ "sha1": "e4757683b74df7033c95aa544a7824b395c2f8bb",
+ "message": "Update kosli template with provenance facts+decision (#414)",
+ "author": "Jon Jagger ",
"author_username": null,
- "branch": "main",
- "timestamp": 1711195944.0,
- "url": "https://github.com/cyber-dojo/live-snyk-scans/commit/cf3896a8bbd2f74c9e36336b69d8ee64eae1ff25",
+ "branch": "",
+ "timestamp": 1783538510.0,
+ "url": "https://github.com/cyber-dojo/dashboard/commit/e4757683b74df7033c95aa544a7824b395c2f8bb",
"parents": null,
"verified": null,
"signature_state": null
},
- "repo_info": null,
- "attestation_type": "snyk",
- "is_compliant": true,
- "attestation_id": "95e89ff9-077d-4528-a09d-c7898047",
- "template_reference_name": "aws-prod-snyk-scan",
- "artifact_fingerprint": "dddd83bf5038e81c228b222f01a0184ce2a8492cb45075b66be5baf5be803ca1",
- "artifact_name": "cyberdojo/dashboard:1159a6f",
- "target_artifact": "dashboard"
- },
- {
- "org_id": "83acb2bc-2c26-48a7-8b87-90dfcce7",
- "flow_id": "f60c8f3f-67cd-4496-8e17-ed6fdb1e",
- "trail_id": "7cc627bd-78ff-4051-b7b8-ef46fa15",
- "timestamp": 1711790067.348031,
- "type": "artifact_attestation_reported",
- "git_commit_info": {
- "sha1": "cf3896a8bbd2f74c9e36336b69d8ee64eae1ff25",
- "message": "Run ci workflows with fixed Kosli trail-name",
- "author": "JonJagger ",
- "author_username": null,
- "branch": "main",
- "timestamp": 1711195944.0,
- "url": "https://github.com/cyber-dojo/live-snyk-scans/commit/cf3896a8bbd2f74c9e36336b69d8ee64eae1ff25",
- "parents": null,
- "verified": null,
- "signature_state": null
+ "repo_info": {
+ "inner_id": "4c546fde-c5ee-4a39-b399-8c71d7e1",
+ "org_id": "83acb2bc-2c26-48a7-8b87-90dfcce7",
+ "repo_id": "290597708",
+ "name": "cyber-dojo/dashboard",
+ "url": "https://github.com/cyber-dojo/dashboard",
+ "provider": "github",
+ "description": null,
+ "vcs_instance": null,
+ "namespace_path": null,
+ "additional_info": null,
+ "created_at": 1768639963.3866346,
+ "last_modified_at": 1783538605.7439284,
+ "tags": {}
},
- "repo_info": null,
- "attestation_type": "snyk",
+ "attestation_type": "system:decision",
"is_compliant": true,
- "attestation_id": "0a45d133-25c4-46d2-bc59-27fece47",
- "template_reference_name": "aws-beta-snyk-scan",
- "artifact_fingerprint": "dddd83bf5038e81c228b222f01a0184ce2a8492cb45075b66be5baf5be803ca1",
- "artifact_name": "cyberdojo/dashboard:1159a6f",
+ "attestation_id": "b0786932-6ff7-4359-bb20-1bb43671",
+ "template_reference_name": "provenance-decision",
+ "artifact_fingerprint": "54f6da185cd0f0ef001a0b33c099565fa736546562e0411f706832e72dca47bb",
+ "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:e475768",
"target_artifact": "dashboard"
},
{
"org_id": "83acb2bc-2c26-48a7-8b87-90dfcce7",
"flow_id": "f60c8f3f-67cd-4496-8e17-ed6fdb1e",
- "trail_id": "7cc627bd-78ff-4051-b7b8-ef46fa15",
- "timestamp": 1712394532.589705,
+ "trail_id": "39e622ec-b847-447b-b7f8-7e9ea745",
+ "timestamp": 1783538607.5449562,
"type": "artifact_attestation_reported",
"git_commit_info": {
- "sha1": "cf3896a8bbd2f74c9e36336b69d8ee64eae1ff25",
- "message": "Run ci workflows with fixed Kosli trail-name",
- "author": "JonJagger ",
+ "sha1": "e4757683b74df7033c95aa544a7824b395c2f8bb",
+ "message": "Update kosli template with provenance facts+decision (#414)",
+ "author": "Jon Jagger ",
"author_username": null,
- "branch": "main",
- "timestamp": 1711195944.0,
- "url": "https://github.com/cyber-dojo/live-snyk-scans/commit/cf3896a8bbd2f74c9e36336b69d8ee64eae1ff25",
+ "branch": "",
+ "timestamp": 1783538510.0,
+ "url": "https://github.com/cyber-dojo/dashboard/commit/e4757683b74df7033c95aa544a7824b395c2f8bb",
"parents": null,
"verified": null,
"signature_state": null
},
- "repo_info": null,
- "attestation_type": "snyk",
- "is_compliant": true,
- "attestation_id": "e616f223-2016-4c28-85c5-00176db6",
- "template_reference_name": "aws-prod-snyk-scan",
- "artifact_fingerprint": "dddd83bf5038e81c228b222f01a0184ce2a8492cb45075b66be5baf5be803ca1",
- "artifact_name": "cyberdojo/dashboard:1159a6f",
- "target_artifact": "dashboard"
- },
- {
- "org_id": "83acb2bc-2c26-48a7-8b87-90dfcce7",
- "flow_id": "f60c8f3f-67cd-4496-8e17-ed6fdb1e",
- "trail_id": "7cc627bd-78ff-4051-b7b8-ef46fa15",
- "timestamp": 1712394916.8546758,
- "type": "artifact_attestation_reported",
- "git_commit_info": {
- "sha1": "cf3896a8bbd2f74c9e36336b69d8ee64eae1ff25",
- "message": "Run ci workflows with fixed Kosli trail-name",
- "author": "JonJagger ",
- "author_username": null,
- "branch": "main",
- "timestamp": 1711195944.0,
- "url": "https://github.com/cyber-dojo/live-snyk-scans/commit/cf3896a8bbd2f74c9e36336b69d8ee64eae1ff25",
- "parents": null,
- "verified": null,
- "signature_state": null
+ "repo_info": {
+ "inner_id": "4c546fde-c5ee-4a39-b399-8c71d7e1",
+ "org_id": "83acb2bc-2c26-48a7-8b87-90dfcce7",
+ "repo_id": "290597708",
+ "name": "cyber-dojo/dashboard",
+ "url": "https://github.com/cyber-dojo/dashboard",
+ "provider": "github",
+ "description": null,
+ "vcs_instance": null,
+ "namespace_path": null,
+ "additional_info": null,
+ "created_at": 1768639963.3866346,
+ "last_modified_at": 1783538607.5226355,
+ "tags": {}
},
- "repo_info": null,
- "attestation_type": "snyk",
+ "attestation_type": "custom:sbom-facts",
"is_compliant": true,
- "attestation_id": "a7d0fdd4-33a0-4e50-8a3b-d3928e1f",
- "template_reference_name": "aws-beta-snyk-scan",
- "artifact_fingerprint": "dddd83bf5038e81c228b222f01a0184ce2a8492cb45075b66be5baf5be803ca1",
- "artifact_name": "cyberdojo/dashboard:1159a6f",
+ "attestation_id": "7d834d1e-e7de-4890-870c-a783053b",
+ "template_reference_name": "sbom-facts",
+ "artifact_fingerprint": "54f6da185cd0f0ef001a0b33c099565fa736546562e0411f706832e72dca47bb",
+ "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:e475768",
"target_artifact": "dashboard"
},
{
"org_id": "83acb2bc-2c26-48a7-8b87-90dfcce7",
"flow_id": "f60c8f3f-67cd-4496-8e17-ed6fdb1e",
- "trail_id": "7cc627bd-78ff-4051-b7b8-ef46fa15",
- "timestamp": 1712999261.7330244,
- "type": "artifact_attestation_reported",
+ "trail_id": "39e622ec-b847-447b-b7f8-7e9ea745",
+ "timestamp": 1783538609.6176646,
+ "type": "trail_attestation_for_artifact_reported",
"git_commit_info": {
- "sha1": "cf3896a8bbd2f74c9e36336b69d8ee64eae1ff25",
- "message": "Run ci workflows with fixed Kosli trail-name",
- "author": "JonJagger ",
+ "sha1": "e4757683b74df7033c95aa544a7824b395c2f8bb",
+ "message": "Update kosli template with provenance facts+decision (#414)",
+ "author": "Jon Jagger ",
"author_username": null,
"branch": "main",
- "timestamp": 1711195944.0,
- "url": "https://github.com/cyber-dojo/live-snyk-scans/commit/cf3896a8bbd2f74c9e36336b69d8ee64eae1ff25",
+ "timestamp": 1783538510.0,
+ "url": "https://github.com/cyber-dojo/dashboard/commit/e4757683b74df7033c95aa544a7824b395c2f8bb",
"parents": null,
"verified": null,
"signature_state": null
},
- "repo_info": null,
- "attestation_type": "snyk",
- "is_compliant": true,
- "attestation_id": "3e4ef819-db8e-4f1f-b665-1ac0e061",
- "template_reference_name": "aws-prod-snyk-scan",
- "artifact_fingerprint": "dddd83bf5038e81c228b222f01a0184ce2a8492cb45075b66be5baf5be803ca1",
- "artifact_name": "cyberdojo/dashboard:1159a6f",
- "target_artifact": "dashboard"
- },
- {
- "org_id": "83acb2bc-2c26-48a7-8b87-90dfcce7",
- "flow_id": "f60c8f3f-67cd-4496-8e17-ed6fdb1e",
- "trail_id": "7cc627bd-78ff-4051-b7b8-ef46fa15",
- "timestamp": 1712999606.647108,
- "type": "artifact_attestation_reported",
- "git_commit_info": {
- "sha1": "cf3896a8bbd2f74c9e36336b69d8ee64eae1ff25",
- "message": "Run ci workflows with fixed Kosli trail-name",
- "author": "JonJagger ",
- "author_username": null,
- "branch": "main",
- "timestamp": 1711195944.0,
- "url": "https://github.com/cyber-dojo/live-snyk-scans/commit/cf3896a8bbd2f74c9e36336b69d8ee64eae1ff25",
- "parents": null,
- "verified": null,
- "signature_state": null
+ "repo_info": {
+ "inner_id": "4c546fde-c5ee-4a39-b399-8c71d7e1",
+ "org_id": "83acb2bc-2c26-48a7-8b87-90dfcce7",
+ "repo_id": "290597708",
+ "name": "cyber-dojo/dashboard",
+ "url": "https://github.com/cyber-dojo/dashboard",
+ "provider": "github",
+ "description": null,
+ "vcs_instance": null,
+ "namespace_path": null,
+ "additional_info": null,
+ "created_at": 1768639963.3866346,
+ "last_modified_at": 1783538609.6101015,
+ "tags": {}
},
- "repo_info": null,
- "attestation_type": "snyk",
+ "attestation_type": "sonar",
"is_compliant": true,
- "attestation_id": "d6a3266d-7e43-426f-853c-a2bab6f2",
- "template_reference_name": "aws-beta-snyk-scan",
- "artifact_fingerprint": "dddd83bf5038e81c228b222f01a0184ce2a8492cb45075b66be5baf5be803ca1",
- "artifact_name": "cyberdojo/dashboard:1159a6f",
+ "attestation_id": "c955d971-4600-4b45-950f-cd8b3642",
+ "template_reference_name": "sonarcloud-scan",
"target_artifact": "dashboard"
},
{
"org_id": "83acb2bc-2c26-48a7-8b87-90dfcce7",
"flow_id": "f60c8f3f-67cd-4496-8e17-ed6fdb1e",
- "trail_id": "7cc627bd-78ff-4051-b7b8-ef46fa15",
- "timestamp": 1713604064.640139,
+ "trail_id": "39e622ec-b847-447b-b7f8-7e9ea745",
+ "timestamp": 1783538612.6819937,
"type": "artifact_attestation_reported",
"git_commit_info": {
- "sha1": "cf3896a8bbd2f74c9e36336b69d8ee64eae1ff25",
- "message": "Run ci workflows with fixed Kosli trail-name",
- "author": "JonJagger ",
+ "sha1": "e4757683b74df7033c95aa544a7824b395c2f8bb",
+ "message": "Update kosli template with provenance facts+decision (#414)",
+ "author": "Jon Jagger ",
"author_username": null,
- "branch": "main",
- "timestamp": 1711195944.0,
- "url": "https://github.com/cyber-dojo/live-snyk-scans/commit/cf3896a8bbd2f74c9e36336b69d8ee64eae1ff25",
+ "branch": "",
+ "timestamp": 1783538510.0,
+ "url": "https://github.com/cyber-dojo/dashboard/commit/e4757683b74df7033c95aa544a7824b395c2f8bb",
"parents": null,
"verified": null,
"signature_state": null
},
- "repo_info": null,
- "attestation_type": "snyk",
+ "repo_info": {
+ "inner_id": "4c546fde-c5ee-4a39-b399-8c71d7e1",
+ "org_id": "83acb2bc-2c26-48a7-8b87-90dfcce7",
+ "repo_id": "290597708",
+ "name": "cyber-dojo/dashboard",
+ "url": "https://github.com/cyber-dojo/dashboard",
+ "provider": "github",
+ "description": null,
+ "vcs_instance": null,
+ "namespace_path": null,
+ "additional_info": null,
+ "created_at": 1768639963.3866346,
+ "last_modified_at": 1783538612.5687785,
+ "tags": {}
+ },
+ "attestation_type": "system:decision",
"is_compliant": true,
- "attestation_id": "b7a8fb46-f99e-4228-96a2-7cd55355",
- "template_reference_name": "aws-prod-snyk-scan",
- "artifact_fingerprint": "dddd83bf5038e81c228b222f01a0184ce2a8492cb45075b66be5baf5be803ca1",
- "artifact_name": "cyberdojo/dashboard:1159a6f",
+ "attestation_id": "d37cd3aa-3909-4d0d-a8c3-0c623de1",
+ "template_reference_name": "sbom-decision",
+ "artifact_fingerprint": "54f6da185cd0f0ef001a0b33c099565fa736546562e0411f706832e72dca47bb",
+ "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:e475768",
"target_artifact": "dashboard"
},
{
"org_id": "83acb2bc-2c26-48a7-8b87-90dfcce7",
"flow_id": "f60c8f3f-67cd-4496-8e17-ed6fdb1e",
- "trail_id": "7cc627bd-78ff-4051-b7b8-ef46fa15",
- "timestamp": 1713604482.316237,
+ "trail_id": "39e622ec-b847-447b-b7f8-7e9ea745",
+ "timestamp": 1783538656.9102154,
"type": "artifact_attestation_reported",
"git_commit_info": {
- "sha1": "cf3896a8bbd2f74c9e36336b69d8ee64eae1ff25",
- "message": "Run ci workflows with fixed Kosli trail-name",
- "author": "JonJagger ",
+ "sha1": "e4757683b74df7033c95aa544a7824b395c2f8bb",
+ "message": "Update kosli template with provenance facts+decision (#414)",
+ "author": "Jon Jagger ",
"author_username": null,
"branch": "main",
- "timestamp": 1711195944.0,
- "url": "https://github.com/cyber-dojo/live-snyk-scans/commit/cf3896a8bbd2f74c9e36336b69d8ee64eae1ff25",
+ "timestamp": 1783538510.0,
+ "url": "https://github.com/cyber-dojo/dashboard/commit/e4757683b74df7033c95aa544a7824b395c2f8bb",
"parents": null,
"verified": null,
"signature_state": null
},
- "repo_info": null,
- "attestation_type": "snyk",
+ "repo_info": {
+ "inner_id": "4c546fde-c5ee-4a39-b399-8c71d7e1",
+ "org_id": "83acb2bc-2c26-48a7-8b87-90dfcce7",
+ "repo_id": "290597708",
+ "name": "cyber-dojo/dashboard",
+ "url": "https://github.com/cyber-dojo/dashboard",
+ "provider": "github",
+ "description": null,
+ "vcs_instance": null,
+ "namespace_path": null,
+ "additional_info": null,
+ "created_at": 1768639963.3866346,
+ "last_modified_at": 1783538656.7741516,
+ "tags": {}
+ },
+ "attestation_type": "junit",
"is_compliant": true,
- "attestation_id": "a58e5d10-44fa-4918-a732-283d8541",
- "template_reference_name": "aws-beta-snyk-scan",
- "artifact_fingerprint": "dddd83bf5038e81c228b222f01a0184ce2a8492cb45075b66be5baf5be803ca1",
- "artifact_name": "cyberdojo/dashboard:1159a6f",
+ "attestation_id": "084be09c-f101-4a29-985e-ee305d60",
+ "template_reference_name": "unit-test",
+ "artifact_fingerprint": "54f6da185cd0f0ef001a0b33c099565fa736546562e0411f706832e72dca47bb",
+ "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:e475768",
"target_artifact": "dashboard"
},
{
"org_id": "83acb2bc-2c26-48a7-8b87-90dfcce7",
"flow_id": "f60c8f3f-67cd-4496-8e17-ed6fdb1e",
- "trail_id": "7cc627bd-78ff-4051-b7b8-ef46fa15",
- "timestamp": 1714208898.3243415,
+ "trail_id": "39e622ec-b847-447b-b7f8-7e9ea745",
+ "timestamp": 1783538658.411656,
"type": "artifact_attestation_reported",
"git_commit_info": {
- "sha1": "cf3896a8bbd2f74c9e36336b69d8ee64eae1ff25",
- "message": "Run ci workflows with fixed Kosli trail-name",
- "author": "JonJagger ",
+ "sha1": "e4757683b74df7033c95aa544a7824b395c2f8bb",
+ "message": "Update kosli template with provenance facts+decision (#414)",
+ "author": "Jon Jagger ",
"author_username": null,
"branch": "main",
- "timestamp": 1711195944.0,
- "url": "https://github.com/cyber-dojo/live-snyk-scans/commit/cf3896a8bbd2f74c9e36336b69d8ee64eae1ff25",
+ "timestamp": 1783538510.0,
+ "url": "https://github.com/cyber-dojo/dashboard/commit/e4757683b74df7033c95aa544a7824b395c2f8bb",
"parents": null,
"verified": null,
"signature_state": null
},
- "repo_info": null,
- "attestation_type": "snyk",
+ "repo_info": {
+ "inner_id": "4c546fde-c5ee-4a39-b399-8c71d7e1",
+ "org_id": "83acb2bc-2c26-48a7-8b87-90dfcce7",
+ "repo_id": "290597708",
+ "name": "cyber-dojo/dashboard",
+ "url": "https://github.com/cyber-dojo/dashboard",
+ "provider": "github",
+ "description": null,
+ "vcs_instance": null,
+ "namespace_path": null,
+ "additional_info": null,
+ "created_at": 1768639963.3866346,
+ "last_modified_at": 1783538658.4029927,
+ "tags": {}
+ },
+ "attestation_type": "generic",
"is_compliant": true,
- "attestation_id": "020b7686-d2f2-4d30-b890-cbfe56c2",
- "template_reference_name": "aws-prod-snyk-scan",
- "artifact_fingerprint": "dddd83bf5038e81c228b222f01a0184ce2a8492cb45075b66be5baf5be803ca1",
- "artifact_name": "cyberdojo/dashboard:1159a6f",
+ "attestation_id": "ede0b52b-d56e-474f-b04c-03e6be01",
+ "template_reference_name": "unit-test-coverage",
+ "artifact_fingerprint": "54f6da185cd0f0ef001a0b33c099565fa736546562e0411f706832e72dca47bb",
+ "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:e475768",
"target_artifact": "dashboard"
},
{
"org_id": "83acb2bc-2c26-48a7-8b87-90dfcce7",
"flow_id": "f60c8f3f-67cd-4496-8e17-ed6fdb1e",
- "trail_id": "7cc627bd-78ff-4051-b7b8-ef46fa15",
- "timestamp": 1714209298.3530078,
+ "trail_id": "39e622ec-b847-447b-b7f8-7e9ea745",
+ "timestamp": 1783538679.7988548,
"type": "artifact_attestation_reported",
"git_commit_info": {
- "sha1": "cf3896a8bbd2f74c9e36336b69d8ee64eae1ff25",
- "message": "Run ci workflows with fixed Kosli trail-name",
- "author": "JonJagger ",
+ "sha1": "e4757683b74df7033c95aa544a7824b395c2f8bb",
+ "message": "Update kosli template with provenance facts+decision (#414)",
+ "author": "Jon Jagger ",
"author_username": null,
"branch": "main",
- "timestamp": 1711195944.0,
- "url": "https://github.com/cyber-dojo/live-snyk-scans/commit/cf3896a8bbd2f74c9e36336b69d8ee64eae1ff25",
+ "timestamp": 1783538510.0,
+ "url": "https://github.com/cyber-dojo/dashboard/commit/e4757683b74df7033c95aa544a7824b395c2f8bb",
"parents": null,
"verified": null,
"signature_state": null
},
- "repo_info": null,
- "attestation_type": "snyk",
+ "repo_info": {
+ "inner_id": "4c546fde-c5ee-4a39-b399-8c71d7e1",
+ "org_id": "83acb2bc-2c26-48a7-8b87-90dfcce7",
+ "repo_id": "290597708",
+ "name": "cyber-dojo/dashboard",
+ "url": "https://github.com/cyber-dojo/dashboard",
+ "provider": "github",
+ "description": null,
+ "vcs_instance": null,
+ "namespace_path": null,
+ "additional_info": null,
+ "created_at": 1768639963.3866346,
+ "last_modified_at": 1783538679.7007914,
+ "tags": {}
+ },
+ "attestation_type": "system:decision",
"is_compliant": true,
- "attestation_id": "555c60fe-769e-40b9-98df-fc181634",
- "template_reference_name": "aws-beta-snyk-scan",
- "artifact_fingerprint": "dddd83bf5038e81c228b222f01a0184ce2a8492cb45075b66be5baf5be803ca1",
- "artifact_name": "cyberdojo/dashboard:1159a6f",
+ "attestation_id": "2e01c56f-18f9-4e75-8b45-f7d5846e",
+ "template_reference_name": "snyk-container-scan",
+ "artifact_fingerprint": "54f6da185cd0f0ef001a0b33c099565fa736546562e0411f706832e72dca47bb",
+ "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:e475768",
"target_artifact": "dashboard"
},
{
"org_id": "83acb2bc-2c26-48a7-8b87-90dfcce7",
"flow_id": "f60c8f3f-67cd-4496-8e17-ed6fdb1e",
- "trail_id": "7cc627bd-78ff-4051-b7b8-ef46fa15",
- "timestamp": 1714563833.9450486,
- "type": "artifact_stopped_running",
+ "trail_id": "39e622ec-b847-447b-b7f8-7e9ea745",
+ "timestamp": 1783538844.1212204,
+ "type": "artifact_started_running",
"git_commit_info": null,
"repo_info": null,
- "artifact_fingerprint": "dddd83bf5038e81c228b222f01a0184ce2a8492cb45075b66be5baf5be803ca1",
+ "artifact_fingerprint": "54f6da185cd0f0ef001a0b33c099565fa736546562e0411f706832e72dca47bb",
"environment_id": "e44779bb-311d-4bac-9d19-a64a0843",
"environment_name": "aws-beta",
- "snapshot_index": 3510,
+ "snapshot_index": 7637,
+ "replica_number": 1,
"template_reference_name": "dashboard"
},
{
"org_id": "83acb2bc-2c26-48a7-8b87-90dfcce7",
"flow_id": "f60c8f3f-67cd-4496-8e17-ed6fdb1e",
- "trail_id": "7cc627bd-78ff-4051-b7b8-ef46fa15",
- "timestamp": 1714564003.09481,
+ "trail_id": "39e622ec-b847-447b-b7f8-7e9ea745",
+ "timestamp": 1783618198.4632592,
"type": "artifact_started_running",
"git_commit_info": null,
"repo_info": null,
- "artifact_fingerprint": "dddd83bf5038e81c228b222f01a0184ce2a8492cb45075b66be5baf5be803ca1",
- "environment_id": "e44779bb-311d-4bac-9d19-a64a0843",
- "environment_name": "aws-beta",
- "snapshot_index": 3513,
+ "artifact_fingerprint": "54f6da185cd0f0ef001a0b33c099565fa736546562e0411f706832e72dca47bb",
+ "environment_id": "73965c45-e9a1-4bb9-ad01-dc5a526f",
+ "environment_name": "aws-prod",
+ "snapshot_index": 4974,
"replica_number": 1,
"template_reference_name": "dashboard"
},
{
"org_id": "83acb2bc-2c26-48a7-8b87-90dfcce7",
"flow_id": "f60c8f3f-67cd-4496-8e17-ed6fdb1e",
- "trail_id": "7cc627bd-78ff-4051-b7b8-ef46fa15",
- "timestamp": 1714813781.150341,
- "type": "artifact_attestation_reported",
- "git_commit_info": {
- "sha1": "cf3896a8bbd2f74c9e36336b69d8ee64eae1ff25",
- "message": "Run ci workflows with fixed Kosli trail-name",
- "author": "JonJagger ",
- "author_username": null,
- "branch": "main",
- "timestamp": 1711195944.0,
- "url": "https://github.com/cyber-dojo/live-snyk-scans/commit/cf3896a8bbd2f74c9e36336b69d8ee64eae1ff25",
- "parents": null,
- "verified": null,
- "signature_state": null
- },
- "repo_info": null,
- "attestation_type": "snyk",
- "is_compliant": true,
- "attestation_id": "333725e9-e82b-4a22-a81c-721adbae",
- "template_reference_name": "aws-prod-snyk-scan",
- "artifact_fingerprint": "dddd83bf5038e81c228b222f01a0184ce2a8492cb45075b66be5baf5be803ca1",
- "artifact_name": "cyberdojo/dashboard:1159a6f",
- "target_artifact": "dashboard"
- },
- {
- "org_id": "83acb2bc-2c26-48a7-8b87-90dfcce7",
- "flow_id": "f60c8f3f-67cd-4496-8e17-ed6fdb1e",
- "trail_id": "7cc627bd-78ff-4051-b7b8-ef46fa15",
- "timestamp": 1714814179.9960504,
- "type": "artifact_attestation_reported",
- "git_commit_info": {
- "sha1": "cf3896a8bbd2f74c9e36336b69d8ee64eae1ff25",
- "message": "Run ci workflows with fixed Kosli trail-name",
- "author": "JonJagger ",
- "author_username": null,
- "branch": "main",
- "timestamp": 1711195944.0,
- "url": "https://github.com/cyber-dojo/live-snyk-scans/commit/cf3896a8bbd2f74c9e36336b69d8ee64eae1ff25",
- "parents": null,
- "verified": null,
- "signature_state": null
- },
- "repo_info": null,
- "attestation_type": "snyk",
- "is_compliant": true,
- "attestation_id": "60bde45d-4724-4c46-a963-85fe1972",
- "template_reference_name": "aws-beta-snyk-scan",
- "artifact_fingerprint": "dddd83bf5038e81c228b222f01a0184ce2a8492cb45075b66be5baf5be803ca1",
- "artifact_name": "cyberdojo/dashboard:1159a6f",
- "target_artifact": "dashboard"
- },
- {
- "org_id": "83acb2bc-2c26-48a7-8b87-90dfcce7",
- "flow_id": "f60c8f3f-67cd-4496-8e17-ed6fdb1e",
- "trail_id": "7cc627bd-78ff-4051-b7b8-ef46fa15",
- "timestamp": 1714832154.1066768,
+ "trail_id": "39e622ec-b847-447b-b7f8-7e9ea745",
+ "timestamp": 1783660164.0318449,
"type": "artifact_stopped_running",
"git_commit_info": null,
"repo_info": null,
- "artifact_fingerprint": "dddd83bf5038e81c228b222f01a0184ce2a8492cb45075b66be5baf5be803ca1",
+ "artifact_fingerprint": "54f6da185cd0f0ef001a0b33c099565fa736546562e0411f706832e72dca47bb",
"environment_id": "e44779bb-311d-4bac-9d19-a64a0843",
"environment_name": "aws-beta",
- "snapshot_index": 3539,
+ "snapshot_index": 7657,
"template_reference_name": "dashboard"
},
{
"org_id": "83acb2bc-2c26-48a7-8b87-90dfcce7",
"flow_id": "f60c8f3f-67cd-4496-8e17-ed6fdb1e",
- "trail_id": "7cc627bd-78ff-4051-b7b8-ef46fa15",
- "timestamp": 1714832517.3628683,
+ "trail_id": "39e622ec-b847-447b-b7f8-7e9ea745",
+ "timestamp": 1784356018.5146132,
"type": "artifact_stopped_running",
"git_commit_info": null,
"repo_info": null,
- "artifact_fingerprint": "dddd83bf5038e81c228b222f01a0184ce2a8492cb45075b66be5baf5be803ca1",
+ "artifact_fingerprint": "54f6da185cd0f0ef001a0b33c099565fa736546562e0411f706832e72dca47bb",
"environment_id": "73965c45-e9a1-4bb9-ad01-dc5a526f",
"environment_name": "aws-prod",
- "snapshot_index": 2592,
+ "snapshot_index": 5044,
"template_reference_name": "dashboard"
}
],
@@ -791,7 +801,7 @@ kosli get trail dashboard-ci 1159a6f1193150681b8484545150334e89de6c1c --output=j
}
},
"external_urls": null,
- "html_url": "https://app.kosli.com/cyber-dojo/flows/dashboard-ci/trails/1159a6f1193150681b8484545150334e89de6c1c"
+ "html_url": "https://app.kosli.com/cyber-dojo/flows/dashboard-ci/trails/e4757683b74df7033c95aa544a7824b395c2f8bb"
}
```
diff --git a/config/redirects.json b/config/redirects.json
index 4f17a4d..cbe6d8a 100644
--- a/config/redirects.json
+++ b/config/redirects.json
@@ -90,5 +90,25 @@
{
"source": "/administration/managing_organizations",
"destination": "/user/default_organization"
+ },
+ {
+ "source": "/client_reference/kosli_assert_approval",
+ "destination": "/client_reference/overview"
+ },
+ {
+ "source": "/client_reference/kosli_get_approval",
+ "destination": "/client_reference/overview"
+ },
+ {
+ "source": "/client_reference/kosli_list_approvals",
+ "destination": "/client_reference/overview"
+ },
+ {
+ "source": "/client_reference/kosli_report_approval",
+ "destination": "/client_reference/overview"
+ },
+ {
+ "source": "/client_reference/kosli_request_approval",
+ "destination": "/client_reference/overview"
}
]
diff --git a/integrations/kosli_actions.md b/integrations/kosli_actions.md
index 04a18d7..30a6190 100644
--- a/integrations/kosli_actions.md
+++ b/integrations/kosli_actions.md
@@ -62,27 +62,7 @@ Custom webhook notifications empower you to implement automation workflows for "
"commit_url": "https://github.com/cyber-dojo/runner/commit/1ac157003dd6fb9ec764daa47726b7bfed65c312",
"html_url": "https://app.kosli.com/cyber-dojo/runner/719defb995c86ad7c406ad74258fe98b9ebd71dfa80cd786870c967cb6c1f08d",
"api_url": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/runner/fingerprint/719defb995c86ad7c406ad74258fe98b9ebd71dfa80cd786870c967cb6c1f08d",
- "build_url": "https://github.com/cyber-dojo/runner/actions/runs/5891969166",
- "deployments": [
- {
- "number": "44",
- "timestamp": "1692618644",
- "build_url": "https://github.com/cyber-dojo/runner/actions/runs/5891969166",
- "html_url": "https://app.kosli.com/cyber-dojo/flows/runner/deployments/44",
- "api_url": "https://app.kosli.com/api/v2/deployments/cyber-dojo/runner/44"
- }
- ],
- "approvals": [
- {
- "number": "42",
- "timestamp": "1692617329",
- "state": "approved",
- "latest_reviewer": "username",
- "latest_review_comment": "lgtm",
- "html_url": "https://app.kosli.com/cyber-dojo/flows/runner/approvals/42",
- "api_url": "https://app.kosli.com/api/v2/approvals/cyber-dojo/runner/42"
- }
- ]
+ "build_url": "https://github.com/cyber-dojo/runner/actions/runs/5891969166"
}
}
}
diff --git a/scripts/live_docs_modifiers_data.py b/scripts/live_docs_modifiers_data.py
index 30a447d..b747196 100644
--- a/scripts/live_docs_modifiers_data.py
+++ b/scripts/live_docs_modifiers_data.py
@@ -370,42 +370,6 @@ def cis_for(command):
},
},
},
- "kosli report approval": {
- "github": {
- "yaml": {
- "repo": "differ",
- "workflow": ".github/workflows/main.yml",
- "backup": {
- "commit": "30dffd09c3f896a322c65029247abcea3019c43a",
- "line": 358,
- },
- },
- "event": {
- "flow": "",
- "backup": {
- "trail": "",
- "attestation_id": "",
- },
- },
- },
- "gitlab": {
- "yaml": {
- "repo": "creator",
- "workflow": ".gitlab/workflows/main.yml",
- "backup": {
- "commit": "48bdbd3b059d45489e8ae5f9f680f48bc6201ad8",
- "line": 200,
- },
- },
- "event": {
- "flow": "",
- "backup": {
- "trail": "",
- "attestation_id": "",
- },
- },
- },
- },
"kosli evaluate trail": {
"github": {
"yaml": {
diff --git a/scripts/live_docs_queries_data.py b/scripts/live_docs_queries_data.py
index d76db6f..c275120 100644
--- a/scripts/live_docs_queries_data.py
+++ b/scripts/live_docs_queries_data.py
@@ -15,7 +15,7 @@
"kosli list flows --output=json": "flows/cyber-dojo",
"kosli get flow dashboard-ci --output=json": "flows/cyber-dojo/dashboard-ci",
"kosli list trails dashboard-ci --output=json": "trails/cyber-dojo/dashboard-ci",
- "kosli get trail dashboard-ci 1159a6f1193150681b8484545150334e89de6c1c --output=json": "trails/cyber-dojo/dashboard-ci/1159a6f1193150681b8484545150334e89de6c1c",
+ "kosli get trail dashboard-ci e4757683b74df7033c95aa544a7824b395c2f8bb --output=json": "trails/cyber-dojo/dashboard-ci/e4757683b74df7033c95aa544a7824b395c2f8bb",
"kosli get attestation snyk-container-scan --flow=differ-ci --fingerprint=0cbbe3a6e73e733e8ca4b8813738d68e824badad0508ff20842832b5143b48c0 --output=json": "attestations/cyber-dojo/differ-ci/artifact/0cbbe3a6e73e733e8ca4b8813738d68e824badad0508ff20842832b5143b48c0/snyk-container-scan",
"kosli list artifacts --flow=differ-ci --output=json": "artifacts/cyber-dojo/differ-ci",
"kosli get artifact differ-ci@0cbbe3a6e73e733e8ca4b8813738d68e824badad0508ff20842832b5143b48c0 --output=json": "artifacts/cyber-dojo/differ-ci/fingerprint/0cbbe3a6e73e733e8ca4b8813738d68e824badad0508ff20842832b5143b48c0",
@@ -34,7 +34,7 @@
"kosli diff snapshots": "kosli diff snapshots aws-beta aws-prod --output=json",
"kosli list flows": "kosli list flows --output=json",
"kosli get flow": "kosli get flow dashboard-ci --output=json",
- "kosli get trail": "kosli get trail dashboard-ci 1159a6f1193150681b8484545150334e89de6c1c --output=json",
+ "kosli get trail": "kosli get trail dashboard-ci e4757683b74df7033c95aa544a7824b395c2f8bb --output=json",
"kosli get attestation": "kosli get attestation snyk-container-scan --flow=differ-ci --fingerprint=0cbbe3a6e73e733e8ca4b8813738d68e824badad0508ff20842832b5143b48c0 --output=json",
}
diff --git a/scripts/test_update_cli_nav.py b/scripts/test_update_cli_nav.py
index 4eb40cb..f50c959 100644
--- a/scripts/test_update_cli_nav.py
+++ b/scripts/test_update_cli_nav.py
@@ -16,8 +16,8 @@ def test_nav_skips_hidden_and_has_no_deprecated_group():
_write(os.path.join(docs_dir, "overview.md"), 'title: "Overview"')
_write(os.path.join(docs_dir, "output_and_verbosity.md"), 'title: "Output"')
_write(os.path.join(docs_dir, "kosli_attest_generic.md"), 'title: "kosli attest generic"')
- _write(os.path.join(docs_dir, "kosli_report_approval.md"),
- 'title: "kosli report approval"\ntag: "DEPRECATED"')
+ _write(os.path.join(docs_dir, "kosli_report_artifact.md"),
+ 'title: "kosli report artifact"\ntag: "DEPRECATED"')
_write(os.path.join(docs_dir, "kosli_attest_decision.md"),
'title: "kosli attest decision"\ntag: "BETA"\nhidden: true')
@@ -40,7 +40,7 @@ def test_nav_skips_hidden_and_has_no_deprecated_group():
assert "client_reference/kosli_attest_decision" not in all_pages, "hidden page must be skipped"
assert "client_reference/kosli_attest_generic" in all_pages
- assert "client_reference/kosli_report_approval" in all_pages, "deprecated page stays in its family group"
+ assert "client_reference/kosli_report_artifact" in all_pages, "deprecated page stays in its family group"
assert "Deprecated" not in group_names, "separate Deprecated group must be removed"
diff --git a/tests/test_live_docs_modifiers.py b/tests/test_live_docs_modifiers.py
index 893bf37..adc5c10 100644
--- a/tests/test_live_docs_modifiers.py
+++ b/tests/test_live_docs_modifiers.py
@@ -98,7 +98,7 @@ def test_aefa1410(monkeypatch):
yaml_url returns backup-yaml-url when the GitLab HEAD SHA API returns non-200.
"""
ci = "gitlab"
- command = "kosli report approval"
+ command = "kosli assert artifact"
stub_http_get(monkeypatch, [StubResponseStatusCode(400)])
actual_yaml_url = yaml_url(command, ci)
assert actual_yaml_url == live_docs_modifiers_data.backup_yaml_url(command, ci)
@@ -149,7 +149,7 @@ def test_aefa1419(monkeypatch):
event_url returns backup-event-url when the command has no associated Trail event.
"""
ci = "github"
- command = "kosli report approval"
+ command = "kosli fingerprint"
actual_event_url = event_url(command, ci)
assert actual_event_url == live_docs_modifiers_data.backup_event_url(command, ci)
diff --git a/tutorials/cli_and_http_proxy.md b/tutorials/cli_and_http_proxy.md
index 90cc13c..917e4eb 100644
--- a/tutorials/cli_and_http_proxy.md
+++ b/tutorials/cli_and_http_proxy.md
@@ -99,18 +99,6 @@ kosli attest junit \
--org
```
-**Request an approval through the proxy:**
-
-```shell
-kosli request approval my-app:latest \
- --artifact-type docker \
- --flow my-flow \
- --description "Approve release to production" \
- --http-proxy http://localhost:8888 \
- --api-token \
- --org
-```
-
## Persist the proxy configuration
Rather than passing `--http-proxy` on every command, save it to your Kosli config:
diff --git a/understand_kosli/controls.md b/understand_kosli/controls.md
index c61e92f..6a4f42f 100644
--- a/understand_kosli/controls.md
+++ b/understand_kosli/controls.md
@@ -53,7 +53,7 @@ Release controls validate that software is ready for production. While build con
| Code review | Insider threat, Unreviewed changes | Attestation (`pullrequest` type) |
| Quality assurance | Vulnerable software in production | Attestation (`junit` type) |
| Vulnerability scanning | Vulnerable software in production, Supply chain compromise | Attestation (`snyk` type) |
-| Deployment approvals | Unauthorized deployment | Attestation (`approval` type) |
+| Deployment approvals | Unauthorized deployment | Attestation (`generic` or custom type) |
### Runtime
diff --git a/understand_kosli/glossary.md b/understand_kosli/glossary.md
index 8a8d33c..f4d2aa7 100644
--- a/understand_kosli/glossary.md
+++ b/understand_kosli/glossary.md
@@ -11,7 +11,7 @@ A software deliverable (binary, container image, archive) reported to Kosli and
### Attestation
-A record that a specific control or check was performed on an Artifact or Trail, along with its result. Built-in types include `snyk`, `junit`, `sonar`, `pullrequest`, and `approval`. Custom types support jq-based compliance evaluation.
+A record that a specific control or check was performed on an Artifact or Trail, along with its result. Built-in types include `snyk`, `junit`, `sonar`, `pullrequest`, and `generic`. Custom types support jq-based compliance evaluation.
### Audit Package