diff --git a/client_reference/kosli_allow_artifact.md b/client_reference/kosli_allow_artifact.md index d6f43d8..f945051 100644 --- a/client_reference/kosli_allow_artifact.md +++ b/client_reference/kosli_allow_artifact.md @@ -36,7 +36,9 @@ is set), registry credentials are resolved as follows: for public images `--registry-provider` is deprecated and no longer used. - +To specify paths in a directory artifact that should always be excluded from the SHA256 calculation, you can add a `.kosli_ignore` file to the root of the artifact. +Each line should specify a relative path or path glob to be ignored. You can include comments in this file, using `#`. +The `.kosli_ignore` will be treated as part of the artifact like any other file, unless it is explicitly ignored itself. ## Flags | Flag | Type | Description | diff --git a/client_reference/kosli_assert_artifact.md b/client_reference/kosli_assert_artifact.md index 5412b0d..dbaa800 100644 --- a/client_reference/kosli_assert_artifact.md +++ b/client_reference/kosli_assert_artifact.md @@ -33,6 +33,10 @@ to a specific flow. Without `--flow`, all flows containing the artifact Exits with zero code if the artifact has compliant status, non-zero code if non-compliant status. +To specify paths in a directory artifact that should always be excluded from the SHA256 calculation, you can add a `.kosli_ignore` file to the root of the artifact. +Each line should specify a relative path or path glob to be ignored. You can include comments in this file, using `#`. +The `.kosli_ignore` will be treated as part of the artifact like any other file, unless it is explicitly ignored itself. + ## Flags | Flag | Type | Description | | :--- | :--- | :--- | @@ -69,7 +73,7 @@ non-zero code if non-compliant status. View an example of the `kosli assert artifact` command in GitHub. - In [this YAML file](https://github.com/cyber-dojo/differ/blob/a88b337310cef9b1ee259d18db3d43fed5dd9e03/.github/workflows/main.yml#L271) + In [this YAML file](https://github.com/cyber-dojo/differ/blob/dbf0c0f13b6df5bc50b4616cc0f7c1c22bb91e24/.github/workflows/main.yml#L271) View an example of the `kosli assert artifact` command in GitLab. diff --git a/client_reference/kosli_attest_custom.md b/client_reference/kosli_attest_custom.md index e664526..2629f40 100644 --- a/client_reference/kosli_attest_custom.md +++ b/client_reference/kosli_attest_custom.md @@ -19,6 +19,10 @@ The attestation can be bound to an *artifact* in two ways: - using the artifact's SHA256 fingerprint which is calculated (based on the `--artifact-type` flag and the artifact name/path argument) or can be provided directly (with the `--fingerprint` flag). - using the artifact's name in the flow yaml template and the git commit from which the artifact is/will be created. Useful when reporting an attestation before creating/reporting the artifact. +To specify paths in a directory artifact that should always be excluded from the SHA256 calculation, you can add a `.kosli_ignore` file to the root of the artifact. +Each line should specify a relative path or path glob to be ignored. You can include comments in this file, using `#`. +The `.kosli_ignore` will be treated as part of the artifact like any other file, unless it is explicitly ignored itself. + You can optionally associate the attestation to a git commit using `--commit` (requires access to a git repo). You can optionally redact some of the git commit data sent to Kosli using `--redact-commit-info`. Note that when the attestation is reported for an artifact that does not yet exist in Kosli, `--commit` is required to facilitate diff --git a/client_reference/kosli_attest_decision.md b/client_reference/kosli_attest_decision.md index 3292c79..7277301 100644 --- a/client_reference/kosli_attest_decision.md +++ b/client_reference/kosli_attest_decision.md @@ -25,6 +25,10 @@ The attestation can be bound to an *artifact* in two ways: - using the artifact's SHA256 fingerprint which is calculated (based on the `--artifact-type` flag and the artifact name/path argument) or can be provided directly (with the `--fingerprint` flag). - using the artifact's name in the flow yaml template and the git commit from which the artifact is/will be created. Useful when reporting an attestation before creating/reporting the artifact. +To specify paths in a directory artifact that should always be excluded from the SHA256 calculation, you can add a `.kosli_ignore` file to the root of the artifact. +Each line should specify a relative path or path glob to be ignored. You can include comments in this file, using `#`. +The `.kosli_ignore` will be treated as part of the artifact like any other file, unless it is explicitly ignored itself. + You can optionally associate the attestation to a git commit using `--commit` (requires access to a git repo). You can optionally redact some of the git commit data sent to Kosli using `--redact-commit-info`. Note that when the attestation is reported for an artifact that does not yet exist in Kosli, `--commit` is required to facilitate diff --git a/client_reference/kosli_attest_generic.md b/client_reference/kosli_attest_generic.md index 575af45..68af7ef 100644 --- a/client_reference/kosli_attest_generic.md +++ b/client_reference/kosli_attest_generic.md @@ -16,6 +16,10 @@ The attestation can be bound to an *artifact* in two ways: - using the artifact's SHA256 fingerprint which is calculated (based on the `--artifact-type` flag and the artifact name/path argument) or can be provided directly (with the `--fingerprint` flag). - using the artifact's name in the flow yaml template and the git commit from which the artifact is/will be created. Useful when reporting an attestation before creating/reporting the artifact. +To specify paths in a directory artifact that should always be excluded from the SHA256 calculation, you can add a `.kosli_ignore` file to the root of the artifact. +Each line should specify a relative path or path glob to be ignored. You can include comments in this file, using `#`. +The `.kosli_ignore` will be treated as part of the artifact like any other file, unless it is explicitly ignored itself. + You can optionally associate the attestation to a git commit using `--commit` (requires access to a git repo). You can optionally redact some of the git commit data sent to Kosli using `--redact-commit-info`. Note that when the attestation is reported for an artifact that does not yet exist in Kosli, `--commit` is required to facilitate diff --git a/client_reference/kosli_attest_jira.md b/client_reference/kosli_attest_jira.md index 7fd4292..31a8e30 100644 --- a/client_reference/kosli_attest_jira.md +++ b/client_reference/kosli_attest_jira.md @@ -43,7 +43,9 @@ The found issue references will be checked against Jira to confirm their existen The attestation is reported in all cases, and its compliance status depends on referencing existing Jira issues. If you have wrong Jira credentials or wrong Jira-base-url it will be reported as non existing Jira issue. -This is because Jira returns same 404 error code in all cases. +This is because Jira returns same 404 error code in all cases. When Jira's response shows that it did not +accept the credentials, a warning naming them is printed and the issue is reported as not confirmed rather +than silently as missing; run with `--debug` to see the status Jira returned for each issue. The `--jira-issue-fields` can be used to include fields from the jira issue. By default no fields are included. `*all` will give all fields. Using `--jira-issue-fields "*all" --dry-run` will give you @@ -56,6 +58,10 @@ The attestation can be bound to an *artifact* in two ways: - using the artifact's SHA256 fingerprint which is calculated (based on the `--artifact-type` flag and the artifact name/path argument) or can be provided directly (with the `--fingerprint` flag). - using the artifact's name in the flow yaml template and the git commit from which the artifact is/will be created. Useful when reporting an attestation before creating/reporting the artifact. +To specify paths in a directory artifact that should always be excluded from the SHA256 calculation, you can add a `.kosli_ignore` file to the root of the artifact. +Each line should specify a relative path or path glob to be ignored. You can include comments in this file, using `#`. +The `.kosli_ignore` will be treated as part of the artifact like any other file, unless it is explicitly ignored itself. + You can optionally associate the attestation to a git commit using `--commit` (requires access to a git repo). You can optionally redact some of the git commit data sent to Kosli using `--redact-commit-info`. Note that when the attestation is reported for an artifact that does not yet exist in Kosli, `--commit` is required to facilitate @@ -85,7 +91,7 @@ In other CI systems, set them explicitly to capture repository metadata. | `--jira-base-url` | string | The base url for the jira project, e.g. `https://kosli.atlassian.net` | | `--jira-issue-fields` | string | [optional] The comma separated list of fields to include from the Jira issue. Default no fields are included. '*all' will give all fields. | | `--jira-pat` | string | Jira personal access token (for self-hosted Jira) | -| `--jira-project-key` | strings | [optional] Jira project key to match against. Can be repeated. Defaults to matching any jira project key. | +| `--jira-project-key` | strings | [optional] Jira project key to match against. Can be repeated, or given as a comma-separated list. Defaults to matching any jira project key. | | `--jira-secondary-source` | string | [optional] An optional string to search for Jira ticket reference, e.g. '`--jira-secondary-source` $\{\{ github.head_ref \}\}' | | `--jira-username` | string | Jira username (for Jira Cloud) | | `-n`, `--name` | string | The name of the attestation as declared in the flow or trail yaml template. | diff --git a/client_reference/kosli_attest_junit.md b/client_reference/kosli_attest_junit.md index 50525fc..09d8688 100644 --- a/client_reference/kosli_attest_junit.md +++ b/client_reference/kosli_attest_junit.md @@ -20,6 +20,10 @@ The attestation can be bound to an *artifact* in two ways: - using the artifact's SHA256 fingerprint which is calculated (based on the `--artifact-type` flag and the artifact name/path argument) or can be provided directly (with the `--fingerprint` flag). - using the artifact's name in the flow yaml template and the git commit from which the artifact is/will be created. Useful when reporting an attestation before creating/reporting the artifact. +To specify paths in a directory artifact that should always be excluded from the SHA256 calculation, you can add a `.kosli_ignore` file to the root of the artifact. +Each line should specify a relative path or path glob to be ignored. You can include comments in this file, using `#`. +The `.kosli_ignore` will be treated as part of the artifact like any other file, unless it is explicitly ignored itself. + You can optionally associate the attestation to a git commit using `--commit` (requires access to a git repo). You can optionally redact some of the git commit data sent to Kosli using `--redact-commit-info`. Note that when the attestation is reported for an artifact that does not yet exist in Kosli, `--commit` is required to facilitate diff --git a/client_reference/kosli_attest_pullrequest_azure.md b/client_reference/kosli_attest_pullrequest_azure.md index b23e71d..0bf0628 100644 --- a/client_reference/kosli_attest_pullrequest_azure.md +++ b/client_reference/kosli_attest_pullrequest_azure.md @@ -18,6 +18,10 @@ The attestation can be bound to an *artifact* in two ways: - using the artifact's SHA256 fingerprint which is calculated (based on the `--artifact-type` flag and the artifact name/path argument) or can be provided directly (with the `--fingerprint` flag). - using the artifact's name in the flow yaml template and the git commit from which the artifact is/will be created. Useful when reporting an attestation before creating/reporting the artifact. +To specify paths in a directory artifact that should always be excluded from the SHA256 calculation, you can add a `.kosli_ignore` file to the root of the artifact. +Each line should specify a relative path or path glob to be ignored. You can include comments in this file, using `#`. +The `.kosli_ignore` will be treated as part of the artifact like any other file, unless it is explicitly ignored itself. + ## Flags | Flag | Type | Description | | :--- | :--- | :--- | diff --git a/client_reference/kosli_attest_pullrequest_bitbucket.md b/client_reference/kosli_attest_pullrequest_bitbucket.md index d9f4042..fcc7b0a 100644 --- a/client_reference/kosli_attest_pullrequest_bitbucket.md +++ b/client_reference/kosli_attest_pullrequest_bitbucket.md @@ -20,6 +20,10 @@ The attestation can be bound to an *artifact* in two ways: - using the artifact's SHA256 fingerprint which is calculated (based on the `--artifact-type` flag and the artifact name/path argument) or can be provided directly (with the `--fingerprint` flag). - using the artifact's name in the flow yaml template and the git commit from which the artifact is/will be created. Useful when reporting an attestation before creating/reporting the artifact. +To specify paths in a directory artifact that should always be excluded from the SHA256 calculation, you can add a `.kosli_ignore` file to the root of the artifact. +Each line should specify a relative path or path glob to be ignored. You can include comments in this file, using `#`. +The `.kosli_ignore` will be treated as part of the artifact like any other file, unless it is explicitly ignored itself. + ## Flags | Flag | Type | Description | | :--- | :--- | :--- | diff --git a/client_reference/kosli_attest_pullrequest_github.md b/client_reference/kosli_attest_pullrequest_github.md index ffbc6b0..edbbe73 100644 --- a/client_reference/kosli_attest_pullrequest_github.md +++ b/client_reference/kosli_attest_pullrequest_github.md @@ -18,6 +18,10 @@ The attestation can be bound to an *artifact* in two ways: - using the artifact's SHA256 fingerprint which is calculated (based on the `--artifact-type` flag and the artifact name/path argument) or can be provided directly (with the `--fingerprint` flag). - using the artifact's name in the flow yaml template and the git commit from which the artifact is/will be created. Useful when reporting an attestation before creating/reporting the artifact. +To specify paths in a directory artifact that should always be excluded from the SHA256 calculation, you can add a `.kosli_ignore` file to the root of the artifact. +Each line should specify a relative path or path glob to be ignored. You can include comments in this file, using `#`. +The `.kosli_ignore` will be treated as part of the artifact like any other file, unless it is explicitly ignored itself. + ## Flags | Flag | Type | Description | | :--- | :--- | :--- | diff --git a/client_reference/kosli_attest_pullrequest_gitlab.md b/client_reference/kosli_attest_pullrequest_gitlab.md index a05f2a4..a486cbd 100644 --- a/client_reference/kosli_attest_pullrequest_gitlab.md +++ b/client_reference/kosli_attest_pullrequest_gitlab.md @@ -18,6 +18,10 @@ The attestation can be bound to an *artifact* in two ways: - using the artifact's SHA256 fingerprint which is calculated (based on the `--artifact-type` flag and the artifact name/path argument) or can be provided directly (with the `--fingerprint` flag). - using the artifact's name in the flow yaml template and the git commit from which the artifact is/will be created. Useful when reporting an attestation before creating/reporting the artifact. +To specify paths in a directory artifact that should always be excluded from the SHA256 calculation, you can add a `.kosli_ignore` file to the root of the artifact. +Each line should specify a relative path or path glob to be ignored. You can include comments in this file, using `#`. +The `.kosli_ignore` will be treated as part of the artifact like any other file, unless it is explicitly ignored itself. + ## Flags | Flag | Type | Description | | :--- | :--- | :--- | diff --git a/client_reference/kosli_attest_snyk.md b/client_reference/kosli_attest_snyk.md index 1c8ef64..d04247e 100644 --- a/client_reference/kosli_attest_snyk.md +++ b/client_reference/kosli_attest_snyk.md @@ -24,6 +24,10 @@ The attestation can be bound to an *artifact* in two ways: - using the artifact's SHA256 fingerprint which is calculated (based on the `--artifact-type` flag and the artifact name/path argument) or can be provided directly (with the `--fingerprint` flag). - using the artifact's name in the flow yaml template and the git commit from which the artifact is/will be created. Useful when reporting an attestation before creating/reporting the artifact. +To specify paths in a directory artifact that should always be excluded from the SHA256 calculation, you can add a `.kosli_ignore` file to the root of the artifact. +Each line should specify a relative path or path glob to be ignored. You can include comments in this file, using `#`. +The `.kosli_ignore` will be treated as part of the artifact like any other file, unless it is explicitly ignored itself. + You can optionally associate the attestation to a git commit using `--commit` (requires access to a git repo). You can optionally redact some of the git commit data sent to Kosli using `--redact-commit-info`. Note that when the attestation is reported for an artifact that does not yet exist in Kosli, `--commit` is required to facilitate diff --git a/client_reference/kosli_attest_sonar.md b/client_reference/kosli_attest_sonar.md index 1c88cbe..f0ad1a2 100644 --- a/client_reference/kosli_attest_sonar.md +++ b/client_reference/kosli_attest_sonar.md @@ -26,6 +26,8 @@ exponential backoff between retries. Once the results are available they are att 2. Providing the Sonar project key and either the revision or the pull-request ID of the scan (plus the SonarQube server URL if relevant). For branch scans: if running the Kosli CLI in some CI/CD pipeline, the revision is defaulted to the commit SHA. If you are running the command locally, or have overriden the revision in SonarQube via parameters to the Sonar scanner, you can provide the correct revision using the `--sonar-revision` flag. +If the scan ran on a branch other than the project's main branch in SonarQube, also provide the branch name using the `--sonar-branch` flag: +SonarQube searches only the main branch unless it is told otherwise, so without it the scan cannot be found. For pull request scans: provide the pull-request ID using the `--pull-request` flag instead of the revision. Kosli then finds the scan results for the specified project key and revision or pull-request ID. @@ -42,6 +44,10 @@ The attestation can be bound to an *artifact* in two ways: - using the artifact's SHA256 fingerprint which is calculated (based on the `--artifact-type` flag and the artifact name/path argument) or can be provided directly (with the `--fingerprint` flag). - using the artifact's name in the flow yaml template and the git commit from which the artifact is/will be created. Useful when reporting an attestation before creating/reporting the artifact. +To specify paths in a directory artifact that should always be excluded from the SHA256 calculation, you can add a `.kosli_ignore` file to the root of the artifact. +Each line should specify a relative path or path glob to be ignored. You can include comments in this file, using `#`. +The `.kosli_ignore` will be treated as part of the artifact like any other file, unless it is explicitly ignored itself. + ## Flags | Flag | Type | Description | | :--- | :--- | :--- | @@ -60,7 +66,7 @@ The attestation can be bound to an *artifact* in two ways: | `--max-wait` | int | [optional] Allow the command to wait and retry fetching the scan results from SonarQube, up to the maximum number of seconds provided, with exponential backoff. Useful when using SonarQube's metadata file to retrieve and attest scans that take a long time to process . Defaults to 30 seconds. (default 30) | | `-n`, `--name` | string | The name of the attestation as declared in the flow or trail yaml template. | | `-o`, `--origin-url` | string | [optional] The url pointing to where the attestation came from or is related. (defaulted to the CI url in some CIs: [docs](/integrations/ci_cd/#defaulted-kosli-command-flags-from-ci-variables) ). | -| `--pull-request` | string | [conditional] The ID of the pull-request. Only required if you want to use the project key/pull-request to get the scan results rather than using Sonar's metadata file. Cannot be used with `--sonar-revision`. | +| `--pull-request` | string | [conditional] The ID of the pull-request. Only required if you want to use the project key/pull-request to get the scan results rather than using Sonar's metadata file. Cannot be used with `--sonar-revision` or `--sonar-branch`. | | `--redact-commit-info` | strings | [optional] The list of commit info to be redacted before sending to Kosli. Allowed values are one or more of [author, message, branch]. | | `--registry-password` | string | [conditional] The container registry password or access token. Only required if you want to read container image SHA256 digest from a remote container registry and it is not already accessible via Docker/Podman auth files or a credential helper. | | `--registry-provider` | string | [deprecated] The docker registry provider or url. Only required if you want to read docker image SHA256 digest from a remote docker registry. (DEPRECATED: no longer used) | @@ -71,6 +77,7 @@ The attestation can be bound to an *artifact* in two ways: | `--repo-url` | string | [conditional] The URL of the repository. Must be a valid URL. All three of `--repo-id`, `--repo-url` and `--repository` must be set to record repository information (defaulted in some CIs: [docs](/integrations/ci_cd) ). | | `--repository` | string | [conditional] The name of the repository (e.g. owner/repo-name). All three of `--repo-id`, `--repo-url` and `--repository` must be set to record repository information (defaulted in some CIs: [docs](/integrations/ci_cd) ). | | `--sonar-api-token` | string | [required] SonarQube API token. | +| `--sonar-branch` | string | [conditional] The name of the branch the SonarQube scan ran on. Only required if you are using the project key/revision to get the scan results and the scan ran on a branch other than the project's main branch in SonarQube. Cannot be used with `--pull-request`. | | `--sonar-ce-task-url` | string | [conditional] The URL of the SonarQube CE task. Can be used instead of `--sonar-working-dir` when the report-task.txt file is not accessible, e.g. due to container isolation in CI/CD pipelines. | | `--sonar-project-key` | string | [conditional] The project key of the SonarQube project. Only required if you want to use the project key/revision/pull-request to get the scan results rather than using Sonar's metadata file. | | `--sonar-revision` | string | [conditional] The revision of the SonarQube project. Only required if you want to use the project key/revision to get the scan results rather than using Sonar's metadata file and you have overridden the default revision, or you aren't using a CI. Defaults to the value of the git commit flag. Cannot be used with `--pull-request`. | @@ -146,6 +153,17 @@ kosli attest sonar --sonar-project-key yourSonarProjectKey --sonar-revision yourSonarRevision +``` + + +```shell +kosli attest sonar + --name yourAttestationName + --sonar-api-token yourSonarAPIToken + --sonar-project-key yourSonarProjectKey + --sonar-revision yourSonarRevision + --sonar-branch yourSonarBranchName + ``` diff --git a/client_reference/kosli_begin_trail.md b/client_reference/kosli_begin_trail.md index 40604df..99d54e4 100644 --- a/client_reference/kosli_begin_trail.md +++ b/client_reference/kosli_begin_trail.md @@ -60,7 +60,7 @@ In other CI systems, set them explicitly to capture repository metadata. View an example of the `kosli begin trail` command in GitHub. - In [this YAML file](https://github.com/cyber-dojo/runner/blob/85cac880cb74678426eb2ed4dbf2538995404c5c/.github/workflows/main.yml#L78), which created [this Kosli Event](https://app.kosli.com/cyber-dojo/flows/runner-ci/trails/85cac880cb74678426eb2ed4dbf2538995404c5c?attestation_id=1). + In [this YAML file](https://github.com/cyber-dojo/runner/blob/76610271f641f1a5634465e97f880dfe019e515e/.github/workflows/main.yml#L78), which created [this Kosli Event](https://app.kosli.com/cyber-dojo/flows/runner-ci/trails/76610271f641f1a5634465e97f880dfe019e515e?attestation_id=1). View an example of the `kosli begin trail` command in GitLab. diff --git a/client_reference/kosli_create_attestation-type.md b/client_reference/kosli_create_attestation-type.md index 17ccefd..7ee7e79 100644 --- a/client_reference/kosli_create_attestation-type.md +++ b/client_reference/kosli_create_attestation-type.md @@ -14,28 +14,28 @@ You can specify attestation type parameters in flags. `TYPE-NAME` must start with a letter or number, and only contain letters, numbers, `.`, `-`, `_`, and `~`. -`--schema` is a path to a file containing a JSON schema which will be used to validate attestations made using this type. -The schema is used to specify the structure of the attestation data, e.g. any fields that are required or +`--schema` is a path to a file containing a JSON schema which will be used to validate attestations made using this type. +The schema is used to specify the structure of the attestation data, e.g. any fields that are required or the expected type of the data. -See an example schema file +See an example schema file [here](https://github.com/cyber-dojo/kosli-attestation-types/blob/f9130c58d3a8151b0b0e7c5db284e4380eb2d2cf/metrics-coverage.schema.json). -`--jq` defines an evaluation rule, given in jq-format, for this attestation type. The flag can be repeated in order to add additional rules. -These rules specify acceptable values for attestation data, e.g. `.age >= 21` or `.failing_tests == 0`. -When a custom attestation is reported, the provided data is evaluated according to the rules defined in its attestation-type. +`--jq` defines an evaluation rule, given in `jq`-format, for this attestation type. The flag can be repeated in order to add additional rules. +These rules specify acceptable values for attestation data, e.g. `.age >= 21` or `.failing_tests == 0`. +When a custom attestation is reported, the provided data is evaluated according to the rules defined in its attestation-type. All rules must return `true` for the evaluation to pass and the attestation to be determined compliant. `--summary` defines one entry of the summary shown for attestations of this type, given as -`'NAME=EXPRESSION'` where the expression is a jq expression evaluated against the attestation data. +`'NAME=EXPRESSION'` where the expression is a `jq` expression evaluated against the attestation data. The flag can be repeated to add further entries, which are displayed in the order given, e.g. `--summary "Critical=.critical_count" --summary "Tool=.scanner.name"`. -Each value is split on its first `=` only, so jq expressions containing `==` are unaffected. +Each value is split on its first `=` only, so `jq` expressions containing `==` are unaffected. `--summary-json` is an alternative to `--summary` for summaries that are easier to express as JSON, given as a JSON array of `\{"name": ..., "expression": ...\}` entries, e.g. `'[\{"name":"Critical","expression":".critical_count"\}]'`. The two summary flags cannot be combined. -Attestation types created without a summary fall back to the jq evaluation rules checklist. +Attestation types created without a summary fall back to the `jq` evaluation rules checklist. ## Flags @@ -84,7 +84,7 @@ kosli create attestation-type customTypeName ``` - + ```shell kosli create attestation-type customTypeName --description "Attest that a person meets the age requirements." diff --git a/client_reference/kosli_create_flow.md b/client_reference/kosli_create_flow.md index 8944360..c3713fe 100644 --- a/client_reference/kosli_create_flow.md +++ b/client_reference/kosli_create_flow.md @@ -46,7 +46,7 @@ You can specify flow parameters in flags. View an example of the `kosli create flow` command in GitHub. - In [this YAML file](https://github.com/cyber-dojo/runner/blob/85cac880cb74678426eb2ed4dbf2538995404c5c/.github/workflows/main.yml#L62) + In [this YAML file](https://github.com/cyber-dojo/runner/blob/76610271f641f1a5634465e97f880dfe019e515e/.github/workflows/main.yml#L62) View an example of the `kosli create flow` command in GitLab. diff --git a/client_reference/kosli_diff_snapshots.md b/client_reference/kosli_diff_snapshots.md index 4e4e03b..6f2f73a 100644 --- a/client_reference/kosli_diff_snapshots.md +++ b/client_reference/kosli_diff_snapshots.md @@ -66,92 +66,100 @@ kosli diff snapshots aws-beta aws-prod --output=json ```json { "snappish1": { - "snapshot_id": "aws-beta#8099", + "snapshot_id": "aws-beta#8212", "artifacts": [ { - "fingerprint": "0f760ded7dc5144ede96da884c408f9b50bd2a239aa51137adb6c8a8d7bc7f36", - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:6f922fe@sha256:0f760ded7dc5144ede96da884c408f9b50bd2a239aa51137adb6c8a8d7bc7f36", - "most_recent_timestamp": 1786438033, - "flow": "nginx-ci", - "commit_url": "https://github.com/cyber-dojo/nginx/commit/6f922fefbf719bad93fe4ea6f3b232d8cf3ed36d", + "fingerprint": "2827829889b4acc994c3ffbfca250346d5f1f0ddf21847bcbe4864ae484ebe4f", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:ff9f292@sha256:2827829889b4acc994c3ffbfca250346d5f1f0ddf21847bcbe4864ae484ebe4f", + "most_recent_timestamp": 1787842273, + "flow": "dashboard-ci", + "commit_url": "https://github.com/cyber-dojo/dashboard/commit/ff9f292e809801d35246183988b7812826bc2760", "instance_count": 1 }, { - "fingerprint": "38af9d053f174ae9068d84158c2a36dca16bf3c8c5d64b77608462aec6cdd714", - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:670a1f1@sha256:38af9d053f174ae9068d84158c2a36dca16bf3c8c5d64b77608462aec6cdd714", - "most_recent_timestamp": 1787073596, - "flow": "web-ci", - "commit_url": "https://github.com/cyber-dojo/web/commit/670a1f1d8ab52c1fb5823bb2e66b77c45e71aaa5", - "instance_count": 3 + "fingerprint": "34fd30b5a876821ef7047c3e3af23158705ec2ea1f63fa784854639ccd807b09", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/custom-start-points:b12a5c9@sha256:34fd30b5a876821ef7047c3e3af23158705ec2ea1f63fa784854639ccd807b09", + "most_recent_timestamp": 1787838843, + "flow": "custom-start-points-ci", + "commit_url": "https://github.com/cyber-dojo/custom-start-points/commit/b12a5c9b17023462d13e81381a69c7ef05f84dc2", + "instance_count": 1 }, { - "fingerprint": "45919ac3395a18573e5ca203e750ff2e5f0fb6239d6dd5a052075b3efb7ad7ef", - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:9b0d9fc@sha256:45919ac3395a18573e5ca203e750ff2e5f0fb6239d6dd5a052075b3efb7ad7ef", - "most_recent_timestamp": 1786438417, - "flow": "runner-ci", - "commit_url": "https://github.com/cyber-dojo/runner/commit/9b0d9fc145d30c63dc9f9648c892a52d6e96d602", + "fingerprint": "36ad0020c6cd8716c1463808a185ca65379ec8151a9619d72549ee597d86accc", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:cbe481c@sha256:36ad0020c6cd8716c1463808a185ca65379ec8151a9619d72549ee597d86accc", + "most_recent_timestamp": 1787905359, + "flow": "web-ci", + "commit_url": "https://github.com/cyber-dojo/web/commit/cbe481c4b842f897e4e9e411cd78461a3a12a334", "instance_count": 3 }, { - "fingerprint": "627562d3198ac9a5d782da3db07725d48500788c2c6d86c33a5f5e77c7ec148a", - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:074353d@sha256:627562d3198ac9a5d782da3db07725d48500788c2c6d86c33a5f5e77c7ec148a", - "most_recent_timestamp": 1786437210, + "fingerprint": "41aab2a45d074e91162ffde031d094118f0be3bdffa4d769ea24b415f5e8a9d6", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:f22a30e@sha256:41aab2a45d074e91162ffde031d094118f0be3bdffa4d769ea24b415f5e8a9d6", + "most_recent_timestamp": 1787838873, "flow": "exercises-start-points-ci", - "commit_url": "https://github.com/cyber-dojo/exercises-start-points/commit/074353df2a7ea1ea386a78d16300ebac1dbe94fd", + "commit_url": "https://github.com/cyber-dojo/exercises-start-points/commit/f22a30ed7659b05a88c22e9f22dc2388f2deb8c8", "instance_count": 1 }, { - "fingerprint": "8e7fb4cfe9953032bde5488c656ad255e49adfdd5499df2dd795dd0d984842cc", - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/languages-start-points:c893dbc@sha256:8e7fb4cfe9953032bde5488c656ad255e49adfdd5499df2dd795dd0d984842cc", - "most_recent_timestamp": 1787118467, - "flow": "languages-start-points-ci", - "commit_url": "https://github.com/cyber-dojo/languages-start-points/commit/c893dbc197ef1328b5b0bc5aacb923c9beaf9e7b", + "fingerprint": "42f74d552d375d0e991d8d39abf07432a1b449ae5bc8ae5f71ed319de5d34a5d", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:9f52d31@sha256:42f74d552d375d0e991d8d39abf07432a1b449ae5bc8ae5f71ed319de5d34a5d", + "most_recent_timestamp": 1787293862, + "flow": "nginx-ci", + "commit_url": "https://github.com/cyber-dojo/nginx/commit/9f52d31fe193e246154b5c7c51d0b0cd9e2072c8", "instance_count": 1 }, { - "fingerprint": "94e3568d1b87a42b836bafdf9f1a197e46f72b6a880477a19068c0d75b978e37", - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:0e7e5c9@sha256:94e3568d1b87a42b836bafdf9f1a197e46f72b6a880477a19068c0d75b978e37", - "most_recent_timestamp": 1786438497, - "flow": "dashboard-ci", - "commit_url": "https://github.com/cyber-dojo/dashboard/commit/0e7e5c906b238c47901420b1fc471bbfb7dd8d32", - "instance_count": 1 + "fingerprint": "596f149446bad7e8b1dfef6dbf4d036457339b984b22a05082c75ef2bde3e236", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:7f0fb7b@sha256:596f149446bad7e8b1dfef6dbf4d036457339b984b22a05082c75ef2bde3e236", + "most_recent_timestamp": 1787895830, + "flow": "runner-ci", + "commit_url": "https://github.com/cyber-dojo/runner/commit/7f0fb7b049c2b9ceea5915b4fe780ca4090a289c", + "instance_count": 3 }, { - "fingerprint": "a430dad3077449b1726c4c733d01e03c3e545c7db10b8c4e8b6f619aa823b949", - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/creator:60b9a56@sha256:a430dad3077449b1726c4c733d01e03c3e545c7db10b8c4e8b6f619aa823b949", - "most_recent_timestamp": 1786438485, - "flow": "creator-ci", - "commit_url": "https://github.com/cyber-dojo/creator/commit/60b9a5602ea946503b421ab54bde8006b8499780", + "fingerprint": "6440151a9419255a47d8f9fb0e610f5af3f555ad68fa84a50f950abae8b098fd", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/spooler:90c8d98@sha256:6440151a9419255a47d8f9fb0e610f5af3f555ad68fa84a50f950abae8b098fd", + "most_recent_timestamp": 1787903592, + "flow": "spooler-ci", + "commit_url": "https://github.com/cyber-dojo/spooler/commit/90c8d982d2ff8c4950f7aca4d0a1e9d29ac74e1f", "instance_count": 1 }, { - "fingerprint": "b59c2c9c63a3596a8edfa2e99defcddec0aa03bb7a0c2a4842ba2972a3bfb3f3", - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:9b0aede@sha256:b59c2c9c63a3596a8edfa2e99defcddec0aa03bb7a0c2a4842ba2972a3bfb3f3", - "most_recent_timestamp": 1786438381, + "fingerprint": "71396a2c412c74a2d4c1760bfbb031f8dfc6e0e3883ebc31b4435b84b650f93b", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:fa3e5bd@sha256:71396a2c412c74a2d4c1760bfbb031f8dfc6e0e3883ebc31b4435b84b650f93b", + "most_recent_timestamp": 1787838882, "flow": "saver-ci", - "commit_url": "https://github.com/cyber-dojo/saver/commit/9b0aedec956238c8bb8bee21a881b378041056b4", + "commit_url": "https://github.com/cyber-dojo/saver/commit/fa3e5bd70ef8934b073a8b77c2f99e6c22636156", "instance_count": 1 }, { - "fingerprint": "c1f2c03cea7a8b0f7f9c126881fbb1f9dd22120c77cf66981e9985ef3ce73f31", - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/differ:a88b337@sha256:c1f2c03cea7a8b0f7f9c126881fbb1f9dd22120c77cf66981e9985ef3ce73f31", - "most_recent_timestamp": 1786632554, - "flow": "differ-ci", - "commit_url": "https://github.com/cyber-dojo/differ/commit/a88b337310cef9b1ee259d18db3d43fed5dd9e03", + "fingerprint": "97ff43a94b80b95ac2ac96c0fb5968537211d4953e280c96cf37f9c6b0ff0fb4", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/languages-start-points:85d6c9c@sha256:97ff43a94b80b95ac2ac96c0fb5968537211d4953e280c96cf37f9c6b0ff0fb4", + "most_recent_timestamp": 1787838873, + "flow": "languages-start-points-ci", + "commit_url": "https://github.com/cyber-dojo/languages-start-points/commit/85d6c9c55ce1ed15a152200ce5002e06ba5ea71b", "instance_count": 1 }, { - "fingerprint": "cb082e897305969d260656d0072538eb16f4db0b2e619a831f94bd36a432287a", - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/custom-start-points:ec2a405@sha256:cb082e897305969d260656d0072538eb16f4db0b2e619a831f94bd36a432287a", - "most_recent_timestamp": 1786437703, - "flow": "custom-start-points-ci", - "commit_url": "https://github.com/cyber-dojo/custom-start-points/commit/ec2a40576cbde05e9330bf03de403c3c04a63704", + "fingerprint": "c48710e3304e24406c03381a31d01f520ab2f60846aa0b57adbda0a776ebc1ab", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/creator:d64d2b1@sha256:c48710e3304e24406c03381a31d01f520ab2f60846aa0b57adbda0a776ebc1ab", + "most_recent_timestamp": 1787835781, + "flow": "creator-ci", + "commit_url": "https://github.com/cyber-dojo/creator/commit/d64d2b11879179255f11dc991e81fbaf4a040264", + "instance_count": 1 + }, + { + "fingerprint": "c6f812210fa473dd413a730c93e20b3f4c00fde358a67623f1c01916858c8046", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/differ:dbf0c0f@sha256:c6f812210fa473dd413a730c93e20b3f4c00fde358a67623f1c01916858c8046", + "most_recent_timestamp": 1787837228, + "flow": "differ-ci", + "commit_url": "https://github.com/cyber-dojo/differ/commit/dbf0c0f13b6df5bc50b4616cc0f7c1c22bb91e24", "instance_count": 1 } ] }, "snappish2": { - "snapshot_id": "aws-prod#5253", + "snapshot_id": "aws-prod#5285", "artifacts": [ { "fingerprint": "1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", @@ -226,20 +234,13 @@ kosli diff snapshots aws-beta aws-prod --output=json "instance_count": 1 }, { - "fingerprint": "f3cdc22a599ddb789e7791389a5a58b43fd9c30d3af079aec392d5962d181096", - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:85cac88@sha256:f3cdc22a599ddb789e7791389a5a58b43fd9c30d3af079aec392d5962d181096", - "most_recent_timestamp": 1786425514, + "fingerprint": "f362f331cd56af641d03b9f647795f95c3a0d597a5e7ff659788f9dfec4fe8d9", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:7661027@sha256:f362f331cd56af641d03b9f647795f95c3a0d597a5e7ff659788f9dfec4fe8d9", + "most_recent_timestamp": 1787665129, "flow": "runner-ci", - "commit_url": "https://github.com/cyber-dojo/runner/commit/85cac880cb74678426eb2ed4dbf2538995404c5c", + "commit_url": "https://github.com/cyber-dojo/runner/commit/76610271f641f1a5634465e97f880dfe019e515e", "instance_count": 3 - } - ] - }, - "changed": { - "artifacts": [] - }, - "not-changed": { - "artifacts": [ + }, { "fingerprint": "ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/spooler:dc7dea2@sha256:ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", @@ -249,6 +250,12 @@ kosli diff snapshots aws-beta aws-prod --output=json "instance_count": 1 } ] + }, + "changed": { + "artifacts": [] + }, + "not-changed": { + "artifacts": [] } } ``` diff --git a/client_reference/kosli_evaluate_input.md b/client_reference/kosli_evaluate_input.md index 9d30b5c..e7c0bf6 100644 --- a/client_reference/kosli_evaluate_input.md +++ b/client_reference/kosli_evaluate_input.md @@ -64,7 +64,7 @@ This accepts inline JSON or a file reference (`@file.json`). View an example of the `kosli evaluate input` command in GitHub. - In [this YAML file](https://github.com/cyber-dojo/snyk-scanning/blob/10203d5d23f93844726f204390cf3d5ca8d5c913/tests/test_rego_rules.sh#L272) + In [this YAML file](https://github.com/cyber-dojo/snyk-scanning/blob/ed3c81d7322bb8058615095f4aab28c147c53933/tests/test_rego_rules.sh#L286) diff --git a/client_reference/kosli_evaluate_trail.md b/client_reference/kosli_evaluate_trail.md index 74a4cfa..6f339e1 100644 --- a/client_reference/kosli_evaluate_trail.md +++ b/client_reference/kosli_evaluate_trail.md @@ -55,7 +55,7 @@ full data structure available to the policy. Use `--output json` for structured View an example of the `kosli evaluate trail` command in GitHub. - In [this YAML file](https://github.com/cyber-dojo/snyk-scanning/blob/10203d5d23f93844726f204390cf3d5ca8d5c913/.github/workflows/artifact_snyk_test.yml#L329) + In [this YAML file](https://github.com/cyber-dojo/snyk-scanning/blob/9cc4c900ed581834931a9596a49b5033b7ffa12f/.github/workflows/artifact_snyk_test.yml#L325) diff --git a/client_reference/kosli_fingerprint.md b/client_reference/kosli_fingerprint.md index 8faa3f5..afb34db 100644 --- a/client_reference/kosli_fingerprint.md +++ b/client_reference/kosli_fingerprint.md @@ -79,7 +79,7 @@ The `.kosli_ignore` will be treated as part of the artifact like any other file, View an example of the `kosli fingerprint` command in GitHub. - In [this YAML file](https://github.com/cyber-dojo/snyk-scanning/blob/10203d5d23f93844726f204390cf3d5ca8d5c913/.github/workflows/artifact_snyk_test.yml#L152) + In [this YAML file](https://github.com/cyber-dojo/snyk-scanning/blob/ed3c81d7322bb8058615095f4aab28c147c53933/.github/workflows/artifact_snyk_test.yml#L179) diff --git a/client_reference/kosli_get_environment.md b/client_reference/kosli_get_environment.md index eea1ec3..c641eda 100644 --- a/client_reference/kosli_get_environment.md +++ b/client_reference/kosli_get_environment.md @@ -50,9 +50,9 @@ kosli get environment aws-prod --output=json "name": "aws-prod", "type": "ECS", "description": "The ECS cluster for production cyber-dojo", - "last_modified_at": 1787150398.6166384, - "last_reported_at": 1787150398.6166384, - "last_changed_at": 1787107798.493415, + "last_modified_at": 1788000298.4718719, + "last_reported_at": 1788000298.4718719, + "last_changed_at": 1787991898.5420277, "state": true, "include_scaling": false, "tags": { diff --git a/client_reference/kosli_get_snapshot.md b/client_reference/kosli_get_snapshot.md index 4dc7875..b332074 100644 --- a/client_reference/kosli_get_snapshot.md +++ b/client_reference/kosli_get_snapshot.md @@ -64,7 +64,7 @@ kosli get snapshot aws-prod --output=json ```json { - "index": 5253, + "index": 5285, "is_latest": true, "next_snapshot_timestamp": null, "artifact_compliance_count": { @@ -72,13 +72,13 @@ kosli get snapshot aws-prod --output=json "false": 0, "null": 0 }, - "timestamp": 1787107798.493415, + "timestamp": 1787991898.5420277, "type": "ECS", "compliant": true, - "html_url": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5253", + "html_url": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5285", "artifacts": [ { - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:85cac88@sha256:f3cdc22a599ddb789e7791389a5a58b43fd9c30d3af079aec392d5962d181096", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:258b6d0@sha256:c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "compliant": true, "deployments": [], "policy_decisions": [ @@ -100,24 +100,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "runner-ci", - "trail_name": "85cac880cb74678426eb2ed4dbf2538995404c5c", + "flow_name": "exercises-start-points-ci", + "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "runner-f3cdc22a599ddb789e7791389a5a58b43fd9c30d3af079aec392d5962d181096", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-33", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": null } }, @@ -125,7 +125,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "runner-f3cdc22a599ddb789e7791389a5a58b43fd9c30d3af079aec392d5962d181096", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": null } } @@ -145,24 +145,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "runner-ci", - "trail_name": "85cac880cb74678426eb2ed4dbf2538995404c5c", + "flow_name": "exercises-start-points-ci", + "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "runner-f3cdc22a599ddb789e7791389a5a58b43fd9c30d3af079aec392d5962d181096", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-33", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": "COMPLIANT" } }, @@ -170,7 +170,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "runner-f3cdc22a599ddb789e7791389a5a58b43fd9c30d3af079aec392d5962d181096", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": "COMPLIANT" } } @@ -195,24 +195,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "runner-ci", - "trail_name": "85cac880cb74678426eb2ed4dbf2538995404c5c", + "flow_name": "exercises-start-points-ci", + "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "runner-f3cdc22a599ddb789e7791389a5a58b43fd9c30d3af079aec392d5962d181096", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-33", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": null } }, @@ -220,7 +220,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "runner-f3cdc22a599ddb789e7791389a5a58b43fd9c30d3af079aec392d5962d181096", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": null } } @@ -247,24 +247,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "runner-ci", - "trail_name": "85cac880cb74678426eb2ed4dbf2538995404c5c", + "flow_name": "exercises-start-points-ci", + "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", "artifact_status": null } }, { "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "runner-f3cdc22a599ddb789e7791389a5a58b43fd9c30d3af079aec392d5962d181096", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": null } }, { "type": "rule_satisfied", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-33", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": null } }, @@ -272,7 +272,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "runner-f3cdc22a599ddb789e7791389a5a58b43fd9c30d3af079aec392d5962d181096", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": null } } @@ -292,24 +292,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "runner-ci", - "trail_name": "85cac880cb74678426eb2ed4dbf2538995404c5c", + "flow_name": "exercises-start-points-ci", + "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "runner-f3cdc22a599ddb789e7791389a5a58b43fd9c30d3af079aec392d5962d181096", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-33", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": "COMPLIANT" } }, @@ -317,7 +317,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "runner-f3cdc22a599ddb789e7791389a5a58b43fd9c30d3af079aec392d5962d181096", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": "COMPLIANT" } } @@ -342,8 +342,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "runner-ci", - "trail_name": "85cac880cb74678426eb2ed4dbf2538995404c5c", + "flow_name": "exercises-start-points-ci", + "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -351,8 +351,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "runner-f3cdc22a599ddb789e7791389a5a58b43fd9c30d3af079aec392d5962d181096", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -360,8 +360,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-33", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -370,7 +370,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "runner-f3cdc22a599ddb789e7791389a5a58b43fd9c30d3af079aec392d5962d181096", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -398,24 +398,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "runner-ci", - "trail_name": "85cac880cb74678426eb2ed4dbf2538995404c5c", + "flow_name": "exercises-start-points-ci", + "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "runner-f3cdc22a599ddb789e7791389a5a58b43fd9c30d3af079aec392d5962d181096", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-33", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": null } }, @@ -423,7 +423,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "runner-f3cdc22a599ddb789e7791389a5a58b43fd9c30d3af079aec392d5962d181096", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": null } } @@ -443,24 +443,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "runner-ci", - "trail_name": "85cac880cb74678426eb2ed4dbf2538995404c5c", + "flow_name": "exercises-start-points-ci", + "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "runner-f3cdc22a599ddb789e7791389a5a58b43fd9c30d3af079aec392d5962d181096", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-33", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": "COMPLIANT" } }, @@ -468,7 +468,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "runner-f3cdc22a599ddb789e7791389a5a58b43fd9c30d3af079aec392d5962d181096", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": "COMPLIANT" } } @@ -493,8 +493,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "runner-ci", - "trail_name": "85cac880cb74678426eb2ed4dbf2538995404c5c", + "flow_name": "exercises-start-points-ci", + "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -502,8 +502,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "runner-f3cdc22a599ddb789e7791389a5a58b43fd9c30d3af079aec392d5962d181096", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -511,8 +511,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-33", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -521,7 +521,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "runner-f3cdc22a599ddb789e7791389a5a58b43fd9c30d3af079aec392d5962d181096", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -549,24 +549,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "runner-ci", - "trail_name": "85cac880cb74678426eb2ed4dbf2538995404c5c", + "flow_name": "exercises-start-points-ci", + "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "runner-f3cdc22a599ddb789e7791389a5a58b43fd9c30d3af079aec392d5962d181096", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-33", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": null } }, @@ -574,7 +574,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "runner-f3cdc22a599ddb789e7791389a5a58b43fd9c30d3af079aec392d5962d181096", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": null } } @@ -594,24 +594,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "runner-ci", - "trail_name": "85cac880cb74678426eb2ed4dbf2538995404c5c", + "flow_name": "exercises-start-points-ci", + "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "runner-f3cdc22a599ddb789e7791389a5a58b43fd9c30d3af079aec392d5962d181096", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-33", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": "COMPLIANT" } }, @@ -619,7 +619,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "runner-f3cdc22a599ddb789e7791389a5a58b43fd9c30d3af079aec392d5962d181096", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": "COMPLIANT" } } @@ -644,24 +644,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "runner-ci", - "trail_name": "85cac880cb74678426eb2ed4dbf2538995404c5c", + "flow_name": "exercises-start-points-ci", + "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", "artifact_status": null } }, { - "type": "rule_not_applicable", + "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "runner-f3cdc22a599ddb789e7791389a5a58b43fd9c30d3af079aec392d5962d181096", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": null } }, { - "type": "rule_satisfied", + "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-33", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": null } }, @@ -669,7 +669,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "runner-f3cdc22a599ddb789e7791389a5a58b43fd9c30d3af079aec392d5962d181096", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": null } } @@ -696,24 +696,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "runner-ci", - "trail_name": "85cac880cb74678426eb2ed4dbf2538995404c5c", + "flow_name": "exercises-start-points-ci", + "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "runner-f3cdc22a599ddb789e7791389a5a58b43fd9c30d3af079aec392d5962d181096", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-33", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": null } }, @@ -721,7 +721,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "runner-f3cdc22a599ddb789e7791389a5a58b43fd9c30d3af079aec392d5962d181096", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": null } } @@ -747,24 +747,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "runner-ci", - "trail_name": "85cac880cb74678426eb2ed4dbf2538995404c5c", + "flow_name": "exercises-start-points-ci", + "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", "artifact_status": "COMPLIANT" } }, { - "type": "rule_not_applicable", + "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "runner-f3cdc22a599ddb789e7791389a5a58b43fd9c30d3af079aec392d5962d181096", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": "COMPLIANT" } }, { - "type": "rule_satisfied", + "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-33", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": "COMPLIANT" } }, @@ -772,7 +772,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "runner-f3cdc22a599ddb789e7791389a5a58b43fd9c30d3af079aec392d5962d181096", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": "COMPLIANT" } } @@ -783,71 +783,100 @@ kosli get snapshot aws-prod --output=json } ], "reasons_for_incompliance": [], - "fingerprint": "f3cdc22a599ddb789e7791389a5a58b43fd9c30d3af079aec392d5962d181096", + "fingerprint": "c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "creationTimestamp": [ - 1786425437, - 1786425461, - 1786425514 + 1785241255 ], "pods": null, "annotation": { "type": "changed", - "was": 3, - "now": 3 + "was": 1, + "now": 1 }, - "flow_name": "runner-ci", - "git_commit": "85cac880cb74678426eb2ed4dbf2538995404c5c", - "commit_url": "https://github.com/cyber-dojo/runner/commit/85cac880cb74678426eb2ed4dbf2538995404c5c", - "html_url": "https://app.kosli.com/cyber-dojo/flows/runner-ci/artifacts/f3cdc22a599ddb789e7791389a5a58b43fd9c30d3af079aec392d5962d181096?artifact_id=d4d2a067-63c8-4403-a6f5-554e6fef", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/runner-ci", + "flow_name": "exercises-start-points-ci", + "git_commit": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", + "commit_url": "https://github.com/cyber-dojo/exercises-start-points/commit/258b6d07d2b28ad5cb2ce6d29934997f72380f1a", + "html_url": "https://app.kosli.com/cyber-dojo/flows/exercises-start-points-ci/artifacts/c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea?artifact_id=ffb671be-6388-4f6a-ae64-8ba95d82", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/exercises-start-points-ci", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/runner/compare/48bb36950ae12b98bdcaf39d77225a3ca7b1dda3...85cac880cb74678426eb2ed4dbf2538995404c5c", - "previous_git_commit": "48bb36950ae12b98bdcaf39d77225a3ca7b1dda3", - "previous_fingerprint": "8cd50be384864573324f1edd08dbd2b7d00448e12c400db8bf84fbcf0da5d392", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:48bb369@sha256:8cd50be384864573324f1edd08dbd2b7d00448e12c400db8bf84fbcf0da5d392", + "diff_url": "https://github.com/cyber-dojo/exercises-start-points/compare/804f248d832dc34e564507b009c246dfb4f0c657...258b6d07d2b28ad5cb2ce6d29934997f72380f1a", + "previous_git_commit": "804f248d832dc34e564507b009c246dfb4f0c657", + "previous_fingerprint": "a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:804f248@sha256:a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/runner/commit/48bb36950ae12b98bdcaf39d77225a3ca7b1dda3", - "previous_trail_name": "48bb36950ae12b98bdcaf39d77225a3ca7b1dda3", - "previous_template_reference_name": "runner" + "previous_git_commit_url": "https://github.com/cyber-dojo/exercises-start-points/commit/804f248d832dc34e564507b009c246dfb4f0c657", + "previous_trail_name": "804f248d832dc34e564507b009c246dfb4f0c657", + "previous_template_reference_name": "exercises-start-points" }, - "commit_lead_time": 171942.0, + "commit_lead_time": 929108.0, "flows": [ { - "flow_name": "runner-ci", - "trail_name": "85cac880cb74678426eb2ed4dbf2538995404c5c", - "template_reference_name": "runner", - "git_commit": "85cac880cb74678426eb2ed4dbf2538995404c5c", - "commit_url": "https://github.com/cyber-dojo/runner/commit/85cac880cb74678426eb2ed4dbf2538995404c5c", + "flow_name": "exercises-start-points-ci", + "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", + "template_reference_name": "exercises-start-points", + "git_commit": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", + "commit_url": "https://github.com/cyber-dojo/exercises-start-points/commit/258b6d07d2b28ad5cb2ce6d29934997f72380f1a", "git_commit_info": { - "sha1": "85cac880cb74678426eb2ed4dbf2538995404c5c", - "message": "Merge pull request #277 from cyber-dojo/fix-exit-non-zero\n\nMake exit_non_zero actually exit", + "sha1": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", + "message": "Merge pull request #146 from cyber-dojo/add-drift-detection\n\nAdd periodic drift-detection workflow", "author": "Jon Jagger ", "branch": "", - "timestamp": 1786253495.0, - "url": "https://github.com/cyber-dojo/runner/commit/85cac880cb74678426eb2ed4dbf2538995404c5c" + "timestamp": 1784312147.0, + "url": "https://github.com/cyber-dojo/exercises-start-points/commit/258b6d07d2b28ad5cb2ce6d29934997f72380f1a" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/runner-ci/artifacts/f3cdc22a599ddb789e7791389a5a58b43fd9c30d3af079aec392d5962d181096?artifact_id=d4d2a067-63c8-4403-a6f5-554e6fef", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/runner-ci", + "html_url": "https://app.kosli.com/cyber-dojo/flows/exercises-start-points-ci/artifacts/c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea?artifact_id=ffb671be-6388-4f6a-ae64-8ba95d82", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/exercises-start-points-ci", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/runner/compare/48bb36950ae12b98bdcaf39d77225a3ca7b1dda3...85cac880cb74678426eb2ed4dbf2538995404c5c", - "previous_git_commit": "48bb36950ae12b98bdcaf39d77225a3ca7b1dda3", - "previous_fingerprint": "8cd50be384864573324f1edd08dbd2b7d00448e12c400db8bf84fbcf0da5d392", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:48bb369@sha256:8cd50be384864573324f1edd08dbd2b7d00448e12c400db8bf84fbcf0da5d392", + "diff_url": "https://github.com/cyber-dojo/exercises-start-points/compare/804f248d832dc34e564507b009c246dfb4f0c657...258b6d07d2b28ad5cb2ce6d29934997f72380f1a", + "previous_git_commit": "804f248d832dc34e564507b009c246dfb4f0c657", + "previous_fingerprint": "a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:804f248@sha256:a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/runner/commit/48bb36950ae12b98bdcaf39d77225a3ca7b1dda3", - "previous_trail_name": "48bb36950ae12b98bdcaf39d77225a3ca7b1dda3", - "previous_template_reference_name": "runner" + "previous_git_commit_url": "https://github.com/cyber-dojo/exercises-start-points/commit/804f248d832dc34e564507b009c246dfb4f0c657", + "previous_trail_name": "804f248d832dc34e564507b009c246dfb4f0c657", + "previous_template_reference_name": "exercises-start-points" + }, + "commit_lead_time": 929108.0, + "artifact_compliance_in_flow": true, + "flow_reasons_for_non_compliance": [] + }, + { + "flow_name": "production-promotion", + "trail_name": "promote-all-31", + "template_reference_name": "exercises-start-points", + "git_commit": "81c216a55b2cb1787645e699ceaceca868cad253", + "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253", + "git_commit_info": { + "sha1": "81c216a55b2cb1787645e699ceaceca868cad253", + "message": "Add spooler service name to promote_one.yml", + "author": "JonJagger ", + "branch": "main", + "timestamp": 1785143054.0, + "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253" + }, + "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea?artifact_id=b17578fc-3dc0-42c5-98a7-216ebe8a", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion", + "deployment_diff": { + "diff_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/compare/d7e31ce0207b766140ae689f38625da4374acf87...81c216a55b2cb1787645e699ceaceca868cad253", + "previous_git_commit": "d7e31ce0207b766140ae689f38625da4374acf87", + "previous_fingerprint": "a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:804f248@sha256:a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", + "previous_artifact_compliance_state": "COMPLIANT", + "previous_running": false, + "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/d7e31ce0207b766140ae689f38625da4374acf87", + "previous_trail_name": "promote-all-30", + "previous_template_reference_name": "exercises-start-points" }, - "commit_lead_time": 171942.0, + "commit_lead_time": 98201.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "runner-f3cdc22a599ddb789e7791389a5a58b43fd9c30d3af079aec392d5962d181096", - "template_reference_name": "runner", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "template_reference_name": "exercises-start-points", "git_commit": "c0666c020044ac5b5181999ec153db1e7f6cd303", "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303", "git_commit_info": { @@ -858,94 +887,63 @@ kosli get snapshot aws-prod --output=json "timestamp": 1785316951.0, "url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/f3cdc22a599ddb789e7791389a5a58b43fd9c30d3af079aec392d5962d181096?artifact_id=00b52efb-82ba-4573-b73e-1a4387c5", + "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea?artifact_id=c5be014c-5c90-4940-9d24-3f1d472a", "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/c0666c020044ac5b5181999ec153db1e7f6cd303...c0666c020044ac5b5181999ec153db1e7f6cd303", - "previous_git_commit": "c0666c020044ac5b5181999ec153db1e7f6cd303", - "previous_fingerprint": "8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:19f8734@sha256:8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7...c0666c020044ac5b5181999ec153db1e7f6cd303", + "previous_git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", + "previous_fingerprint": "a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:804f248@sha256:a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303", - "previous_trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", - "previous_template_reference_name": "runner" + "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", + "previous_trail_name": "exercises-start-points-a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", + "previous_template_reference_name": "exercises-start-points" }, - "commit_lead_time": 1108486.0, - "artifact_compliance_in_flow": true, - "flow_reasons_for_non_compliance": [] - }, - { - "flow_name": "production-promotion", - "trail_name": "promote-all-33", - "template_reference_name": "runner", - "git_commit": "7494758f8bbc4e66cb5df90ef4cd6b72d75ca584", - "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/7494758f8bbc4e66cb5df90ef4cd6b72d75ca584", - "git_commit_info": { - "sha1": "7494758f8bbc4e66cb5df90ef4cd6b72d75ca584", - "message": "Drop lone use of = separator on Kosli CLI boolean flag", - "author": "JonJagger ", - "branch": "main", - "timestamp": 1785316994.0, - "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/7494758f8bbc4e66cb5df90ef4cd6b72d75ca584" - }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/f3cdc22a599ddb789e7791389a5a58b43fd9c30d3af079aec392d5962d181096?artifact_id=9a0fba00-e298-410d-aeea-99249451", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion", - "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/compare/7494758f8bbc4e66cb5df90ef4cd6b72d75ca584...7494758f8bbc4e66cb5df90ef4cd6b72d75ca584", - "previous_git_commit": "7494758f8bbc4e66cb5df90ef4cd6b72d75ca584", - "previous_fingerprint": "8cd50be384864573324f1edd08dbd2b7d00448e12c400db8bf84fbcf0da5d392", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:48bb369@sha256:8cd50be384864573324f1edd08dbd2b7d00448e12c400db8bf84fbcf0da5d392", - "previous_artifact_compliance_state": "COMPLIANT", - "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/7494758f8bbc4e66cb5df90ef4cd6b72d75ca584", - "previous_trail_name": "promotion-one-154", - "previous_template_reference_name": "runner" - }, - "commit_lead_time": 1108443.0, + "commit_lead_time": -75696.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "runner-f3cdc22a599ddb789e7791389a5a58b43fd9c30d3af079aec392d5962d181096", - "template_reference_name": "runner", - "git_commit": "10203d5d23f93844726f204390cf3d5ca8d5c913", - "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/10203d5d23f93844726f204390cf3d5ca8d5c913", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "template_reference_name": "exercises-start-points", + "git_commit": "ed3c81d7322bb8058615095f4aab28c147c53933", + "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/ed3c81d7322bb8058615095f4aab28c147c53933", "git_commit_info": { - "sha1": "10203d5d23f93844726f204390cf3d5ca8d5c913", - "message": "Extract the repeated retrying curl into a composite action\n\n The retry flags were pasted into six call sites, so tuning them\n meant six edits with five chances to miss one.\n\n Two of the three jobs check out the caller's repo, where\n ./.github/actions does not resolve, so those name the action by\n its repo path.", + "sha1": "ed3c81d7322bb8058615095f4aab28c147c53933", + "message": "Unpack one pinned commit instead of fetching each file\n\n a0c005a moved these two jobs' files to RUNNER_TEMP, which kept them out of\n the caller's checkout but left the prefix repeated at every use. The paths\n are absolute because the run steps stay in the checkout, where the Kosli\n CLI reads git commit information from the working directory, so the prefix\n cannot be dropped. It can only be folded into the definitions, and a\n literal /tmp folds where runner.temp does not: the runner context is\n unavailable in workflow- and job-level env blocks. Both jobs are pinned to\n ubuntu-latest, one fresh VM per job, so /tmp neither collides nor persists.\n\n The files also arrived as five separate fetches of main, one per file, so a\n push landing mid-run could pair a rego policy with params from a different\n commit. find-snyk-vulns already checks this repo out, so it now publishes\n the SHA it resolved, and the two later jobs unpack that exact commit as a\n single tarball. One run reads one version.\n\n An env-var's prefix now says where its file came from: SNYK_SCANNING_ from\n this repo at the pinned commit, CALLER_ from the repo being scanned, TMP_\n produced by the run. That split is worth naming because only one of these\n files is the caller's, and it is the one .snyk that the decision attests\n against. Two bare filenames survive because an artifact name cannot\n contain a '/'.\n\n fetch-url-to-file now has exactly one caller, for that .snyk.", "author": "JonJagger ", "branch": "main", - "timestamp": 1786602393.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/10203d5d23f93844726f204390cf3d5ca8d5c913" + "timestamp": 1787661987.0, + "url": "https://github.com/cyber-dojo/snyk-scanning/commit/ed3c81d7322bb8058615095f4aab28c147c53933" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/f3cdc22a599ddb789e7791389a5a58b43fd9c30d3af079aec392d5962d181096?artifact_id=15359073-0c4f-45c4-9dc6-a91f5a0b", + "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea?artifact_id=aaa56030-d1b5-4840-bab1-e9c9d309", "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/00c479764cb9eca038fdaaaef108672d0bb0ed26...10203d5d23f93844726f204390cf3d5ca8d5c913", + "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/00c479764cb9eca038fdaaaef108672d0bb0ed26...ed3c81d7322bb8058615095f4aab28c147c53933", "previous_git_commit": "00c479764cb9eca038fdaaaef108672d0bb0ed26", - "previous_fingerprint": "414a07a72fbd04444ba4d2e19b6c7102095d5aeb469211f99166538626c08d06", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:9cc2a80@sha256:414a07a72fbd04444ba4d2e19b6c7102095d5aeb469211f99166538626c08d06", + "previous_fingerprint": "f00aa234bebafb1980dced29626750f84a6fe6c9c50f6a90167e4d8e6511a8a8", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:b8e5cbf@sha256:f00aa234bebafb1980dced29626750f84a6fe6c9c50f6a90167e4d8e6511a8a8", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/00c479764cb9eca038fdaaaef108672d0bb0ed26", - "previous_trail_name": "runner-414a07a72fbd04444ba4d2e19b6c7102095d5aeb469211f99166538626c08d06", - "previous_template_reference_name": "runner" + "previous_trail_name": "exercises-start-points-f00aa234bebafb1980dced29626750f84a6fe6c9c50f6a90167e4d8e6511a8a8", + "previous_template_reference_name": "exercises-start-points" }, - "commit_lead_time": -176956.0, + "commit_lead_time": -2420732.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] } ], "ecs_context": { - "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/e13cf5bfd5a04a88afd3b2d02a1a3eaa", + "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/f248719ae7814027825075c5ea81acff", "cluster_name": null, "service_name": null } }, { - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/spooler:dc7dea2@sha256:ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:7661027@sha256:f362f331cd56af641d03b9f647795f95c3a0d597a5e7ff659788f9dfec4fe8d9", "compliant": true, "deployments": [], "policy_decisions": [ @@ -967,8 +965,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "spooler-ci", - "trail_name": "dc7dea2d9086fcdfe4629f3ab02501ed92aad1bb", + "flow_name": "runner-ci", + "trail_name": "76610271f641f1a5634465e97f880dfe019e515e", "artifact_status": null } }, @@ -976,23 +974,23 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-33", + "trail_name": "promotion-one-159", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "spooler-ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "runner-f362f331cd56af641d03b9f647795f95c3a0d597a5e7ff659788f9dfec4fe8d9", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "spooler-ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "runner-f362f331cd56af641d03b9f647795f95c3a0d597a5e7ff659788f9dfec4fe8d9", "artifact_status": null } } @@ -1012,8 +1010,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "spooler-ci", - "trail_name": "dc7dea2d9086fcdfe4629f3ab02501ed92aad1bb", + "flow_name": "runner-ci", + "trail_name": "76610271f641f1a5634465e97f880dfe019e515e", "artifact_status": "COMPLIANT" } }, @@ -1021,23 +1019,23 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-33", + "trail_name": "promotion-one-159", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "spooler-ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "runner-f362f331cd56af641d03b9f647795f95c3a0d597a5e7ff659788f9dfec4fe8d9", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "spooler-ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "runner-f362f331cd56af641d03b9f647795f95c3a0d597a5e7ff659788f9dfec4fe8d9", "artifact_status": "COMPLIANT" } } @@ -1056,14 +1054,14 @@ kosli get snapshot aws-prod --output=json "for_control": null } }, - "satisfied": null, - "ignored": true, + "satisfied": true, + "ignored": false, "resolutions": [ { - "type": "rule_not_applicable", + "type": "rule_satisfied", "context": { - "flow_name": "spooler-ci", - "trail_name": "dc7dea2d9086fcdfe4629f3ab02501ed92aad1bb", + "flow_name": "runner-ci", + "trail_name": "76610271f641f1a5634465e97f880dfe019e515e", "artifact_status": null } }, @@ -1071,23 +1069,23 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-33", + "trail_name": "promotion-one-159", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "spooler-ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "runner-f362f331cd56af641d03b9f647795f95c3a0d597a5e7ff659788f9dfec4fe8d9", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "spooler-ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "runner-f362f331cd56af641d03b9f647795f95c3a0d597a5e7ff659788f9dfec4fe8d9", "artifact_status": null } } @@ -1114,8 +1112,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "spooler-ci", - "trail_name": "dc7dea2d9086fcdfe4629f3ab02501ed92aad1bb", + "flow_name": "runner-ci", + "trail_name": "76610271f641f1a5634465e97f880dfe019e515e", "artifact_status": null } }, @@ -1123,23 +1121,23 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-33", + "trail_name": "promotion-one-159", "artifact_status": null } }, { "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "spooler-ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "runner-f362f331cd56af641d03b9f647795f95c3a0d597a5e7ff659788f9dfec4fe8d9", "artifact_status": null } }, { "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "spooler-ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "runner-f362f331cd56af641d03b9f647795f95c3a0d597a5e7ff659788f9dfec4fe8d9", "artifact_status": null } } @@ -1159,8 +1157,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "spooler-ci", - "trail_name": "dc7dea2d9086fcdfe4629f3ab02501ed92aad1bb", + "flow_name": "runner-ci", + "trail_name": "76610271f641f1a5634465e97f880dfe019e515e", "artifact_status": "COMPLIANT" } }, @@ -1168,23 +1166,23 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-33", + "trail_name": "promotion-one-159", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "spooler-ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "runner-f362f331cd56af641d03b9f647795f95c3a0d597a5e7ff659788f9dfec4fe8d9", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "spooler-ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "runner-f362f331cd56af641d03b9f647795f95c3a0d597a5e7ff659788f9dfec4fe8d9", "artifact_status": "COMPLIANT" } } @@ -1203,14 +1201,14 @@ kosli get snapshot aws-prod --output=json "for_control": "SDLC-CTRL-0002" } }, - "satisfied": null, - "ignored": true, + "satisfied": true, + "ignored": false, "resolutions": [ { - "type": "rule_not_applicable", + "type": "rule_satisfied", "context": { - "flow_name": "spooler-ci", - "trail_name": "dc7dea2d9086fcdfe4629f3ab02501ed92aad1bb", + "flow_name": "runner-ci", + "trail_name": "76610271f641f1a5634465e97f880dfe019e515e", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -1219,7 +1217,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-33", + "trail_name": "promotion-one-159", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -1227,8 +1225,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "spooler-ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "runner-f362f331cd56af641d03b9f647795f95c3a0d597a5e7ff659788f9dfec4fe8d9", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -1236,8 +1234,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "spooler-ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "runner-f362f331cd56af641d03b9f647795f95c3a0d597a5e7ff659788f9dfec4fe8d9", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -1265,8 +1263,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "spooler-ci", - "trail_name": "dc7dea2d9086fcdfe4629f3ab02501ed92aad1bb", + "flow_name": "runner-ci", + "trail_name": "76610271f641f1a5634465e97f880dfe019e515e", "artifact_status": null } }, @@ -1274,23 +1272,23 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-33", + "trail_name": "promotion-one-159", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "spooler-ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "runner-f362f331cd56af641d03b9f647795f95c3a0d597a5e7ff659788f9dfec4fe8d9", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "spooler-ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "runner-f362f331cd56af641d03b9f647795f95c3a0d597a5e7ff659788f9dfec4fe8d9", "artifact_status": null } } @@ -1310,8 +1308,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "spooler-ci", - "trail_name": "dc7dea2d9086fcdfe4629f3ab02501ed92aad1bb", + "flow_name": "runner-ci", + "trail_name": "76610271f641f1a5634465e97f880dfe019e515e", "artifact_status": "COMPLIANT" } }, @@ -1319,23 +1317,23 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-33", + "trail_name": "promotion-one-159", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "spooler-ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "runner-f362f331cd56af641d03b9f647795f95c3a0d597a5e7ff659788f9dfec4fe8d9", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "spooler-ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "runner-f362f331cd56af641d03b9f647795f95c3a0d597a5e7ff659788f9dfec4fe8d9", "artifact_status": "COMPLIANT" } } @@ -1360,8 +1358,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "spooler-ci", - "trail_name": "dc7dea2d9086fcdfe4629f3ab02501ed92aad1bb", + "flow_name": "runner-ci", + "trail_name": "76610271f641f1a5634465e97f880dfe019e515e", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -1370,25 +1368,25 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-33", + "trail_name": "promotion-one-159", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } }, { - "type": "rule_satisfied", + "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "spooler-ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "runner-f362f331cd56af641d03b9f647795f95c3a0d597a5e7ff659788f9dfec4fe8d9", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } }, { - "type": "rule_not_applicable", + "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "spooler-ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "runner-f362f331cd56af641d03b9f647795f95c3a0d597a5e7ff659788f9dfec4fe8d9", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -1416,8 +1414,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "spooler-ci", - "trail_name": "dc7dea2d9086fcdfe4629f3ab02501ed92aad1bb", + "flow_name": "runner-ci", + "trail_name": "76610271f641f1a5634465e97f880dfe019e515e", "artifact_status": null } }, @@ -1425,23 +1423,23 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-33", + "trail_name": "promotion-one-159", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "spooler-ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "runner-f362f331cd56af641d03b9f647795f95c3a0d597a5e7ff659788f9dfec4fe8d9", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "spooler-ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "runner-f362f331cd56af641d03b9f647795f95c3a0d597a5e7ff659788f9dfec4fe8d9", "artifact_status": null } } @@ -1461,8 +1459,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "spooler-ci", - "trail_name": "dc7dea2d9086fcdfe4629f3ab02501ed92aad1bb", + "flow_name": "runner-ci", + "trail_name": "76610271f641f1a5634465e97f880dfe019e515e", "artifact_status": "COMPLIANT" } }, @@ -1470,23 +1468,23 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-33", + "trail_name": "promotion-one-159", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "spooler-ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "runner-f362f331cd56af641d03b9f647795f95c3a0d597a5e7ff659788f9dfec4fe8d9", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "spooler-ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "runner-f362f331cd56af641d03b9f647795f95c3a0d597a5e7ff659788f9dfec4fe8d9", "artifact_status": "COMPLIANT" } } @@ -1511,8 +1509,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "spooler-ci", - "trail_name": "dc7dea2d9086fcdfe4629f3ab02501ed92aad1bb", + "flow_name": "runner-ci", + "trail_name": "76610271f641f1a5634465e97f880dfe019e515e", "artifact_status": null } }, @@ -1520,23 +1518,23 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-33", + "trail_name": "promotion-one-159", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "spooler-ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "runner-f362f331cd56af641d03b9f647795f95c3a0d597a5e7ff659788f9dfec4fe8d9", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "spooler-ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "runner-f362f331cd56af641d03b9f647795f95c3a0d597a5e7ff659788f9dfec4fe8d9", "artifact_status": null } } @@ -1563,8 +1561,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "spooler-ci", - "trail_name": "dc7dea2d9086fcdfe4629f3ab02501ed92aad1bb", + "flow_name": "runner-ci", + "trail_name": "76610271f641f1a5634465e97f880dfe019e515e", "artifact_status": null } }, @@ -1572,23 +1570,23 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-33", + "trail_name": "promotion-one-159", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "spooler-ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "runner-f362f331cd56af641d03b9f647795f95c3a0d597a5e7ff659788f9dfec4fe8d9", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "spooler-ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "runner-f362f331cd56af641d03b9f647795f95c3a0d597a5e7ff659788f9dfec4fe8d9", "artifact_status": null } } @@ -1614,8 +1612,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "spooler-ci", - "trail_name": "dc7dea2d9086fcdfe4629f3ab02501ed92aad1bb", + "flow_name": "runner-ci", + "trail_name": "76610271f641f1a5634465e97f880dfe019e515e", "artifact_status": "COMPLIANT" } }, @@ -1623,23 +1621,23 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-33", + "trail_name": "promotion-one-159", "artifact_status": "COMPLIANT" } }, { - "type": "rule_satisfied", + "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "spooler-ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "runner-f362f331cd56af641d03b9f647795f95c3a0d597a5e7ff659788f9dfec4fe8d9", "artifact_status": "COMPLIANT" } }, { - "type": "rule_not_applicable", + "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "spooler-ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "runner-f362f331cd56af641d03b9f647795f95c3a0d597a5e7ff659788f9dfec4fe8d9", "artifact_status": "COMPLIANT" } } @@ -1650,69 +1648,71 @@ kosli get snapshot aws-prod --output=json } ], "reasons_for_incompliance": [], - "fingerprint": "ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", + "fingerprint": "f362f331cd56af641d03b9f647795f95c3a0d597a5e7ff659788f9dfec4fe8d9", "creationTimestamp": [ - 1786425512 + 1787665123, + 1787665128, + 1787665129 ], "pods": null, "annotation": { "type": "unchanged", - "was": 1, - "now": 1 + "was": 3, + "now": 3 }, - "flow_name": "spooler-ci", - "git_commit": "dc7dea2d9086fcdfe4629f3ab02501ed92aad1bb", - "commit_url": "https://github.com/cyber-dojo/spooler/commit/dc7dea2d9086fcdfe4629f3ab02501ed92aad1bb", - "html_url": "https://app.kosli.com/cyber-dojo/flows/spooler-ci/artifacts/ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0?artifact_id=df2dcc5e-bb07-40e8-b013-9ac60f42", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/spooler-ci", + "flow_name": "runner-ci", + "git_commit": "76610271f641f1a5634465e97f880dfe019e515e", + "commit_url": "https://github.com/cyber-dojo/runner/commit/76610271f641f1a5634465e97f880dfe019e515e", + "html_url": "https://app.kosli.com/cyber-dojo/flows/runner-ci/artifacts/f362f331cd56af641d03b9f647795f95c3a0d597a5e7ff659788f9dfec4fe8d9?artifact_id=977cfbff-032e-4f5d-8ae3-4e9512e3", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/runner-ci", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/spooler/compare/c81791fd10558a59f83876137fb021abcd89f262...dc7dea2d9086fcdfe4629f3ab02501ed92aad1bb", - "previous_git_commit": "c81791fd10558a59f83876137fb021abcd89f262", - "previous_fingerprint": "6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/spooler:c81791f@sha256:6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac", + "diff_url": "https://github.com/cyber-dojo/runner/compare/d7541d3fb2c548bd68a81f812b5a6c95fcf9a1bd...76610271f641f1a5634465e97f880dfe019e515e", + "previous_git_commit": "d7541d3fb2c548bd68a81f812b5a6c95fcf9a1bd", + "previous_fingerprint": "fd8c68c615a68bfa49569beea07d071950dcfeac676028543f530dd7193f5631", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:d7541d3@sha256:fd8c68c615a68bfa49569beea07d071950dcfeac676028543f530dd7193f5631", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/spooler/commit/c81791fd10558a59f83876137fb021abcd89f262", - "previous_trail_name": "c81791fd10558a59f83876137fb021abcd89f262", - "previous_template_reference_name": "spooler" + "previous_git_commit_url": "https://github.com/cyber-dojo/runner/commit/d7541d3fb2c548bd68a81f812b5a6c95fcf9a1bd", + "previous_trail_name": "d7541d3fb2c548bd68a81f812b5a6c95fcf9a1bd", + "previous_template_reference_name": "runner" }, - "commit_lead_time": 171872.0, + "commit_lead_time": 20693.0, "flows": [ { - "flow_name": "spooler-ci", - "trail_name": "dc7dea2d9086fcdfe4629f3ab02501ed92aad1bb", - "template_reference_name": "spooler", - "git_commit": "dc7dea2d9086fcdfe4629f3ab02501ed92aad1bb", - "commit_url": "https://github.com/cyber-dojo/spooler/commit/dc7dea2d9086fcdfe4629f3ab02501ed92aad1bb", + "flow_name": "runner-ci", + "trail_name": "76610271f641f1a5634465e97f880dfe019e515e", + "template_reference_name": "runner", + "git_commit": "76610271f641f1a5634465e97f880dfe019e515e", + "commit_url": "https://github.com/cyber-dojo/runner/commit/76610271f641f1a5634465e97f880dfe019e515e", "git_commit_info": { - "sha1": "dc7dea2d9086fcdfe4629f3ab02501ed92aad1bb", - "message": "Merge pull request #14 from cyber-dojo/fix-exit-non-zero\n\nMake exit_non_zero actually exit", + "sha1": "76610271f641f1a5634465e97f880dfe019e515e", + "message": "Merge pull request #286 from cyber-dojo/run-workflow-137\n\nAdd doc/probes on ways to make runner faster", "author": "Jon Jagger ", "branch": "", - "timestamp": 1786253640.0, - "url": "https://github.com/cyber-dojo/spooler/commit/dc7dea2d9086fcdfe4629f3ab02501ed92aad1bb" + "timestamp": 1787644430.0, + "url": "https://github.com/cyber-dojo/runner/commit/76610271f641f1a5634465e97f880dfe019e515e" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/spooler-ci/artifacts/ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0?artifact_id=df2dcc5e-bb07-40e8-b013-9ac60f42", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/spooler-ci", + "html_url": "https://app.kosli.com/cyber-dojo/flows/runner-ci/artifacts/f362f331cd56af641d03b9f647795f95c3a0d597a5e7ff659788f9dfec4fe8d9?artifact_id=977cfbff-032e-4f5d-8ae3-4e9512e3", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/runner-ci", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/spooler/compare/c81791fd10558a59f83876137fb021abcd89f262...dc7dea2d9086fcdfe4629f3ab02501ed92aad1bb", - "previous_git_commit": "c81791fd10558a59f83876137fb021abcd89f262", - "previous_fingerprint": "6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/spooler:c81791f@sha256:6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac", + "diff_url": "https://github.com/cyber-dojo/runner/compare/d7541d3fb2c548bd68a81f812b5a6c95fcf9a1bd...76610271f641f1a5634465e97f880dfe019e515e", + "previous_git_commit": "d7541d3fb2c548bd68a81f812b5a6c95fcf9a1bd", + "previous_fingerprint": "fd8c68c615a68bfa49569beea07d071950dcfeac676028543f530dd7193f5631", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:d7541d3@sha256:fd8c68c615a68bfa49569beea07d071950dcfeac676028543f530dd7193f5631", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/spooler/commit/c81791fd10558a59f83876137fb021abcd89f262", - "previous_trail_name": "c81791fd10558a59f83876137fb021abcd89f262", - "previous_template_reference_name": "spooler" + "previous_git_commit_url": "https://github.com/cyber-dojo/runner/commit/d7541d3fb2c548bd68a81f812b5a6c95fcf9a1bd", + "previous_trail_name": "d7541d3fb2c548bd68a81f812b5a6c95fcf9a1bd", + "previous_template_reference_name": "runner" }, - "commit_lead_time": 171872.0, + "commit_lead_time": 20693.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "production-promotion", - "trail_name": "promote-all-33", - "template_reference_name": "spooler", + "trail_name": "promotion-one-159", + "template_reference_name": "runner", "git_commit": "7494758f8bbc4e66cb5df90ef4cd6b72d75ca584", "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/7494758f8bbc4e66cb5df90ef4cd6b72d75ca584", "git_commit_info": { @@ -1723,74 +1723,94 @@ kosli get snapshot aws-prod --output=json "timestamp": 1785316994.0, "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/7494758f8bbc4e66cb5df90ef4cd6b72d75ca584" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0?artifact_id=3c4a58c5-2e1f-4f22-b774-45e5f2b0", + "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/f362f331cd56af641d03b9f647795f95c3a0d597a5e7ff659788f9dfec4fe8d9?artifact_id=62a91047-acb0-4aaa-b2ba-b0a3efe7", "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/compare/81c216a55b2cb1787645e699ceaceca868cad253...7494758f8bbc4e66cb5df90ef4cd6b72d75ca584", - "previous_git_commit": "81c216a55b2cb1787645e699ceaceca868cad253", - "previous_fingerprint": "6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/spooler:c81791f@sha256:6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac", + "diff_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/compare/7494758f8bbc4e66cb5df90ef4cd6b72d75ca584...7494758f8bbc4e66cb5df90ef4cd6b72d75ca584", + "previous_git_commit": "7494758f8bbc4e66cb5df90ef4cd6b72d75ca584", + "previous_fingerprint": "fd8c68c615a68bfa49569beea07d071950dcfeac676028543f530dd7193f5631", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:d7541d3@sha256:fd8c68c615a68bfa49569beea07d071950dcfeac676028543f530dd7193f5631", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253", - "previous_trail_name": "promotion-one-145", - "previous_template_reference_name": "spooler" + "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/7494758f8bbc4e66cb5df90ef4cd6b72d75ca584", + "previous_trail_name": "promotion-one-158", + "previous_template_reference_name": "runner" }, - "commit_lead_time": 1108518.0, + "commit_lead_time": 2348129.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "spooler-ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", - "template_reference_name": "spooler", - "git_commit": "10203d5d23f93844726f204390cf3d5ca8d5c913", - "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/10203d5d23f93844726f204390cf3d5ca8d5c913", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "runner-f362f331cd56af641d03b9f647795f95c3a0d597a5e7ff659788f9dfec4fe8d9", + "template_reference_name": "runner", + "git_commit": "ed3c81d7322bb8058615095f4aab28c147c53933", + "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/ed3c81d7322bb8058615095f4aab28c147c53933", "git_commit_info": { - "sha1": "10203d5d23f93844726f204390cf3d5ca8d5c913", - "message": "Extract the repeated retrying curl into a composite action\n\n The retry flags were pasted into six call sites, so tuning them\n meant six edits with five chances to miss one.\n\n Two of the three jobs check out the caller's repo, where\n ./.github/actions does not resolve, so those name the action by\n its repo path.", + "sha1": "ed3c81d7322bb8058615095f4aab28c147c53933", + "message": "Unpack one pinned commit instead of fetching each file\n\n a0c005a moved these two jobs' files to RUNNER_TEMP, which kept them out of\n the caller's checkout but left the prefix repeated at every use. The paths\n are absolute because the run steps stay in the checkout, where the Kosli\n CLI reads git commit information from the working directory, so the prefix\n cannot be dropped. It can only be folded into the definitions, and a\n literal /tmp folds where runner.temp does not: the runner context is\n unavailable in workflow- and job-level env blocks. Both jobs are pinned to\n ubuntu-latest, one fresh VM per job, so /tmp neither collides nor persists.\n\n The files also arrived as five separate fetches of main, one per file, so a\n push landing mid-run could pair a rego policy with params from a different\n commit. find-snyk-vulns already checks this repo out, so it now publishes\n the SHA it resolved, and the two later jobs unpack that exact commit as a\n single tarball. One run reads one version.\n\n An env-var's prefix now says where its file came from: SNYK_SCANNING_ from\n this repo at the pinned commit, CALLER_ from the repo being scanned, TMP_\n produced by the run. That split is worth naming because only one of these\n files is the caller's, and it is the one .snyk that the decision attests\n against. Two bare filenames survive because an artifact name cannot\n contain a '/'.\n\n fetch-url-to-file now has exactly one caller, for that .snyk.", "author": "JonJagger ", "branch": "main", - "timestamp": 1786602393.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/10203d5d23f93844726f204390cf3d5ca8d5c913" + "timestamp": 1787661987.0, + "url": "https://github.com/cyber-dojo/snyk-scanning/commit/ed3c81d7322bb8058615095f4aab28c147c53933" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0?artifact_id=88a6a058-3b14-4e58-941d-cbaaff7e", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact", - "deployment_diff": null, - "commit_lead_time": -176881.0, + "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/f362f331cd56af641d03b9f647795f95c3a0d597a5e7ff659788f9dfec4fe8d9?artifact_id=3c9ec587-3a18-4a54-a16a-f77a871a", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact", + "deployment_diff": { + "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/c0666c020044ac5b5181999ec153db1e7f6cd303...ed3c81d7322bb8058615095f4aab28c147c53933", + "previous_git_commit": "c0666c020044ac5b5181999ec153db1e7f6cd303", + "previous_fingerprint": "f3cdc22a599ddb789e7791389a5a58b43fd9c30d3af079aec392d5962d181096", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:85cac88@sha256:f3cdc22a599ddb789e7791389a5a58b43fd9c30d3af079aec392d5962d181096", + "previous_artifact_compliance_state": "COMPLIANT", + "previous_running": false, + "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303", + "previous_trail_name": "runner-f3cdc22a599ddb789e7791389a5a58b43fd9c30d3af079aec392d5962d181096", + "previous_template_reference_name": "runner" + }, + "commit_lead_time": 3136.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "spooler-ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", - "template_reference_name": "spooler", - "git_commit": "10203d5d23f93844726f204390cf3d5ca8d5c913", - "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/10203d5d23f93844726f204390cf3d5ca8d5c913", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "runner-f362f331cd56af641d03b9f647795f95c3a0d597a5e7ff659788f9dfec4fe8d9", + "template_reference_name": "runner", + "git_commit": "ed3c81d7322bb8058615095f4aab28c147c53933", + "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/ed3c81d7322bb8058615095f4aab28c147c53933", "git_commit_info": { - "sha1": "10203d5d23f93844726f204390cf3d5ca8d5c913", - "message": "Extract the repeated retrying curl into a composite action\n\n The retry flags were pasted into six call sites, so tuning them\n meant six edits with five chances to miss one.\n\n Two of the three jobs check out the caller's repo, where\n ./.github/actions does not resolve, so those name the action by\n its repo path.", + "sha1": "ed3c81d7322bb8058615095f4aab28c147c53933", + "message": "Unpack one pinned commit instead of fetching each file\n\n a0c005a moved these two jobs' files to RUNNER_TEMP, which kept them out of\n the caller's checkout but left the prefix repeated at every use. The paths\n are absolute because the run steps stay in the checkout, where the Kosli\n CLI reads git commit information from the working directory, so the prefix\n cannot be dropped. It can only be folded into the definitions, and a\n literal /tmp folds where runner.temp does not: the runner context is\n unavailable in workflow- and job-level env blocks. Both jobs are pinned to\n ubuntu-latest, one fresh VM per job, so /tmp neither collides nor persists.\n\n The files also arrived as five separate fetches of main, one per file, so a\n push landing mid-run could pair a rego policy with params from a different\n commit. find-snyk-vulns already checks this repo out, so it now publishes\n the SHA it resolved, and the two later jobs unpack that exact commit as a\n single tarball. One run reads one version.\n\n An env-var's prefix now says where its file came from: SNYK_SCANNING_ from\n this repo at the pinned commit, CALLER_ from the repo being scanned, TMP_\n produced by the run. That split is worth naming because only one of these\n files is the caller's, and it is the one .snyk that the decision attests\n against. Two bare filenames survive because an artifact name cannot\n contain a '/'.\n\n fetch-url-to-file now has exactly one caller, for that .snyk.", "author": "JonJagger ", "branch": "main", - "timestamp": 1786602393.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/10203d5d23f93844726f204390cf3d5ca8d5c913" + "timestamp": 1787661987.0, + "url": "https://github.com/cyber-dojo/snyk-scanning/commit/ed3c81d7322bb8058615095f4aab28c147c53933" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0?artifact_id=a128c065-b310-4f1e-b927-65ee9702", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact", - "deployment_diff": null, - "commit_lead_time": -176881.0, + "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/f362f331cd56af641d03b9f647795f95c3a0d597a5e7ff659788f9dfec4fe8d9?artifact_id=935fe938-5908-4664-8862-505506ce", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact", + "deployment_diff": { + "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/00c479764cb9eca038fdaaaef108672d0bb0ed26...ed3c81d7322bb8058615095f4aab28c147c53933", + "previous_git_commit": "00c479764cb9eca038fdaaaef108672d0bb0ed26", + "previous_fingerprint": "414a07a72fbd04444ba4d2e19b6c7102095d5aeb469211f99166538626c08d06", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:9cc2a80@sha256:414a07a72fbd04444ba4d2e19b6c7102095d5aeb469211f99166538626c08d06", + "previous_artifact_compliance_state": "COMPLIANT", + "previous_running": false, + "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/00c479764cb9eca038fdaaaef108672d0bb0ed26", + "previous_trail_name": "runner-414a07a72fbd04444ba4d2e19b6c7102095d5aeb469211f99166538626c08d06", + "previous_template_reference_name": "runner" + }, + "commit_lead_time": 3136.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] } ], "ecs_context": { - "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/d965b62fd5c64cd98456881feb1352c7", + "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/afd611868ed14afc80fe2de51b9fc95d", "cluster_name": null, "service_name": null } }, { - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:5e4b987@sha256:6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/spooler:dc7dea2@sha256:ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", "compliant": true, "deployments": [], "policy_decisions": [ @@ -1812,24 +1832,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "web-ci", - "trail_name": "5e4b9873df93525c041c386c06e0ab8fc36b6f33", + "flow_name": "spooler-ci", + "trail_name": "dc7dea2d9086fcdfe4629f3ab02501ed92aad1bb", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "web-6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", + "flow_name": "production-promotion", + "trail_name": "promote-all-33", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-33", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "spooler-ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", "artifact_status": null } }, @@ -1837,7 +1857,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "web-6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", + "trail_name": "spooler-ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", "artifact_status": null } } @@ -1857,24 +1877,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "web-ci", - "trail_name": "5e4b9873df93525c041c386c06e0ab8fc36b6f33", + "flow_name": "spooler-ci", + "trail_name": "dc7dea2d9086fcdfe4629f3ab02501ed92aad1bb", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "web-6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", + "flow_name": "production-promotion", + "trail_name": "promote-all-33", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-33", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "spooler-ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", "artifact_status": "COMPLIANT" } }, @@ -1882,7 +1902,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "web-6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", + "trail_name": "spooler-ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", "artifact_status": "COMPLIANT" } } @@ -1901,30 +1921,30 @@ kosli get snapshot aws-prod --output=json "for_control": null } }, - "satisfied": true, - "ignored": false, + "satisfied": null, + "ignored": true, "resolutions": [ { - "type": "rule_satisfied", + "type": "rule_not_applicable", "context": { - "flow_name": "web-ci", - "trail_name": "5e4b9873df93525c041c386c06e0ab8fc36b6f33", + "flow_name": "spooler-ci", + "trail_name": "dc7dea2d9086fcdfe4629f3ab02501ed92aad1bb", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "web-6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", + "flow_name": "production-promotion", + "trail_name": "promote-all-33", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-33", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "spooler-ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", "artifact_status": null } }, @@ -1932,7 +1952,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "web-6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", + "trail_name": "spooler-ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", "artifact_status": null } } @@ -1959,24 +1979,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "web-ci", - "trail_name": "5e4b9873df93525c041c386c06e0ab8fc36b6f33", + "flow_name": "spooler-ci", + "trail_name": "dc7dea2d9086fcdfe4629f3ab02501ed92aad1bb", "artifact_status": null } }, { "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "web-6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", + "flow_name": "production-promotion", + "trail_name": "promote-all-33", "artifact_status": null } }, { "type": "rule_satisfied", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-33", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "spooler-ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", "artifact_status": null } }, @@ -1984,7 +2004,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "web-6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", + "trail_name": "spooler-ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", "artifact_status": null } } @@ -2004,24 +2024,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "web-ci", - "trail_name": "5e4b9873df93525c041c386c06e0ab8fc36b6f33", + "flow_name": "spooler-ci", + "trail_name": "dc7dea2d9086fcdfe4629f3ab02501ed92aad1bb", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "web-6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", + "flow_name": "production-promotion", + "trail_name": "promote-all-33", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-33", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "spooler-ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", "artifact_status": "COMPLIANT" } }, @@ -2029,7 +2049,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "web-6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", + "trail_name": "spooler-ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", "artifact_status": "COMPLIANT" } } @@ -2048,14 +2068,14 @@ kosli get snapshot aws-prod --output=json "for_control": "SDLC-CTRL-0002" } }, - "satisfied": true, - "ignored": false, + "satisfied": null, + "ignored": true, "resolutions": [ { - "type": "rule_satisfied", + "type": "rule_not_applicable", "context": { - "flow_name": "web-ci", - "trail_name": "5e4b9873df93525c041c386c06e0ab8fc36b6f33", + "flow_name": "spooler-ci", + "trail_name": "dc7dea2d9086fcdfe4629f3ab02501ed92aad1bb", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -2063,8 +2083,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "web-6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", + "flow_name": "production-promotion", + "trail_name": "promote-all-33", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -2072,8 +2092,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-33", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "spooler-ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -2082,7 +2102,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "web-6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", + "trail_name": "spooler-ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -2110,24 +2130,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "web-ci", - "trail_name": "5e4b9873df93525c041c386c06e0ab8fc36b6f33", + "flow_name": "spooler-ci", + "trail_name": "dc7dea2d9086fcdfe4629f3ab02501ed92aad1bb", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "web-6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", + "flow_name": "production-promotion", + "trail_name": "promote-all-33", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-33", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "spooler-ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", "artifact_status": null } }, @@ -2135,7 +2155,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "web-6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", + "trail_name": "spooler-ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", "artifact_status": null } } @@ -2155,24 +2175,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "web-ci", - "trail_name": "5e4b9873df93525c041c386c06e0ab8fc36b6f33", + "flow_name": "spooler-ci", + "trail_name": "dc7dea2d9086fcdfe4629f3ab02501ed92aad1bb", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "web-6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", + "flow_name": "production-promotion", + "trail_name": "promote-all-33", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-33", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "spooler-ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", "artifact_status": "COMPLIANT" } }, @@ -2180,7 +2200,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "web-6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", + "trail_name": "spooler-ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", "artifact_status": "COMPLIANT" } } @@ -2205,8 +2225,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "web-ci", - "trail_name": "5e4b9873df93525c041c386c06e0ab8fc36b6f33", + "flow_name": "spooler-ci", + "trail_name": "dc7dea2d9086fcdfe4629f3ab02501ed92aad1bb", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -2214,8 +2234,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "web-6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", + "flow_name": "production-promotion", + "trail_name": "promote-all-33", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -2223,8 +2243,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-33", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "spooler-ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -2233,7 +2253,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "web-6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", + "trail_name": "spooler-ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -2261,24 +2281,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "web-ci", - "trail_name": "5e4b9873df93525c041c386c06e0ab8fc36b6f33", + "flow_name": "spooler-ci", + "trail_name": "dc7dea2d9086fcdfe4629f3ab02501ed92aad1bb", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "web-6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", + "flow_name": "production-promotion", + "trail_name": "promote-all-33", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-33", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "spooler-ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", "artifact_status": null } }, @@ -2286,7 +2306,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "web-6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", + "trail_name": "spooler-ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", "artifact_status": null } } @@ -2306,24 +2326,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "web-ci", - "trail_name": "5e4b9873df93525c041c386c06e0ab8fc36b6f33", + "flow_name": "spooler-ci", + "trail_name": "dc7dea2d9086fcdfe4629f3ab02501ed92aad1bb", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "web-6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", + "flow_name": "production-promotion", + "trail_name": "promote-all-33", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-33", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "spooler-ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", "artifact_status": "COMPLIANT" } }, @@ -2331,7 +2351,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "web-6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", + "trail_name": "spooler-ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", "artifact_status": "COMPLIANT" } } @@ -2356,24 +2376,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "web-ci", - "trail_name": "5e4b9873df93525c041c386c06e0ab8fc36b6f33", + "flow_name": "spooler-ci", + "trail_name": "dc7dea2d9086fcdfe4629f3ab02501ed92aad1bb", "artifact_status": null } }, { - "type": "rule_not_applicable", + "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "web-6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", + "flow_name": "production-promotion", + "trail_name": "promote-all-33", "artifact_status": null } }, { - "type": "rule_satisfied", + "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-33", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "spooler-ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", "artifact_status": null } }, @@ -2381,7 +2401,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "web-6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", + "trail_name": "spooler-ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", "artifact_status": null } } @@ -2408,24 +2428,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "web-ci", - "trail_name": "5e4b9873df93525c041c386c06e0ab8fc36b6f33", + "flow_name": "spooler-ci", + "trail_name": "dc7dea2d9086fcdfe4629f3ab02501ed92aad1bb", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "web-6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", + "flow_name": "production-promotion", + "trail_name": "promote-all-33", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-33", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "spooler-ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", "artifact_status": null } }, @@ -2433,7 +2453,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "web-6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", + "trail_name": "spooler-ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", "artifact_status": null } } @@ -2459,24 +2479,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "web-ci", - "trail_name": "5e4b9873df93525c041c386c06e0ab8fc36b6f33", + "flow_name": "spooler-ci", + "trail_name": "dc7dea2d9086fcdfe4629f3ab02501ed92aad1bb", "artifact_status": "COMPLIANT" } }, { - "type": "rule_not_applicable", + "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "web-6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", + "flow_name": "production-promotion", + "trail_name": "promote-all-33", "artifact_status": "COMPLIANT" } }, { - "type": "rule_satisfied", + "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-33", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "spooler-ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", "artifact_status": "COMPLIANT" } }, @@ -2484,7 +2504,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "web-6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", + "trail_name": "spooler-ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", "artifact_status": "COMPLIANT" } } @@ -2495,102 +2515,69 @@ kosli get snapshot aws-prod --output=json } ], "reasons_for_incompliance": [], - "fingerprint": "6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", + "fingerprint": "ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", "creationTimestamp": [ - 1786425419, - 1786425419, - 1786425419 + 1786425512 ], "pods": null, "annotation": { "type": "unchanged", - "was": 3, - "now": 3 + "was": 1, + "now": 1 }, - "flow_name": "web-ci", - "git_commit": "5e4b9873df93525c041c386c06e0ab8fc36b6f33", - "commit_url": "https://github.com/cyber-dojo/web/commit/5e4b9873df93525c041c386c06e0ab8fc36b6f33", - "html_url": "https://app.kosli.com/cyber-dojo/flows/web-ci/artifacts/6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd?artifact_id=f658e6e3-9ce8-462f-a29e-a2cc6f7b", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/web-ci", + "flow_name": "spooler-ci", + "git_commit": "dc7dea2d9086fcdfe4629f3ab02501ed92aad1bb", + "commit_url": "https://github.com/cyber-dojo/spooler/commit/dc7dea2d9086fcdfe4629f3ab02501ed92aad1bb", + "html_url": "https://app.kosli.com/cyber-dojo/flows/spooler-ci/artifacts/ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0?artifact_id=df2dcc5e-bb07-40e8-b013-9ac60f42", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/spooler-ci", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/web/compare/0c31ab46a7d8c7d34d2ce0654dc09f8ae4229c7e...5e4b9873df93525c041c386c06e0ab8fc36b6f33", - "previous_git_commit": "0c31ab46a7d8c7d34d2ce0654dc09f8ae4229c7e", - "previous_fingerprint": "1e03ce9811f7ffaa0d00bb4da3dbc60e939e6d1b3f8e87b88a99121dca481018", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:0c31ab4@sha256:1e03ce9811f7ffaa0d00bb4da3dbc60e939e6d1b3f8e87b88a99121dca481018", + "diff_url": "https://github.com/cyber-dojo/spooler/compare/c81791fd10558a59f83876137fb021abcd89f262...dc7dea2d9086fcdfe4629f3ab02501ed92aad1bb", + "previous_git_commit": "c81791fd10558a59f83876137fb021abcd89f262", + "previous_fingerprint": "6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/spooler:c81791f@sha256:6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/web/commit/0c31ab46a7d8c7d34d2ce0654dc09f8ae4229c7e", - "previous_trail_name": "0c31ab46a7d8c7d34d2ce0654dc09f8ae4229c7e", - "previous_template_reference_name": "web" + "previous_git_commit_url": "https://github.com/cyber-dojo/spooler/commit/c81791fd10558a59f83876137fb021abcd89f262", + "previous_trail_name": "c81791fd10558a59f83876137fb021abcd89f262", + "previous_template_reference_name": "spooler" }, - "commit_lead_time": 58766.0, + "commit_lead_time": 171872.0, "flows": [ { - "flow_name": "web-ci", - "trail_name": "5e4b9873df93525c041c386c06e0ab8fc36b6f33", - "template_reference_name": "web", - "git_commit": "5e4b9873df93525c041c386c06e0ab8fc36b6f33", - "commit_url": "https://github.com/cyber-dojo/web/commit/5e4b9873df93525c041c386c06e0ab8fc36b6f33", + "flow_name": "spooler-ci", + "trail_name": "dc7dea2d9086fcdfe4629f3ab02501ed92aad1bb", + "template_reference_name": "spooler", + "git_commit": "dc7dea2d9086fcdfe4629f3ab02501ed92aad1bb", + "commit_url": "https://github.com/cyber-dojo/spooler/commit/dc7dea2d9086fcdfe4629f3ab02501ed92aad1bb", "git_commit_info": { - "sha1": "5e4b9873df93525c041c386c06e0ab8fc36b6f33", - "message": "Name the creation-event rule instead of restating it (#417)\n\nDeciding whether the review navigator's activity test (events.length > 1)\n agreed with the dashboard's (any event with index != 0) meant reading five\n files and saver's event-placement code, because the same fact - event 0 is\n the kata's creation, anything after it is something someone did - was spelled\n differently at every site. The two rules do agree, but nothing in the code\n said so, so the only way to find out was to go and check.\n\n cd.lib now carries isCreationEvent(event) and hasActivity(events), each\n documenting the invariant it rests on: an event's index is its position in the\n array, because saver places every write at head+1. The review partials ask\n through them rather than restating index==0 or length==1.\n\n Two sites keep their own spelling on purpose. previousIndex's index == 0 reads\n as array arithmetic rather than the creation rule, and kata_app has the only\n Ruby site in this repo, so a predicate there would add indirection without\n removing duplication.\n\n The avatars_tests fixtures now hold real event objects rather than bare\n integers, because the rule reads an event's index. Those tests still do not\n run: there is no jest here and require('./avatars') resolves to nothing.", + "sha1": "dc7dea2d9086fcdfe4629f3ab02501ed92aad1bb", + "message": "Merge pull request #14 from cyber-dojo/fix-exit-non-zero\n\nMake exit_non_zero actually exit", "author": "Jon Jagger ", "branch": "", - "timestamp": 1786366653.0, - "url": "https://github.com/cyber-dojo/web/commit/5e4b9873df93525c041c386c06e0ab8fc36b6f33" - }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/web-ci/artifacts/6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd?artifact_id=f658e6e3-9ce8-462f-a29e-a2cc6f7b", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/web-ci", - "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/web/compare/0c31ab46a7d8c7d34d2ce0654dc09f8ae4229c7e...5e4b9873df93525c041c386c06e0ab8fc36b6f33", - "previous_git_commit": "0c31ab46a7d8c7d34d2ce0654dc09f8ae4229c7e", - "previous_fingerprint": "1e03ce9811f7ffaa0d00bb4da3dbc60e939e6d1b3f8e87b88a99121dca481018", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:0c31ab4@sha256:1e03ce9811f7ffaa0d00bb4da3dbc60e939e6d1b3f8e87b88a99121dca481018", - "previous_artifact_compliance_state": "COMPLIANT", - "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/web/commit/0c31ab46a7d8c7d34d2ce0654dc09f8ae4229c7e", - "previous_trail_name": "0c31ab46a7d8c7d34d2ce0654dc09f8ae4229c7e", - "previous_template_reference_name": "web" - }, - "commit_lead_time": 58766.0, - "artifact_compliance_in_flow": true, - "flow_reasons_for_non_compliance": [] - }, - { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "web-6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", - "template_reference_name": "web", - "git_commit": "c0666c020044ac5b5181999ec153db1e7f6cd303", - "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303", - "git_commit_info": { - "sha1": "c0666c020044ac5b5181999ec153db1e7f6cd303", - "message": "Drop lone use of = separator on Kosli CLI boolean flag", - "author": "JonJagger ", - "branch": "main", - "timestamp": 1785316951.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303" + "timestamp": 1786253640.0, + "url": "https://github.com/cyber-dojo/spooler/commit/dc7dea2d9086fcdfe4629f3ab02501ed92aad1bb" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd?artifact_id=da135937-1562-4662-b672-53688f17", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact", + "html_url": "https://app.kosli.com/cyber-dojo/flows/spooler-ci/artifacts/ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0?artifact_id=df2dcc5e-bb07-40e8-b013-9ac60f42", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/spooler-ci", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7...c0666c020044ac5b5181999ec153db1e7f6cd303", - "previous_git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "previous_fingerprint": "0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:3f0b997@sha256:0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972", + "diff_url": "https://github.com/cyber-dojo/spooler/compare/c81791fd10558a59f83876137fb021abcd89f262...dc7dea2d9086fcdfe4629f3ab02501ed92aad1bb", + "previous_git_commit": "c81791fd10558a59f83876137fb021abcd89f262", + "previous_fingerprint": "6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/spooler:c81791f@sha256:6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "previous_trail_name": "web-0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972", - "previous_template_reference_name": "web" + "previous_git_commit_url": "https://github.com/cyber-dojo/spooler/commit/c81791fd10558a59f83876137fb021abcd89f262", + "previous_trail_name": "c81791fd10558a59f83876137fb021abcd89f262", + "previous_template_reference_name": "spooler" }, - "commit_lead_time": 1108468.0, + "commit_lead_time": 171872.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "production-promotion", "trail_name": "promote-all-33", - "template_reference_name": "web", + "template_reference_name": "spooler", "git_commit": "7494758f8bbc4e66cb5df90ef4cd6b72d75ca584", "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/7494758f8bbc4e66cb5df90ef4cd6b72d75ca584", "git_commit_info": { @@ -2601,27 +2588,27 @@ kosli get snapshot aws-prod --output=json "timestamp": 1785316994.0, "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/7494758f8bbc4e66cb5df90ef4cd6b72d75ca584" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd?artifact_id=5254e39c-72c5-4946-86ed-08f7b11a", + "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0?artifact_id=3c4a58c5-2e1f-4f22-b774-45e5f2b0", "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/compare/7494758f8bbc4e66cb5df90ef4cd6b72d75ca584...7494758f8bbc4e66cb5df90ef4cd6b72d75ca584", - "previous_git_commit": "7494758f8bbc4e66cb5df90ef4cd6b72d75ca584", - "previous_fingerprint": "1e03ce9811f7ffaa0d00bb4da3dbc60e939e6d1b3f8e87b88a99121dca481018", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:0c31ab4@sha256:1e03ce9811f7ffaa0d00bb4da3dbc60e939e6d1b3f8e87b88a99121dca481018", + "diff_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/compare/81c216a55b2cb1787645e699ceaceca868cad253...7494758f8bbc4e66cb5df90ef4cd6b72d75ca584", + "previous_git_commit": "81c216a55b2cb1787645e699ceaceca868cad253", + "previous_fingerprint": "6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/spooler:c81791f@sha256:6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/7494758f8bbc4e66cb5df90ef4cd6b72d75ca584", - "previous_trail_name": "promotion-one-157", - "previous_template_reference_name": "web" + "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253", + "previous_trail_name": "promotion-one-145", + "previous_template_reference_name": "spooler" }, - "commit_lead_time": 1108425.0, + "commit_lead_time": 1108518.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "web-6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", - "template_reference_name": "web", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "spooler-ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", + "template_reference_name": "spooler", "git_commit": "10203d5d23f93844726f204390cf3d5ca8d5c913", "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/10203d5d23f93844726f204390cf3d5ca8d5c913", "git_commit_info": { @@ -2632,32 +2619,43 @@ kosli get snapshot aws-prod --output=json "timestamp": 1786602393.0, "url": "https://github.com/cyber-dojo/snyk-scanning/commit/10203d5d23f93844726f204390cf3d5ca8d5c913" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd?artifact_id=9d213801-fb65-4435-aa44-8eec7607", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact", - "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/00c479764cb9eca038fdaaaef108672d0bb0ed26...10203d5d23f93844726f204390cf3d5ca8d5c913", - "previous_git_commit": "00c479764cb9eca038fdaaaef108672d0bb0ed26", - "previous_fingerprint": "29c69c2f30f261a26fff4793fd8ae44b9081def1d4bcaaa27b0fef0501d949e4", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:f66cc5c@sha256:29c69c2f30f261a26fff4793fd8ae44b9081def1d4bcaaa27b0fef0501d949e4", - "previous_artifact_compliance_state": "COMPLIANT", - "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/00c479764cb9eca038fdaaaef108672d0bb0ed26", - "previous_trail_name": "web-29c69c2f30f261a26fff4793fd8ae44b9081def1d4bcaaa27b0fef0501d949e4", - "previous_template_reference_name": "web" + "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0?artifact_id=2d1fc9ff-2b3c-4fb6-a4df-51f64b71", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact", + "deployment_diff": null, + "commit_lead_time": -176881.0, + "artifact_compliance_in_flow": true, + "flow_reasons_for_non_compliance": [] + }, + { + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "spooler-ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", + "template_reference_name": "spooler", + "git_commit": "ed3c81d7322bb8058615095f4aab28c147c53933", + "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/ed3c81d7322bb8058615095f4aab28c147c53933", + "git_commit_info": { + "sha1": "ed3c81d7322bb8058615095f4aab28c147c53933", + "message": "Unpack one pinned commit instead of fetching each file\n\n a0c005a moved these two jobs' files to RUNNER_TEMP, which kept them out of\n the caller's checkout but left the prefix repeated at every use. The paths\n are absolute because the run steps stay in the checkout, where the Kosli\n CLI reads git commit information from the working directory, so the prefix\n cannot be dropped. It can only be folded into the definitions, and a\n literal /tmp folds where runner.temp does not: the runner context is\n unavailable in workflow- and job-level env blocks. Both jobs are pinned to\n ubuntu-latest, one fresh VM per job, so /tmp neither collides nor persists.\n\n The files also arrived as five separate fetches of main, one per file, so a\n push landing mid-run could pair a rego policy with params from a different\n commit. find-snyk-vulns already checks this repo out, so it now publishes\n the SHA it resolved, and the two later jobs unpack that exact commit as a\n single tarball. One run reads one version.\n\n An env-var's prefix now says where its file came from: SNYK_SCANNING_ from\n this repo at the pinned commit, CALLER_ from the repo being scanned, TMP_\n produced by the run. That split is worth naming because only one of these\n files is the caller's, and it is the one .snyk that the decision attests\n against. Two bare filenames survive because an artifact name cannot\n contain a '/'.\n\n fetch-url-to-file now has exactly one caller, for that .snyk.", + "author": "JonJagger ", + "branch": "main", + "timestamp": 1787661987.0, + "url": "https://github.com/cyber-dojo/snyk-scanning/commit/ed3c81d7322bb8058615095f4aab28c147c53933" }, - "commit_lead_time": -176974.0, + "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0?artifact_id=38623356-21cb-4f5f-88b3-356a860e", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact", + "deployment_diff": null, + "commit_lead_time": -1236475.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] } ], "ecs_context": { - "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/1af4cc2636fa44c3867fc792d9285670", + "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/d965b62fd5c64cd98456881feb1352c7", "cluster_name": null, "service_name": null } }, { - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/creator:83357f1@sha256:adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:5e4b987@sha256:6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", "compliant": true, "deployments": [], "policy_decisions": [ @@ -2679,8 +2677,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "creator-ci", - "trail_name": "83357f112ef5c10b157cb84732c77965cc8ddc48", + "flow_name": "web-ci", + "trail_name": "5e4b9873df93525c041c386c06e0ab8fc36b6f33", "artifact_status": null } }, @@ -2688,7 +2686,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "creator-adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", + "trail_name": "web-6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", "artifact_status": null } }, @@ -2704,7 +2702,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "creator-adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", + "trail_name": "web-6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", "artifact_status": null } } @@ -2724,8 +2722,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "creator-ci", - "trail_name": "83357f112ef5c10b157cb84732c77965cc8ddc48", + "flow_name": "web-ci", + "trail_name": "5e4b9873df93525c041c386c06e0ab8fc36b6f33", "artifact_status": "COMPLIANT" } }, @@ -2733,7 +2731,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "creator-adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", + "trail_name": "web-6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", "artifact_status": "COMPLIANT" } }, @@ -2749,7 +2747,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "creator-adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", + "trail_name": "web-6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", "artifact_status": "COMPLIANT" } } @@ -2774,8 +2772,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "creator-ci", - "trail_name": "83357f112ef5c10b157cb84732c77965cc8ddc48", + "flow_name": "web-ci", + "trail_name": "5e4b9873df93525c041c386c06e0ab8fc36b6f33", "artifact_status": null } }, @@ -2783,7 +2781,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "creator-adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", + "trail_name": "web-6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", "artifact_status": null } }, @@ -2799,7 +2797,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "creator-adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", + "trail_name": "web-6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", "artifact_status": null } } @@ -2826,8 +2824,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "creator-ci", - "trail_name": "83357f112ef5c10b157cb84732c77965cc8ddc48", + "flow_name": "web-ci", + "trail_name": "5e4b9873df93525c041c386c06e0ab8fc36b6f33", "artifact_status": null } }, @@ -2835,7 +2833,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "creator-adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", + "trail_name": "web-6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", "artifact_status": null } }, @@ -2851,7 +2849,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "creator-adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", + "trail_name": "web-6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", "artifact_status": null } } @@ -2871,8 +2869,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "creator-ci", - "trail_name": "83357f112ef5c10b157cb84732c77965cc8ddc48", + "flow_name": "web-ci", + "trail_name": "5e4b9873df93525c041c386c06e0ab8fc36b6f33", "artifact_status": "COMPLIANT" } }, @@ -2880,7 +2878,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "creator-adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", + "trail_name": "web-6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", "artifact_status": "COMPLIANT" } }, @@ -2896,7 +2894,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "creator-adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", + "trail_name": "web-6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", "artifact_status": "COMPLIANT" } } @@ -2921,8 +2919,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "creator-ci", - "trail_name": "83357f112ef5c10b157cb84732c77965cc8ddc48", + "flow_name": "web-ci", + "trail_name": "5e4b9873df93525c041c386c06e0ab8fc36b6f33", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -2931,7 +2929,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "creator-adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", + "trail_name": "web-6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -2949,7 +2947,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "creator-adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", + "trail_name": "web-6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -2977,8 +2975,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "creator-ci", - "trail_name": "83357f112ef5c10b157cb84732c77965cc8ddc48", + "flow_name": "web-ci", + "trail_name": "5e4b9873df93525c041c386c06e0ab8fc36b6f33", "artifact_status": null } }, @@ -2986,7 +2984,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "creator-adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", + "trail_name": "web-6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", "artifact_status": null } }, @@ -3002,7 +3000,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "creator-adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", + "trail_name": "web-6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", "artifact_status": null } } @@ -3022,8 +3020,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "creator-ci", - "trail_name": "83357f112ef5c10b157cb84732c77965cc8ddc48", + "flow_name": "web-ci", + "trail_name": "5e4b9873df93525c041c386c06e0ab8fc36b6f33", "artifact_status": "COMPLIANT" } }, @@ -3031,7 +3029,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "creator-adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", + "trail_name": "web-6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", "artifact_status": "COMPLIANT" } }, @@ -3047,7 +3045,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "creator-adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", + "trail_name": "web-6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", "artifact_status": "COMPLIANT" } } @@ -3072,8 +3070,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "creator-ci", - "trail_name": "83357f112ef5c10b157cb84732c77965cc8ddc48", + "flow_name": "web-ci", + "trail_name": "5e4b9873df93525c041c386c06e0ab8fc36b6f33", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -3082,7 +3080,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "creator-adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", + "trail_name": "web-6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -3100,7 +3098,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "creator-adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", + "trail_name": "web-6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -3128,8 +3126,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "creator-ci", - "trail_name": "83357f112ef5c10b157cb84732c77965cc8ddc48", + "flow_name": "web-ci", + "trail_name": "5e4b9873df93525c041c386c06e0ab8fc36b6f33", "artifact_status": null } }, @@ -3137,7 +3135,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "creator-adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", + "trail_name": "web-6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", "artifact_status": null } }, @@ -3153,7 +3151,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "creator-adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", + "trail_name": "web-6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", "artifact_status": null } } @@ -3173,8 +3171,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "creator-ci", - "trail_name": "83357f112ef5c10b157cb84732c77965cc8ddc48", + "flow_name": "web-ci", + "trail_name": "5e4b9873df93525c041c386c06e0ab8fc36b6f33", "artifact_status": "COMPLIANT" } }, @@ -3182,7 +3180,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "creator-adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", + "trail_name": "web-6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", "artifact_status": "COMPLIANT" } }, @@ -3198,7 +3196,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "creator-adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", + "trail_name": "web-6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", "artifact_status": "COMPLIANT" } } @@ -3223,8 +3221,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "creator-ci", - "trail_name": "83357f112ef5c10b157cb84732c77965cc8ddc48", + "flow_name": "web-ci", + "trail_name": "5e4b9873df93525c041c386c06e0ab8fc36b6f33", "artifact_status": null } }, @@ -3232,7 +3230,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "creator-adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", + "trail_name": "web-6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", "artifact_status": null } }, @@ -3248,7 +3246,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "creator-adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", + "trail_name": "web-6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", "artifact_status": null } } @@ -3275,8 +3273,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "creator-ci", - "trail_name": "83357f112ef5c10b157cb84732c77965cc8ddc48", + "flow_name": "web-ci", + "trail_name": "5e4b9873df93525c041c386c06e0ab8fc36b6f33", "artifact_status": null } }, @@ -3284,7 +3282,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "creator-adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", + "trail_name": "web-6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", "artifact_status": null } }, @@ -3300,7 +3298,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "creator-adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", + "trail_name": "web-6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", "artifact_status": null } } @@ -3326,8 +3324,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "creator-ci", - "trail_name": "83357f112ef5c10b157cb84732c77965cc8ddc48", + "flow_name": "web-ci", + "trail_name": "5e4b9873df93525c041c386c06e0ab8fc36b6f33", "artifact_status": "COMPLIANT" } }, @@ -3335,7 +3333,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "creator-adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", + "trail_name": "web-6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", "artifact_status": "COMPLIANT" } }, @@ -3351,7 +3349,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "creator-adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", + "trail_name": "web-6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", "artifact_status": "COMPLIANT" } } @@ -3362,69 +3360,71 @@ kosli get snapshot aws-prod --output=json } ], "reasons_for_incompliance": [], - "fingerprint": "adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", + "fingerprint": "6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", "creationTimestamp": [ - 1786425173 + 1786425419, + 1786425419, + 1786425419 ], "pods": null, "annotation": { "type": "unchanged", - "was": 1, - "now": 1 + "was": 3, + "now": 3 }, - "flow_name": "creator-ci", - "git_commit": "83357f112ef5c10b157cb84732c77965cc8ddc48", - "commit_url": "https://github.com/cyber-dojo/creator/commit/83357f112ef5c10b157cb84732c77965cc8ddc48", - "html_url": "https://app.kosli.com/cyber-dojo/flows/creator-ci/artifacts/adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b?artifact_id=11539f6a-befb-4b79-9484-fd9f25d3", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/creator-ci", + "flow_name": "web-ci", + "git_commit": "5e4b9873df93525c041c386c06e0ab8fc36b6f33", + "commit_url": "https://github.com/cyber-dojo/web/commit/5e4b9873df93525c041c386c06e0ab8fc36b6f33", + "html_url": "https://app.kosli.com/cyber-dojo/flows/web-ci/artifacts/6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd?artifact_id=f658e6e3-9ce8-462f-a29e-a2cc6f7b", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/web-ci", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/creator/compare/89019f6d8059406e56fa499b2dec2dbf93f4d5c7...83357f112ef5c10b157cb84732c77965cc8ddc48", - "previous_git_commit": "89019f6d8059406e56fa499b2dec2dbf93f4d5c7", - "previous_fingerprint": "aa64db9bd0519d00fba81faf620d0bb1aae3d13839b585ed2ec8179d5e035a34", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/creator:89019f6@sha256:aa64db9bd0519d00fba81faf620d0bb1aae3d13839b585ed2ec8179d5e035a34", + "diff_url": "https://github.com/cyber-dojo/web/compare/0c31ab46a7d8c7d34d2ce0654dc09f8ae4229c7e...5e4b9873df93525c041c386c06e0ab8fc36b6f33", + "previous_git_commit": "0c31ab46a7d8c7d34d2ce0654dc09f8ae4229c7e", + "previous_fingerprint": "1e03ce9811f7ffaa0d00bb4da3dbc60e939e6d1b3f8e87b88a99121dca481018", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:0c31ab4@sha256:1e03ce9811f7ffaa0d00bb4da3dbc60e939e6d1b3f8e87b88a99121dca481018", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/creator/commit/89019f6d8059406e56fa499b2dec2dbf93f4d5c7", - "previous_trail_name": "89019f6d8059406e56fa499b2dec2dbf93f4d5c7", - "previous_template_reference_name": "creator" + "previous_git_commit_url": "https://github.com/cyber-dojo/web/commit/0c31ab46a7d8c7d34d2ce0654dc09f8ae4229c7e", + "previous_trail_name": "0c31ab46a7d8c7d34d2ce0654dc09f8ae4229c7e", + "previous_template_reference_name": "web" }, - "commit_lead_time": 660751.0, + "commit_lead_time": 58766.0, "flows": [ { - "flow_name": "creator-ci", - "trail_name": "83357f112ef5c10b157cb84732c77965cc8ddc48", - "template_reference_name": "creator", - "git_commit": "83357f112ef5c10b157cb84732c77965cc8ddc48", - "commit_url": "https://github.com/cyber-dojo/creator/commit/83357f112ef5c10b157cb84732c77965cc8ddc48", + "flow_name": "web-ci", + "trail_name": "5e4b9873df93525c041c386c06e0ab8fc36b6f33", + "template_reference_name": "web", + "git_commit": "5e4b9873df93525c041c386c06e0ab8fc36b6f33", + "commit_url": "https://github.com/cyber-dojo/web/commit/5e4b9873df93525c041c386c06e0ab8fc36b6f33", "git_commit_info": { - "sha1": "83357f112ef5c10b157cb84732c77965cc8ddc48", - "message": "Run the linter as the invoking user (#53)\n\nThe rubocop container wrote reports/rubocop/junit.xml as its own user, so on a\n linux runner the file belongs to someone else. That broke the attestation added\n in #52: kosli attest copies evidence with PreserveOwner when given more than one\n path, and a non-root process cannot chown a file to another uid.\n\n chown /tmp/1800768837/reports/rubocop/junit.xml: operation not permitted\n\n The single-path form tars in place and never copies, which is why --results-dir\n alone had been fine and adding --attachments broke it.\n\n Passing --user makes the container write as whoever ran it. Worth doing on its\n own account - a container should not leave files you cannot delete in your\n working tree - and it sidesteps the CLI's behaviour without waiting on it. That\n behaviour looks like a bug and is written up in\n ../kosli-cli-preserve-owner-bug.md for an issue against kosli-dev/cli.\n\n Docker Desktop maps ownership back to the calling user, so this is invisible on a\n mac and only shows on the runner.", + "sha1": "5e4b9873df93525c041c386c06e0ab8fc36b6f33", + "message": "Name the creation-event rule instead of restating it (#417)\n\nDeciding whether the review navigator's activity test (events.length > 1)\n agreed with the dashboard's (any event with index != 0) meant reading five\n files and saver's event-placement code, because the same fact - event 0 is\n the kata's creation, anything after it is something someone did - was spelled\n differently at every site. The two rules do agree, but nothing in the code\n said so, so the only way to find out was to go and check.\n\n cd.lib now carries isCreationEvent(event) and hasActivity(events), each\n documenting the invariant it rests on: an event's index is its position in the\n array, because saver places every write at head+1. The review partials ask\n through them rather than restating index==0 or length==1.\n\n Two sites keep their own spelling on purpose. previousIndex's index == 0 reads\n as array arithmetic rather than the creation rule, and kata_app has the only\n Ruby site in this repo, so a predicate there would add indirection without\n removing duplication.\n\n The avatars_tests fixtures now hold real event objects rather than bare\n integers, because the rule reads an event's index. Those tests still do not\n run: there is no jest here and require('./avatars') resolves to nothing.", "author": "Jon Jagger ", "branch": "", - "timestamp": 1785764422.0, - "url": "https://github.com/cyber-dojo/creator/commit/83357f112ef5c10b157cb84732c77965cc8ddc48" + "timestamp": 1786366653.0, + "url": "https://github.com/cyber-dojo/web/commit/5e4b9873df93525c041c386c06e0ab8fc36b6f33" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/creator-ci/artifacts/adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b?artifact_id=11539f6a-befb-4b79-9484-fd9f25d3", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/creator-ci", + "html_url": "https://app.kosli.com/cyber-dojo/flows/web-ci/artifacts/6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd?artifact_id=f658e6e3-9ce8-462f-a29e-a2cc6f7b", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/web-ci", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/creator/compare/89019f6d8059406e56fa499b2dec2dbf93f4d5c7...83357f112ef5c10b157cb84732c77965cc8ddc48", - "previous_git_commit": "89019f6d8059406e56fa499b2dec2dbf93f4d5c7", - "previous_fingerprint": "aa64db9bd0519d00fba81faf620d0bb1aae3d13839b585ed2ec8179d5e035a34", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/creator:89019f6@sha256:aa64db9bd0519d00fba81faf620d0bb1aae3d13839b585ed2ec8179d5e035a34", + "diff_url": "https://github.com/cyber-dojo/web/compare/0c31ab46a7d8c7d34d2ce0654dc09f8ae4229c7e...5e4b9873df93525c041c386c06e0ab8fc36b6f33", + "previous_git_commit": "0c31ab46a7d8c7d34d2ce0654dc09f8ae4229c7e", + "previous_fingerprint": "1e03ce9811f7ffaa0d00bb4da3dbc60e939e6d1b3f8e87b88a99121dca481018", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:0c31ab4@sha256:1e03ce9811f7ffaa0d00bb4da3dbc60e939e6d1b3f8e87b88a99121dca481018", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/creator/commit/89019f6d8059406e56fa499b2dec2dbf93f4d5c7", - "previous_trail_name": "89019f6d8059406e56fa499b2dec2dbf93f4d5c7", - "previous_template_reference_name": "creator" + "previous_git_commit_url": "https://github.com/cyber-dojo/web/commit/0c31ab46a7d8c7d34d2ce0654dc09f8ae4229c7e", + "previous_trail_name": "0c31ab46a7d8c7d34d2ce0654dc09f8ae4229c7e", + "previous_template_reference_name": "web" }, - "commit_lead_time": 660751.0, + "commit_lead_time": 58766.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "creator-adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", - "template_reference_name": "creator", + "trail_name": "web-6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", + "template_reference_name": "web", "git_commit": "c0666c020044ac5b5181999ec153db1e7f6cd303", "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303", "git_commit_info": { @@ -3435,27 +3435,27 @@ kosli get snapshot aws-prod --output=json "timestamp": 1785316951.0, "url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b?artifact_id=6feaf5cb-761e-4f05-8591-1db09ac4", + "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd?artifact_id=da135937-1562-4662-b672-53688f17", "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/c0666c020044ac5b5181999ec153db1e7f6cd303...c0666c020044ac5b5181999ec153db1e7f6cd303", - "previous_git_commit": "c0666c020044ac5b5181999ec153db1e7f6cd303", - "previous_fingerprint": "26a4c8a14ccf71978ec75fe01edad50d892d7f9054f95fc41d6922fb42995d59", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/creator:07ed087@sha256:26a4c8a14ccf71978ec75fe01edad50d892d7f9054f95fc41d6922fb42995d59", + "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7...c0666c020044ac5b5181999ec153db1e7f6cd303", + "previous_git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", + "previous_fingerprint": "0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:3f0b997@sha256:0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303", - "previous_trail_name": "creator-26a4c8a14ccf71978ec75fe01edad50d892d7f9054f95fc41d6922fb42995d59", - "previous_template_reference_name": "creator" + "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", + "previous_trail_name": "web-0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972", + "previous_template_reference_name": "web" }, - "commit_lead_time": 1108222.0, + "commit_lead_time": 1108468.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "production-promotion", "trail_name": "promote-all-33", - "template_reference_name": "creator", + "template_reference_name": "web", "git_commit": "7494758f8bbc4e66cb5df90ef4cd6b72d75ca584", "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/7494758f8bbc4e66cb5df90ef4cd6b72d75ca584", "git_commit_info": { @@ -3466,63 +3466,63 @@ kosli get snapshot aws-prod --output=json "timestamp": 1785316994.0, "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/7494758f8bbc4e66cb5df90ef4cd6b72d75ca584" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b?artifact_id=d5412ba4-c8b6-4bf3-8a8f-05f2ed00", + "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd?artifact_id=5254e39c-72c5-4946-86ed-08f7b11a", "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion", "deployment_diff": { "diff_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/compare/7494758f8bbc4e66cb5df90ef4cd6b72d75ca584...7494758f8bbc4e66cb5df90ef4cd6b72d75ca584", "previous_git_commit": "7494758f8bbc4e66cb5df90ef4cd6b72d75ca584", - "previous_fingerprint": "aa64db9bd0519d00fba81faf620d0bb1aae3d13839b585ed2ec8179d5e035a34", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/creator:89019f6@sha256:aa64db9bd0519d00fba81faf620d0bb1aae3d13839b585ed2ec8179d5e035a34", + "previous_fingerprint": "1e03ce9811f7ffaa0d00bb4da3dbc60e939e6d1b3f8e87b88a99121dca481018", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:0c31ab4@sha256:1e03ce9811f7ffaa0d00bb4da3dbc60e939e6d1b3f8e87b88a99121dca481018", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/7494758f8bbc4e66cb5df90ef4cd6b72d75ca584", - "previous_trail_name": "promotion-one-150", - "previous_template_reference_name": "creator" + "previous_trail_name": "promotion-one-157", + "previous_template_reference_name": "web" }, - "commit_lead_time": 1108179.0, + "commit_lead_time": 1108425.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "creator-adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", - "template_reference_name": "creator", - "git_commit": "10203d5d23f93844726f204390cf3d5ca8d5c913", - "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/10203d5d23f93844726f204390cf3d5ca8d5c913", + "trail_name": "web-6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", + "template_reference_name": "web", + "git_commit": "ed3c81d7322bb8058615095f4aab28c147c53933", + "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/ed3c81d7322bb8058615095f4aab28c147c53933", "git_commit_info": { - "sha1": "10203d5d23f93844726f204390cf3d5ca8d5c913", - "message": "Extract the repeated retrying curl into a composite action\n\n The retry flags were pasted into six call sites, so tuning them\n meant six edits with five chances to miss one.\n\n Two of the three jobs check out the caller's repo, where\n ./.github/actions does not resolve, so those name the action by\n its repo path.", + "sha1": "ed3c81d7322bb8058615095f4aab28c147c53933", + "message": "Unpack one pinned commit instead of fetching each file\n\n a0c005a moved these two jobs' files to RUNNER_TEMP, which kept them out of\n the caller's checkout but left the prefix repeated at every use. The paths\n are absolute because the run steps stay in the checkout, where the Kosli\n CLI reads git commit information from the working directory, so the prefix\n cannot be dropped. It can only be folded into the definitions, and a\n literal /tmp folds where runner.temp does not: the runner context is\n unavailable in workflow- and job-level env blocks. Both jobs are pinned to\n ubuntu-latest, one fresh VM per job, so /tmp neither collides nor persists.\n\n The files also arrived as five separate fetches of main, one per file, so a\n push landing mid-run could pair a rego policy with params from a different\n commit. find-snyk-vulns already checks this repo out, so it now publishes\n the SHA it resolved, and the two later jobs unpack that exact commit as a\n single tarball. One run reads one version.\n\n An env-var's prefix now says where its file came from: SNYK_SCANNING_ from\n this repo at the pinned commit, CALLER_ from the repo being scanned, TMP_\n produced by the run. That split is worth naming because only one of these\n files is the caller's, and it is the one .snyk that the decision attests\n against. Two bare filenames survive because an artifact name cannot\n contain a '/'.\n\n fetch-url-to-file now has exactly one caller, for that .snyk.", "author": "JonJagger ", "branch": "main", - "timestamp": 1786602393.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/10203d5d23f93844726f204390cf3d5ca8d5c913" + "timestamp": 1787661987.0, + "url": "https://github.com/cyber-dojo/snyk-scanning/commit/ed3c81d7322bb8058615095f4aab28c147c53933" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b?artifact_id=34fe2ea0-cc82-4a41-9751-5ca5b935", + "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd?artifact_id=f0b44d3b-bff5-45f4-8bda-b6c1b7f6", "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/7172cc22125f480a9f12127edb481a4d84aabea3...10203d5d23f93844726f204390cf3d5ca8d5c913", - "previous_git_commit": "7172cc22125f480a9f12127edb481a4d84aabea3", - "previous_fingerprint": "e8b5e25c5550658cdbd2b8339684b18bce86aaf6538611124ff62f2582c2e5b6", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/creator:a288de5@sha256:e8b5e25c5550658cdbd2b8339684b18bce86aaf6538611124ff62f2582c2e5b6", + "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/00c479764cb9eca038fdaaaef108672d0bb0ed26...ed3c81d7322bb8058615095f4aab28c147c53933", + "previous_git_commit": "00c479764cb9eca038fdaaaef108672d0bb0ed26", + "previous_fingerprint": "29c69c2f30f261a26fff4793fd8ae44b9081def1d4bcaaa27b0fef0501d949e4", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:f66cc5c@sha256:29c69c2f30f261a26fff4793fd8ae44b9081def1d4bcaaa27b0fef0501d949e4", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/7172cc22125f480a9f12127edb481a4d84aabea3", - "previous_trail_name": "creator-e8b5e25c5550658cdbd2b8339684b18bce86aaf6538611124ff62f2582c2e5b6", - "previous_template_reference_name": "creator" + "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/00c479764cb9eca038fdaaaef108672d0bb0ed26", + "previous_trail_name": "web-29c69c2f30f261a26fff4793fd8ae44b9081def1d4bcaaa27b0fef0501d949e4", + "previous_template_reference_name": "web" }, - "commit_lead_time": -177220.0, + "commit_lead_time": -1236568.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] } ], "ecs_context": { - "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/d85a1f3513dd45c788f6341641110bfd", + "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/1af4cc2636fa44c3867fc792d9285670", "cluster_name": null, "service_name": null } }, { - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/differ:108cccf@sha256:31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/creator:83357f1@sha256:adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", "compliant": true, "deployments": [], "policy_decisions": [ @@ -3544,8 +3544,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "differ-ci", - "trail_name": "108cccf9bccf9af5d455db66c250480b53cbecc7", + "flow_name": "creator-ci", + "trail_name": "83357f112ef5c10b157cb84732c77965cc8ddc48", "artifact_status": null } }, @@ -3553,7 +3553,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "differ-31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", + "trail_name": "creator-adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", "artifact_status": null } }, @@ -3569,7 +3569,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "differ-31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", + "trail_name": "creator-adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", "artifact_status": null } } @@ -3589,8 +3589,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "differ-ci", - "trail_name": "108cccf9bccf9af5d455db66c250480b53cbecc7", + "flow_name": "creator-ci", + "trail_name": "83357f112ef5c10b157cb84732c77965cc8ddc48", "artifact_status": "COMPLIANT" } }, @@ -3598,7 +3598,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "differ-31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", + "trail_name": "creator-adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", "artifact_status": "COMPLIANT" } }, @@ -3614,7 +3614,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "differ-31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", + "trail_name": "creator-adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", "artifact_status": "COMPLIANT" } } @@ -3639,8 +3639,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "differ-ci", - "trail_name": "108cccf9bccf9af5d455db66c250480b53cbecc7", + "flow_name": "creator-ci", + "trail_name": "83357f112ef5c10b157cb84732c77965cc8ddc48", "artifact_status": null } }, @@ -3648,7 +3648,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "differ-31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", + "trail_name": "creator-adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", "artifact_status": null } }, @@ -3664,7 +3664,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "differ-31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", + "trail_name": "creator-adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", "artifact_status": null } } @@ -3691,8 +3691,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "differ-ci", - "trail_name": "108cccf9bccf9af5d455db66c250480b53cbecc7", + "flow_name": "creator-ci", + "trail_name": "83357f112ef5c10b157cb84732c77965cc8ddc48", "artifact_status": null } }, @@ -3700,7 +3700,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "differ-31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", + "trail_name": "creator-adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", "artifact_status": null } }, @@ -3716,7 +3716,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "differ-31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", + "trail_name": "creator-adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", "artifact_status": null } } @@ -3736,8 +3736,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "differ-ci", - "trail_name": "108cccf9bccf9af5d455db66c250480b53cbecc7", + "flow_name": "creator-ci", + "trail_name": "83357f112ef5c10b157cb84732c77965cc8ddc48", "artifact_status": "COMPLIANT" } }, @@ -3745,7 +3745,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "differ-31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", + "trail_name": "creator-adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", "artifact_status": "COMPLIANT" } }, @@ -3761,7 +3761,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "differ-31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", + "trail_name": "creator-adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", "artifact_status": "COMPLIANT" } } @@ -3786,8 +3786,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "differ-ci", - "trail_name": "108cccf9bccf9af5d455db66c250480b53cbecc7", + "flow_name": "creator-ci", + "trail_name": "83357f112ef5c10b157cb84732c77965cc8ddc48", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -3796,7 +3796,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "differ-31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", + "trail_name": "creator-adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -3814,7 +3814,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "differ-31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", + "trail_name": "creator-adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -3842,8 +3842,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "differ-ci", - "trail_name": "108cccf9bccf9af5d455db66c250480b53cbecc7", + "flow_name": "creator-ci", + "trail_name": "83357f112ef5c10b157cb84732c77965cc8ddc48", "artifact_status": null } }, @@ -3851,7 +3851,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "differ-31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", + "trail_name": "creator-adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", "artifact_status": null } }, @@ -3867,7 +3867,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "differ-31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", + "trail_name": "creator-adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", "artifact_status": null } } @@ -3887,8 +3887,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "differ-ci", - "trail_name": "108cccf9bccf9af5d455db66c250480b53cbecc7", + "flow_name": "creator-ci", + "trail_name": "83357f112ef5c10b157cb84732c77965cc8ddc48", "artifact_status": "COMPLIANT" } }, @@ -3896,7 +3896,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "differ-31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", + "trail_name": "creator-adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", "artifact_status": "COMPLIANT" } }, @@ -3912,7 +3912,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "differ-31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", + "trail_name": "creator-adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", "artifact_status": "COMPLIANT" } } @@ -3937,8 +3937,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "differ-ci", - "trail_name": "108cccf9bccf9af5d455db66c250480b53cbecc7", + "flow_name": "creator-ci", + "trail_name": "83357f112ef5c10b157cb84732c77965cc8ddc48", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -3947,7 +3947,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "differ-31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", + "trail_name": "creator-adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -3965,7 +3965,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "differ-31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", + "trail_name": "creator-adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -3993,8 +3993,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "differ-ci", - "trail_name": "108cccf9bccf9af5d455db66c250480b53cbecc7", + "flow_name": "creator-ci", + "trail_name": "83357f112ef5c10b157cb84732c77965cc8ddc48", "artifact_status": null } }, @@ -4002,7 +4002,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "differ-31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", + "trail_name": "creator-adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", "artifact_status": null } }, @@ -4018,7 +4018,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "differ-31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", + "trail_name": "creator-adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", "artifact_status": null } } @@ -4038,8 +4038,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "differ-ci", - "trail_name": "108cccf9bccf9af5d455db66c250480b53cbecc7", + "flow_name": "creator-ci", + "trail_name": "83357f112ef5c10b157cb84732c77965cc8ddc48", "artifact_status": "COMPLIANT" } }, @@ -4047,7 +4047,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "differ-31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", + "trail_name": "creator-adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", "artifact_status": "COMPLIANT" } }, @@ -4063,7 +4063,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "differ-31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", + "trail_name": "creator-adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", "artifact_status": "COMPLIANT" } } @@ -4088,8 +4088,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "differ-ci", - "trail_name": "108cccf9bccf9af5d455db66c250480b53cbecc7", + "flow_name": "creator-ci", + "trail_name": "83357f112ef5c10b157cb84732c77965cc8ddc48", "artifact_status": null } }, @@ -4097,7 +4097,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "differ-31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", + "trail_name": "creator-adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", "artifact_status": null } }, @@ -4113,7 +4113,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "differ-31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", + "trail_name": "creator-adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", "artifact_status": null } } @@ -4140,8 +4140,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "differ-ci", - "trail_name": "108cccf9bccf9af5d455db66c250480b53cbecc7", + "flow_name": "creator-ci", + "trail_name": "83357f112ef5c10b157cb84732c77965cc8ddc48", "artifact_status": null } }, @@ -4149,7 +4149,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "differ-31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", + "trail_name": "creator-adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", "artifact_status": null } }, @@ -4165,7 +4165,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "differ-31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", + "trail_name": "creator-adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", "artifact_status": null } } @@ -4191,8 +4191,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "differ-ci", - "trail_name": "108cccf9bccf9af5d455db66c250480b53cbecc7", + "flow_name": "creator-ci", + "trail_name": "83357f112ef5c10b157cb84732c77965cc8ddc48", "artifact_status": "COMPLIANT" } }, @@ -4200,7 +4200,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "differ-31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", + "trail_name": "creator-adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", "artifact_status": "COMPLIANT" } }, @@ -4216,7 +4216,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "differ-31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", + "trail_name": "creator-adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", "artifact_status": "COMPLIANT" } } @@ -4227,9 +4227,9 @@ kosli get snapshot aws-prod --output=json } ], "reasons_for_incompliance": [], - "fingerprint": "31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", + "fingerprint": "adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", "creationTimestamp": [ - 1786425092 + 1786425173 ], "pods": null, "annotation": { @@ -4237,59 +4237,59 @@ kosli get snapshot aws-prod --output=json "was": 1, "now": 1 }, - "flow_name": "differ-ci", - "git_commit": "108cccf9bccf9af5d455db66c250480b53cbecc7", - "commit_url": "https://github.com/cyber-dojo/differ/commit/108cccf9bccf9af5d455db66c250480b53cbecc7", - "html_url": "https://app.kosli.com/cyber-dojo/flows/differ-ci/artifacts/31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac?artifact_id=50b8cff6-1888-4c76-b31a-fdd7a311", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/differ-ci", + "flow_name": "creator-ci", + "git_commit": "83357f112ef5c10b157cb84732c77965cc8ddc48", + "commit_url": "https://github.com/cyber-dojo/creator/commit/83357f112ef5c10b157cb84732c77965cc8ddc48", + "html_url": "https://app.kosli.com/cyber-dojo/flows/creator-ci/artifacts/adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b?artifact_id=11539f6a-befb-4b79-9484-fd9f25d3", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/creator-ci", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/differ/compare/10e162d4e1294815375a31121f14d57e13183b34...108cccf9bccf9af5d455db66c250480b53cbecc7", - "previous_git_commit": "10e162d4e1294815375a31121f14d57e13183b34", - "previous_fingerprint": "f68c19b4ca97267fb5be505ec33eb6b89a5297e9ed7ee40d0a3e88fb4082a6e4", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/differ:10e162d@sha256:f68c19b4ca97267fb5be505ec33eb6b89a5297e9ed7ee40d0a3e88fb4082a6e4", + "diff_url": "https://github.com/cyber-dojo/creator/compare/89019f6d8059406e56fa499b2dec2dbf93f4d5c7...83357f112ef5c10b157cb84732c77965cc8ddc48", + "previous_git_commit": "89019f6d8059406e56fa499b2dec2dbf93f4d5c7", + "previous_fingerprint": "aa64db9bd0519d00fba81faf620d0bb1aae3d13839b585ed2ec8179d5e035a34", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/creator:89019f6@sha256:aa64db9bd0519d00fba81faf620d0bb1aae3d13839b585ed2ec8179d5e035a34", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/differ/commit/10e162d4e1294815375a31121f14d57e13183b34", - "previous_trail_name": "10e162d4e1294815375a31121f14d57e13183b34", - "previous_template_reference_name": "differ" + "previous_git_commit_url": "https://github.com/cyber-dojo/creator/commit/89019f6d8059406e56fa499b2dec2dbf93f4d5c7", + "previous_trail_name": "89019f6d8059406e56fa499b2dec2dbf93f4d5c7", + "previous_template_reference_name": "creator" }, - "commit_lead_time": 162716.0, + "commit_lead_time": 660751.0, "flows": [ { - "flow_name": "differ-ci", - "trail_name": "108cccf9bccf9af5d455db66c250480b53cbecc7", - "template_reference_name": "differ", - "git_commit": "108cccf9bccf9af5d455db66c250480b53cbecc7", - "commit_url": "https://github.com/cyber-dojo/differ/commit/108cccf9bccf9af5d455db66c250480b53cbecc7", + "flow_name": "creator-ci", + "trail_name": "83357f112ef5c10b157cb84732c77965cc8ddc48", + "template_reference_name": "creator", + "git_commit": "83357f112ef5c10b157cb84732c77965cc8ddc48", + "commit_url": "https://github.com/cyber-dojo/creator/commit/83357f112ef5c10b157cb84732c77965cc8ddc48", "git_commit_info": { - "sha1": "108cccf9bccf9af5d455db66c250480b53cbecc7", - "message": "Merge pull request #449 from cyber-dojo/fix-exit-non-zero", - "author": "AlexKantor87 ", + "sha1": "83357f112ef5c10b157cb84732c77965cc8ddc48", + "message": "Run the linter as the invoking user (#53)\n\nThe rubocop container wrote reports/rubocop/junit.xml as its own user, so on a\n linux runner the file belongs to someone else. That broke the attestation added\n in #52: kosli attest copies evidence with PreserveOwner when given more than one\n path, and a non-root process cannot chown a file to another uid.\n\n chown /tmp/1800768837/reports/rubocop/junit.xml: operation not permitted\n\n The single-path form tars in place and never copies, which is why --results-dir\n alone had been fine and adding --attachments broke it.\n\n Passing --user makes the container write as whoever ran it. Worth doing on its\n own account - a container should not leave files you cannot delete in your\n working tree - and it sidesteps the CLI's behaviour without waiting on it. That\n behaviour looks like a bug and is written up in\n ../kosli-cli-preserve-owner-bug.md for an issue against kosli-dev/cli.\n\n Docker Desktop maps ownership back to the calling user, so this is invisible on a\n mac and only shows on the runner.", + "author": "Jon Jagger ", "branch": "", - "timestamp": 1786262376.0, - "url": "https://github.com/cyber-dojo/differ/commit/108cccf9bccf9af5d455db66c250480b53cbecc7" + "timestamp": 1785764422.0, + "url": "https://github.com/cyber-dojo/creator/commit/83357f112ef5c10b157cb84732c77965cc8ddc48" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/differ-ci/artifacts/31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac?artifact_id=50b8cff6-1888-4c76-b31a-fdd7a311", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/differ-ci", + "html_url": "https://app.kosli.com/cyber-dojo/flows/creator-ci/artifacts/adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b?artifact_id=11539f6a-befb-4b79-9484-fd9f25d3", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/creator-ci", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/differ/compare/10e162d4e1294815375a31121f14d57e13183b34...108cccf9bccf9af5d455db66c250480b53cbecc7", - "previous_git_commit": "10e162d4e1294815375a31121f14d57e13183b34", - "previous_fingerprint": "f68c19b4ca97267fb5be505ec33eb6b89a5297e9ed7ee40d0a3e88fb4082a6e4", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/differ:10e162d@sha256:f68c19b4ca97267fb5be505ec33eb6b89a5297e9ed7ee40d0a3e88fb4082a6e4", + "diff_url": "https://github.com/cyber-dojo/creator/compare/89019f6d8059406e56fa499b2dec2dbf93f4d5c7...83357f112ef5c10b157cb84732c77965cc8ddc48", + "previous_git_commit": "89019f6d8059406e56fa499b2dec2dbf93f4d5c7", + "previous_fingerprint": "aa64db9bd0519d00fba81faf620d0bb1aae3d13839b585ed2ec8179d5e035a34", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/creator:89019f6@sha256:aa64db9bd0519d00fba81faf620d0bb1aae3d13839b585ed2ec8179d5e035a34", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/differ/commit/10e162d4e1294815375a31121f14d57e13183b34", - "previous_trail_name": "10e162d4e1294815375a31121f14d57e13183b34", - "previous_template_reference_name": "differ" + "previous_git_commit_url": "https://github.com/cyber-dojo/creator/commit/89019f6d8059406e56fa499b2dec2dbf93f4d5c7", + "previous_trail_name": "89019f6d8059406e56fa499b2dec2dbf93f4d5c7", + "previous_template_reference_name": "creator" }, - "commit_lead_time": 162716.0, + "commit_lead_time": 660751.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "differ-31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", - "template_reference_name": "differ", + "trail_name": "creator-adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", + "template_reference_name": "creator", "git_commit": "c0666c020044ac5b5181999ec153db1e7f6cd303", "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303", "git_commit_info": { @@ -4300,27 +4300,27 @@ kosli get snapshot aws-prod --output=json "timestamp": 1785316951.0, "url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac?artifact_id=33c43d32-ff7c-4f02-8819-c03ff8e0", + "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b?artifact_id=6feaf5cb-761e-4f05-8591-1db09ac4", "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact", "deployment_diff": { "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/c0666c020044ac5b5181999ec153db1e7f6cd303...c0666c020044ac5b5181999ec153db1e7f6cd303", "previous_git_commit": "c0666c020044ac5b5181999ec153db1e7f6cd303", - "previous_fingerprint": "f68c19b4ca97267fb5be505ec33eb6b89a5297e9ed7ee40d0a3e88fb4082a6e4", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/differ:10e162d@sha256:f68c19b4ca97267fb5be505ec33eb6b89a5297e9ed7ee40d0a3e88fb4082a6e4", + "previous_fingerprint": "26a4c8a14ccf71978ec75fe01edad50d892d7f9054f95fc41d6922fb42995d59", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/creator:07ed087@sha256:26a4c8a14ccf71978ec75fe01edad50d892d7f9054f95fc41d6922fb42995d59", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303", - "previous_trail_name": "differ-f68c19b4ca97267fb5be505ec33eb6b89a5297e9ed7ee40d0a3e88fb4082a6e4", - "previous_template_reference_name": "differ" + "previous_trail_name": "creator-26a4c8a14ccf71978ec75fe01edad50d892d7f9054f95fc41d6922fb42995d59", + "previous_template_reference_name": "creator" }, - "commit_lead_time": 1108141.0, + "commit_lead_time": 1108222.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "production-promotion", "trail_name": "promote-all-33", - "template_reference_name": "differ", + "template_reference_name": "creator", "git_commit": "7494758f8bbc4e66cb5df90ef4cd6b72d75ca584", "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/7494758f8bbc4e66cb5df90ef4cd6b72d75ca584", "git_commit_info": { @@ -4331,63 +4331,63 @@ kosli get snapshot aws-prod --output=json "timestamp": 1785316994.0, "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/7494758f8bbc4e66cb5df90ef4cd6b72d75ca584" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac?artifact_id=a1a352b5-d5bb-4420-b064-c0b165d7", + "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b?artifact_id=d5412ba4-c8b6-4bf3-8a8f-05f2ed00", "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion", "deployment_diff": { "diff_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/compare/7494758f8bbc4e66cb5df90ef4cd6b72d75ca584...7494758f8bbc4e66cb5df90ef4cd6b72d75ca584", "previous_git_commit": "7494758f8bbc4e66cb5df90ef4cd6b72d75ca584", - "previous_fingerprint": "f68c19b4ca97267fb5be505ec33eb6b89a5297e9ed7ee40d0a3e88fb4082a6e4", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/differ:10e162d@sha256:f68c19b4ca97267fb5be505ec33eb6b89a5297e9ed7ee40d0a3e88fb4082a6e4", + "previous_fingerprint": "aa64db9bd0519d00fba81faf620d0bb1aae3d13839b585ed2ec8179d5e035a34", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/creator:89019f6@sha256:aa64db9bd0519d00fba81faf620d0bb1aae3d13839b585ed2ec8179d5e035a34", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/7494758f8bbc4e66cb5df90ef4cd6b72d75ca584", - "previous_trail_name": "promote-all-32", - "previous_template_reference_name": "differ" + "previous_trail_name": "promotion-one-150", + "previous_template_reference_name": "creator" }, - "commit_lead_time": 1108098.0, + "commit_lead_time": 1108179.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "differ-31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", - "template_reference_name": "differ", - "git_commit": "10203d5d23f93844726f204390cf3d5ca8d5c913", - "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/10203d5d23f93844726f204390cf3d5ca8d5c913", + "trail_name": "creator-adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", + "template_reference_name": "creator", + "git_commit": "ed3c81d7322bb8058615095f4aab28c147c53933", + "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/ed3c81d7322bb8058615095f4aab28c147c53933", "git_commit_info": { - "sha1": "10203d5d23f93844726f204390cf3d5ca8d5c913", - "message": "Extract the repeated retrying curl into a composite action\n\n The retry flags were pasted into six call sites, so tuning them\n meant six edits with five chances to miss one.\n\n Two of the three jobs check out the caller's repo, where\n ./.github/actions does not resolve, so those name the action by\n its repo path.", + "sha1": "ed3c81d7322bb8058615095f4aab28c147c53933", + "message": "Unpack one pinned commit instead of fetching each file\n\n a0c005a moved these two jobs' files to RUNNER_TEMP, which kept them out of\n the caller's checkout but left the prefix repeated at every use. The paths\n are absolute because the run steps stay in the checkout, where the Kosli\n CLI reads git commit information from the working directory, so the prefix\n cannot be dropped. It can only be folded into the definitions, and a\n literal /tmp folds where runner.temp does not: the runner context is\n unavailable in workflow- and job-level env blocks. Both jobs are pinned to\n ubuntu-latest, one fresh VM per job, so /tmp neither collides nor persists.\n\n The files also arrived as five separate fetches of main, one per file, so a\n push landing mid-run could pair a rego policy with params from a different\n commit. find-snyk-vulns already checks this repo out, so it now publishes\n the SHA it resolved, and the two later jobs unpack that exact commit as a\n single tarball. One run reads one version.\n\n An env-var's prefix now says where its file came from: SNYK_SCANNING_ from\n this repo at the pinned commit, CALLER_ from the repo being scanned, TMP_\n produced by the run. That split is worth naming because only one of these\n files is the caller's, and it is the one .snyk that the decision attests\n against. Two bare filenames survive because an artifact name cannot\n contain a '/'.\n\n fetch-url-to-file now has exactly one caller, for that .snyk.", "author": "JonJagger ", "branch": "main", - "timestamp": 1786602393.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/10203d5d23f93844726f204390cf3d5ca8d5c913" + "timestamp": 1787661987.0, + "url": "https://github.com/cyber-dojo/snyk-scanning/commit/ed3c81d7322bb8058615095f4aab28c147c53933" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac?artifact_id=125b24cc-3621-4637-a67a-290d5667", + "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b?artifact_id=533ebbe2-e4c3-40db-93b3-56ba7259", "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/00c479764cb9eca038fdaaaef108672d0bb0ed26...10203d5d23f93844726f204390cf3d5ca8d5c913", - "previous_git_commit": "00c479764cb9eca038fdaaaef108672d0bb0ed26", - "previous_fingerprint": "902ec7af03407049ac6e5ef713146d518bbffd9d99cd28715fa0df973e809b7b", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/differ:981dcfc@sha256:902ec7af03407049ac6e5ef713146d518bbffd9d99cd28715fa0df973e809b7b", + "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/7172cc22125f480a9f12127edb481a4d84aabea3...ed3c81d7322bb8058615095f4aab28c147c53933", + "previous_git_commit": "7172cc22125f480a9f12127edb481a4d84aabea3", + "previous_fingerprint": "e8b5e25c5550658cdbd2b8339684b18bce86aaf6538611124ff62f2582c2e5b6", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/creator:a288de5@sha256:e8b5e25c5550658cdbd2b8339684b18bce86aaf6538611124ff62f2582c2e5b6", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/00c479764cb9eca038fdaaaef108672d0bb0ed26", - "previous_trail_name": "differ-902ec7af03407049ac6e5ef713146d518bbffd9d99cd28715fa0df973e809b7b", - "previous_template_reference_name": "differ" + "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/7172cc22125f480a9f12127edb481a4d84aabea3", + "previous_trail_name": "creator-e8b5e25c5550658cdbd2b8339684b18bce86aaf6538611124ff62f2582c2e5b6", + "previous_template_reference_name": "creator" }, - "commit_lead_time": -177301.0, + "commit_lead_time": -1236814.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] } ], "ecs_context": { - "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/35d500a5dc23412bad3e1fe7459c66fb", + "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/d85a1f3513dd45c788f6341641110bfd", "cluster_name": null, "service_name": null } }, { - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:36f0420@sha256:2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/differ:108cccf@sha256:31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", "compliant": true, "deployments": [], "policy_decisions": [ @@ -4409,8 +4409,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "saver-ci", - "trail_name": "36f0420f728fe61e44a3ab0043cf9a3d70863cad", + "flow_name": "differ-ci", + "trail_name": "108cccf9bccf9af5d455db66c250480b53cbecc7", "artifact_status": null } }, @@ -4418,7 +4418,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "saver-2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", + "trail_name": "differ-31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", "artifact_status": null } }, @@ -4434,7 +4434,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "saver-2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", + "trail_name": "differ-31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", "artifact_status": null } } @@ -4454,8 +4454,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "saver-ci", - "trail_name": "36f0420f728fe61e44a3ab0043cf9a3d70863cad", + "flow_name": "differ-ci", + "trail_name": "108cccf9bccf9af5d455db66c250480b53cbecc7", "artifact_status": "COMPLIANT" } }, @@ -4463,7 +4463,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "saver-2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", + "trail_name": "differ-31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", "artifact_status": "COMPLIANT" } }, @@ -4479,7 +4479,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "saver-2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", + "trail_name": "differ-31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", "artifact_status": "COMPLIANT" } } @@ -4504,8 +4504,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "saver-ci", - "trail_name": "36f0420f728fe61e44a3ab0043cf9a3d70863cad", + "flow_name": "differ-ci", + "trail_name": "108cccf9bccf9af5d455db66c250480b53cbecc7", "artifact_status": null } }, @@ -4513,7 +4513,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "saver-2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", + "trail_name": "differ-31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", "artifact_status": null } }, @@ -4529,7 +4529,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "saver-2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", + "trail_name": "differ-31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", "artifact_status": null } } @@ -4556,8 +4556,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "saver-ci", - "trail_name": "36f0420f728fe61e44a3ab0043cf9a3d70863cad", + "flow_name": "differ-ci", + "trail_name": "108cccf9bccf9af5d455db66c250480b53cbecc7", "artifact_status": null } }, @@ -4565,7 +4565,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "saver-2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", + "trail_name": "differ-31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", "artifact_status": null } }, @@ -4581,7 +4581,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "saver-2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", + "trail_name": "differ-31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", "artifact_status": null } } @@ -4601,8 +4601,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "saver-ci", - "trail_name": "36f0420f728fe61e44a3ab0043cf9a3d70863cad", + "flow_name": "differ-ci", + "trail_name": "108cccf9bccf9af5d455db66c250480b53cbecc7", "artifact_status": "COMPLIANT" } }, @@ -4610,7 +4610,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "saver-2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", + "trail_name": "differ-31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", "artifact_status": "COMPLIANT" } }, @@ -4626,7 +4626,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "saver-2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", + "trail_name": "differ-31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", "artifact_status": "COMPLIANT" } } @@ -4651,8 +4651,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "saver-ci", - "trail_name": "36f0420f728fe61e44a3ab0043cf9a3d70863cad", + "flow_name": "differ-ci", + "trail_name": "108cccf9bccf9af5d455db66c250480b53cbecc7", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -4661,7 +4661,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "saver-2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", + "trail_name": "differ-31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -4679,7 +4679,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "saver-2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", + "trail_name": "differ-31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -4707,8 +4707,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "saver-ci", - "trail_name": "36f0420f728fe61e44a3ab0043cf9a3d70863cad", + "flow_name": "differ-ci", + "trail_name": "108cccf9bccf9af5d455db66c250480b53cbecc7", "artifact_status": null } }, @@ -4716,7 +4716,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "saver-2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", + "trail_name": "differ-31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", "artifact_status": null } }, @@ -4732,7 +4732,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "saver-2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", + "trail_name": "differ-31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", "artifact_status": null } } @@ -4752,8 +4752,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "saver-ci", - "trail_name": "36f0420f728fe61e44a3ab0043cf9a3d70863cad", + "flow_name": "differ-ci", + "trail_name": "108cccf9bccf9af5d455db66c250480b53cbecc7", "artifact_status": "COMPLIANT" } }, @@ -4761,7 +4761,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "saver-2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", + "trail_name": "differ-31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", "artifact_status": "COMPLIANT" } }, @@ -4777,7 +4777,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "saver-2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", + "trail_name": "differ-31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", "artifact_status": "COMPLIANT" } } @@ -4802,8 +4802,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "saver-ci", - "trail_name": "36f0420f728fe61e44a3ab0043cf9a3d70863cad", + "flow_name": "differ-ci", + "trail_name": "108cccf9bccf9af5d455db66c250480b53cbecc7", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -4812,7 +4812,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "saver-2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", + "trail_name": "differ-31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -4830,7 +4830,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "saver-2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", + "trail_name": "differ-31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -4858,8 +4858,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "saver-ci", - "trail_name": "36f0420f728fe61e44a3ab0043cf9a3d70863cad", + "flow_name": "differ-ci", + "trail_name": "108cccf9bccf9af5d455db66c250480b53cbecc7", "artifact_status": null } }, @@ -4867,7 +4867,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "saver-2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", + "trail_name": "differ-31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", "artifact_status": null } }, @@ -4883,7 +4883,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "saver-2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", + "trail_name": "differ-31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", "artifact_status": null } } @@ -4903,8 +4903,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "saver-ci", - "trail_name": "36f0420f728fe61e44a3ab0043cf9a3d70863cad", + "flow_name": "differ-ci", + "trail_name": "108cccf9bccf9af5d455db66c250480b53cbecc7", "artifact_status": "COMPLIANT" } }, @@ -4912,7 +4912,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "saver-2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", + "trail_name": "differ-31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", "artifact_status": "COMPLIANT" } }, @@ -4928,7 +4928,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "saver-2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", + "trail_name": "differ-31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", "artifact_status": "COMPLIANT" } } @@ -4953,8 +4953,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "saver-ci", - "trail_name": "36f0420f728fe61e44a3ab0043cf9a3d70863cad", + "flow_name": "differ-ci", + "trail_name": "108cccf9bccf9af5d455db66c250480b53cbecc7", "artifact_status": null } }, @@ -4962,7 +4962,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "saver-2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", + "trail_name": "differ-31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", "artifact_status": null } }, @@ -4978,7 +4978,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "saver-2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", + "trail_name": "differ-31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", "artifact_status": null } } @@ -5005,8 +5005,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "saver-ci", - "trail_name": "36f0420f728fe61e44a3ab0043cf9a3d70863cad", + "flow_name": "differ-ci", + "trail_name": "108cccf9bccf9af5d455db66c250480b53cbecc7", "artifact_status": null } }, @@ -5014,7 +5014,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "saver-2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", + "trail_name": "differ-31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", "artifact_status": null } }, @@ -5030,7 +5030,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "saver-2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", + "trail_name": "differ-31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", "artifact_status": null } } @@ -5056,8 +5056,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "saver-ci", - "trail_name": "36f0420f728fe61e44a3ab0043cf9a3d70863cad", + "flow_name": "differ-ci", + "trail_name": "108cccf9bccf9af5d455db66c250480b53cbecc7", "artifact_status": "COMPLIANT" } }, @@ -5065,7 +5065,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "saver-2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", + "trail_name": "differ-31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", "artifact_status": "COMPLIANT" } }, @@ -5081,7 +5081,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "saver-2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", + "trail_name": "differ-31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", "artifact_status": "COMPLIANT" } } @@ -5092,9 +5092,9 @@ kosli get snapshot aws-prod --output=json } ], "reasons_for_incompliance": [], - "fingerprint": "2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", + "fingerprint": "31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", "creationTimestamp": [ - 1786425086 + 1786425092 ], "pods": null, "annotation": { @@ -5102,59 +5102,59 @@ kosli get snapshot aws-prod --output=json "was": 1, "now": 1 }, - "flow_name": "saver-ci", - "git_commit": "36f0420f728fe61e44a3ab0043cf9a3d70863cad", - "commit_url": "https://github.com/cyber-dojo/saver/commit/36f0420f728fe61e44a3ab0043cf9a3d70863cad", - "html_url": "https://app.kosli.com/cyber-dojo/flows/saver-ci/artifacts/2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a?artifact_id=01bf7de8-52fc-4585-a4b6-abf82047", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/saver-ci", + "flow_name": "differ-ci", + "git_commit": "108cccf9bccf9af5d455db66c250480b53cbecc7", + "commit_url": "https://github.com/cyber-dojo/differ/commit/108cccf9bccf9af5d455db66c250480b53cbecc7", + "html_url": "https://app.kosli.com/cyber-dojo/flows/differ-ci/artifacts/31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac?artifact_id=50b8cff6-1888-4c76-b31a-fdd7a311", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/differ-ci", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/saver/compare/595e902fa2f5844d9ce0612a5c9295cd8dab5b97...36f0420f728fe61e44a3ab0043cf9a3d70863cad", - "previous_git_commit": "595e902fa2f5844d9ce0612a5c9295cd8dab5b97", - "previous_fingerprint": "a5b224c24732c48daaf6ea495e57345bc4b9fde34b37bf4b7c758b6ee778bee3", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:595e902@sha256:a5b224c24732c48daaf6ea495e57345bc4b9fde34b37bf4b7c758b6ee778bee3", + "diff_url": "https://github.com/cyber-dojo/differ/compare/10e162d4e1294815375a31121f14d57e13183b34...108cccf9bccf9af5d455db66c250480b53cbecc7", + "previous_git_commit": "10e162d4e1294815375a31121f14d57e13183b34", + "previous_fingerprint": "f68c19b4ca97267fb5be505ec33eb6b89a5297e9ed7ee40d0a3e88fb4082a6e4", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/differ:10e162d@sha256:f68c19b4ca97267fb5be505ec33eb6b89a5297e9ed7ee40d0a3e88fb4082a6e4", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/saver/commit/595e902fa2f5844d9ce0612a5c9295cd8dab5b97", - "previous_trail_name": "595e902fa2f5844d9ce0612a5c9295cd8dab5b97", - "previous_template_reference_name": "saver" + "previous_git_commit_url": "https://github.com/cyber-dojo/differ/commit/10e162d4e1294815375a31121f14d57e13183b34", + "previous_trail_name": "10e162d4e1294815375a31121f14d57e13183b34", + "previous_template_reference_name": "differ" }, - "commit_lead_time": 171420.0, + "commit_lead_time": 162716.0, "flows": [ { - "flow_name": "saver-ci", - "trail_name": "36f0420f728fe61e44a3ab0043cf9a3d70863cad", - "template_reference_name": "saver", - "git_commit": "36f0420f728fe61e44a3ab0043cf9a3d70863cad", - "commit_url": "https://github.com/cyber-dojo/saver/commit/36f0420f728fe61e44a3ab0043cf9a3d70863cad", + "flow_name": "differ-ci", + "trail_name": "108cccf9bccf9af5d455db66c250480b53cbecc7", + "template_reference_name": "differ", + "git_commit": "108cccf9bccf9af5d455db66c250480b53cbecc7", + "commit_url": "https://github.com/cyber-dojo/differ/commit/108cccf9bccf9af5d455db66c250480b53cbecc7", "git_commit_info": { - "sha1": "36f0420f728fe61e44a3ab0043cf9a3d70863cad", - "message": "Make exit_non_zero actually exit (#438)\n\nkill -INT $$ only stops the script while nothing traps INT. Add\n a cleanup trap on INT - a normal thing for a script to do - and\n bash runs the handler and resumes at the next statement, so a\n guard prints its error and the script carries on to exit 0.\n exit 42 cannot be declined, and the EXIT trap still cleans up.", - "author": "Jon Jagger ", + "sha1": "108cccf9bccf9af5d455db66c250480b53cbecc7", + "message": "Merge pull request #449 from cyber-dojo/fix-exit-non-zero", + "author": "AlexKantor87 ", "branch": "", - "timestamp": 1786253666.0, - "url": "https://github.com/cyber-dojo/saver/commit/36f0420f728fe61e44a3ab0043cf9a3d70863cad" + "timestamp": 1786262376.0, + "url": "https://github.com/cyber-dojo/differ/commit/108cccf9bccf9af5d455db66c250480b53cbecc7" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/saver-ci/artifacts/2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a?artifact_id=01bf7de8-52fc-4585-a4b6-abf82047", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/saver-ci", + "html_url": "https://app.kosli.com/cyber-dojo/flows/differ-ci/artifacts/31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac?artifact_id=50b8cff6-1888-4c76-b31a-fdd7a311", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/differ-ci", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/saver/compare/595e902fa2f5844d9ce0612a5c9295cd8dab5b97...36f0420f728fe61e44a3ab0043cf9a3d70863cad", - "previous_git_commit": "595e902fa2f5844d9ce0612a5c9295cd8dab5b97", - "previous_fingerprint": "a5b224c24732c48daaf6ea495e57345bc4b9fde34b37bf4b7c758b6ee778bee3", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:595e902@sha256:a5b224c24732c48daaf6ea495e57345bc4b9fde34b37bf4b7c758b6ee778bee3", + "diff_url": "https://github.com/cyber-dojo/differ/compare/10e162d4e1294815375a31121f14d57e13183b34...108cccf9bccf9af5d455db66c250480b53cbecc7", + "previous_git_commit": "10e162d4e1294815375a31121f14d57e13183b34", + "previous_fingerprint": "f68c19b4ca97267fb5be505ec33eb6b89a5297e9ed7ee40d0a3e88fb4082a6e4", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/differ:10e162d@sha256:f68c19b4ca97267fb5be505ec33eb6b89a5297e9ed7ee40d0a3e88fb4082a6e4", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/saver/commit/595e902fa2f5844d9ce0612a5c9295cd8dab5b97", - "previous_trail_name": "595e902fa2f5844d9ce0612a5c9295cd8dab5b97", - "previous_template_reference_name": "saver" + "previous_git_commit_url": "https://github.com/cyber-dojo/differ/commit/10e162d4e1294815375a31121f14d57e13183b34", + "previous_trail_name": "10e162d4e1294815375a31121f14d57e13183b34", + "previous_template_reference_name": "differ" }, - "commit_lead_time": 171420.0, + "commit_lead_time": 162716.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "saver-2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", - "template_reference_name": "saver", + "trail_name": "differ-31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", + "template_reference_name": "differ", "git_commit": "c0666c020044ac5b5181999ec153db1e7f6cd303", "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303", "git_commit_info": { @@ -5165,27 +5165,27 @@ kosli get snapshot aws-prod --output=json "timestamp": 1785316951.0, "url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a?artifact_id=070b4e9b-f146-43ef-89f9-49b75fa4", + "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac?artifact_id=33c43d32-ff7c-4f02-8819-c03ff8e0", "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact", "deployment_diff": { "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/c0666c020044ac5b5181999ec153db1e7f6cd303...c0666c020044ac5b5181999ec153db1e7f6cd303", "previous_git_commit": "c0666c020044ac5b5181999ec153db1e7f6cd303", - "previous_fingerprint": "a5b224c24732c48daaf6ea495e57345bc4b9fde34b37bf4b7c758b6ee778bee3", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:595e902@sha256:a5b224c24732c48daaf6ea495e57345bc4b9fde34b37bf4b7c758b6ee778bee3", + "previous_fingerprint": "f68c19b4ca97267fb5be505ec33eb6b89a5297e9ed7ee40d0a3e88fb4082a6e4", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/differ:10e162d@sha256:f68c19b4ca97267fb5be505ec33eb6b89a5297e9ed7ee40d0a3e88fb4082a6e4", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303", - "previous_trail_name": "saver-a5b224c24732c48daaf6ea495e57345bc4b9fde34b37bf4b7c758b6ee778bee3", - "previous_template_reference_name": "saver" + "previous_trail_name": "differ-f68c19b4ca97267fb5be505ec33eb6b89a5297e9ed7ee40d0a3e88fb4082a6e4", + "previous_template_reference_name": "differ" }, - "commit_lead_time": 1108135.0, + "commit_lead_time": 1108141.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "production-promotion", "trail_name": "promote-all-33", - "template_reference_name": "saver", + "template_reference_name": "differ", "git_commit": "7494758f8bbc4e66cb5df90ef4cd6b72d75ca584", "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/7494758f8bbc4e66cb5df90ef4cd6b72d75ca584", "git_commit_info": { @@ -5196,63 +5196,63 @@ kosli get snapshot aws-prod --output=json "timestamp": 1785316994.0, "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/7494758f8bbc4e66cb5df90ef4cd6b72d75ca584" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a?artifact_id=b3939e7a-afe0-460c-8da7-f456c2df", + "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac?artifact_id=a1a352b5-d5bb-4420-b064-c0b165d7", "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion", "deployment_diff": { "diff_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/compare/7494758f8bbc4e66cb5df90ef4cd6b72d75ca584...7494758f8bbc4e66cb5df90ef4cd6b72d75ca584", "previous_git_commit": "7494758f8bbc4e66cb5df90ef4cd6b72d75ca584", - "previous_fingerprint": "a5b224c24732c48daaf6ea495e57345bc4b9fde34b37bf4b7c758b6ee778bee3", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:595e902@sha256:a5b224c24732c48daaf6ea495e57345bc4b9fde34b37bf4b7c758b6ee778bee3", + "previous_fingerprint": "f68c19b4ca97267fb5be505ec33eb6b89a5297e9ed7ee40d0a3e88fb4082a6e4", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/differ:10e162d@sha256:f68c19b4ca97267fb5be505ec33eb6b89a5297e9ed7ee40d0a3e88fb4082a6e4", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/7494758f8bbc4e66cb5df90ef4cd6b72d75ca584", "previous_trail_name": "promote-all-32", - "previous_template_reference_name": "saver" + "previous_template_reference_name": "differ" }, - "commit_lead_time": 1108092.0, + "commit_lead_time": 1108098.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "saver-2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", - "template_reference_name": "saver", - "git_commit": "10203d5d23f93844726f204390cf3d5ca8d5c913", - "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/10203d5d23f93844726f204390cf3d5ca8d5c913", + "trail_name": "differ-31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", + "template_reference_name": "differ", + "git_commit": "ed3c81d7322bb8058615095f4aab28c147c53933", + "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/ed3c81d7322bb8058615095f4aab28c147c53933", "git_commit_info": { - "sha1": "10203d5d23f93844726f204390cf3d5ca8d5c913", - "message": "Extract the repeated retrying curl into a composite action\n\n The retry flags were pasted into six call sites, so tuning them\n meant six edits with five chances to miss one.\n\n Two of the three jobs check out the caller's repo, where\n ./.github/actions does not resolve, so those name the action by\n its repo path.", + "sha1": "ed3c81d7322bb8058615095f4aab28c147c53933", + "message": "Unpack one pinned commit instead of fetching each file\n\n a0c005a moved these two jobs' files to RUNNER_TEMP, which kept them out of\n the caller's checkout but left the prefix repeated at every use. The paths\n are absolute because the run steps stay in the checkout, where the Kosli\n CLI reads git commit information from the working directory, so the prefix\n cannot be dropped. It can only be folded into the definitions, and a\n literal /tmp folds where runner.temp does not: the runner context is\n unavailable in workflow- and job-level env blocks. Both jobs are pinned to\n ubuntu-latest, one fresh VM per job, so /tmp neither collides nor persists.\n\n The files also arrived as five separate fetches of main, one per file, so a\n push landing mid-run could pair a rego policy with params from a different\n commit. find-snyk-vulns already checks this repo out, so it now publishes\n the SHA it resolved, and the two later jobs unpack that exact commit as a\n single tarball. One run reads one version.\n\n An env-var's prefix now says where its file came from: SNYK_SCANNING_ from\n this repo at the pinned commit, CALLER_ from the repo being scanned, TMP_\n produced by the run. That split is worth naming because only one of these\n files is the caller's, and it is the one .snyk that the decision attests\n against. Two bare filenames survive because an artifact name cannot\n contain a '/'.\n\n fetch-url-to-file now has exactly one caller, for that .snyk.", "author": "JonJagger ", "branch": "main", - "timestamp": 1786602393.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/10203d5d23f93844726f204390cf3d5ca8d5c913" + "timestamp": 1787661987.0, + "url": "https://github.com/cyber-dojo/snyk-scanning/commit/ed3c81d7322bb8058615095f4aab28c147c53933" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a?artifact_id=5a3e5426-60c8-41b5-a6a6-3ae4622a", + "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac?artifact_id=9b314251-1c8c-49c6-b810-0ca86615", "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/00c479764cb9eca038fdaaaef108672d0bb0ed26...10203d5d23f93844726f204390cf3d5ca8d5c913", + "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/00c479764cb9eca038fdaaaef108672d0bb0ed26...ed3c81d7322bb8058615095f4aab28c147c53933", "previous_git_commit": "00c479764cb9eca038fdaaaef108672d0bb0ed26", - "previous_fingerprint": "f5909cc8dd53b2105953d1a72cd5d6181367d3588964aa01a04c056205a5d419", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:8c84fac@sha256:f5909cc8dd53b2105953d1a72cd5d6181367d3588964aa01a04c056205a5d419", + "previous_fingerprint": "902ec7af03407049ac6e5ef713146d518bbffd9d99cd28715fa0df973e809b7b", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/differ:981dcfc@sha256:902ec7af03407049ac6e5ef713146d518bbffd9d99cd28715fa0df973e809b7b", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/00c479764cb9eca038fdaaaef108672d0bb0ed26", - "previous_trail_name": "saver-f5909cc8dd53b2105953d1a72cd5d6181367d3588964aa01a04c056205a5d419", - "previous_template_reference_name": "saver" + "previous_trail_name": "differ-902ec7af03407049ac6e5ef713146d518bbffd9d99cd28715fa0df973e809b7b", + "previous_template_reference_name": "differ" }, - "commit_lead_time": -177307.0, + "commit_lead_time": -1236895.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] } ], "ecs_context": { - "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/d20584d0428f41a3944ac335cea4da5c", + "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/35d500a5dc23412bad3e1fe7459c66fb", "cluster_name": null, "service_name": null } }, { - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:2b300f4@sha256:1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:36f0420@sha256:2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", "compliant": true, "deployments": [], "policy_decisions": [ @@ -5274,8 +5274,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "dashboard-ci", - "trail_name": "2b300f450f72006f6a9000aaf9cd04485f1e8095", + "flow_name": "saver-ci", + "trail_name": "36f0420f728fe61e44a3ab0043cf9a3d70863cad", "artifact_status": null } }, @@ -5283,7 +5283,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "dashboard-1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", + "trail_name": "saver-2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", "artifact_status": null } }, @@ -5299,7 +5299,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "dashboard-1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", + "trail_name": "saver-2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", "artifact_status": null } } @@ -5319,8 +5319,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "dashboard-ci", - "trail_name": "2b300f450f72006f6a9000aaf9cd04485f1e8095", + "flow_name": "saver-ci", + "trail_name": "36f0420f728fe61e44a3ab0043cf9a3d70863cad", "artifact_status": "COMPLIANT" } }, @@ -5328,7 +5328,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "dashboard-1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", + "trail_name": "saver-2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", "artifact_status": "COMPLIANT" } }, @@ -5344,7 +5344,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "dashboard-1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", + "trail_name": "saver-2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", "artifact_status": "COMPLIANT" } } @@ -5369,8 +5369,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "dashboard-ci", - "trail_name": "2b300f450f72006f6a9000aaf9cd04485f1e8095", + "flow_name": "saver-ci", + "trail_name": "36f0420f728fe61e44a3ab0043cf9a3d70863cad", "artifact_status": null } }, @@ -5378,7 +5378,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "dashboard-1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", + "trail_name": "saver-2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", "artifact_status": null } }, @@ -5394,7 +5394,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "dashboard-1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", + "trail_name": "saver-2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", "artifact_status": null } } @@ -5421,8 +5421,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "dashboard-ci", - "trail_name": "2b300f450f72006f6a9000aaf9cd04485f1e8095", + "flow_name": "saver-ci", + "trail_name": "36f0420f728fe61e44a3ab0043cf9a3d70863cad", "artifact_status": null } }, @@ -5430,7 +5430,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "dashboard-1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", + "trail_name": "saver-2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", "artifact_status": null } }, @@ -5446,7 +5446,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "dashboard-1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", + "trail_name": "saver-2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", "artifact_status": null } } @@ -5466,8 +5466,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "dashboard-ci", - "trail_name": "2b300f450f72006f6a9000aaf9cd04485f1e8095", + "flow_name": "saver-ci", + "trail_name": "36f0420f728fe61e44a3ab0043cf9a3d70863cad", "artifact_status": "COMPLIANT" } }, @@ -5475,7 +5475,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "dashboard-1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", + "trail_name": "saver-2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", "artifact_status": "COMPLIANT" } }, @@ -5491,7 +5491,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "dashboard-1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", + "trail_name": "saver-2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", "artifact_status": "COMPLIANT" } } @@ -5516,8 +5516,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "dashboard-ci", - "trail_name": "2b300f450f72006f6a9000aaf9cd04485f1e8095", + "flow_name": "saver-ci", + "trail_name": "36f0420f728fe61e44a3ab0043cf9a3d70863cad", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -5526,7 +5526,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "dashboard-1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", + "trail_name": "saver-2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -5544,7 +5544,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "dashboard-1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", + "trail_name": "saver-2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -5572,8 +5572,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "dashboard-ci", - "trail_name": "2b300f450f72006f6a9000aaf9cd04485f1e8095", + "flow_name": "saver-ci", + "trail_name": "36f0420f728fe61e44a3ab0043cf9a3d70863cad", "artifact_status": null } }, @@ -5581,7 +5581,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "dashboard-1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", + "trail_name": "saver-2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", "artifact_status": null } }, @@ -5597,7 +5597,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "dashboard-1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", + "trail_name": "saver-2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", "artifact_status": null } } @@ -5617,8 +5617,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "dashboard-ci", - "trail_name": "2b300f450f72006f6a9000aaf9cd04485f1e8095", + "flow_name": "saver-ci", + "trail_name": "36f0420f728fe61e44a3ab0043cf9a3d70863cad", "artifact_status": "COMPLIANT" } }, @@ -5626,7 +5626,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "dashboard-1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", + "trail_name": "saver-2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", "artifact_status": "COMPLIANT" } }, @@ -5642,7 +5642,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "dashboard-1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", + "trail_name": "saver-2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", "artifact_status": "COMPLIANT" } } @@ -5667,8 +5667,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "dashboard-ci", - "trail_name": "2b300f450f72006f6a9000aaf9cd04485f1e8095", + "flow_name": "saver-ci", + "trail_name": "36f0420f728fe61e44a3ab0043cf9a3d70863cad", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -5677,7 +5677,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "dashboard-1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", + "trail_name": "saver-2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -5695,7 +5695,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "dashboard-1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", + "trail_name": "saver-2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -5723,8 +5723,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "dashboard-ci", - "trail_name": "2b300f450f72006f6a9000aaf9cd04485f1e8095", + "flow_name": "saver-ci", + "trail_name": "36f0420f728fe61e44a3ab0043cf9a3d70863cad", "artifact_status": null } }, @@ -5732,7 +5732,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "dashboard-1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", + "trail_name": "saver-2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", "artifact_status": null } }, @@ -5748,7 +5748,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "dashboard-1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", + "trail_name": "saver-2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", "artifact_status": null } } @@ -5768,8 +5768,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "dashboard-ci", - "trail_name": "2b300f450f72006f6a9000aaf9cd04485f1e8095", + "flow_name": "saver-ci", + "trail_name": "36f0420f728fe61e44a3ab0043cf9a3d70863cad", "artifact_status": "COMPLIANT" } }, @@ -5777,7 +5777,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "dashboard-1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", + "trail_name": "saver-2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", "artifact_status": "COMPLIANT" } }, @@ -5793,7 +5793,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "dashboard-1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", + "trail_name": "saver-2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", "artifact_status": "COMPLIANT" } } @@ -5818,8 +5818,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "dashboard-ci", - "trail_name": "2b300f450f72006f6a9000aaf9cd04485f1e8095", + "flow_name": "saver-ci", + "trail_name": "36f0420f728fe61e44a3ab0043cf9a3d70863cad", "artifact_status": null } }, @@ -5827,7 +5827,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "dashboard-1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", + "trail_name": "saver-2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", "artifact_status": null } }, @@ -5843,7 +5843,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "dashboard-1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", + "trail_name": "saver-2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", "artifact_status": null } } @@ -5870,8 +5870,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "dashboard-ci", - "trail_name": "2b300f450f72006f6a9000aaf9cd04485f1e8095", + "flow_name": "saver-ci", + "trail_name": "36f0420f728fe61e44a3ab0043cf9a3d70863cad", "artifact_status": null } }, @@ -5879,7 +5879,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "dashboard-1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", + "trail_name": "saver-2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", "artifact_status": null } }, @@ -5895,7 +5895,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "dashboard-1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", + "trail_name": "saver-2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", "artifact_status": null } } @@ -5921,8 +5921,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "dashboard-ci", - "trail_name": "2b300f450f72006f6a9000aaf9cd04485f1e8095", + "flow_name": "saver-ci", + "trail_name": "36f0420f728fe61e44a3ab0043cf9a3d70863cad", "artifact_status": "COMPLIANT" } }, @@ -5930,7 +5930,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "dashboard-1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", + "trail_name": "saver-2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", "artifact_status": "COMPLIANT" } }, @@ -5946,7 +5946,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "dashboard-1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", + "trail_name": "saver-2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", "artifact_status": "COMPLIANT" } } @@ -5957,9 +5957,9 @@ kosli get snapshot aws-prod --output=json } ], "reasons_for_incompliance": [], - "fingerprint": "1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", + "fingerprint": "2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", "creationTimestamp": [ - 1786425083 + 1786425086 ], "pods": null, "annotation": { @@ -5967,59 +5967,59 @@ kosli get snapshot aws-prod --output=json "was": 1, "now": 1 }, - "flow_name": "dashboard-ci", - "git_commit": "2b300f450f72006f6a9000aaf9cd04485f1e8095", - "commit_url": "https://github.com/cyber-dojo/dashboard/commit/2b300f450f72006f6a9000aaf9cd04485f1e8095", - "html_url": "https://app.kosli.com/cyber-dojo/flows/dashboard-ci/artifacts/1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5?artifact_id=a805b555-f25a-4828-89d2-a28881c8", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/dashboard-ci", + "flow_name": "saver-ci", + "git_commit": "36f0420f728fe61e44a3ab0043cf9a3d70863cad", + "commit_url": "https://github.com/cyber-dojo/saver/commit/36f0420f728fe61e44a3ab0043cf9a3d70863cad", + "html_url": "https://app.kosli.com/cyber-dojo/flows/saver-ci/artifacts/2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a?artifact_id=01bf7de8-52fc-4585-a4b6-abf82047", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/saver-ci", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/dashboard/compare/da7bacefac23b0983d2b9f39d87508e0f85b1167...2b300f450f72006f6a9000aaf9cd04485f1e8095", - "previous_git_commit": "da7bacefac23b0983d2b9f39d87508e0f85b1167", - "previous_fingerprint": "8a89de34c6d8102bc376b6a238015b1dd768a81f16a741b28dbd8c8af3deefd6", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:da7bace@sha256:8a89de34c6d8102bc376b6a238015b1dd768a81f16a741b28dbd8c8af3deefd6", + "diff_url": "https://github.com/cyber-dojo/saver/compare/595e902fa2f5844d9ce0612a5c9295cd8dab5b97...36f0420f728fe61e44a3ab0043cf9a3d70863cad", + "previous_git_commit": "595e902fa2f5844d9ce0612a5c9295cd8dab5b97", + "previous_fingerprint": "a5b224c24732c48daaf6ea495e57345bc4b9fde34b37bf4b7c758b6ee778bee3", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:595e902@sha256:a5b224c24732c48daaf6ea495e57345bc4b9fde34b37bf4b7c758b6ee778bee3", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/dashboard/commit/da7bacefac23b0983d2b9f39d87508e0f85b1167", - "previous_trail_name": "da7bacefac23b0983d2b9f39d87508e0f85b1167", - "previous_template_reference_name": "dashboard" + "previous_git_commit_url": "https://github.com/cyber-dojo/saver/commit/595e902fa2f5844d9ce0612a5c9295cd8dab5b97", + "previous_trail_name": "595e902fa2f5844d9ce0612a5c9295cd8dab5b97", + "previous_template_reference_name": "saver" }, - "commit_lead_time": 660655.0, + "commit_lead_time": 171420.0, "flows": [ { - "flow_name": "dashboard-ci", - "trail_name": "2b300f450f72006f6a9000aaf9cd04485f1e8095", - "template_reference_name": "dashboard", - "git_commit": "2b300f450f72006f6a9000aaf9cd04485f1e8095", - "commit_url": "https://github.com/cyber-dojo/dashboard/commit/2b300f450f72006f6a9000aaf9cd04485f1e8095", + "flow_name": "saver-ci", + "trail_name": "36f0420f728fe61e44a3ab0043cf9a3d70863cad", + "template_reference_name": "saver", + "git_commit": "36f0420f728fe61e44a3ab0043cf9a3d70863cad", + "commit_url": "https://github.com/cyber-dojo/saver/commit/36f0420f728fe61e44a3ab0043cf9a3d70863cad", "git_commit_info": { - "sha1": "2b300f450f72006f6a9000aaf9cd04485f1e8095", - "message": "Run the linter as the invoking user (#432)\n\nThe rubocop container wrote reports/rubocop/junit.xml as its own user, so on a\n linux runner the file belongs to someone else. That breaks the attestation as\n soon as it has more than one path to send: kosli attest copies evidence with\n PreserveOwner, and a non-root process cannot chown a file to another uid.\n\n chown /tmp/1800768837/reports/rubocop/junit.xml: operation not permitted\n\n Attaching .rubocop.yml in #431 is what supplied the second path. With one path\n the CLI tars in place and never copies, which is why this had been fine.\n\n Passing --user makes the container write as whoever ran it. Worth doing on its\n own account - a container should not leave files you cannot delete in your\n working tree - and it sidesteps the CLI's behaviour without waiting on it. That\n behaviour looks like a bug and is written up in\n ../kosli-cli-preserve-owner-bug.md for an issue against kosli-dev/cli.\n\n Docker Desktop maps ownership back to the calling user, so this is invisible on a\n mac and only shows on the runner.", + "sha1": "36f0420f728fe61e44a3ab0043cf9a3d70863cad", + "message": "Make exit_non_zero actually exit (#438)\n\nkill -INT $$ only stops the script while nothing traps INT. Add\n a cleanup trap on INT - a normal thing for a script to do - and\n bash runs the handler and resumes at the next statement, so a\n guard prints its error and the script carries on to exit 0.\n exit 42 cannot be declined, and the EXIT trap still cleans up.", "author": "Jon Jagger ", "branch": "", - "timestamp": 1785764428.0, - "url": "https://github.com/cyber-dojo/dashboard/commit/2b300f450f72006f6a9000aaf9cd04485f1e8095" + "timestamp": 1786253666.0, + "url": "https://github.com/cyber-dojo/saver/commit/36f0420f728fe61e44a3ab0043cf9a3d70863cad" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/dashboard-ci/artifacts/1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5?artifact_id=a805b555-f25a-4828-89d2-a28881c8", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/dashboard-ci", + "html_url": "https://app.kosli.com/cyber-dojo/flows/saver-ci/artifacts/2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a?artifact_id=01bf7de8-52fc-4585-a4b6-abf82047", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/saver-ci", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/dashboard/compare/da7bacefac23b0983d2b9f39d87508e0f85b1167...2b300f450f72006f6a9000aaf9cd04485f1e8095", - "previous_git_commit": "da7bacefac23b0983d2b9f39d87508e0f85b1167", - "previous_fingerprint": "8a89de34c6d8102bc376b6a238015b1dd768a81f16a741b28dbd8c8af3deefd6", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:da7bace@sha256:8a89de34c6d8102bc376b6a238015b1dd768a81f16a741b28dbd8c8af3deefd6", + "diff_url": "https://github.com/cyber-dojo/saver/compare/595e902fa2f5844d9ce0612a5c9295cd8dab5b97...36f0420f728fe61e44a3ab0043cf9a3d70863cad", + "previous_git_commit": "595e902fa2f5844d9ce0612a5c9295cd8dab5b97", + "previous_fingerprint": "a5b224c24732c48daaf6ea495e57345bc4b9fde34b37bf4b7c758b6ee778bee3", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:595e902@sha256:a5b224c24732c48daaf6ea495e57345bc4b9fde34b37bf4b7c758b6ee778bee3", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/dashboard/commit/da7bacefac23b0983d2b9f39d87508e0f85b1167", - "previous_trail_name": "da7bacefac23b0983d2b9f39d87508e0f85b1167", - "previous_template_reference_name": "dashboard" + "previous_git_commit_url": "https://github.com/cyber-dojo/saver/commit/595e902fa2f5844d9ce0612a5c9295cd8dab5b97", + "previous_trail_name": "595e902fa2f5844d9ce0612a5c9295cd8dab5b97", + "previous_template_reference_name": "saver" }, - "commit_lead_time": 660655.0, + "commit_lead_time": 171420.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "dashboard-1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", - "template_reference_name": "dashboard", + "trail_name": "saver-2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", + "template_reference_name": "saver", "git_commit": "c0666c020044ac5b5181999ec153db1e7f6cd303", "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303", "git_commit_info": { @@ -6030,27 +6030,27 @@ kosli get snapshot aws-prod --output=json "timestamp": 1785316951.0, "url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5?artifact_id=12bfdb5d-1c9b-4420-b2e1-83318c0f", + "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a?artifact_id=070b4e9b-f146-43ef-89f9-49b75fa4", "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact", "deployment_diff": { "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/c0666c020044ac5b5181999ec153db1e7f6cd303...c0666c020044ac5b5181999ec153db1e7f6cd303", "previous_git_commit": "c0666c020044ac5b5181999ec153db1e7f6cd303", - "previous_fingerprint": "8a89de34c6d8102bc376b6a238015b1dd768a81f16a741b28dbd8c8af3deefd6", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:da7bace@sha256:8a89de34c6d8102bc376b6a238015b1dd768a81f16a741b28dbd8c8af3deefd6", + "previous_fingerprint": "a5b224c24732c48daaf6ea495e57345bc4b9fde34b37bf4b7c758b6ee778bee3", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:595e902@sha256:a5b224c24732c48daaf6ea495e57345bc4b9fde34b37bf4b7c758b6ee778bee3", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303", - "previous_trail_name": "dashboard-8a89de34c6d8102bc376b6a238015b1dd768a81f16a741b28dbd8c8af3deefd6", - "previous_template_reference_name": "dashboard" + "previous_trail_name": "saver-a5b224c24732c48daaf6ea495e57345bc4b9fde34b37bf4b7c758b6ee778bee3", + "previous_template_reference_name": "saver" }, - "commit_lead_time": 1108132.0, + "commit_lead_time": 1108135.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "production-promotion", "trail_name": "promote-all-33", - "template_reference_name": "dashboard", + "template_reference_name": "saver", "git_commit": "7494758f8bbc4e66cb5df90ef4cd6b72d75ca584", "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/7494758f8bbc4e66cb5df90ef4cd6b72d75ca584", "git_commit_info": { @@ -6061,63 +6061,63 @@ kosli get snapshot aws-prod --output=json "timestamp": 1785316994.0, "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/7494758f8bbc4e66cb5df90ef4cd6b72d75ca584" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5?artifact_id=2eff9d42-2240-4f5b-8217-ccc995c3", + "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a?artifact_id=b3939e7a-afe0-460c-8da7-f456c2df", "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion", "deployment_diff": { "diff_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/compare/7494758f8bbc4e66cb5df90ef4cd6b72d75ca584...7494758f8bbc4e66cb5df90ef4cd6b72d75ca584", "previous_git_commit": "7494758f8bbc4e66cb5df90ef4cd6b72d75ca584", - "previous_fingerprint": "8a89de34c6d8102bc376b6a238015b1dd768a81f16a741b28dbd8c8af3deefd6", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:da7bace@sha256:8a89de34c6d8102bc376b6a238015b1dd768a81f16a741b28dbd8c8af3deefd6", + "previous_fingerprint": "a5b224c24732c48daaf6ea495e57345bc4b9fde34b37bf4b7c758b6ee778bee3", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:595e902@sha256:a5b224c24732c48daaf6ea495e57345bc4b9fde34b37bf4b7c758b6ee778bee3", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/7494758f8bbc4e66cb5df90ef4cd6b72d75ca584", - "previous_trail_name": "promotion-one-153", - "previous_template_reference_name": "dashboard" + "previous_trail_name": "promote-all-32", + "previous_template_reference_name": "saver" }, - "commit_lead_time": 1108089.0, + "commit_lead_time": 1108092.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "dashboard-1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", - "template_reference_name": "dashboard", - "git_commit": "10203d5d23f93844726f204390cf3d5ca8d5c913", - "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/10203d5d23f93844726f204390cf3d5ca8d5c913", + "trail_name": "saver-2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", + "template_reference_name": "saver", + "git_commit": "ed3c81d7322bb8058615095f4aab28c147c53933", + "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/ed3c81d7322bb8058615095f4aab28c147c53933", "git_commit_info": { - "sha1": "10203d5d23f93844726f204390cf3d5ca8d5c913", - "message": "Extract the repeated retrying curl into a composite action\n\n The retry flags were pasted into six call sites, so tuning them\n meant six edits with five chances to miss one.\n\n Two of the three jobs check out the caller's repo, where\n ./.github/actions does not resolve, so those name the action by\n its repo path.", + "sha1": "ed3c81d7322bb8058615095f4aab28c147c53933", + "message": "Unpack one pinned commit instead of fetching each file\n\n a0c005a moved these two jobs' files to RUNNER_TEMP, which kept them out of\n the caller's checkout but left the prefix repeated at every use. The paths\n are absolute because the run steps stay in the checkout, where the Kosli\n CLI reads git commit information from the working directory, so the prefix\n cannot be dropped. It can only be folded into the definitions, and a\n literal /tmp folds where runner.temp does not: the runner context is\n unavailable in workflow- and job-level env blocks. Both jobs are pinned to\n ubuntu-latest, one fresh VM per job, so /tmp neither collides nor persists.\n\n The files also arrived as five separate fetches of main, one per file, so a\n push landing mid-run could pair a rego policy with params from a different\n commit. find-snyk-vulns already checks this repo out, so it now publishes\n the SHA it resolved, and the two later jobs unpack that exact commit as a\n single tarball. One run reads one version.\n\n An env-var's prefix now says where its file came from: SNYK_SCANNING_ from\n this repo at the pinned commit, CALLER_ from the repo being scanned, TMP_\n produced by the run. That split is worth naming because only one of these\n files is the caller's, and it is the one .snyk that the decision attests\n against. Two bare filenames survive because an artifact name cannot\n contain a '/'.\n\n fetch-url-to-file now has exactly one caller, for that .snyk.", "author": "JonJagger ", "branch": "main", - "timestamp": 1786602393.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/10203d5d23f93844726f204390cf3d5ca8d5c913" + "timestamp": 1787661987.0, + "url": "https://github.com/cyber-dojo/snyk-scanning/commit/ed3c81d7322bb8058615095f4aab28c147c53933" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5?artifact_id=50027d44-5ef3-46fc-b026-af87c9f5", + "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a?artifact_id=c3e0d240-b44a-4e2c-911a-6c7ec22b", "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/00c479764cb9eca038fdaaaef108672d0bb0ed26...10203d5d23f93844726f204390cf3d5ca8d5c913", + "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/00c479764cb9eca038fdaaaef108672d0bb0ed26...ed3c81d7322bb8058615095f4aab28c147c53933", "previous_git_commit": "00c479764cb9eca038fdaaaef108672d0bb0ed26", - "previous_fingerprint": "45513c642ba191052bde056d56eeba8b06b0346eb444ec0008bd59bc0581bb8c", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:87f560f@sha256:45513c642ba191052bde056d56eeba8b06b0346eb444ec0008bd59bc0581bb8c", + "previous_fingerprint": "f5909cc8dd53b2105953d1a72cd5d6181367d3588964aa01a04c056205a5d419", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:8c84fac@sha256:f5909cc8dd53b2105953d1a72cd5d6181367d3588964aa01a04c056205a5d419", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/00c479764cb9eca038fdaaaef108672d0bb0ed26", - "previous_trail_name": "dashboard-45513c642ba191052bde056d56eeba8b06b0346eb444ec0008bd59bc0581bb8c", - "previous_template_reference_name": "dashboard" + "previous_trail_name": "saver-f5909cc8dd53b2105953d1a72cd5d6181367d3588964aa01a04c056205a5d419", + "previous_template_reference_name": "saver" }, - "commit_lead_time": -177310.0, + "commit_lead_time": -1236901.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] } ], "ecs_context": { - "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/fb58f1ca5ba94c30b59fe097af55fd5f", + "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/d20584d0428f41a3944ac335cea4da5c", "cluster_name": null, "service_name": null } }, { - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/languages-start-points:068b342@sha256:adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:2b300f4@sha256:1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", "compliant": true, "deployments": [], "policy_decisions": [ @@ -6139,8 +6139,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "languages-start-points-ci", - "trail_name": "068b3424c7da843a4f2d428d2e4915f33efc4a02", + "flow_name": "dashboard-ci", + "trail_name": "2b300f450f72006f6a9000aaf9cd04485f1e8095", "artifact_status": null } }, @@ -6148,7 +6148,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "languages-start-points-adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", + "trail_name": "dashboard-1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", "artifact_status": null } }, @@ -6164,7 +6164,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "languages-start-points-adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", + "trail_name": "dashboard-1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", "artifact_status": null } } @@ -6184,8 +6184,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "languages-start-points-ci", - "trail_name": "068b3424c7da843a4f2d428d2e4915f33efc4a02", + "flow_name": "dashboard-ci", + "trail_name": "2b300f450f72006f6a9000aaf9cd04485f1e8095", "artifact_status": "COMPLIANT" } }, @@ -6193,7 +6193,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "languages-start-points-adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", + "trail_name": "dashboard-1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", "artifact_status": "COMPLIANT" } }, @@ -6209,7 +6209,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "languages-start-points-adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", + "trail_name": "dashboard-1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", "artifact_status": "COMPLIANT" } } @@ -6234,8 +6234,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "languages-start-points-ci", - "trail_name": "068b3424c7da843a4f2d428d2e4915f33efc4a02", + "flow_name": "dashboard-ci", + "trail_name": "2b300f450f72006f6a9000aaf9cd04485f1e8095", "artifact_status": null } }, @@ -6243,7 +6243,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "languages-start-points-adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", + "trail_name": "dashboard-1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", "artifact_status": null } }, @@ -6259,7 +6259,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "languages-start-points-adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", + "trail_name": "dashboard-1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", "artifact_status": null } } @@ -6286,8 +6286,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "languages-start-points-ci", - "trail_name": "068b3424c7da843a4f2d428d2e4915f33efc4a02", + "flow_name": "dashboard-ci", + "trail_name": "2b300f450f72006f6a9000aaf9cd04485f1e8095", "artifact_status": null } }, @@ -6295,7 +6295,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "languages-start-points-adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", + "trail_name": "dashboard-1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", "artifact_status": null } }, @@ -6311,7 +6311,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "languages-start-points-adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", + "trail_name": "dashboard-1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", "artifact_status": null } } @@ -6331,8 +6331,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "languages-start-points-ci", - "trail_name": "068b3424c7da843a4f2d428d2e4915f33efc4a02", + "flow_name": "dashboard-ci", + "trail_name": "2b300f450f72006f6a9000aaf9cd04485f1e8095", "artifact_status": "COMPLIANT" } }, @@ -6340,7 +6340,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "languages-start-points-adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", + "trail_name": "dashboard-1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", "artifact_status": "COMPLIANT" } }, @@ -6356,7 +6356,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "languages-start-points-adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", + "trail_name": "dashboard-1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", "artifact_status": "COMPLIANT" } } @@ -6381,8 +6381,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "languages-start-points-ci", - "trail_name": "068b3424c7da843a4f2d428d2e4915f33efc4a02", + "flow_name": "dashboard-ci", + "trail_name": "2b300f450f72006f6a9000aaf9cd04485f1e8095", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -6391,7 +6391,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "languages-start-points-adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", + "trail_name": "dashboard-1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -6409,7 +6409,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "languages-start-points-adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", + "trail_name": "dashboard-1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -6437,8 +6437,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "languages-start-points-ci", - "trail_name": "068b3424c7da843a4f2d428d2e4915f33efc4a02", + "flow_name": "dashboard-ci", + "trail_name": "2b300f450f72006f6a9000aaf9cd04485f1e8095", "artifact_status": null } }, @@ -6446,7 +6446,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "languages-start-points-adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", + "trail_name": "dashboard-1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", "artifact_status": null } }, @@ -6462,7 +6462,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "languages-start-points-adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", + "trail_name": "dashboard-1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", "artifact_status": null } } @@ -6482,8 +6482,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "languages-start-points-ci", - "trail_name": "068b3424c7da843a4f2d428d2e4915f33efc4a02", + "flow_name": "dashboard-ci", + "trail_name": "2b300f450f72006f6a9000aaf9cd04485f1e8095", "artifact_status": "COMPLIANT" } }, @@ -6491,7 +6491,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "languages-start-points-adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", + "trail_name": "dashboard-1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", "artifact_status": "COMPLIANT" } }, @@ -6507,7 +6507,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "languages-start-points-adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", + "trail_name": "dashboard-1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", "artifact_status": "COMPLIANT" } } @@ -6532,8 +6532,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "languages-start-points-ci", - "trail_name": "068b3424c7da843a4f2d428d2e4915f33efc4a02", + "flow_name": "dashboard-ci", + "trail_name": "2b300f450f72006f6a9000aaf9cd04485f1e8095", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -6542,7 +6542,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "languages-start-points-adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", + "trail_name": "dashboard-1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -6560,7 +6560,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "languages-start-points-adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", + "trail_name": "dashboard-1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -6588,8 +6588,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "languages-start-points-ci", - "trail_name": "068b3424c7da843a4f2d428d2e4915f33efc4a02", + "flow_name": "dashboard-ci", + "trail_name": "2b300f450f72006f6a9000aaf9cd04485f1e8095", "artifact_status": null } }, @@ -6597,7 +6597,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "languages-start-points-adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", + "trail_name": "dashboard-1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", "artifact_status": null } }, @@ -6613,7 +6613,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "languages-start-points-adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", + "trail_name": "dashboard-1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", "artifact_status": null } } @@ -6633,8 +6633,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "languages-start-points-ci", - "trail_name": "068b3424c7da843a4f2d428d2e4915f33efc4a02", + "flow_name": "dashboard-ci", + "trail_name": "2b300f450f72006f6a9000aaf9cd04485f1e8095", "artifact_status": "COMPLIANT" } }, @@ -6642,7 +6642,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "languages-start-points-adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", + "trail_name": "dashboard-1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", "artifact_status": "COMPLIANT" } }, @@ -6658,7 +6658,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "languages-start-points-adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", + "trail_name": "dashboard-1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", "artifact_status": "COMPLIANT" } } @@ -6683,8 +6683,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "languages-start-points-ci", - "trail_name": "068b3424c7da843a4f2d428d2e4915f33efc4a02", + "flow_name": "dashboard-ci", + "trail_name": "2b300f450f72006f6a9000aaf9cd04485f1e8095", "artifact_status": null } }, @@ -6692,7 +6692,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "languages-start-points-adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", + "trail_name": "dashboard-1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", "artifact_status": null } }, @@ -6708,7 +6708,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "languages-start-points-adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", + "trail_name": "dashboard-1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", "artifact_status": null } } @@ -6735,8 +6735,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "languages-start-points-ci", - "trail_name": "068b3424c7da843a4f2d428d2e4915f33efc4a02", + "flow_name": "dashboard-ci", + "trail_name": "2b300f450f72006f6a9000aaf9cd04485f1e8095", "artifact_status": null } }, @@ -6744,7 +6744,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "languages-start-points-adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", + "trail_name": "dashboard-1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", "artifact_status": null } }, @@ -6760,7 +6760,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "languages-start-points-adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", + "trail_name": "dashboard-1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", "artifact_status": null } } @@ -6786,8 +6786,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "languages-start-points-ci", - "trail_name": "068b3424c7da843a4f2d428d2e4915f33efc4a02", + "flow_name": "dashboard-ci", + "trail_name": "2b300f450f72006f6a9000aaf9cd04485f1e8095", "artifact_status": "COMPLIANT" } }, @@ -6795,7 +6795,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "languages-start-points-adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", + "trail_name": "dashboard-1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", "artifact_status": "COMPLIANT" } }, @@ -6811,7 +6811,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "languages-start-points-adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", + "trail_name": "dashboard-1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", "artifact_status": "COMPLIANT" } } @@ -6822,9 +6822,9 @@ kosli get snapshot aws-prod --output=json } ], "reasons_for_incompliance": [], - "fingerprint": "adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", + "fingerprint": "1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", "creationTimestamp": [ - 1786425079 + 1786425083 ], "pods": null, "annotation": { @@ -6832,59 +6832,59 @@ kosli get snapshot aws-prod --output=json "was": 1, "now": 1 }, - "flow_name": "languages-start-points-ci", - "git_commit": "068b3424c7da843a4f2d428d2e4915f33efc4a02", - "commit_url": "https://github.com/cyber-dojo/languages-start-points/commit/068b3424c7da843a4f2d428d2e4915f33efc4a02", - "html_url": "https://app.kosli.com/cyber-dojo/flows/languages-start-points-ci/artifacts/adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb?artifact_id=4154b9c8-14cc-426f-abc5-05220611", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/languages-start-points-ci", + "flow_name": "dashboard-ci", + "git_commit": "2b300f450f72006f6a9000aaf9cd04485f1e8095", + "commit_url": "https://github.com/cyber-dojo/dashboard/commit/2b300f450f72006f6a9000aaf9cd04485f1e8095", + "html_url": "https://app.kosli.com/cyber-dojo/flows/dashboard-ci/artifacts/1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5?artifact_id=a805b555-f25a-4828-89d2-a28881c8", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/dashboard-ci", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/languages-start-points/compare/6a7f7be81022f7ed3fa8383f016b55af86e2af23...068b3424c7da843a4f2d428d2e4915f33efc4a02", - "previous_git_commit": "6a7f7be81022f7ed3fa8383f016b55af86e2af23", - "previous_fingerprint": "b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/languages-start-points:6a7f7be@sha256:b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", + "diff_url": "https://github.com/cyber-dojo/dashboard/compare/da7bacefac23b0983d2b9f39d87508e0f85b1167...2b300f450f72006f6a9000aaf9cd04485f1e8095", + "previous_git_commit": "da7bacefac23b0983d2b9f39d87508e0f85b1167", + "previous_fingerprint": "8a89de34c6d8102bc376b6a238015b1dd768a81f16a741b28dbd8c8af3deefd6", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:da7bace@sha256:8a89de34c6d8102bc376b6a238015b1dd768a81f16a741b28dbd8c8af3deefd6", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/languages-start-points/commit/6a7f7be81022f7ed3fa8383f016b55af86e2af23", - "previous_trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23", - "previous_template_reference_name": "languages-start-points" + "previous_git_commit_url": "https://github.com/cyber-dojo/dashboard/commit/da7bacefac23b0983d2b9f39d87508e0f85b1167", + "previous_trail_name": "da7bacefac23b0983d2b9f39d87508e0f85b1167", + "previous_template_reference_name": "dashboard" }, - "commit_lead_time": 31476.0, + "commit_lead_time": 660655.0, "flows": [ { - "flow_name": "languages-start-points-ci", - "trail_name": "068b3424c7da843a4f2d428d2e4915f33efc4a02", - "template_reference_name": "languages-start-points", - "git_commit": "068b3424c7da843a4f2d428d2e4915f33efc4a02", - "commit_url": "https://github.com/cyber-dojo/languages-start-points/commit/068b3424c7da843a4f2d428d2e4915f33efc4a02", + "flow_name": "dashboard-ci", + "trail_name": "2b300f450f72006f6a9000aaf9cd04485f1e8095", + "template_reference_name": "dashboard", + "git_commit": "2b300f450f72006f6a9000aaf9cd04485f1e8095", + "commit_url": "https://github.com/cyber-dojo/dashboard/commit/2b300f450f72006f6a9000aaf9cd04485f1e8095", "git_commit_info": { - "sha1": "068b3424c7da843a4f2d428d2e4915f33efc4a02", - "message": "Merge pull request #245 from cyber-dojo/update-zig\n\nUpdate zig-test to 0.16.0", + "sha1": "2b300f450f72006f6a9000aaf9cd04485f1e8095", + "message": "Run the linter as the invoking user (#432)\n\nThe rubocop container wrote reports/rubocop/junit.xml as its own user, so on a\n linux runner the file belongs to someone else. That breaks the attestation as\n soon as it has more than one path to send: kosli attest copies evidence with\n PreserveOwner, and a non-root process cannot chown a file to another uid.\n\n chown /tmp/1800768837/reports/rubocop/junit.xml: operation not permitted\n\n Attaching .rubocop.yml in #431 is what supplied the second path. With one path\n the CLI tars in place and never copies, which is why this had been fine.\n\n Passing --user makes the container write as whoever ran it. Worth doing on its\n own account - a container should not leave files you cannot delete in your\n working tree - and it sidesteps the CLI's behaviour without waiting on it. That\n behaviour looks like a bug and is written up in\n ../kosli-cli-preserve-owner-bug.md for an issue against kosli-dev/cli.\n\n Docker Desktop maps ownership back to the calling user, so this is invisible on a\n mac and only shows on the runner.", "author": "Jon Jagger ", "branch": "", - "timestamp": 1786393603.0, - "url": "https://github.com/cyber-dojo/languages-start-points/commit/068b3424c7da843a4f2d428d2e4915f33efc4a02" + "timestamp": 1785764428.0, + "url": "https://github.com/cyber-dojo/dashboard/commit/2b300f450f72006f6a9000aaf9cd04485f1e8095" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/languages-start-points-ci/artifacts/adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb?artifact_id=4154b9c8-14cc-426f-abc5-05220611", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/languages-start-points-ci", + "html_url": "https://app.kosli.com/cyber-dojo/flows/dashboard-ci/artifacts/1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5?artifact_id=a805b555-f25a-4828-89d2-a28881c8", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/dashboard-ci", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/languages-start-points/compare/6a7f7be81022f7ed3fa8383f016b55af86e2af23...068b3424c7da843a4f2d428d2e4915f33efc4a02", - "previous_git_commit": "6a7f7be81022f7ed3fa8383f016b55af86e2af23", - "previous_fingerprint": "b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/languages-start-points:6a7f7be@sha256:b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", + "diff_url": "https://github.com/cyber-dojo/dashboard/compare/da7bacefac23b0983d2b9f39d87508e0f85b1167...2b300f450f72006f6a9000aaf9cd04485f1e8095", + "previous_git_commit": "da7bacefac23b0983d2b9f39d87508e0f85b1167", + "previous_fingerprint": "8a89de34c6d8102bc376b6a238015b1dd768a81f16a741b28dbd8c8af3deefd6", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:da7bace@sha256:8a89de34c6d8102bc376b6a238015b1dd768a81f16a741b28dbd8c8af3deefd6", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/languages-start-points/commit/6a7f7be81022f7ed3fa8383f016b55af86e2af23", - "previous_trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23", - "previous_template_reference_name": "languages-start-points" + "previous_git_commit_url": "https://github.com/cyber-dojo/dashboard/commit/da7bacefac23b0983d2b9f39d87508e0f85b1167", + "previous_trail_name": "da7bacefac23b0983d2b9f39d87508e0f85b1167", + "previous_template_reference_name": "dashboard" }, - "commit_lead_time": 31476.0, + "commit_lead_time": 660655.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "languages-start-points-adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", - "template_reference_name": "languages-start-points", + "trail_name": "dashboard-1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", + "template_reference_name": "dashboard", "git_commit": "c0666c020044ac5b5181999ec153db1e7f6cd303", "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303", "git_commit_info": { @@ -6895,27 +6895,27 @@ kosli get snapshot aws-prod --output=json "timestamp": 1785316951.0, "url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb?artifact_id=d9e69b41-322d-4dea-8b56-dbd50334", + "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5?artifact_id=12bfdb5d-1c9b-4420-b2e1-83318c0f", "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact", "deployment_diff": { "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/c0666c020044ac5b5181999ec153db1e7f6cd303...c0666c020044ac5b5181999ec153db1e7f6cd303", "previous_git_commit": "c0666c020044ac5b5181999ec153db1e7f6cd303", - "previous_fingerprint": "b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/languages-start-points:6a7f7be@sha256:b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", + "previous_fingerprint": "8a89de34c6d8102bc376b6a238015b1dd768a81f16a741b28dbd8c8af3deefd6", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:da7bace@sha256:8a89de34c6d8102bc376b6a238015b1dd768a81f16a741b28dbd8c8af3deefd6", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303", - "previous_trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", - "previous_template_reference_name": "languages-start-points" + "previous_trail_name": "dashboard-8a89de34c6d8102bc376b6a238015b1dd768a81f16a741b28dbd8c8af3deefd6", + "previous_template_reference_name": "dashboard" }, - "commit_lead_time": 1108128.0, + "commit_lead_time": 1108132.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "production-promotion", "trail_name": "promote-all-33", - "template_reference_name": "languages-start-points", + "template_reference_name": "dashboard", "git_commit": "7494758f8bbc4e66cb5df90ef4cd6b72d75ca584", "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/7494758f8bbc4e66cb5df90ef4cd6b72d75ca584", "git_commit_info": { @@ -6926,63 +6926,63 @@ kosli get snapshot aws-prod --output=json "timestamp": 1785316994.0, "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/7494758f8bbc4e66cb5df90ef4cd6b72d75ca584" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb?artifact_id=ee065d98-ce20-46c7-bc2f-a4502952", + "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5?artifact_id=2eff9d42-2240-4f5b-8217-ccc995c3", "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/compare/81c216a55b2cb1787645e699ceaceca868cad253...7494758f8bbc4e66cb5df90ef4cd6b72d75ca584", - "previous_git_commit": "81c216a55b2cb1787645e699ceaceca868cad253", - "previous_fingerprint": "b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/languages-start-points:6a7f7be@sha256:b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", + "diff_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/compare/7494758f8bbc4e66cb5df90ef4cd6b72d75ca584...7494758f8bbc4e66cb5df90ef4cd6b72d75ca584", + "previous_git_commit": "7494758f8bbc4e66cb5df90ef4cd6b72d75ca584", + "previous_fingerprint": "8a89de34c6d8102bc376b6a238015b1dd768a81f16a741b28dbd8c8af3deefd6", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:da7bace@sha256:8a89de34c6d8102bc376b6a238015b1dd768a81f16a741b28dbd8c8af3deefd6", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253", - "previous_trail_name": "promote-all-31", - "previous_template_reference_name": "languages-start-points" + "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/7494758f8bbc4e66cb5df90ef4cd6b72d75ca584", + "previous_trail_name": "promotion-one-153", + "previous_template_reference_name": "dashboard" }, - "commit_lead_time": 1108085.0, + "commit_lead_time": 1108089.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "languages-start-points-adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", - "template_reference_name": "languages-start-points", - "git_commit": "10203d5d23f93844726f204390cf3d5ca8d5c913", - "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/10203d5d23f93844726f204390cf3d5ca8d5c913", + "trail_name": "dashboard-1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", + "template_reference_name": "dashboard", + "git_commit": "ed3c81d7322bb8058615095f4aab28c147c53933", + "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/ed3c81d7322bb8058615095f4aab28c147c53933", "git_commit_info": { - "sha1": "10203d5d23f93844726f204390cf3d5ca8d5c913", - "message": "Extract the repeated retrying curl into a composite action\n\n The retry flags were pasted into six call sites, so tuning them\n meant six edits with five chances to miss one.\n\n Two of the three jobs check out the caller's repo, where\n ./.github/actions does not resolve, so those name the action by\n its repo path.", + "sha1": "ed3c81d7322bb8058615095f4aab28c147c53933", + "message": "Unpack one pinned commit instead of fetching each file\n\n a0c005a moved these two jobs' files to RUNNER_TEMP, which kept them out of\n the caller's checkout but left the prefix repeated at every use. The paths\n are absolute because the run steps stay in the checkout, where the Kosli\n CLI reads git commit information from the working directory, so the prefix\n cannot be dropped. It can only be folded into the definitions, and a\n literal /tmp folds where runner.temp does not: the runner context is\n unavailable in workflow- and job-level env blocks. Both jobs are pinned to\n ubuntu-latest, one fresh VM per job, so /tmp neither collides nor persists.\n\n The files also arrived as five separate fetches of main, one per file, so a\n push landing mid-run could pair a rego policy with params from a different\n commit. find-snyk-vulns already checks this repo out, so it now publishes\n the SHA it resolved, and the two later jobs unpack that exact commit as a\n single tarball. One run reads one version.\n\n An env-var's prefix now says where its file came from: SNYK_SCANNING_ from\n this repo at the pinned commit, CALLER_ from the repo being scanned, TMP_\n produced by the run. That split is worth naming because only one of these\n files is the caller's, and it is the one .snyk that the decision attests\n against. Two bare filenames survive because an artifact name cannot\n contain a '/'.\n\n fetch-url-to-file now has exactly one caller, for that .snyk.", "author": "JonJagger ", "branch": "main", - "timestamp": 1786602393.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/10203d5d23f93844726f204390cf3d5ca8d5c913" + "timestamp": 1787661987.0, + "url": "https://github.com/cyber-dojo/snyk-scanning/commit/ed3c81d7322bb8058615095f4aab28c147c53933" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb?artifact_id=f7e64e04-f253-483f-bc9b-3e9545f7", + "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5?artifact_id=0ad96f49-a195-4cea-9b7e-40b5105e", "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/00c479764cb9eca038fdaaaef108672d0bb0ed26...10203d5d23f93844726f204390cf3d5ca8d5c913", + "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/00c479764cb9eca038fdaaaef108672d0bb0ed26...ed3c81d7322bb8058615095f4aab28c147c53933", "previous_git_commit": "00c479764cb9eca038fdaaaef108672d0bb0ed26", - "previous_fingerprint": "b2f51324efc1528e4dda57d235bdbc68d966e1ea23722d5d296f98eefbfc2676", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/languages-start-points:7e86fed@sha256:b2f51324efc1528e4dda57d235bdbc68d966e1ea23722d5d296f98eefbfc2676", + "previous_fingerprint": "45513c642ba191052bde056d56eeba8b06b0346eb444ec0008bd59bc0581bb8c", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:87f560f@sha256:45513c642ba191052bde056d56eeba8b06b0346eb444ec0008bd59bc0581bb8c", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/00c479764cb9eca038fdaaaef108672d0bb0ed26", - "previous_trail_name": "languages-start-points-b2f51324efc1528e4dda57d235bdbc68d966e1ea23722d5d296f98eefbfc2676", - "previous_template_reference_name": "languages-start-points" + "previous_trail_name": "dashboard-45513c642ba191052bde056d56eeba8b06b0346eb444ec0008bd59bc0581bb8c", + "previous_template_reference_name": "dashboard" }, - "commit_lead_time": -177314.0, + "commit_lead_time": -1236904.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] } ], "ecs_context": { - "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/ed7c6bde626840e6a054cc94cd2c3363", + "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/fb58f1ca5ba94c30b59fe097af55fd5f", "cluster_name": null, "service_name": null } }, { - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:fb79174@sha256:b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/languages-start-points:068b342@sha256:adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", "compliant": true, "deployments": [], "policy_decisions": [ @@ -7004,8 +7004,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "nginx-ci", - "trail_name": "fb791742054fa28dd89269aac8002ebfd7b3386e", + "flow_name": "languages-start-points-ci", + "trail_name": "068b3424c7da843a4f2d428d2e4915f33efc4a02", "artifact_status": null } }, @@ -7013,7 +7013,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "nginx-b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", + "trail_name": "languages-start-points-adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", "artifact_status": null } }, @@ -7029,7 +7029,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "nginx-b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", + "trail_name": "languages-start-points-adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", "artifact_status": null } } @@ -7049,8 +7049,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "nginx-ci", - "trail_name": "fb791742054fa28dd89269aac8002ebfd7b3386e", + "flow_name": "languages-start-points-ci", + "trail_name": "068b3424c7da843a4f2d428d2e4915f33efc4a02", "artifact_status": "COMPLIANT" } }, @@ -7058,7 +7058,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "nginx-b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", + "trail_name": "languages-start-points-adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", "artifact_status": "COMPLIANT" } }, @@ -7074,7 +7074,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "nginx-b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", + "trail_name": "languages-start-points-adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", "artifact_status": "COMPLIANT" } } @@ -7099,8 +7099,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "nginx-ci", - "trail_name": "fb791742054fa28dd89269aac8002ebfd7b3386e", + "flow_name": "languages-start-points-ci", + "trail_name": "068b3424c7da843a4f2d428d2e4915f33efc4a02", "artifact_status": null } }, @@ -7108,7 +7108,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "nginx-b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", + "trail_name": "languages-start-points-adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", "artifact_status": null } }, @@ -7124,7 +7124,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "nginx-b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", + "trail_name": "languages-start-points-adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", "artifact_status": null } } @@ -7151,8 +7151,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "nginx-ci", - "trail_name": "fb791742054fa28dd89269aac8002ebfd7b3386e", + "flow_name": "languages-start-points-ci", + "trail_name": "068b3424c7da843a4f2d428d2e4915f33efc4a02", "artifact_status": null } }, @@ -7160,7 +7160,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "nginx-b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", + "trail_name": "languages-start-points-adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", "artifact_status": null } }, @@ -7176,7 +7176,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "nginx-b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", + "trail_name": "languages-start-points-adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", "artifact_status": null } } @@ -7196,8 +7196,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "nginx-ci", - "trail_name": "fb791742054fa28dd89269aac8002ebfd7b3386e", + "flow_name": "languages-start-points-ci", + "trail_name": "068b3424c7da843a4f2d428d2e4915f33efc4a02", "artifact_status": "COMPLIANT" } }, @@ -7205,7 +7205,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "nginx-b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", + "trail_name": "languages-start-points-adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", "artifact_status": "COMPLIANT" } }, @@ -7221,7 +7221,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "nginx-b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", + "trail_name": "languages-start-points-adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", "artifact_status": "COMPLIANT" } } @@ -7246,8 +7246,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "nginx-ci", - "trail_name": "fb791742054fa28dd89269aac8002ebfd7b3386e", + "flow_name": "languages-start-points-ci", + "trail_name": "068b3424c7da843a4f2d428d2e4915f33efc4a02", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -7256,7 +7256,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "nginx-b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", + "trail_name": "languages-start-points-adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -7274,7 +7274,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "nginx-b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", + "trail_name": "languages-start-points-adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -7302,8 +7302,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "nginx-ci", - "trail_name": "fb791742054fa28dd89269aac8002ebfd7b3386e", + "flow_name": "languages-start-points-ci", + "trail_name": "068b3424c7da843a4f2d428d2e4915f33efc4a02", "artifact_status": null } }, @@ -7311,7 +7311,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "nginx-b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", + "trail_name": "languages-start-points-adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", "artifact_status": null } }, @@ -7327,7 +7327,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "nginx-b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", + "trail_name": "languages-start-points-adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", "artifact_status": null } } @@ -7347,8 +7347,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "nginx-ci", - "trail_name": "fb791742054fa28dd89269aac8002ebfd7b3386e", + "flow_name": "languages-start-points-ci", + "trail_name": "068b3424c7da843a4f2d428d2e4915f33efc4a02", "artifact_status": "COMPLIANT" } }, @@ -7356,7 +7356,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "nginx-b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", + "trail_name": "languages-start-points-adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", "artifact_status": "COMPLIANT" } }, @@ -7372,7 +7372,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "nginx-b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", + "trail_name": "languages-start-points-adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", "artifact_status": "COMPLIANT" } } @@ -7397,8 +7397,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "nginx-ci", - "trail_name": "fb791742054fa28dd89269aac8002ebfd7b3386e", + "flow_name": "languages-start-points-ci", + "trail_name": "068b3424c7da843a4f2d428d2e4915f33efc4a02", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -7407,7 +7407,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "nginx-b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", + "trail_name": "languages-start-points-adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -7425,7 +7425,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "nginx-b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", + "trail_name": "languages-start-points-adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -7453,8 +7453,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "nginx-ci", - "trail_name": "fb791742054fa28dd89269aac8002ebfd7b3386e", + "flow_name": "languages-start-points-ci", + "trail_name": "068b3424c7da843a4f2d428d2e4915f33efc4a02", "artifact_status": null } }, @@ -7462,7 +7462,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "nginx-b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", + "trail_name": "languages-start-points-adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", "artifact_status": null } }, @@ -7478,7 +7478,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "nginx-b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", + "trail_name": "languages-start-points-adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", "artifact_status": null } } @@ -7498,8 +7498,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "nginx-ci", - "trail_name": "fb791742054fa28dd89269aac8002ebfd7b3386e", + "flow_name": "languages-start-points-ci", + "trail_name": "068b3424c7da843a4f2d428d2e4915f33efc4a02", "artifact_status": "COMPLIANT" } }, @@ -7507,7 +7507,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "nginx-b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", + "trail_name": "languages-start-points-adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", "artifact_status": "COMPLIANT" } }, @@ -7523,7 +7523,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "nginx-b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", + "trail_name": "languages-start-points-adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", "artifact_status": "COMPLIANT" } } @@ -7548,8 +7548,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "nginx-ci", - "trail_name": "fb791742054fa28dd89269aac8002ebfd7b3386e", + "flow_name": "languages-start-points-ci", + "trail_name": "068b3424c7da843a4f2d428d2e4915f33efc4a02", "artifact_status": null } }, @@ -7557,7 +7557,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "nginx-b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", + "trail_name": "languages-start-points-adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", "artifact_status": null } }, @@ -7573,7 +7573,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "nginx-b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", + "trail_name": "languages-start-points-adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", "artifact_status": null } } @@ -7600,8 +7600,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "nginx-ci", - "trail_name": "fb791742054fa28dd89269aac8002ebfd7b3386e", + "flow_name": "languages-start-points-ci", + "trail_name": "068b3424c7da843a4f2d428d2e4915f33efc4a02", "artifact_status": null } }, @@ -7609,7 +7609,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "nginx-b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", + "trail_name": "languages-start-points-adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", "artifact_status": null } }, @@ -7625,7 +7625,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "nginx-b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", + "trail_name": "languages-start-points-adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", "artifact_status": null } } @@ -7651,8 +7651,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "nginx-ci", - "trail_name": "fb791742054fa28dd89269aac8002ebfd7b3386e", + "flow_name": "languages-start-points-ci", + "trail_name": "068b3424c7da843a4f2d428d2e4915f33efc4a02", "artifact_status": "COMPLIANT" } }, @@ -7660,7 +7660,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "nginx-b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", + "trail_name": "languages-start-points-adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", "artifact_status": "COMPLIANT" } }, @@ -7676,7 +7676,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "nginx-b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", + "trail_name": "languages-start-points-adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", "artifact_status": "COMPLIANT" } } @@ -7687,7 +7687,7 @@ kosli get snapshot aws-prod --output=json } ], "reasons_for_incompliance": [], - "fingerprint": "b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", + "fingerprint": "adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", "creationTimestamp": [ 1786425079 ], @@ -7697,59 +7697,59 @@ kosli get snapshot aws-prod --output=json "was": 1, "now": 1 }, - "flow_name": "nginx-ci", - "git_commit": "fb791742054fa28dd89269aac8002ebfd7b3386e", - "commit_url": "https://github.com/cyber-dojo/nginx/commit/fb791742054fa28dd89269aac8002ebfd7b3386e", - "html_url": "https://app.kosli.com/cyber-dojo/flows/nginx-ci/artifacts/b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf?artifact_id=b9778ac6-6d83-4954-98ba-a3e60a22", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/nginx-ci", + "flow_name": "languages-start-points-ci", + "git_commit": "068b3424c7da843a4f2d428d2e4915f33efc4a02", + "commit_url": "https://github.com/cyber-dojo/languages-start-points/commit/068b3424c7da843a4f2d428d2e4915f33efc4a02", + "html_url": "https://app.kosli.com/cyber-dojo/flows/languages-start-points-ci/artifacts/adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb?artifact_id=4154b9c8-14cc-426f-abc5-05220611", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/languages-start-points-ci", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/nginx/compare/5ce2769937a4014a853787d7b3d89ec30b6ac967...fb791742054fa28dd89269aac8002ebfd7b3386e", - "previous_git_commit": "5ce2769937a4014a853787d7b3d89ec30b6ac967", - "previous_fingerprint": "7ef0c05ccfbd506e8c72c17f5ff2e6c0c9732c4dd281b7b071e89da900fa0332", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:5ce2769@sha256:7ef0c05ccfbd506e8c72c17f5ff2e6c0c9732c4dd281b7b071e89da900fa0332", + "diff_url": "https://github.com/cyber-dojo/languages-start-points/compare/6a7f7be81022f7ed3fa8383f016b55af86e2af23...068b3424c7da843a4f2d428d2e4915f33efc4a02", + "previous_git_commit": "6a7f7be81022f7ed3fa8383f016b55af86e2af23", + "previous_fingerprint": "b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/languages-start-points:6a7f7be@sha256:b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/nginx/commit/5ce2769937a4014a853787d7b3d89ec30b6ac967", - "previous_trail_name": "5ce2769937a4014a853787d7b3d89ec30b6ac967", - "previous_template_reference_name": "nginx" + "previous_git_commit_url": "https://github.com/cyber-dojo/languages-start-points/commit/6a7f7be81022f7ed3fa8383f016b55af86e2af23", + "previous_trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23", + "previous_template_reference_name": "languages-start-points" }, - "commit_lead_time": 412187.0, + "commit_lead_time": 31476.0, "flows": [ { - "flow_name": "nginx-ci", - "trail_name": "fb791742054fa28dd89269aac8002ebfd7b3386e", - "template_reference_name": "nginx", - "git_commit": "fb791742054fa28dd89269aac8002ebfd7b3386e", - "commit_url": "https://github.com/cyber-dojo/nginx/commit/fb791742054fa28dd89269aac8002ebfd7b3386e", + "flow_name": "languages-start-points-ci", + "trail_name": "068b3424c7da843a4f2d428d2e4915f33efc4a02", + "template_reference_name": "languages-start-points", + "git_commit": "068b3424c7da843a4f2d428d2e4915f33efc4a02", + "commit_url": "https://github.com/cyber-dojo/languages-start-points/commit/068b3424c7da843a4f2d428d2e4915f33efc4a02", "git_commit_info": { - "sha1": "fb791742054fa28dd89269aac8002ebfd7b3386e", - "message": "Merge pull request #166 from cyber-dojo/drop-old-fork-spellings\n\nStop rate limiting the old fork paths", + "sha1": "068b3424c7da843a4f2d428d2e4915f33efc4a02", + "message": "Merge pull request #245 from cyber-dojo/update-zig\n\nUpdate zig-test to 0.16.0", "author": "Jon Jagger ", "branch": "", - "timestamp": 1786012892.0, - "url": "https://github.com/cyber-dojo/nginx/commit/fb791742054fa28dd89269aac8002ebfd7b3386e" + "timestamp": 1786393603.0, + "url": "https://github.com/cyber-dojo/languages-start-points/commit/068b3424c7da843a4f2d428d2e4915f33efc4a02" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/nginx-ci/artifacts/b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf?artifact_id=b9778ac6-6d83-4954-98ba-a3e60a22", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/nginx-ci", + "html_url": "https://app.kosli.com/cyber-dojo/flows/languages-start-points-ci/artifacts/adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb?artifact_id=4154b9c8-14cc-426f-abc5-05220611", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/languages-start-points-ci", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/nginx/compare/5ce2769937a4014a853787d7b3d89ec30b6ac967...fb791742054fa28dd89269aac8002ebfd7b3386e", - "previous_git_commit": "5ce2769937a4014a853787d7b3d89ec30b6ac967", - "previous_fingerprint": "7ef0c05ccfbd506e8c72c17f5ff2e6c0c9732c4dd281b7b071e89da900fa0332", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:5ce2769@sha256:7ef0c05ccfbd506e8c72c17f5ff2e6c0c9732c4dd281b7b071e89da900fa0332", + "diff_url": "https://github.com/cyber-dojo/languages-start-points/compare/6a7f7be81022f7ed3fa8383f016b55af86e2af23...068b3424c7da843a4f2d428d2e4915f33efc4a02", + "previous_git_commit": "6a7f7be81022f7ed3fa8383f016b55af86e2af23", + "previous_fingerprint": "b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/languages-start-points:6a7f7be@sha256:b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/nginx/commit/5ce2769937a4014a853787d7b3d89ec30b6ac967", - "previous_trail_name": "5ce2769937a4014a853787d7b3d89ec30b6ac967", - "previous_template_reference_name": "nginx" + "previous_git_commit_url": "https://github.com/cyber-dojo/languages-start-points/commit/6a7f7be81022f7ed3fa8383f016b55af86e2af23", + "previous_trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23", + "previous_template_reference_name": "languages-start-points" }, - "commit_lead_time": 412187.0, + "commit_lead_time": 31476.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "nginx-b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", - "template_reference_name": "nginx", + "trail_name": "languages-start-points-adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", + "template_reference_name": "languages-start-points", "git_commit": "c0666c020044ac5b5181999ec153db1e7f6cd303", "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303", "git_commit_info": { @@ -7760,18 +7760,18 @@ kosli get snapshot aws-prod --output=json "timestamp": 1785316951.0, "url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf?artifact_id=9474b76c-5cd0-42da-b469-c6a26c8c", + "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb?artifact_id=d9e69b41-322d-4dea-8b56-dbd50334", "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact", "deployment_diff": { "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/c0666c020044ac5b5181999ec153db1e7f6cd303...c0666c020044ac5b5181999ec153db1e7f6cd303", "previous_git_commit": "c0666c020044ac5b5181999ec153db1e7f6cd303", - "previous_fingerprint": "55335a374bd7c02fb204ad62ec94b060e5fef14b83c2ba879ade094db04f8744", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:bc3fd56@sha256:55335a374bd7c02fb204ad62ec94b060e5fef14b83c2ba879ade094db04f8744", + "previous_fingerprint": "b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/languages-start-points:6a7f7be@sha256:b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303", - "previous_trail_name": "nginx-55335a374bd7c02fb204ad62ec94b060e5fef14b83c2ba879ade094db04f8744", - "previous_template_reference_name": "nginx" + "previous_trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", + "previous_template_reference_name": "languages-start-points" }, "commit_lead_time": 1108128.0, "artifact_compliance_in_flow": true, @@ -7780,7 +7780,7 @@ kosli get snapshot aws-prod --output=json { "flow_name": "production-promotion", "trail_name": "promote-all-33", - "template_reference_name": "nginx", + "template_reference_name": "languages-start-points", "git_commit": "7494758f8bbc4e66cb5df90ef4cd6b72d75ca584", "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/7494758f8bbc4e66cb5df90ef4cd6b72d75ca584", "git_commit_info": { @@ -7791,18 +7791,18 @@ kosli get snapshot aws-prod --output=json "timestamp": 1785316994.0, "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/7494758f8bbc4e66cb5df90ef4cd6b72d75ca584" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf?artifact_id=49f9d376-d38a-4540-bbb1-4a739116", + "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb?artifact_id=ee065d98-ce20-46c7-bc2f-a4502952", "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/compare/7494758f8bbc4e66cb5df90ef4cd6b72d75ca584...7494758f8bbc4e66cb5df90ef4cd6b72d75ca584", - "previous_git_commit": "7494758f8bbc4e66cb5df90ef4cd6b72d75ca584", - "previous_fingerprint": "7ef0c05ccfbd506e8c72c17f5ff2e6c0c9732c4dd281b7b071e89da900fa0332", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:5ce2769@sha256:7ef0c05ccfbd506e8c72c17f5ff2e6c0c9732c4dd281b7b071e89da900fa0332", + "diff_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/compare/81c216a55b2cb1787645e699ceaceca868cad253...7494758f8bbc4e66cb5df90ef4cd6b72d75ca584", + "previous_git_commit": "81c216a55b2cb1787645e699ceaceca868cad253", + "previous_fingerprint": "b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/languages-start-points:6a7f7be@sha256:b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/7494758f8bbc4e66cb5df90ef4cd6b72d75ca584", - "previous_trail_name": "promotion-one-156", - "previous_template_reference_name": "nginx" + "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253", + "previous_trail_name": "promote-all-31", + "previous_template_reference_name": "languages-start-points" }, "commit_lead_time": 1108085.0, "artifact_compliance_in_flow": true, @@ -7810,44 +7810,44 @@ kosli get snapshot aws-prod --output=json }, { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "nginx-b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", - "template_reference_name": "nginx", - "git_commit": "10203d5d23f93844726f204390cf3d5ca8d5c913", - "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/10203d5d23f93844726f204390cf3d5ca8d5c913", + "trail_name": "languages-start-points-adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", + "template_reference_name": "languages-start-points", + "git_commit": "ed3c81d7322bb8058615095f4aab28c147c53933", + "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/ed3c81d7322bb8058615095f4aab28c147c53933", "git_commit_info": { - "sha1": "10203d5d23f93844726f204390cf3d5ca8d5c913", - "message": "Extract the repeated retrying curl into a composite action\n\n The retry flags were pasted into six call sites, so tuning them\n meant six edits with five chances to miss one.\n\n Two of the three jobs check out the caller's repo, where\n ./.github/actions does not resolve, so those name the action by\n its repo path.", + "sha1": "ed3c81d7322bb8058615095f4aab28c147c53933", + "message": "Unpack one pinned commit instead of fetching each file\n\n a0c005a moved these two jobs' files to RUNNER_TEMP, which kept them out of\n the caller's checkout but left the prefix repeated at every use. The paths\n are absolute because the run steps stay in the checkout, where the Kosli\n CLI reads git commit information from the working directory, so the prefix\n cannot be dropped. It can only be folded into the definitions, and a\n literal /tmp folds where runner.temp does not: the runner context is\n unavailable in workflow- and job-level env blocks. Both jobs are pinned to\n ubuntu-latest, one fresh VM per job, so /tmp neither collides nor persists.\n\n The files also arrived as five separate fetches of main, one per file, so a\n push landing mid-run could pair a rego policy with params from a different\n commit. find-snyk-vulns already checks this repo out, so it now publishes\n the SHA it resolved, and the two later jobs unpack that exact commit as a\n single tarball. One run reads one version.\n\n An env-var's prefix now says where its file came from: SNYK_SCANNING_ from\n this repo at the pinned commit, CALLER_ from the repo being scanned, TMP_\n produced by the run. That split is worth naming because only one of these\n files is the caller's, and it is the one .snyk that the decision attests\n against. Two bare filenames survive because an artifact name cannot\n contain a '/'.\n\n fetch-url-to-file now has exactly one caller, for that .snyk.", "author": "JonJagger ", "branch": "main", - "timestamp": 1786602393.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/10203d5d23f93844726f204390cf3d5ca8d5c913" + "timestamp": 1787661987.0, + "url": "https://github.com/cyber-dojo/snyk-scanning/commit/ed3c81d7322bb8058615095f4aab28c147c53933" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf?artifact_id=efec6b2c-db0c-41cb-ad08-aad538f8", + "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb?artifact_id=fe76010c-5bae-44cb-8829-ad34399b", "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/00c479764cb9eca038fdaaaef108672d0bb0ed26...10203d5d23f93844726f204390cf3d5ca8d5c913", + "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/00c479764cb9eca038fdaaaef108672d0bb0ed26...ed3c81d7322bb8058615095f4aab28c147c53933", "previous_git_commit": "00c479764cb9eca038fdaaaef108672d0bb0ed26", - "previous_fingerprint": "b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:7065268@sha256:b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8", + "previous_fingerprint": "b2f51324efc1528e4dda57d235bdbc68d966e1ea23722d5d296f98eefbfc2676", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/languages-start-points:7e86fed@sha256:b2f51324efc1528e4dda57d235bdbc68d966e1ea23722d5d296f98eefbfc2676", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/00c479764cb9eca038fdaaaef108672d0bb0ed26", - "previous_trail_name": "nginx-b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8", - "previous_template_reference_name": "nginx" + "previous_trail_name": "languages-start-points-b2f51324efc1528e4dda57d235bdbc68d966e1ea23722d5d296f98eefbfc2676", + "previous_template_reference_name": "languages-start-points" }, - "commit_lead_time": -177314.0, + "commit_lead_time": -1236908.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] } ], "ecs_context": { - "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/50474795074a4b039a5d59ff411b87e9", + "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/ed7c6bde626840e6a054cc94cd2c3363", "cluster_name": null, "service_name": null } }, { - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:258b6d0@sha256:c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:fb79174@sha256:b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", "compliant": true, "deployments": [], "policy_decisions": [ @@ -7869,24 +7869,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "exercises-start-points-ci", - "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", + "flow_name": "nginx-ci", + "trail_name": "fb791742054fa28dd89269aac8002ebfd7b3386e", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-31", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "nginx-b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "flow_name": "production-promotion", + "trail_name": "promote-all-33", "artifact_status": null } }, @@ -7894,7 +7894,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "trail_name": "nginx-b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", "artifact_status": null } } @@ -7914,24 +7914,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "exercises-start-points-ci", - "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", + "flow_name": "nginx-ci", + "trail_name": "fb791742054fa28dd89269aac8002ebfd7b3386e", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-31", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "nginx-b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "flow_name": "production-promotion", + "trail_name": "promote-all-33", "artifact_status": "COMPLIANT" } }, @@ -7939,7 +7939,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "trail_name": "nginx-b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", "artifact_status": "COMPLIANT" } } @@ -7964,24 +7964,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "exercises-start-points-ci", - "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", + "flow_name": "nginx-ci", + "trail_name": "fb791742054fa28dd89269aac8002ebfd7b3386e", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-31", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "nginx-b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "flow_name": "production-promotion", + "trail_name": "promote-all-33", "artifact_status": null } }, @@ -7989,7 +7989,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "trail_name": "nginx-b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", "artifact_status": null } } @@ -8016,24 +8016,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "exercises-start-points-ci", - "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", + "flow_name": "nginx-ci", + "trail_name": "fb791742054fa28dd89269aac8002ebfd7b3386e", "artifact_status": null } }, { "type": "rule_satisfied", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-31", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "nginx-b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", "artifact_status": null } }, { "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "flow_name": "production-promotion", + "trail_name": "promote-all-33", "artifact_status": null } }, @@ -8041,7 +8041,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "trail_name": "nginx-b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", "artifact_status": null } } @@ -8061,24 +8061,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "exercises-start-points-ci", - "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", + "flow_name": "nginx-ci", + "trail_name": "fb791742054fa28dd89269aac8002ebfd7b3386e", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-31", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "nginx-b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "flow_name": "production-promotion", + "trail_name": "promote-all-33", "artifact_status": "COMPLIANT" } }, @@ -8086,7 +8086,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "trail_name": "nginx-b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", "artifact_status": "COMPLIANT" } } @@ -8111,8 +8111,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "exercises-start-points-ci", - "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", + "flow_name": "nginx-ci", + "trail_name": "fb791742054fa28dd89269aac8002ebfd7b3386e", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -8120,8 +8120,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-31", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "nginx-b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -8129,8 +8129,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "flow_name": "production-promotion", + "trail_name": "promote-all-33", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -8139,7 +8139,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "trail_name": "nginx-b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -8167,24 +8167,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "exercises-start-points-ci", - "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", + "flow_name": "nginx-ci", + "trail_name": "fb791742054fa28dd89269aac8002ebfd7b3386e", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-31", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "nginx-b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "flow_name": "production-promotion", + "trail_name": "promote-all-33", "artifact_status": null } }, @@ -8192,7 +8192,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "trail_name": "nginx-b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", "artifact_status": null } } @@ -8212,24 +8212,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "exercises-start-points-ci", - "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", + "flow_name": "nginx-ci", + "trail_name": "fb791742054fa28dd89269aac8002ebfd7b3386e", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-31", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "nginx-b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "flow_name": "production-promotion", + "trail_name": "promote-all-33", "artifact_status": "COMPLIANT" } }, @@ -8237,7 +8237,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "trail_name": "nginx-b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", "artifact_status": "COMPLIANT" } } @@ -8262,8 +8262,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "exercises-start-points-ci", - "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", + "flow_name": "nginx-ci", + "trail_name": "fb791742054fa28dd89269aac8002ebfd7b3386e", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -8271,8 +8271,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-31", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "nginx-b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -8280,8 +8280,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "flow_name": "production-promotion", + "trail_name": "promote-all-33", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -8290,7 +8290,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "trail_name": "nginx-b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -8318,24 +8318,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "exercises-start-points-ci", - "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", + "flow_name": "nginx-ci", + "trail_name": "fb791742054fa28dd89269aac8002ebfd7b3386e", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-31", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "nginx-b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "flow_name": "production-promotion", + "trail_name": "promote-all-33", "artifact_status": null } }, @@ -8343,7 +8343,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "trail_name": "nginx-b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", "artifact_status": null } } @@ -8363,24 +8363,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "exercises-start-points-ci", - "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", + "flow_name": "nginx-ci", + "trail_name": "fb791742054fa28dd89269aac8002ebfd7b3386e", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-31", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "nginx-b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "flow_name": "production-promotion", + "trail_name": "promote-all-33", "artifact_status": "COMPLIANT" } }, @@ -8388,7 +8388,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "trail_name": "nginx-b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", "artifact_status": "COMPLIANT" } } @@ -8413,24 +8413,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "exercises-start-points-ci", - "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", + "flow_name": "nginx-ci", + "trail_name": "fb791742054fa28dd89269aac8002ebfd7b3386e", "artifact_status": null } }, { - "type": "rule_satisfied", + "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-31", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "nginx-b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", "artifact_status": null } }, { - "type": "rule_not_applicable", + "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "flow_name": "production-promotion", + "trail_name": "promote-all-33", "artifact_status": null } }, @@ -8438,7 +8438,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "trail_name": "nginx-b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", "artifact_status": null } } @@ -8465,24 +8465,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "exercises-start-points-ci", - "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", + "flow_name": "nginx-ci", + "trail_name": "fb791742054fa28dd89269aac8002ebfd7b3386e", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-31", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "nginx-b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "flow_name": "production-promotion", + "trail_name": "promote-all-33", "artifact_status": null } }, @@ -8490,7 +8490,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "trail_name": "nginx-b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", "artifact_status": null } } @@ -8516,24 +8516,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "exercises-start-points-ci", - "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", + "flow_name": "nginx-ci", + "trail_name": "fb791742054fa28dd89269aac8002ebfd7b3386e", "artifact_status": "COMPLIANT" } }, { - "type": "rule_satisfied", + "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-31", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "nginx-b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", "artifact_status": "COMPLIANT" } }, { - "type": "rule_not_applicable", + "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "flow_name": "production-promotion", + "trail_name": "promote-all-33", "artifact_status": "COMPLIANT" } }, @@ -8541,7 +8541,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "trail_name": "nginx-b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", "artifact_status": "COMPLIANT" } } @@ -8552,9 +8552,9 @@ kosli get snapshot aws-prod --output=json } ], "reasons_for_incompliance": [], - "fingerprint": "c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "fingerprint": "b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", "creationTimestamp": [ - 1785241255 + 1786425079 ], "pods": null, "annotation": { @@ -8562,151 +8562,151 @@ kosli get snapshot aws-prod --output=json "was": 1, "now": 1 }, - "flow_name": "exercises-start-points-ci", - "git_commit": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", - "commit_url": "https://github.com/cyber-dojo/exercises-start-points/commit/258b6d07d2b28ad5cb2ce6d29934997f72380f1a", - "html_url": "https://app.kosli.com/cyber-dojo/flows/exercises-start-points-ci/artifacts/c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea?artifact_id=ffb671be-6388-4f6a-ae64-8ba95d82", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/exercises-start-points-ci", + "flow_name": "nginx-ci", + "git_commit": "fb791742054fa28dd89269aac8002ebfd7b3386e", + "commit_url": "https://github.com/cyber-dojo/nginx/commit/fb791742054fa28dd89269aac8002ebfd7b3386e", + "html_url": "https://app.kosli.com/cyber-dojo/flows/nginx-ci/artifacts/b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf?artifact_id=b9778ac6-6d83-4954-98ba-a3e60a22", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/nginx-ci", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/exercises-start-points/compare/804f248d832dc34e564507b009c246dfb4f0c657...258b6d07d2b28ad5cb2ce6d29934997f72380f1a", - "previous_git_commit": "804f248d832dc34e564507b009c246dfb4f0c657", - "previous_fingerprint": "a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:804f248@sha256:a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", + "diff_url": "https://github.com/cyber-dojo/nginx/compare/5ce2769937a4014a853787d7b3d89ec30b6ac967...fb791742054fa28dd89269aac8002ebfd7b3386e", + "previous_git_commit": "5ce2769937a4014a853787d7b3d89ec30b6ac967", + "previous_fingerprint": "7ef0c05ccfbd506e8c72c17f5ff2e6c0c9732c4dd281b7b071e89da900fa0332", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:5ce2769@sha256:7ef0c05ccfbd506e8c72c17f5ff2e6c0c9732c4dd281b7b071e89da900fa0332", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/exercises-start-points/commit/804f248d832dc34e564507b009c246dfb4f0c657", - "previous_trail_name": "804f248d832dc34e564507b009c246dfb4f0c657", - "previous_template_reference_name": "exercises-start-points" + "previous_git_commit_url": "https://github.com/cyber-dojo/nginx/commit/5ce2769937a4014a853787d7b3d89ec30b6ac967", + "previous_trail_name": "5ce2769937a4014a853787d7b3d89ec30b6ac967", + "previous_template_reference_name": "nginx" }, - "commit_lead_time": 929108.0, + "commit_lead_time": 412187.0, "flows": [ { - "flow_name": "exercises-start-points-ci", - "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", - "template_reference_name": "exercises-start-points", - "git_commit": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", - "commit_url": "https://github.com/cyber-dojo/exercises-start-points/commit/258b6d07d2b28ad5cb2ce6d29934997f72380f1a", + "flow_name": "nginx-ci", + "trail_name": "fb791742054fa28dd89269aac8002ebfd7b3386e", + "template_reference_name": "nginx", + "git_commit": "fb791742054fa28dd89269aac8002ebfd7b3386e", + "commit_url": "https://github.com/cyber-dojo/nginx/commit/fb791742054fa28dd89269aac8002ebfd7b3386e", "git_commit_info": { - "sha1": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", - "message": "Merge pull request #146 from cyber-dojo/add-drift-detection\n\nAdd periodic drift-detection workflow", + "sha1": "fb791742054fa28dd89269aac8002ebfd7b3386e", + "message": "Merge pull request #166 from cyber-dojo/drop-old-fork-spellings\n\nStop rate limiting the old fork paths", "author": "Jon Jagger ", "branch": "", - "timestamp": 1784312147.0, - "url": "https://github.com/cyber-dojo/exercises-start-points/commit/258b6d07d2b28ad5cb2ce6d29934997f72380f1a" + "timestamp": 1786012892.0, + "url": "https://github.com/cyber-dojo/nginx/commit/fb791742054fa28dd89269aac8002ebfd7b3386e" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/exercises-start-points-ci/artifacts/c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea?artifact_id=ffb671be-6388-4f6a-ae64-8ba95d82", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/exercises-start-points-ci", + "html_url": "https://app.kosli.com/cyber-dojo/flows/nginx-ci/artifacts/b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf?artifact_id=b9778ac6-6d83-4954-98ba-a3e60a22", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/nginx-ci", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/exercises-start-points/compare/804f248d832dc34e564507b009c246dfb4f0c657...258b6d07d2b28ad5cb2ce6d29934997f72380f1a", - "previous_git_commit": "804f248d832dc34e564507b009c246dfb4f0c657", - "previous_fingerprint": "a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:804f248@sha256:a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", + "diff_url": "https://github.com/cyber-dojo/nginx/compare/5ce2769937a4014a853787d7b3d89ec30b6ac967...fb791742054fa28dd89269aac8002ebfd7b3386e", + "previous_git_commit": "5ce2769937a4014a853787d7b3d89ec30b6ac967", + "previous_fingerprint": "7ef0c05ccfbd506e8c72c17f5ff2e6c0c9732c4dd281b7b071e89da900fa0332", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:5ce2769@sha256:7ef0c05ccfbd506e8c72c17f5ff2e6c0c9732c4dd281b7b071e89da900fa0332", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/exercises-start-points/commit/804f248d832dc34e564507b009c246dfb4f0c657", - "previous_trail_name": "804f248d832dc34e564507b009c246dfb4f0c657", - "previous_template_reference_name": "exercises-start-points" + "previous_git_commit_url": "https://github.com/cyber-dojo/nginx/commit/5ce2769937a4014a853787d7b3d89ec30b6ac967", + "previous_trail_name": "5ce2769937a4014a853787d7b3d89ec30b6ac967", + "previous_template_reference_name": "nginx" }, - "commit_lead_time": 929108.0, + "commit_lead_time": 412187.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { - "flow_name": "production-promotion", - "trail_name": "promote-all-31", - "template_reference_name": "exercises-start-points", - "git_commit": "81c216a55b2cb1787645e699ceaceca868cad253", - "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "nginx-b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", + "template_reference_name": "nginx", + "git_commit": "c0666c020044ac5b5181999ec153db1e7f6cd303", + "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303", "git_commit_info": { - "sha1": "81c216a55b2cb1787645e699ceaceca868cad253", - "message": "Add spooler service name to promote_one.yml", + "sha1": "c0666c020044ac5b5181999ec153db1e7f6cd303", + "message": "Drop lone use of = separator on Kosli CLI boolean flag", "author": "JonJagger ", "branch": "main", - "timestamp": 1785143054.0, - "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253" + "timestamp": 1785316951.0, + "url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea?artifact_id=b17578fc-3dc0-42c5-98a7-216ebe8a", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion", + "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf?artifact_id=9474b76c-5cd0-42da-b469-c6a26c8c", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/compare/d7e31ce0207b766140ae689f38625da4374acf87...81c216a55b2cb1787645e699ceaceca868cad253", - "previous_git_commit": "d7e31ce0207b766140ae689f38625da4374acf87", - "previous_fingerprint": "a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:804f248@sha256:a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", + "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/c0666c020044ac5b5181999ec153db1e7f6cd303...c0666c020044ac5b5181999ec153db1e7f6cd303", + "previous_git_commit": "c0666c020044ac5b5181999ec153db1e7f6cd303", + "previous_fingerprint": "55335a374bd7c02fb204ad62ec94b060e5fef14b83c2ba879ade094db04f8744", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:bc3fd56@sha256:55335a374bd7c02fb204ad62ec94b060e5fef14b83c2ba879ade094db04f8744", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/d7e31ce0207b766140ae689f38625da4374acf87", - "previous_trail_name": "promote-all-30", - "previous_template_reference_name": "exercises-start-points" + "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303", + "previous_trail_name": "nginx-55335a374bd7c02fb204ad62ec94b060e5fef14b83c2ba879ade094db04f8744", + "previous_template_reference_name": "nginx" }, - "commit_lead_time": 98201.0, + "commit_lead_time": 1108128.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", - "template_reference_name": "exercises-start-points", - "git_commit": "c0666c020044ac5b5181999ec153db1e7f6cd303", - "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303", + "flow_name": "production-promotion", + "trail_name": "promote-all-33", + "template_reference_name": "nginx", + "git_commit": "7494758f8bbc4e66cb5df90ef4cd6b72d75ca584", + "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/7494758f8bbc4e66cb5df90ef4cd6b72d75ca584", "git_commit_info": { - "sha1": "c0666c020044ac5b5181999ec153db1e7f6cd303", + "sha1": "7494758f8bbc4e66cb5df90ef4cd6b72d75ca584", "message": "Drop lone use of = separator on Kosli CLI boolean flag", "author": "JonJagger ", "branch": "main", - "timestamp": 1785316951.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303" + "timestamp": 1785316994.0, + "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/7494758f8bbc4e66cb5df90ef4cd6b72d75ca584" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea?artifact_id=c5be014c-5c90-4940-9d24-3f1d472a", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact", + "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf?artifact_id=49f9d376-d38a-4540-bbb1-4a739116", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7...c0666c020044ac5b5181999ec153db1e7f6cd303", - "previous_git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "previous_fingerprint": "a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:804f248@sha256:a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", + "diff_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/compare/7494758f8bbc4e66cb5df90ef4cd6b72d75ca584...7494758f8bbc4e66cb5df90ef4cd6b72d75ca584", + "previous_git_commit": "7494758f8bbc4e66cb5df90ef4cd6b72d75ca584", + "previous_fingerprint": "7ef0c05ccfbd506e8c72c17f5ff2e6c0c9732c4dd281b7b071e89da900fa0332", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:5ce2769@sha256:7ef0c05ccfbd506e8c72c17f5ff2e6c0c9732c4dd281b7b071e89da900fa0332", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "previous_trail_name": "exercises-start-points-a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", - "previous_template_reference_name": "exercises-start-points" + "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/7494758f8bbc4e66cb5df90ef4cd6b72d75ca584", + "previous_trail_name": "promotion-one-156", + "previous_template_reference_name": "nginx" }, - "commit_lead_time": -75696.0, + "commit_lead_time": 1108085.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", - "template_reference_name": "exercises-start-points", - "git_commit": "10203d5d23f93844726f204390cf3d5ca8d5c913", - "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/10203d5d23f93844726f204390cf3d5ca8d5c913", + "trail_name": "nginx-b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", + "template_reference_name": "nginx", + "git_commit": "ed3c81d7322bb8058615095f4aab28c147c53933", + "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/ed3c81d7322bb8058615095f4aab28c147c53933", "git_commit_info": { - "sha1": "10203d5d23f93844726f204390cf3d5ca8d5c913", - "message": "Extract the repeated retrying curl into a composite action\n\n The retry flags were pasted into six call sites, so tuning them\n meant six edits with five chances to miss one.\n\n Two of the three jobs check out the caller's repo, where\n ./.github/actions does not resolve, so those name the action by\n its repo path.", + "sha1": "ed3c81d7322bb8058615095f4aab28c147c53933", + "message": "Unpack one pinned commit instead of fetching each file\n\n a0c005a moved these two jobs' files to RUNNER_TEMP, which kept them out of\n the caller's checkout but left the prefix repeated at every use. The paths\n are absolute because the run steps stay in the checkout, where the Kosli\n CLI reads git commit information from the working directory, so the prefix\n cannot be dropped. It can only be folded into the definitions, and a\n literal /tmp folds where runner.temp does not: the runner context is\n unavailable in workflow- and job-level env blocks. Both jobs are pinned to\n ubuntu-latest, one fresh VM per job, so /tmp neither collides nor persists.\n\n The files also arrived as five separate fetches of main, one per file, so a\n push landing mid-run could pair a rego policy with params from a different\n commit. find-snyk-vulns already checks this repo out, so it now publishes\n the SHA it resolved, and the two later jobs unpack that exact commit as a\n single tarball. One run reads one version.\n\n An env-var's prefix now says where its file came from: SNYK_SCANNING_ from\n this repo at the pinned commit, CALLER_ from the repo being scanned, TMP_\n produced by the run. That split is worth naming because only one of these\n files is the caller's, and it is the one .snyk that the decision attests\n against. Two bare filenames survive because an artifact name cannot\n contain a '/'.\n\n fetch-url-to-file now has exactly one caller, for that .snyk.", "author": "JonJagger ", "branch": "main", - "timestamp": 1786602393.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/10203d5d23f93844726f204390cf3d5ca8d5c913" + "timestamp": 1787661987.0, + "url": "https://github.com/cyber-dojo/snyk-scanning/commit/ed3c81d7322bb8058615095f4aab28c147c53933" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea?artifact_id=84b1346f-0ba1-4444-9026-ed25d0dc", + "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf?artifact_id=5a00bd4e-d483-44b8-a755-b1bcb100", "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/00c479764cb9eca038fdaaaef108672d0bb0ed26...10203d5d23f93844726f204390cf3d5ca8d5c913", + "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/00c479764cb9eca038fdaaaef108672d0bb0ed26...ed3c81d7322bb8058615095f4aab28c147c53933", "previous_git_commit": "00c479764cb9eca038fdaaaef108672d0bb0ed26", - "previous_fingerprint": "f00aa234bebafb1980dced29626750f84a6fe6c9c50f6a90167e4d8e6511a8a8", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:b8e5cbf@sha256:f00aa234bebafb1980dced29626750f84a6fe6c9c50f6a90167e4d8e6511a8a8", + "previous_fingerprint": "b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:7065268@sha256:b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/00c479764cb9eca038fdaaaef108672d0bb0ed26", - "previous_trail_name": "exercises-start-points-f00aa234bebafb1980dced29626750f84a6fe6c9c50f6a90167e4d8e6511a8a8", - "previous_template_reference_name": "exercises-start-points" + "previous_trail_name": "nginx-b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8", + "previous_template_reference_name": "nginx" }, - "commit_lead_time": -1361138.0, + "commit_lead_time": -1236908.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] } ], "ecs_context": { - "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/f248719ae7814027825075c5ea81acff", + "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/50474795074a4b039a5d59ff411b87e9", "cluster_name": null, "service_name": null } @@ -9542,20 +9542,20 @@ kosli get snapshot aws-prod --output=json "flow_name": "snyk-aws-prod-per-artifact", "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", "template_reference_name": "custom-start-points", - "git_commit": "10203d5d23f93844726f204390cf3d5ca8d5c913", - "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/10203d5d23f93844726f204390cf3d5ca8d5c913", + "git_commit": "ed3c81d7322bb8058615095f4aab28c147c53933", + "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/ed3c81d7322bb8058615095f4aab28c147c53933", "git_commit_info": { - "sha1": "10203d5d23f93844726f204390cf3d5ca8d5c913", - "message": "Extract the repeated retrying curl into a composite action\n\n The retry flags were pasted into six call sites, so tuning them\n meant six edits with five chances to miss one.\n\n Two of the three jobs check out the caller's repo, where\n ./.github/actions does not resolve, so those name the action by\n its repo path.", + "sha1": "ed3c81d7322bb8058615095f4aab28c147c53933", + "message": "Unpack one pinned commit instead of fetching each file\n\n a0c005a moved these two jobs' files to RUNNER_TEMP, which kept them out of\n the caller's checkout but left the prefix repeated at every use. The paths\n are absolute because the run steps stay in the checkout, where the Kosli\n CLI reads git commit information from the working directory, so the prefix\n cannot be dropped. It can only be folded into the definitions, and a\n literal /tmp folds where runner.temp does not: the runner context is\n unavailable in workflow- and job-level env blocks. Both jobs are pinned to\n ubuntu-latest, one fresh VM per job, so /tmp neither collides nor persists.\n\n The files also arrived as five separate fetches of main, one per file, so a\n push landing mid-run could pair a rego policy with params from a different\n commit. find-snyk-vulns already checks this repo out, so it now publishes\n the SHA it resolved, and the two later jobs unpack that exact commit as a\n single tarball. One run reads one version.\n\n An env-var's prefix now says where its file came from: SNYK_SCANNING_ from\n this repo at the pinned commit, CALLER_ from the repo being scanned, TMP_\n produced by the run. That split is worth naming because only one of these\n files is the caller's, and it is the one .snyk that the decision attests\n against. Two bare filenames survive because an artifact name cannot\n contain a '/'.\n\n fetch-url-to-file now has exactly one caller, for that .snyk.", "author": "JonJagger ", "branch": "main", - "timestamp": 1786602393.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/10203d5d23f93844726f204390cf3d5ca8d5c913" + "timestamp": 1787661987.0, + "url": "https://github.com/cyber-dojo/snyk-scanning/commit/ed3c81d7322bb8058615095f4aab28c147c53933" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81?artifact_id=7e65d24a-4909-4c84-b63f-c39581db", + "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81?artifact_id=73229628-98fc-4463-955d-97a44227", "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/00c479764cb9eca038fdaaaef108672d0bb0ed26...10203d5d23f93844726f204390cf3d5ca8d5c913", + "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/00c479764cb9eca038fdaaaef108672d0bb0ed26...ed3c81d7322bb8058615095f4aab28c147c53933", "previous_git_commit": "00c479764cb9eca038fdaaaef108672d0bb0ed26", "previous_fingerprint": "b4448ca68a0926e4a7a800f5b101b63e9c2f38e1caaebb7e929d992763570928", "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/custom-start-points:6b5c159@sha256:b4448ca68a0926e4a7a800f5b101b63e9c2f38e1caaebb7e929d992763570928", @@ -9565,7 +9565,7 @@ kosli get snapshot aws-prod --output=json "previous_trail_name": "custom-start-points-b4448ca68a0926e4a7a800f5b101b63e9c2f38e1caaebb7e929d992763570928", "previous_template_reference_name": "custom-start-points" }, - "commit_lead_time": -1361149.0, + "commit_lead_time": -2420743.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] } diff --git a/client_reference/kosli_list_environments.md b/client_reference/kosli_list_environments.md index c5ecb59..0a89676 100644 --- a/client_reference/kosli_list_environments.md +++ b/client_reference/kosli_list_environments.md @@ -63,9 +63,9 @@ kosli list environments --output=json "name": "aws-beta", "type": "ECS", "description": "The ECS cluster for staging cyber-dojo", - "last_modified_at": 1787150423.9041247, - "last_reported_at": 1787150423.9041247, - "last_changed_at": 1787118563.9915287, + "last_modified_at": 1788000323.986277, + "last_reported_at": 1788000323.986277, + "last_changed_at": 1787991863.9393172, "state": true, "include_scaling": false, "tags": { @@ -84,9 +84,9 @@ kosli list environments --output=json "name": "aws-beta-terraform-drift-detection", "type": "server", "description": "Detection of drift of the Infrastructure-as-code components of aws-beta", - "last_modified_at": 1787150408.6283412, - "last_reported_at": 1787150408.6283412, - "last_changed_at": 1787118920.72072, + "last_modified_at": 1788000320.8143363, + "last_reported_at": 1788000320.8143363, + "last_changed_at": 1787905808.789012, "state": true, "include_scaling": false, "tags": {}, @@ -100,9 +100,9 @@ kosli list environments --output=json "name": "aws-prod", "type": "ECS", "description": "The ECS cluster for production cyber-dojo", - "last_modified_at": 1787150398.6166384, - "last_reported_at": 1787150398.6166384, - "last_changed_at": 1787107798.493415, + "last_modified_at": 1788000298.4718719, + "last_reported_at": 1788000298.4718719, + "last_changed_at": 1787991898.5420277, "state": true, "include_scaling": false, "tags": { @@ -122,9 +122,9 @@ kosli list environments --output=json "name": "aws-prod-terraform-drift-detection", "type": "server", "description": "Detection of drift of the Infrastructure-as-code components of aws-prod", - "last_modified_at": 1787150313.3509266, - "last_reported_at": 1787150313.3509266, - "last_changed_at": 1786426111.953674, + "last_modified_at": 1788000211.8122895, + "last_reported_at": 1788000211.8122895, + "last_changed_at": 1787665723.30174, "state": true, "include_scaling": false, "tags": {}, @@ -138,9 +138,9 @@ kosli list environments --output=json "name": "production", "type": "logical", "description": "Production environments for cyber-dojo", - "last_modified_at": 1787107798.493415, + "last_modified_at": 1787991898.5420277, "last_reported_at": null, - "last_changed_at": 1787107798.493415, + "last_changed_at": 1787991898.5420277, "state": true, "include_scaling": false, "tags": {}, @@ -155,9 +155,9 @@ kosli list environments --output=json "name": "staging", "type": "logical", "description": "Staging environments for cyber-dojo", - "last_modified_at": 1787118920.72072, + "last_modified_at": 1787991863.9393172, "last_reported_at": null, - "last_changed_at": 1787118920.72072, + "last_changed_at": 1787991863.9393172, "state": true, "include_scaling": false, "tags": {}, diff --git a/client_reference/kosli_list_flows.md b/client_reference/kosli_list_flows.md index 60d6de9..9442afb 100644 --- a/client_reference/kosli_list_flows.md +++ b/client_reference/kosli_list_flows.md @@ -68,7 +68,7 @@ kosli list flows --output=json "kind": "build", "env": "aws-beta" }, - "latest_activity_at": 1786438583.8978486, + "latest_activity_at": 1787835864.1788104, "latest_state": "COMPLIANT" }, { @@ -85,7 +85,7 @@ kosli list flows --output=json "kind": "build", "env": "aws-beta" }, - "latest_activity_at": 1786437744.0761797, + "latest_activity_at": 1787838923.90539, "latest_state": "COMPLIANT" }, { @@ -102,7 +102,7 @@ kosli list flows --output=json "kind": "build", "env": "aws-beta" }, - "latest_activity_at": 1786438583.8978486, + "latest_activity_at": 1787842344.00542, "latest_state": "COMPLIANT" }, { @@ -119,19 +119,7 @@ kosli list flows --output=json "kind": "build", "env": "aws-beta" }, - "latest_activity_at": 1786632623.852957, - "latest_state": "COMPLIANT" - }, - { - "id": "7f0ddaf2-32be-4cae-9512-161dc24c", - "name": "docker-base-ci", - "description": "Build cyber-dojo/docker-base image", - "visibility": "private", - "org": "cyber-dojo", - "template": "version: 1\n\ntrail:\n artifacts:\n - name: docker-base\n attestations:\n - name: snyk-container-scan\n type: decision\n", - "repo_url": "https://github.com/cyber-dojo/docker-base", - "tags": {}, - "latest_activity_at": 1783067775.5474463, + "latest_activity_at": 1787837303.971501, "latest_state": "COMPLIANT" }, { @@ -148,7 +136,7 @@ kosli list flows --output=json "kind": "build", "env": "aws-beta" }, - "latest_activity_at": 1786437264.0834873, + "latest_activity_at": 1787838923.90539, "latest_state": "COMPLIANT" }, { @@ -165,7 +153,7 @@ kosli list flows --output=json "kind": "build", "env": "aws-beta" }, - "latest_activity_at": 1787118563.9915287, + "latest_activity_at": 1787838923.90539, "latest_state": "COMPLIANT" }, { @@ -230,7 +218,7 @@ kosli list flows --output=json "kind": "build", "env": "aws-beta" }, - "latest_activity_at": 1786438104.0795615, + "latest_activity_at": 1787293944.0598202, "latest_state": "COMPLIANT" }, { @@ -239,7 +227,7 @@ kosli list flows --output=json "description": "Promotes sets of Artifacts from aws-beta to aws-prod", "visibility": "private", "org": "cyber-dojo", - "template": "version: 1\n\ntrail:\n attestations:\n - name: all-promotions\n type: generic\n", + "template": "version: 1\n\ntrail:\n attestations:\n - name: one-promotion\n type: generic\n", "repo_url": "https://github.com/cyber-dojo/aws-prod-co-promotion", "tags": { "ci": "github", @@ -247,7 +235,7 @@ kosli list flows --output=json "kind": "release", "env": "aws-prod" }, - "latest_activity_at": 1786424495.509061, + "latest_activity_at": 1787663659.2517061, "latest_state": "COMPLIANT" }, { @@ -276,7 +264,7 @@ kosli list flows --output=json "kind": "build", "env": "aws-beta" }, - "latest_activity_at": 1786438471.9191556, + "latest_activity_at": 1787895923.922744, "latest_state": "COMPLIANT" }, { @@ -293,7 +281,7 @@ kosli list flows --output=json "kind": "build", "env": "aws-beta" }, - "latest_activity_at": 1786438471.9191556, + "latest_activity_at": 1787838984.0144842, "latest_state": "COMPLIANT" }, { @@ -309,7 +297,7 @@ kosli list flows --output=json "kind": "run", "repo_url": "https://github.com/cyber-dojo/secrets" }, - "latest_activity_at": 1787109305.2935905, + "latest_activity_at": 1787927160.5753644, "latest_state": "NON-COMPLIANT" }, { @@ -326,7 +314,7 @@ kosli list flows --output=json "workflow_url": "https://github.com/cyber-dojo/snyk-scanning/blob/main/.github/workflows/aws-beta.yml", "env": "aws-beta" }, - "latest_activity_at": 1787107732.8268142, + "latest_activity_at": 1787991804.467392, "latest_state": "COMPLIANT" }, { @@ -343,7 +331,7 @@ kosli list flows --output=json "kind": "run", "workflow_url": "https://github.com/cyber-dojo/snyk-scanning/blob/main/.github/workflows/artifact_snyk_test.yml" }, - "latest_activity_at": 1787107622.178765, + "latest_activity_at": 1787991637.5539358, "latest_state": "COMPLIANT" }, { @@ -360,7 +348,7 @@ kosli list flows --output=json "workflow_url": "https://github.com/cyber-dojo/snyk-scanning/blob/main/.github/workflows/aws-prod.yml", "env": "aws-prod" }, - "latest_activity_at": 1787107779.5673716, + "latest_activity_at": 1787991848.1591704, "latest_state": "COMPLIANT" }, { @@ -377,7 +365,7 @@ kosli list flows --output=json "kind": "run", "workflow_url": "https://github.com/cyber-dojo/snyk-scanning/blob/main/.github/workflows/artifact_snyk_test.yml" }, - "latest_activity_at": 1787107736.1795952, + "latest_activity_at": 1787991820.0490894, "latest_state": "COMPLIANT" }, { @@ -391,7 +379,7 @@ kosli list flows --output=json "tags": { "env": "aws-beta" }, - "latest_activity_at": 1786425598.492372, + "latest_activity_at": 1787903663.937315, "latest_state": "COMPLIANT" }, { @@ -403,7 +391,7 @@ kosli list flows --output=json "template": "version: 1\ntrail:\n attestations:\n - name: terraform-plan\n type: generic\n - name: terraform-apply\n type: generic\n artifacts:\n - name: terraform-state\n - name: drift-plan\n", "repo_url": "https://github.com/cyber-dojo/creator", "tags": {}, - "latest_activity_at": 1786438808.6495974, + "latest_activity_at": 1787836208.8569806, "latest_state": "COMPLIANT" }, { @@ -415,7 +403,7 @@ kosli list flows --output=json "template": "version: 1\ntrail:\n attestations:\n - name: terraform-plan\n type: generic\n - name: terraform-apply\n type: generic\n artifacts:\n - name: terraform-state\n - name: drift-plan\n", "repo_url": "https://github.com/cyber-dojo/custom-start-points", "tags": {}, - "latest_activity_at": 1786438808.6495974, + "latest_activity_at": 1787839208.4459617, "latest_state": "COMPLIANT" }, { @@ -427,7 +415,7 @@ kosli list flows --output=json "template": "version: 1\ntrail:\n attestations:\n - name: terraform-plan\n type: generic\n - name: terraform-apply\n type: generic\n artifacts:\n - name: terraform-state\n - name: drift-plan\n", "repo_url": "https://github.com/cyber-dojo/dashboard", "tags": {}, - "latest_activity_at": 1786438808.6495974, + "latest_activity_at": 1787843108.7875247, "latest_state": "COMPLIANT" }, { @@ -439,7 +427,7 @@ kosli list flows --output=json "template": "version: 1\ntrail:\n attestations:\n - name: terraform-plan\n type: generic\n - name: terraform-apply\n type: generic\n artifacts:\n - name: terraform-state\n - name: drift-plan\n", "repo_url": "https://github.com/cyber-dojo/differ", "tags": {}, - "latest_activity_at": 1786632908.9464843, + "latest_activity_at": 1787837408.908393, "latest_state": "COMPLIANT" }, { @@ -451,7 +439,7 @@ kosli list flows --output=json "template": "version: 1\ntrail:\n attestations:\n - name: terraform-plan\n type: generic\n - name: terraform-apply\n type: generic\n artifacts:\n - name: terraform-state\n - name: drift-plan\n", "repo_url": "https://github.com/cyber-dojo/exercises-start-points", "tags": {}, - "latest_activity_at": 1786437608.696814, + "latest_activity_at": 1787839208.4459617, "latest_state": "COMPLIANT" }, { @@ -463,7 +451,7 @@ kosli list flows --output=json "template": "version: 1\ntrail:\n attestations:\n - name: terraform-plan\n type: generic\n - name: terraform-apply\n type: generic\n artifacts:\n - name: terraform-state\n - name: drift-plan\n", "repo_url": "https://github.com/cyber-dojo/languages-start-points", "tags": {}, - "latest_activity_at": 1787118920.72072, + "latest_activity_at": 1787839208.4459617, "latest_state": "COMPLIANT" }, { @@ -475,7 +463,7 @@ kosli list flows --output=json "template": "version: 1\ntrail:\n attestations:\n - name: terraform-plan\n type: generic\n - name: terraform-apply\n type: generic\n artifacts:\n - name: terraform-state\n - name: drift-plan\n", "repo_url": "https://github.com/cyber-dojo/nginx", "tags": {}, - "latest_activity_at": 1786438808.6495974, + "latest_activity_at": 1787294408.6792488, "latest_state": "COMPLIANT" }, { @@ -487,7 +475,7 @@ kosli list flows --output=json "template": "version: 1\ntrail:\n attestations:\n - name: terraform-plan\n type: generic\n - name: terraform-apply\n type: generic\n artifacts:\n - name: terraform-state\n - name: drift-plan\n", "repo_url": "https://github.com/cyber-dojo/runner", "tags": {}, - "latest_activity_at": 1786438808.6495974, + "latest_activity_at": 1787896208.8103006, "latest_state": "COMPLIANT" }, { @@ -499,7 +487,7 @@ kosli list flows --output=json "template": "version: 1\ntrail:\n attestations:\n - name: terraform-plan\n type: generic\n - name: terraform-apply\n type: generic\n artifacts:\n - name: terraform-state\n - name: drift-plan\n", "repo_url": "https://github.com/cyber-dojo/saver", "tags": {}, - "latest_activity_at": 1786438808.6495974, + "latest_activity_at": 1787839208.4459617, "latest_state": "COMPLIANT" }, { @@ -511,7 +499,7 @@ kosli list flows --output=json "template": "version: 1\ntrail:\n attestations:\n - name: terraform-plan\n type: generic\n - name: terraform-apply\n type: generic\n artifacts:\n - name: terraform-state\n - name: drift-plan\n", "repo_url": "https://github.com/cyber-dojo/spooler", "tags": {}, - "latest_activity_at": 1786254608.5082495, + "latest_activity_at": 1787904009.021726, "latest_state": "COMPLIANT" }, { @@ -535,7 +523,7 @@ kosli list flows --output=json "template": "version: 1\ntrail:\n attestations:\n - name: terraform-plan\n type: generic\n - name: terraform-apply\n type: generic\n artifacts:\n - name: terraform-state\n - name: drift-plan\n", "repo_url": "https://github.com/cyber-dojo/web", "tags": {}, - "latest_activity_at": 1787073908.6807432, + "latest_activity_at": 1787905808.789012, "latest_state": "COMPLIANT" }, { @@ -547,7 +535,7 @@ kosli list flows --output=json "template": "version: 1\ntrail:\n attestations:\n - name: terraform-plan\n type: generic\n - name: terraform-apply\n type: generic\n artifacts:\n - name: terraform-state\n - name: drift-plan\n", "repo_url": "https://github.com/cyber-dojo/runner", "tags": {}, - "latest_activity_at": 1786426111.953674, + "latest_activity_at": 1787665723.30174, "latest_state": "COMPLIANT" }, { @@ -600,7 +588,7 @@ kosli list flows --output=json "kind": "build", "env": "aws-beta" }, - "latest_activity_at": 1787073684.01979, + "latest_activity_at": 1787905404.1829493, "latest_state": "COMPLIANT" } ] diff --git a/client_reference/kosli_list_snapshots.md b/client_reference/kosli_list_snapshots.md index 52f00b1..748a493 100644 --- a/client_reference/kosli_list_snapshots.md +++ b/client_reference/kosli_list_snapshots.md @@ -64,109 +64,109 @@ kosli list snapshots aws-prod --output=json ```json [ { - "index": 5253, - "from": 1787107798.493415, + "index": 5285, + "from": 1787991898.5420277, "to": 0.0, "compliant": true, - "duration": 42627.89814066887 + "duration": 8434.692311048508 }, { - "index": 5252, - "from": 1787107738.3751876, - "to": 1787107798.493415, + "index": 5284, + "from": 1787991838.452193, + "to": 1787991898.5420277, "compliant": true, - "duration": 60.11822748184204 + "duration": 60.089834690093994 }, { - "index": 5251, - "from": 1787107678.5603914, - "to": 1787107738.3751876, + "index": 5283, + "from": 1787923678.398171, + "to": 1787991838.452193, "compliant": true, - "duration": 59.81479620933533 + "duration": 68160.05402207375 }, { - "index": 5250, - "from": 1787107558.4381254, - "to": 1787107678.5603914, + "index": 5282, + "from": 1787923618.562095, + "to": 1787923678.398171, "compliant": true, - "duration": 120.12226605415344 + "duration": 59.83607602119446 }, { - "index": 5249, - "from": 1787021218.5403302, - "to": 1787107558.4381254, + "index": 5281, + "from": 1787923558.488644, + "to": 1787923618.562095, "compliant": true, - "duration": 86339.89779520035 + "duration": 60.07345104217529 }, { - "index": 5248, - "from": 1787021098.4627476, - "to": 1787021218.5403302, + "index": 5280, + "from": 1787832538.6775455, + "to": 1787923558.488644, "compliant": true, - "duration": 120.07758259773254 + "duration": 91019.81109833717 }, { - "index": 5247, - "from": 1787020978.2979894, - "to": 1787021098.4627476, + "index": 5279, + "from": 1787713198.4663308, + "to": 1787832538.6775455, "compliant": true, - "duration": 120.16475820541382 + "duration": 119340.21121478081 }, { - "index": 5246, - "from": 1786935178.5993426, - "to": 1787020978.2979894, + "index": 5278, + "from": 1787665198.4042735, + "to": 1787713198.4663308, "compliant": true, - "duration": 85799.69864678383 + "duration": 48000.0620572567 }, { - "index": 5245, - "from": 1786935118.4628425, - "to": 1786935178.5993426, + "index": 5277, + "from": 1787665138.622218, + "to": 1787665198.4042735, "compliant": true, - "duration": 60.136500120162964 + "duration": 59.782055616378784 }, { - "index": 5244, - "from": 1786934998.5150445, - "to": 1786935118.4628425, + "index": 5276, + "from": 1787626078.5962257, + "to": 1787665138.622218, "compliant": true, - "duration": 119.94779801368713 + "duration": 39060.025992155075 }, { - "index": 5243, - "from": 1786934938.5676281, - "to": 1786934998.5150445, + "index": 5275, + "from": 1787626018.4113095, + "to": 1787626078.5962257, "compliant": true, - "duration": 59.94741630554199 + "duration": 60.184916257858276 }, { - "index": 5242, - "from": 1786934878.6721764, - "to": 1786934938.5676281, + "index": 5274, + "from": 1787540038.5204227, + "to": 1787626018.4113095, "compliant": true, - "duration": 59.89545178413391 + "duration": 85979.8908867836 }, { - "index": 5241, - "from": 1786848778.5561426, - "to": 1786934878.6721764, + "index": 5273, + "from": 1787539978.524768, + "to": 1787540038.5204227, "compliant": true, - "duration": 86100.1160337925 + "duration": 59.995654582977295 }, { - "index": 5240, - "from": 1786848658.3665593, - "to": 1786848778.5561426, + "index": 5272, + "from": 1787486638.4653506, + "to": 1787539978.524768, "compliant": true, - "duration": 120.18958330154419 + "duration": 53340.05941748619 }, { - "index": 5239, - "from": 1786848538.4219847, - "to": 1786848658.3665593, + "index": 5271, + "from": 1787486578.4888847, + "to": 1787486638.4653506, "compliant": true, - "duration": 119.94457459449768 + "duration": 59.976465940475464 } ] ``` diff --git a/client_reference/kosli_log_environment.md b/client_reference/kosli_log_environment.md index ebd5d3d..8bbf62c 100644 --- a/client_reference/kosli_log_environment.md +++ b/client_reference/kosli_log_environment.md @@ -72,24 +72,24 @@ kosli log environment aws-prod --output=json [ { "environment_name": "aws-prod", - "snapshot_index": 5253, - "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:85cac88@sha256:f3cdc22a599ddb789e7791389a5a58b43fd9c30d3af079aec392d5962d181096", - "sha256": "f3cdc22a599ddb789e7791389a5a58b43fd9c30d3af079aec392d5962d181096", - "description": "3 instances changed", - "reported_at": 1787107798.493415, - "pipeline": "runner-ci", + "snapshot_index": 5285, + "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:258b6d0@sha256:c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "sha256": "c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "description": "1 instance changed", + "reported_at": 1787991898.5420277, + "pipeline": "exercises-start-points-ci", "deployments": [], "flows": [ { - "flow_name": "runner-ci", + "flow_name": "exercises-start-points-ci", "deployments": null }, { - "flow_name": "snyk-aws-beta-per-artifact", + "flow_name": "production-promotion", "deployments": null }, { - "flow_name": "production-promotion", + "flow_name": "snyk-aws-beta-per-artifact", "deployments": null }, { @@ -100,30 +100,30 @@ kosli log environment aws-prod --output=json "artifact_compliance": true, "snapshot_compliance": true, "type": "changed", - "code_diff": "https://github.com/cyber-dojo/runner/compare/48bb36950ae12b98bdcaf39d77225a3ca7b1dda3...85cac880cb74678426eb2ed4dbf2538995404c5c", + "code_diff": "https://github.com/cyber-dojo/exercises-start-points/compare/804f248d832dc34e564507b009c246dfb4f0c657...258b6d07d2b28ad5cb2ce6d29934997f72380f1a", "_links": { "artifact": { - "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/runner-ci/fingerprint/f3cdc22a599ddb789e7791389a5a58b43fd9c30d3af079aec392d5962d181096", - "html": "https://app.kosli.com/cyber-dojo/flows/runner-ci/artifacts/f3cdc22a599ddb789e7791389a5a58b43fd9c30d3af079aec392d5962d181096?artifact_id=d4d2a067-63c8-4403-a6f5-554e6fef" + "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/exercises-start-points-ci/fingerprint/c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "html": "https://app.kosli.com/cyber-dojo/flows/exercises-start-points-ci/artifacts/c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea?artifact_id=ffb671be-6388-4f6a-ae64-8ba95d82" }, "snapshot": { - "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5253", - "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5253" + "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5285", + "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5285" } } }, { "environment_name": "aws-prod", - "snapshot_index": 5252, - "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:5e4b987@sha256:6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", - "sha256": "6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", - "description": "3 instances changed", - "reported_at": 1787107738.3751876, - "pipeline": "web-ci", + "snapshot_index": 5284, + "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:2b300f4@sha256:1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", + "sha256": "1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", + "description": "1 instance changed", + "reported_at": 1787991838.452193, + "pipeline": "dashboard-ci", "deployments": [], "flows": [ { - "flow_name": "web-ci", + "flow_name": "dashboard-ci", "deployments": null }, { @@ -142,38 +142,38 @@ kosli log environment aws-prod --output=json "artifact_compliance": true, "snapshot_compliance": true, "type": "changed", - "code_diff": "https://github.com/cyber-dojo/web/compare/0c31ab46a7d8c7d34d2ce0654dc09f8ae4229c7e...5e4b9873df93525c041c386c06e0ab8fc36b6f33", + "code_diff": "https://github.com/cyber-dojo/dashboard/compare/da7bacefac23b0983d2b9f39d87508e0f85b1167...2b300f450f72006f6a9000aaf9cd04485f1e8095", "_links": { "artifact": { - "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/web-ci/fingerprint/6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", - "html": "https://app.kosli.com/cyber-dojo/flows/web-ci/artifacts/6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd?artifact_id=f658e6e3-9ce8-462f-a29e-a2cc6f7b" + "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/dashboard-ci/fingerprint/1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", + "html": "https://app.kosli.com/cyber-dojo/flows/dashboard-ci/artifacts/1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5?artifact_id=a805b555-f25a-4828-89d2-a28881c8" }, "snapshot": { - "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5252", - "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5252" + "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5284", + "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5284" } } }, { "environment_name": "aws-prod", - "snapshot_index": 5252, - "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:258b6d0@sha256:c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", - "sha256": "c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "snapshot_index": 5284, + "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:36f0420@sha256:2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", + "sha256": "2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", "description": "1 instance changed", - "reported_at": 1787107738.3751876, - "pipeline": "exercises-start-points-ci", + "reported_at": 1787991838.452193, + "pipeline": "saver-ci", "deployments": [], "flows": [ { - "flow_name": "exercises-start-points-ci", + "flow_name": "saver-ci", "deployments": null }, { - "flow_name": "production-promotion", + "flow_name": "snyk-aws-beta-per-artifact", "deployments": null }, { - "flow_name": "snyk-aws-beta-per-artifact", + "flow_name": "production-promotion", "deployments": null }, { @@ -184,30 +184,30 @@ kosli log environment aws-prod --output=json "artifact_compliance": true, "snapshot_compliance": true, "type": "changed", - "code_diff": "https://github.com/cyber-dojo/exercises-start-points/compare/804f248d832dc34e564507b009c246dfb4f0c657...258b6d07d2b28ad5cb2ce6d29934997f72380f1a", + "code_diff": "https://github.com/cyber-dojo/saver/compare/595e902fa2f5844d9ce0612a5c9295cd8dab5b97...36f0420f728fe61e44a3ab0043cf9a3d70863cad", "_links": { "artifact": { - "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/exercises-start-points-ci/fingerprint/c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", - "html": "https://app.kosli.com/cyber-dojo/flows/exercises-start-points-ci/artifacts/c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea?artifact_id=ffb671be-6388-4f6a-ae64-8ba95d82" + "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/saver-ci/fingerprint/2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", + "html": "https://app.kosli.com/cyber-dojo/flows/saver-ci/artifacts/2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a?artifact_id=01bf7de8-52fc-4585-a4b6-abf82047" }, "snapshot": { - "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5252", - "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5252" + "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5284", + "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5284" } } }, { "environment_name": "aws-prod", - "snapshot_index": 5251, - "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:36f0420@sha256:2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", - "sha256": "2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", + "snapshot_index": 5284, + "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/differ:108cccf@sha256:31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", + "sha256": "31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", "description": "1 instance changed", - "reported_at": 1787107678.5603914, - "pipeline": "saver-ci", + "reported_at": 1787991838.452193, + "pipeline": "differ-ci", "deployments": [], "flows": [ { - "flow_name": "saver-ci", + "flow_name": "differ-ci", "deployments": null }, { @@ -226,30 +226,30 @@ kosli log environment aws-prod --output=json "artifact_compliance": true, "snapshot_compliance": true, "type": "changed", - "code_diff": "https://github.com/cyber-dojo/saver/compare/595e902fa2f5844d9ce0612a5c9295cd8dab5b97...36f0420f728fe61e44a3ab0043cf9a3d70863cad", + "code_diff": "https://github.com/cyber-dojo/differ/compare/10e162d4e1294815375a31121f14d57e13183b34...108cccf9bccf9af5d455db66c250480b53cbecc7", "_links": { "artifact": { - "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/saver-ci/fingerprint/2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", - "html": "https://app.kosli.com/cyber-dojo/flows/saver-ci/artifacts/2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a?artifact_id=01bf7de8-52fc-4585-a4b6-abf82047" + "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/differ-ci/fingerprint/31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", + "html": "https://app.kosli.com/cyber-dojo/flows/differ-ci/artifacts/31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac?artifact_id=50b8cff6-1888-4c76-b31a-fdd7a311" }, "snapshot": { - "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5251", - "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5251" + "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5284", + "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5284" } } }, { "environment_name": "aws-prod", - "snapshot_index": 5251, - "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/creator:83357f1@sha256:adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", - "sha256": "adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", - "description": "1 instance changed", - "reported_at": 1787107678.5603914, - "pipeline": "creator-ci", + "snapshot_index": 5284, + "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:5e4b987@sha256:6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", + "sha256": "6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", + "description": "3 instances changed", + "reported_at": 1787991838.452193, + "pipeline": "web-ci", "deployments": [], "flows": [ { - "flow_name": "creator-ci", + "flow_name": "web-ci", "deployments": null }, { @@ -268,38 +268,38 @@ kosli log environment aws-prod --output=json "artifact_compliance": true, "snapshot_compliance": true, "type": "changed", - "code_diff": "https://github.com/cyber-dojo/creator/compare/89019f6d8059406e56fa499b2dec2dbf93f4d5c7...83357f112ef5c10b157cb84732c77965cc8ddc48", + "code_diff": "https://github.com/cyber-dojo/web/compare/0c31ab46a7d8c7d34d2ce0654dc09f8ae4229c7e...5e4b9873df93525c041c386c06e0ab8fc36b6f33", "_links": { "artifact": { - "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/creator-ci/fingerprint/adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", - "html": "https://app.kosli.com/cyber-dojo/flows/creator-ci/artifacts/adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b?artifact_id=11539f6a-befb-4b79-9484-fd9f25d3" + "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/web-ci/fingerprint/6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", + "html": "https://app.kosli.com/cyber-dojo/flows/web-ci/artifacts/6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd?artifact_id=f658e6e3-9ce8-462f-a29e-a2cc6f7b" }, "snapshot": { - "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5251", - "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5251" + "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5284", + "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5284" } } }, { "environment_name": "aws-prod", - "snapshot_index": 5251, - "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/languages-start-points:068b342@sha256:adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", - "sha256": "adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", + "snapshot_index": 5284, + "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/custom-start-points:790d86b@sha256:8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", + "sha256": "8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", "description": "1 instance changed", - "reported_at": 1787107678.5603914, - "pipeline": "languages-start-points-ci", + "reported_at": 1787991838.452193, + "pipeline": "custom-start-points-ci", "deployments": [], "flows": [ { - "flow_name": "languages-start-points-ci", + "flow_name": "custom-start-points-ci", "deployments": null }, { - "flow_name": "snyk-aws-beta-per-artifact", + "flow_name": "production-promotion", "deployments": null }, { - "flow_name": "production-promotion", + "flow_name": "snyk-aws-beta-per-artifact", "deployments": null }, { @@ -310,72 +310,72 @@ kosli log environment aws-prod --output=json "artifact_compliance": true, "snapshot_compliance": true, "type": "changed", - "code_diff": "https://github.com/cyber-dojo/languages-start-points/compare/6a7f7be81022f7ed3fa8383f016b55af86e2af23...068b3424c7da843a4f2d428d2e4915f33efc4a02", + "code_diff": "https://github.com/cyber-dojo/custom-start-points/compare/d37aace7598ee943ba0bd5e51f224335cbdf0a3e...790d86b66f4d86ab47f5c521daf5039dc8aeef4d", "_links": { "artifact": { - "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/languages-start-points-ci/fingerprint/adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", - "html": "https://app.kosli.com/cyber-dojo/flows/languages-start-points-ci/artifacts/adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb?artifact_id=4154b9c8-14cc-426f-abc5-05220611" + "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/custom-start-points-ci/fingerprint/8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", + "html": "https://app.kosli.com/cyber-dojo/flows/custom-start-points-ci/artifacts/8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81?artifact_id=653e13a5-2f2a-4a23-be4e-1693fc77" }, "snapshot": { - "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5251", - "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5251" + "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5284", + "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5284" } } }, { "environment_name": "aws-prod", - "snapshot_index": 5251, - "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/spooler:dc7dea2@sha256:ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", - "sha256": "ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", + "snapshot_index": 5284, + "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/creator:83357f1@sha256:adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", + "sha256": "adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", "description": "1 instance changed", - "reported_at": 1787107678.5603914, - "pipeline": "spooler-ci", + "reported_at": 1787991838.452193, + "pipeline": "creator-ci", "deployments": [], "flows": [ { - "flow_name": "spooler-ci", + "flow_name": "creator-ci", "deployments": null }, { - "flow_name": "production-promotion", + "flow_name": "snyk-aws-beta-per-artifact", "deployments": null }, { - "flow_name": "snyk-aws-prod-per-artifact", + "flow_name": "production-promotion", "deployments": null }, { - "flow_name": "snyk-aws-beta-per-artifact", + "flow_name": "snyk-aws-prod-per-artifact", "deployments": null } ], "artifact_compliance": true, "snapshot_compliance": true, - "type": "updated-provenance", - "code_diff": "https://github.com/cyber-dojo/spooler/compare/c81791fd10558a59f83876137fb021abcd89f262...dc7dea2d9086fcdfe4629f3ab02501ed92aad1bb", + "type": "changed", + "code_diff": "https://github.com/cyber-dojo/creator/compare/89019f6d8059406e56fa499b2dec2dbf93f4d5c7...83357f112ef5c10b157cb84732c77965cc8ddc48", "_links": { "artifact": { - "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/spooler-ci/fingerprint/ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", - "html": "https://app.kosli.com/cyber-dojo/flows/spooler-ci/artifacts/ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0?artifact_id=df2dcc5e-bb07-40e8-b013-9ac60f42" + "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/creator-ci/fingerprint/adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b", + "html": "https://app.kosli.com/cyber-dojo/flows/creator-ci/artifacts/adb922d738b50876f1cd13f5a998ade341abfd64b3561d0889264399c33c528b?artifact_id=11539f6a-befb-4b79-9484-fd9f25d3" }, "snapshot": { - "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5251", - "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5251" + "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5284", + "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5284" } } }, { "environment_name": "aws-prod", - "snapshot_index": 5250, - "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:2b300f4@sha256:1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", - "sha256": "1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", + "snapshot_index": 5284, + "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/languages-start-points:068b342@sha256:adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", + "sha256": "adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", "description": "1 instance changed", - "reported_at": 1787107558.4381254, - "pipeline": "dashboard-ci", + "reported_at": 1787991838.452193, + "pipeline": "languages-start-points-ci", "deployments": [], "flows": [ { - "flow_name": "dashboard-ci", + "flow_name": "languages-start-points-ci", "deployments": null }, { @@ -394,30 +394,30 @@ kosli log environment aws-prod --output=json "artifact_compliance": true, "snapshot_compliance": true, "type": "changed", - "code_diff": "https://github.com/cyber-dojo/dashboard/compare/da7bacefac23b0983d2b9f39d87508e0f85b1167...2b300f450f72006f6a9000aaf9cd04485f1e8095", + "code_diff": "https://github.com/cyber-dojo/languages-start-points/compare/6a7f7be81022f7ed3fa8383f016b55af86e2af23...068b3424c7da843a4f2d428d2e4915f33efc4a02", "_links": { "artifact": { - "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/dashboard-ci/fingerprint/1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5", - "html": "https://app.kosli.com/cyber-dojo/flows/dashboard-ci/artifacts/1342e060fb8af6c34d004e474544d1472b940250eb0084f206c3d7bf9d78e2b5?artifact_id=a805b555-f25a-4828-89d2-a28881c8" + "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/languages-start-points-ci/fingerprint/adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb", + "html": "https://app.kosli.com/cyber-dojo/flows/languages-start-points-ci/artifacts/adf2596645ae3fe9b711849a2e9aae3a65173b270963e3214b9c7ea00b03c1cb?artifact_id=4154b9c8-14cc-426f-abc5-05220611" }, "snapshot": { - "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5250", - "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5250" + "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5284", + "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5284" } } }, { "environment_name": "aws-prod", - "snapshot_index": 5250, - "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/differ:108cccf@sha256:31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", - "sha256": "31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", + "snapshot_index": 5284, + "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:fb79174@sha256:b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", + "sha256": "b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", "description": "1 instance changed", - "reported_at": 1787107558.4381254, - "pipeline": "differ-ci", + "reported_at": 1787991838.452193, + "pipeline": "nginx-ci", "deployments": [], "flows": [ { - "flow_name": "differ-ci", + "flow_name": "nginx-ci", "deployments": null }, { @@ -436,30 +436,30 @@ kosli log environment aws-prod --output=json "artifact_compliance": true, "snapshot_compliance": true, "type": "changed", - "code_diff": "https://github.com/cyber-dojo/differ/compare/10e162d4e1294815375a31121f14d57e13183b34...108cccf9bccf9af5d455db66c250480b53cbecc7", + "code_diff": "https://github.com/cyber-dojo/nginx/compare/5ce2769937a4014a853787d7b3d89ec30b6ac967...fb791742054fa28dd89269aac8002ebfd7b3386e", "_links": { "artifact": { - "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/differ-ci/fingerprint/31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", - "html": "https://app.kosli.com/cyber-dojo/flows/differ-ci/artifacts/31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac?artifact_id=50b8cff6-1888-4c76-b31a-fdd7a311" + "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/nginx-ci/fingerprint/b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", + "html": "https://app.kosli.com/cyber-dojo/flows/nginx-ci/artifacts/b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf?artifact_id=b9778ac6-6d83-4954-98ba-a3e60a22" }, "snapshot": { - "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5250", - "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5250" + "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5284", + "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5284" } } }, { "environment_name": "aws-prod", - "snapshot_index": 5250, - "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/custom-start-points:790d86b@sha256:8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", - "sha256": "8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", - "description": "1 instance changed", - "reported_at": 1787107558.4381254, - "pipeline": "custom-start-points-ci", + "snapshot_index": 5284, + "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:7661027@sha256:f362f331cd56af641d03b9f647795f95c3a0d597a5e7ff659788f9dfec4fe8d9", + "sha256": "f362f331cd56af641d03b9f647795f95c3a0d597a5e7ff659788f9dfec4fe8d9", + "description": "3 instances changed", + "reported_at": 1787991838.452193, + "pipeline": "runner-ci", "deployments": [], "flows": [ { - "flow_name": "custom-start-points-ci", + "flow_name": "runner-ci", "deployments": null }, { @@ -478,38 +478,38 @@ kosli log environment aws-prod --output=json "artifact_compliance": true, "snapshot_compliance": true, "type": "changed", - "code_diff": "https://github.com/cyber-dojo/custom-start-points/compare/d37aace7598ee943ba0bd5e51f224335cbdf0a3e...790d86b66f4d86ab47f5c521daf5039dc8aeef4d", + "code_diff": "https://github.com/cyber-dojo/runner/compare/d7541d3fb2c548bd68a81f812b5a6c95fcf9a1bd...76610271f641f1a5634465e97f880dfe019e515e", "_links": { "artifact": { - "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/custom-start-points-ci/fingerprint/8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", - "html": "https://app.kosli.com/cyber-dojo/flows/custom-start-points-ci/artifacts/8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81?artifact_id=653e13a5-2f2a-4a23-be4e-1693fc77" + "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/runner-ci/fingerprint/f362f331cd56af641d03b9f647795f95c3a0d597a5e7ff659788f9dfec4fe8d9", + "html": "https://app.kosli.com/cyber-dojo/flows/runner-ci/artifacts/f362f331cd56af641d03b9f647795f95c3a0d597a5e7ff659788f9dfec4fe8d9?artifact_id=977cfbff-032e-4f5d-8ae3-4e9512e3" }, "snapshot": { - "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5250", - "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5250" + "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5284", + "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5284" } } }, { "environment_name": "aws-prod", - "snapshot_index": 5250, - "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:fb79174@sha256:b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", - "sha256": "b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", + "snapshot_index": 5284, + "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/spooler:dc7dea2@sha256:ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", + "sha256": "ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", "description": "1 instance changed", - "reported_at": 1787107558.4381254, - "pipeline": "nginx-ci", + "reported_at": 1787991838.452193, + "pipeline": "spooler-ci", "deployments": [], "flows": [ { - "flow_name": "nginx-ci", + "flow_name": "spooler-ci", "deployments": null }, { - "flow_name": "snyk-aws-beta-per-artifact", + "flow_name": "production-promotion", "deployments": null }, { - "flow_name": "production-promotion", + "flow_name": "snyk-aws-beta-per-artifact", "deployments": null }, { @@ -520,30 +520,30 @@ kosli log environment aws-prod --output=json "artifact_compliance": true, "snapshot_compliance": true, "type": "changed", - "code_diff": "https://github.com/cyber-dojo/nginx/compare/5ce2769937a4014a853787d7b3d89ec30b6ac967...fb791742054fa28dd89269aac8002ebfd7b3386e", + "code_diff": "https://github.com/cyber-dojo/spooler/compare/c81791fd10558a59f83876137fb021abcd89f262...dc7dea2d9086fcdfe4629f3ab02501ed92aad1bb", "_links": { "artifact": { - "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/nginx-ci/fingerprint/b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", - "html": "https://app.kosli.com/cyber-dojo/flows/nginx-ci/artifacts/b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf?artifact_id=b9778ac6-6d83-4954-98ba-a3e60a22" + "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/spooler-ci/fingerprint/ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", + "html": "https://app.kosli.com/cyber-dojo/flows/spooler-ci/artifacts/ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0?artifact_id=df2dcc5e-bb07-40e8-b013-9ac60f42" }, "snapshot": { - "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5250", - "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5250" + "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5284", + "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5284" } } }, { "environment_name": "aws-prod", - "snapshot_index": 5250, - "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/spooler:dc7dea2@sha256:ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", - "sha256": "ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", - "description": "1 instance changed", - "reported_at": 1787107558.4381254, - "pipeline": "spooler-ci", + "snapshot_index": 5283, + "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:7661027@sha256:f362f331cd56af641d03b9f647795f95c3a0d597a5e7ff659788f9dfec4fe8d9", + "sha256": "f362f331cd56af641d03b9f647795f95c3a0d597a5e7ff659788f9dfec4fe8d9", + "description": "3 instances changed", + "reported_at": 1787923678.398171, + "pipeline": "runner-ci", "deployments": [], "flows": [ { - "flow_name": "spooler-ci", + "flow_name": "runner-ci", "deployments": null }, { @@ -561,31 +561,31 @@ kosli log environment aws-prod --output=json ], "artifact_compliance": true, "snapshot_compliance": true, - "type": "updated-provenance", - "code_diff": "https://github.com/cyber-dojo/spooler/compare/c81791fd10558a59f83876137fb021abcd89f262...dc7dea2d9086fcdfe4629f3ab02501ed92aad1bb", + "type": "changed", + "code_diff": "https://github.com/cyber-dojo/runner/compare/d7541d3fb2c548bd68a81f812b5a6c95fcf9a1bd...76610271f641f1a5634465e97f880dfe019e515e", "_links": { "artifact": { - "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/spooler-ci/fingerprint/ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0", - "html": "https://app.kosli.com/cyber-dojo/flows/spooler-ci/artifacts/ff871c3c8f4b5cfb60012bed1cd7f020b20f17fdabc2db0d8a5c77e75518fce0?artifact_id=df2dcc5e-bb07-40e8-b013-9ac60f42" + "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/runner-ci/fingerprint/f362f331cd56af641d03b9f647795f95c3a0d597a5e7ff659788f9dfec4fe8d9", + "html": "https://app.kosli.com/cyber-dojo/flows/runner-ci/artifacts/f362f331cd56af641d03b9f647795f95c3a0d597a5e7ff659788f9dfec4fe8d9?artifact_id=977cfbff-032e-4f5d-8ae3-4e9512e3" }, "snapshot": { - "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5250", - "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5250" + "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5283", + "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5283" } } }, { "environment_name": "aws-prod", - "snapshot_index": 5249, - "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:85cac88@sha256:f3cdc22a599ddb789e7791389a5a58b43fd9c30d3af079aec392d5962d181096", - "sha256": "f3cdc22a599ddb789e7791389a5a58b43fd9c30d3af079aec392d5962d181096", - "description": "3 instances changed", - "reported_at": 1787021218.5403302, - "pipeline": "runner-ci", + "snapshot_index": 5282, + "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:36f0420@sha256:2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", + "sha256": "2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", + "description": "1 instance changed", + "reported_at": 1787923618.562095, + "pipeline": "saver-ci", "deployments": [], "flows": [ { - "flow_name": "runner-ci", + "flow_name": "saver-ci", "deployments": null }, { @@ -604,25 +604,25 @@ kosli log environment aws-prod --output=json "artifact_compliance": true, "snapshot_compliance": true, "type": "changed", - "code_diff": "https://github.com/cyber-dojo/runner/compare/48bb36950ae12b98bdcaf39d77225a3ca7b1dda3...85cac880cb74678426eb2ed4dbf2538995404c5c", + "code_diff": "https://github.com/cyber-dojo/saver/compare/595e902fa2f5844d9ce0612a5c9295cd8dab5b97...36f0420f728fe61e44a3ab0043cf9a3d70863cad", "_links": { "artifact": { - "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/runner-ci/fingerprint/f3cdc22a599ddb789e7791389a5a58b43fd9c30d3af079aec392d5962d181096", - "html": "https://app.kosli.com/cyber-dojo/flows/runner-ci/artifacts/f3cdc22a599ddb789e7791389a5a58b43fd9c30d3af079aec392d5962d181096?artifact_id=d4d2a067-63c8-4403-a6f5-554e6fef" + "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/saver-ci/fingerprint/2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a", + "html": "https://app.kosli.com/cyber-dojo/flows/saver-ci/artifacts/2ec004d6e7c2668ff407b4384d6b4c62f92d9606ae18447c5fb326211921bc6a?artifact_id=01bf7de8-52fc-4585-a4b6-abf82047" }, "snapshot": { - "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5249", - "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5249" + "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5282", + "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5282" } } }, { "environment_name": "aws-prod", - "snapshot_index": 5248, + "snapshot_index": 5282, "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/differ:108cccf@sha256:31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", "sha256": "31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac", "description": "1 instance changed", - "reported_at": 1787021098.4627476, + "reported_at": 1787923618.562095, "pipeline": "differ-ci", "deployments": [], "flows": [ @@ -653,23 +653,23 @@ kosli log environment aws-prod --output=json "html": "https://app.kosli.com/cyber-dojo/flows/differ-ci/artifacts/31a4c3abc3ccef33397ed1d84496a08d94ca9d6f9d0df44b6a72aba9743bc8ac?artifact_id=50b8cff6-1888-4c76-b31a-fdd7a311" }, "snapshot": { - "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5248", - "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5248" + "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5282", + "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5282" } } }, { "environment_name": "aws-prod", - "snapshot_index": 5248, - "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:fb79174@sha256:b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", - "sha256": "b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", - "description": "1 instance changed", - "reported_at": 1787021098.4627476, - "pipeline": "nginx-ci", + "snapshot_index": 5282, + "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:5e4b987@sha256:6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", + "sha256": "6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", + "description": "3 instances changed", + "reported_at": 1787923618.562095, + "pipeline": "web-ci", "deployments": [], "flows": [ { - "flow_name": "nginx-ci", + "flow_name": "web-ci", "deployments": null }, { @@ -688,15 +688,15 @@ kosli log environment aws-prod --output=json "artifact_compliance": true, "snapshot_compliance": true, "type": "changed", - "code_diff": "https://github.com/cyber-dojo/nginx/compare/5ce2769937a4014a853787d7b3d89ec30b6ac967...fb791742054fa28dd89269aac8002ebfd7b3386e", + "code_diff": "https://github.com/cyber-dojo/web/compare/0c31ab46a7d8c7d34d2ce0654dc09f8ae4229c7e...5e4b9873df93525c041c386c06e0ab8fc36b6f33", "_links": { "artifact": { - "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/nginx-ci/fingerprint/b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf", - "html": "https://app.kosli.com/cyber-dojo/flows/nginx-ci/artifacts/b70ff1f9493f5d4205e0e95e565b3fc4d909de237b10e490b250671d0d6895cf?artifact_id=b9778ac6-6d83-4954-98ba-a3e60a22" + "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/web-ci/fingerprint/6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd", + "html": "https://app.kosli.com/cyber-dojo/flows/web-ci/artifacts/6f394e0dccb59b852fa52ffa114fde8452280054c84de05b0627b1b0f18657bd?artifact_id=f658e6e3-9ce8-462f-a29e-a2cc6f7b" }, "snapshot": { - "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5248", - "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5248" + "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5282", + "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5282" } } } diff --git a/client_reference/kosli_report_artifact.md b/client_reference/kosli_report_artifact.md index 5260c3a..ee1b410 100644 --- a/client_reference/kosli_report_artifact.md +++ b/client_reference/kosli_report_artifact.md @@ -43,7 +43,9 @@ is set), registry credentials are resolved as follows: for public images `--registry-provider` is deprecated and no longer used. - +To specify paths in a directory artifact that should always be excluded from the SHA256 calculation, you can add a `.kosli_ignore` file to the root of the artifact. +Each line should specify a relative path or path glob to be ignored. You can include comments in this file, using `#`. +The `.kosli_ignore` will be treated as part of the artifact like any other file, unless it is explicitly ignored itself. ## Flags | Flag | Type | Description | diff --git a/client_reference/kosli_snapshot_azure.md b/client_reference/kosli_snapshot_azure.md index a605397..f4ea378 100644 --- a/client_reference/kosli_snapshot_azure.md +++ b/client_reference/kosli_snapshot_azure.md @@ -19,6 +19,11 @@ API calls to not return the content of what is running on the server and fingerp will not match. See https://learn.microsoft.com/en-us/azure/azure-functions/functions-app-settings#website_run_from_package +For zip-deployed apps, the fingerprint honours a `.kosli_ignore` file at the root of the deployed package. +To specify paths in a directory artifact that should always be excluded from the SHA256 calculation, you can add a `.kosli_ignore` file to the root of the artifact. +Each line should specify a relative path or path glob to be ignored. You can include comments in this file, using `#`. +The `.kosli_ignore` will be treated as part of the artifact like any other file, unless it is explicitly ignored itself. + To authenticate to Azure, you need to create Azure service principal with a secret and provide these Azure credentials via flags or by exporting the equivalent KOSLI env vars (e.g. KOSLI_AZURE_CLIENT_ID). The service principal needs to have the following permissions: diff --git a/client_reference/overview.md b/client_reference/overview.md index d090acc..c942de2 100644 --- a/client_reference/overview.md +++ b/client_reference/overview.md @@ -4,7 +4,7 @@ description: "Reference documentation for the Kosli CLI." --- - This reference was generated from Kosli CLI **v2.38.0**. + This reference was generated from Kosli CLI **v2.39.0**. The Kosli CLI allows you to interact with Kosli from your terminal and CI/CD pipelines.