diff --git a/client_reference/kosli_assert_artifact.md b/client_reference/kosli_assert_artifact.md index c8fb355..6d778dc 100644 --- a/client_reference/kosli_assert_artifact.md +++ b/client_reference/kosli_assert_artifact.md @@ -70,7 +70,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/42725dbb208d993e5b7c75e975335c0a20646493/.github/workflows/main.yml#L270) + In [this YAML file](https://github.com/cyber-dojo/differ/blob/3ab1ef84cb2243f184502ddb7f491e24d4ced1c1/.github/workflows/main.yml#L270) View an example of the `kosli assert artifact` command in GitLab. diff --git a/client_reference/kosli_attest_artifact.md b/client_reference/kosli_attest_artifact.md index cf49b59..08bc740 100644 --- a/client_reference/kosli_attest_artifact.md +++ b/client_reference/kosli_attest_artifact.md @@ -81,12 +81,12 @@ In other CI systems, set them explicitly to capture repository metadata. View an example of the `kosli attest artifact` command in GitHub. - In [this YAML file](https://github.com/cyber-dojo/reusable-actions-workflows/blob/2ccb589f1ffae2c2dfdf12786993f2eb249d92c6/.github/workflows/secure-docker-build.yml#L210), which created [this Kosli Event](https://app.kosli.com/cyber-dojo/flows/differ-ci/trails/43d2a72431124e9fcf47bf866621ba3fd8e7f618?attestation_id=66b5c45a-22d2-4f37-8688-beeeb449). + In [this YAML file](https://github.com/cyber-dojo/reusable-actions-workflows/blob/2d5cf6095a77931bc6eb6d525e4db2d1be1a8cb2/.github/workflows/secure-docker-build.yml#L219), which created [this Kosli Event](https://app.kosli.com/cyber-dojo/flows/differ-ci/trails/981dcfc34f584d46afb46b217b47ce68f2f14a08?attestation_id=03312679-db2a-4f55-a323-7cdb2c89). View an example of the `kosli attest artifact` command in GitLab. - In [this YAML file](https://gitlab.com/cyber-dojo/creator/-/blob/20368865b1ba0532f99f69641bbb96e6334cb545/.gitlab/workflows/main.yml#L111), which created [this Kosli Event](https://app.kosli.com/cyber-dojo/flows/creator-ci/trails/20368865b1ba0532f99f69641bbb96e6334cb545?attestation_id=d5d4dc83-f3c0-4a50-b5cb-fdc4f610). + In [this YAML file](https://gitlab.com/cyber-dojo/creator/-/blob/65fd2bfa2478534ea4bc5ccf30f6bfc6aab7550c/.gitlab/workflows/main.yml#L111), which created [this Kosli Event](https://app.kosli.com/cyber-dojo/flows/creator-ci/trails/34f14b6fc5d87ff95426046716ec8a09141c13a7?attestation_id=bafbb0d0-e794-4acf-bdf5-81262268). diff --git a/client_reference/kosli_attest_custom.md b/client_reference/kosli_attest_custom.md index 93287ac..55598c2 100644 --- a/client_reference/kosli_attest_custom.md +++ b/client_reference/kosli_attest_custom.md @@ -79,7 +79,7 @@ In other CI systems, set them explicitly to capture repository metadata. View an example of the `kosli attest custom` command in GitHub. - In [this YAML file](https://github.com/cyber-dojo/differ/blob/43d2a72431124e9fcf47bf866621ba3fd8e7f618/.github/workflows/main.yml#L166), which created [this Kosli Event](https://app.kosli.com/cyber-dojo/flows/differ-ci/trails/43d2a72431124e9fcf47bf866621ba3fd8e7f618?attestation_id=e8de4782-b3c6-4920-bf82-6ca7f48f). + In [this YAML file](https://github.com/cyber-dojo/differ/blob/981dcfc34f584d46afb46b217b47ce68f2f14a08/.github/workflows/main.yml#L168), which created [this Kosli Event](https://app.kosli.com/cyber-dojo/flows/differ-ci/trails/981dcfc34f584d46afb46b217b47ce68f2f14a08?attestation_id=dfa0b6c3-d537-4299-bbe9-c0943930). diff --git a/client_reference/kosli_attest_generic.md b/client_reference/kosli_attest_generic.md index 98a0a69..5145ace 100644 --- a/client_reference/kosli_attest_generic.md +++ b/client_reference/kosli_attest_generic.md @@ -75,12 +75,12 @@ In other CI systems, set them explicitly to capture repository metadata. View an example of the `kosli attest generic` command in GitHub. - In [this YAML file](https://github.com/cyber-dojo/dashboard/blob/f3c679170776733c60dc485e076b7cb515caa7a4/.github/workflows/main.yml#L192), which created [this Kosli Event](https://app.kosli.com/cyber-dojo/flows/dashboard-ci/trails/f3c679170776733c60dc485e076b7cb515caa7a4?attestation_id=7d94c55b-fbeb-407c-839e-af5cadfc). + In [this YAML file](https://github.com/cyber-dojo/dashboard/blob/87f560f87fb2bc242ee5c58d74d0e209d71cd338/.github/workflows/main.yml#L197), which created [this Kosli Event](https://app.kosli.com/cyber-dojo/flows/dashboard-ci/trails/87f560f87fb2bc242ee5c58d74d0e209d71cd338?attestation_id=13c229f8-974c-4f29-afed-5c3a990c). View an example of the `kosli attest generic` command in GitLab. - In [this YAML file](https://gitlab.com/cyber-dojo/creator/-/blob/20368865b1ba0532f99f69641bbb96e6334cb545/.gitlab/workflows/main.yml#L92), which created [this Kosli Event](https://app.kosli.com/cyber-dojo/flows/creator-ci/trails/20368865b1ba0532f99f69641bbb96e6334cb545?attestation_id=5aece2c1-1d04-4510-beff-b2e2ea8d). + In [this YAML file](https://gitlab.com/cyber-dojo/creator/-/blob/65fd2bfa2478534ea4bc5ccf30f6bfc6aab7550c/.gitlab/workflows/main.yml#L131), which created [this Kosli Event](https://app.kosli.com/cyber-dojo/flows/creator-ci/trails/34f14b6fc5d87ff95426046716ec8a09141c13a7?attestation_id=07c7d103-c75a-4390-8c4b-56e7e3fa). diff --git a/client_reference/kosli_attest_junit.md b/client_reference/kosli_attest_junit.md index 3e3d6b4..2a41d2a 100644 --- a/client_reference/kosli_attest_junit.md +++ b/client_reference/kosli_attest_junit.md @@ -80,12 +80,12 @@ In other CI systems, set them explicitly to capture repository metadata. View an example of the `kosli attest junit` command in GitHub. - In [this YAML file](https://github.com/cyber-dojo/differ/blob/43d2a72431124e9fcf47bf866621ba3fd8e7f618/.github/workflows/main.yml#L99), which created [this Kosli Event](https://app.kosli.com/cyber-dojo/flows/differ-ci/trails/43d2a72431124e9fcf47bf866621ba3fd8e7f618?attestation_id=e1ca8f75-824d-4868-b90c-71c9275d). + In [this YAML file](https://github.com/cyber-dojo/differ/blob/981dcfc34f584d46afb46b217b47ce68f2f14a08/.github/workflows/main.yml#L101), which created [this Kosli Event](https://app.kosli.com/cyber-dojo/flows/differ-ci/trails/981dcfc34f584d46afb46b217b47ce68f2f14a08?attestation_id=b35c2895-32ae-4a40-8eb8-ddf7eff0). View an example of the `kosli attest junit` command in GitLab. - In [this YAML file](https://gitlab.com/cyber-dojo/creator/-/blob/20368865b1ba0532f99f69641bbb96e6334cb545/.gitlab/workflows/main.yml#L126), which created [this Kosli Event](https://app.kosli.com/cyber-dojo/flows/creator-ci/trails/20368865b1ba0532f99f69641bbb96e6334cb545?attestation_id=9c6178c5-6a49-4421-95f7-740f0c87). + In [this YAML file](https://gitlab.com/cyber-dojo/creator/-/blob/65fd2bfa2478534ea4bc5ccf30f6bfc6aab7550c/.gitlab/workflows/main.yml#L126), which created [this Kosli Event](https://app.kosli.com/cyber-dojo/flows/creator-ci/trails/34f14b6fc5d87ff95426046716ec8a09141c13a7?attestation_id=001f8458-33f6-492d-8746-9ac8bd1a). diff --git a/client_reference/kosli_attest_pullrequest_github.md b/client_reference/kosli_attest_pullrequest_github.md index 5a6206f..7091c9f 100644 --- a/client_reference/kosli_attest_pullrequest_github.md +++ b/client_reference/kosli_attest_pullrequest_github.md @@ -72,7 +72,7 @@ The attestation can be bound to an *artifact* in two ways: View an example of the `kosli attest pullrequest github` command in GitHub. - In [this YAML file](https://github.com/cyber-dojo/differ/blob/43d2a72431124e9fcf47bf866621ba3fd8e7f618/.github/workflows/main.yml#L79), which created [this Kosli Event](https://app.kosli.com/cyber-dojo/flows/differ-ci/trails/43d2a72431124e9fcf47bf866621ba3fd8e7f618?attestation_id=0c978038-4747-44e2-b398-682be022). + In [this YAML file](https://github.com/cyber-dojo/differ/blob/981dcfc34f584d46afb46b217b47ce68f2f14a08/.github/workflows/main.yml#L81), which created [this Kosli Event](https://app.kosli.com/cyber-dojo/flows/differ-ci/trails/981dcfc34f584d46afb46b217b47ce68f2f14a08?attestation_id=bde7c31e-ae7d-453e-b261-994f2f49). diff --git a/client_reference/kosli_attest_pullrequest_gitlab.md b/client_reference/kosli_attest_pullrequest_gitlab.md index 7d5491a..aa64762 100644 --- a/client_reference/kosli_attest_pullrequest_gitlab.md +++ b/client_reference/kosli_attest_pullrequest_gitlab.md @@ -72,7 +72,7 @@ The attestation can be bound to an *artifact* in two ways: View an example of the `kosli attest pullrequest gitlab` command in GitLab. - In [this YAML file](https://gitlab.com/cyber-dojo/creator/-/blob/20368865b1ba0532f99f69641bbb96e6334cb545/.gitlab/workflows/main.yml#L75), which created [this Kosli Event](https://app.kosli.com/cyber-dojo/flows/creator-ci/trails/20368865b1ba0532f99f69641bbb96e6334cb545?attestation_id=251aff84-4ada-4776-980a-43168708). + In [this YAML file](https://gitlab.com/cyber-dojo/creator/-/blob/65fd2bfa2478534ea4bc5ccf30f6bfc6aab7550c/.gitlab/workflows/main.yml#L75), which created [this Kosli Event](https://app.kosli.com/cyber-dojo/flows/creator-ci/trails/34f14b6fc5d87ff95426046716ec8a09141c13a7?attestation_id=495a0c39-68ac-45b8-9100-15401123). diff --git a/client_reference/kosli_attest_sonar.md b/client_reference/kosli_attest_sonar.md index 1058997..4e2fd3d 100644 --- a/client_reference/kosli_attest_sonar.md +++ b/client_reference/kosli_attest_sonar.md @@ -100,7 +100,7 @@ The attestation can be bound to an *artifact* in two ways: View an example of the `kosli attest sonar` command in GitHub. - In [this YAML file](https://github.com/cyber-dojo/dashboard/blob/f3c679170776733c60dc485e076b7cb515caa7a4/.github/workflows/main.yml#L118), which created [this Kosli Event](https://app.kosli.com/cyber-dojo/flows/dashboard-ci/trails/f3c679170776733c60dc485e076b7cb515caa7a4?attestation_id=75869d25-25fb-4b9f-87bc-6caa780e). + In [this YAML file](https://github.com/cyber-dojo/dashboard/blob/87f560f87fb2bc242ee5c58d74d0e209d71cd338/.github/workflows/main.yml#L122), which created [this Kosli Event](https://app.kosli.com/cyber-dojo/flows/dashboard-ci/trails/87f560f87fb2bc242ee5c58d74d0e209d71cd338?attestation_id=9b4f1511-de6d-4330-81c7-833cf034). diff --git a/client_reference/kosli_begin_trail.md b/client_reference/kosli_begin_trail.md index 58cc1a3..f4d90e8 100644 --- a/client_reference/kosli_begin_trail.md +++ b/client_reference/kosli_begin_trail.md @@ -62,12 +62,12 @@ 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/bc5fbc14361ce7a6281b6110049d90a03f69d786/.github/workflows/main.yml#L69), which created [this Kosli Event](https://app.kosli.com/cyber-dojo/flows/runner-ci/trails/bc5fbc14361ce7a6281b6110049d90a03f69d786?attestation_id=1). + In [this YAML file](https://github.com/cyber-dojo/runner/blob/9cc2a80e1306376b88039715dfdcfc161a0e3904/.github/workflows/main.yml#L78), which created [this Kosli Event](https://app.kosli.com/cyber-dojo/flows/runner-ci/trails/9cc2a80e1306376b88039715dfdcfc161a0e3904?attestation_id=1). View an example of the `kosli begin trail` command in GitLab. - In [this YAML file](https://gitlab.com/cyber-dojo/creator/-/blob/20368865b1ba0532f99f69641bbb96e6334cb545/.gitlab/workflows/main.yml#L55), which created [this Kosli Event](https://app.kosli.com/cyber-dojo/flows/creator-ci/trails/20368865b1ba0532f99f69641bbb96e6334cb545?attestation_id=1). + In [this YAML file](https://gitlab.com/cyber-dojo/creator/-/blob/65fd2bfa2478534ea4bc5ccf30f6bfc6aab7550c/.gitlab/workflows/main.yml#L55), which created [this Kosli Event](https://app.kosli.com/cyber-dojo/flows/creator-ci/trails/34f14b6fc5d87ff95426046716ec8a09141c13a7?attestation_id=1). diff --git a/client_reference/kosli_create_flow.md b/client_reference/kosli_create_flow.md index 5ffd04e..fc2f775 100644 --- a/client_reference/kosli_create_flow.md +++ b/client_reference/kosli_create_flow.md @@ -47,12 +47,12 @@ 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/bc5fbc14361ce7a6281b6110049d90a03f69d786/.github/workflows/main.yml#L62) + In [this YAML file](https://github.com/cyber-dojo/runner/blob/9cc2a80e1306376b88039715dfdcfc161a0e3904/.github/workflows/main.yml#L62) View an example of the `kosli create flow` command in GitLab. - In [this YAML file](https://gitlab.com/cyber-dojo/creator/-/blob/20368865b1ba0532f99f69641bbb96e6334cb545/.gitlab/workflows/main.yml#L53) + In [this YAML file](https://gitlab.com/cyber-dojo/creator/-/blob/65fd2bfa2478534ea4bc5ccf30f6bfc6aab7550c/.gitlab/workflows/main.yml#L53) diff --git a/client_reference/kosli_diff_snapshots.md b/client_reference/kosli_diff_snapshots.md index c81c2a1..864dbf0 100644 --- a/client_reference/kosli_diff_snapshots.md +++ b/client_reference/kosli_diff_snapshots.md @@ -68,171 +68,139 @@ kosli diff snapshots aws-beta aws-prod --output=json ```json { "snappish1": { - "snapshot_id": "aws-beta#7165", + "snapshot_id": "aws-beta#7240", "artifacts": [ { - "fingerprint": "08e29de5dfee9117e82568fba94d785303565158ae26fb2db4edc2c57d5a3b91", - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:4e4d89b@sha256:08e29de5dfee9117e82568fba94d785303565158ae26fb2db4edc2c57d5a3b91", - "most_recent_timestamp": 1781037007, - "flow": "nginx-ci", - "commit_url": "https://github.com/cyber-dojo/nginx/commit/4e4d89b91df420a82cf278407e58bae32f45627d", + "fingerprint": "024abeaf878f55e501869bdfcef2651d04084fa5492a6c515c5146d6a4ebd756", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:7d472fe@sha256:024abeaf878f55e501869bdfcef2651d04084fa5492a6c515c5146d6a4ebd756", + "most_recent_timestamp": 1781439988, + "flow": "exercises-start-points-ci", + "commit_url": "https://github.com/cyber-dojo/exercises-start-points/commit/7d472fe23646dcf286e7845258598d9846df636b", "instance_count": 1 }, { - "fingerprint": "314b016820058aa97e5489058505caf5a6b812e08bc8505de6c4e2c095b9c0f8", - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/languages-start-points:4b4c6e6@sha256:314b016820058aa97e5489058505caf5a6b812e08bc8505de6c4e2c095b9c0f8", - "most_recent_timestamp": 1780745954, - "flow": "languages-start-points-ci", - "commit_url": "https://github.com/cyber-dojo/languages-start-points/commit/4b4c6e63980752e4b37ee3456e5f4f4d3c5f0546", + "fingerprint": "4ab912309304956f1b462acd0313170d4eef00fd46ee06921c7a60978001273d", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:b909280@sha256:4ab912309304956f1b462acd0313170d4eef00fd46ee06921c7a60978001273d", + "most_recent_timestamp": 1781436253, + "flow": "saver-ci", + "commit_url": "https://github.com/cyber-dojo/saver/commit/b909280dcfac31d336ec145a90d73e0904dd2bb7", "instance_count": 1 }, { - "fingerprint": "3c14a535b1f6701b77e3228f9a541a0f4a5c8ec2e5b3d8858b4886a9b8a2ef60", - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:eb24e48@sha256:3c14a535b1f6701b77e3228f9a541a0f4a5c8ec2e5b3d8858b4886a9b8a2ef60", - "most_recent_timestamp": 1780985296, + "fingerprint": "82bd54f6d6cce8a290b0dbb106177c731ace68e6d1829c91e969de8d841d125f", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:47ef6ca@sha256:82bd54f6d6cce8a290b0dbb106177c731ace68e6d1829c91e969de8d841d125f", + "most_recent_timestamp": 1781436120, "flow": "web-ci", - "commit_url": "https://github.com/cyber-dojo/web/commit/eb24e489564d1e7dafbb7a17ef6da384dde59777", + "commit_url": "https://github.com/cyber-dojo/web/commit/47ef6ca4f22445ca7138a4818f8fe3a8b69b81f1", "instance_count": 3 }, { - "fingerprint": "54e5e0254b877cb1e8a3ad625ba817e1a341825f236b079ef49e6b81fb0c57fb", - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/custom-start-points:160a5de@sha256:54e5e0254b877cb1e8a3ad625ba817e1a341825f236b079ef49e6b81fb0c57fb", - "most_recent_timestamp": 1780745614, - "flow": "custom-start-points-ci", - "commit_url": "https://github.com/cyber-dojo/custom-start-points/commit/160a5ded0a2c2ca3bac4ef3937fbd3b0af499dba", - "instance_count": 1 - }, - { - "fingerprint": "739f640ebd78b6f0b3e8aa5f10508e84a1424f19839cae0d808d451cdf1bf183", - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:ff10dd6@sha256:739f640ebd78b6f0b3e8aa5f10508e84a1424f19839cae0d808d451cdf1bf183", - "most_recent_timestamp": 1781093211, - "flow": "saver-ci", - "commit_url": "https://github.com/cyber-dojo/saver/commit/ff10dd6dda5cb61c5003ac6960c561f37515aa25", - "instance_count": 1 + "fingerprint": "a08f777df1038d7f01a1ea13420b40be242eda069dc2e23316aa5be5096d20fc", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:c248c8e@sha256:a08f777df1038d7f01a1ea13420b40be242eda069dc2e23316aa5be5096d20fc", + "most_recent_timestamp": 1781597233, + "flow": "runner-ci", + "commit_url": "https://github.com/cyber-dojo/runner/commit/c248c8e2175307f6906e4a016d09b21d177923bd", + "instance_count": 3 }, { - "fingerprint": "8c603813fc51aff8b151c20a8bb3291f33ccdb75616148ef9028d9af4468244b", - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/creator:d06808b@sha256:8c603813fc51aff8b151c20a8bb3291f33ccdb75616148ef9028d9af4468244b", - "most_recent_timestamp": 1781083062, - "flow": "creator-ci", - "commit_url": "https://github.com/cyber-dojo/creator/commit/d06808b822d72533a014c6aad4225c834854adc2", + "fingerprint": "b62ed52cf05c8482962b91ab0ac5334719e692634286723ddcd41f7bf60d9305", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/languages-start-points:063682d@sha256:b62ed52cf05c8482962b91ab0ac5334719e692634286723ddcd41f7bf60d9305", + "most_recent_timestamp": 1781440008, + "flow": "languages-start-points-ci", + "commit_url": "https://github.com/cyber-dojo/languages-start-points/commit/063682da313984cd0d9c6c0e111eb1090aa03f9b", "instance_count": 1 }, { - "fingerprint": "9ec7c431a5a3b2c4c89313ddee32d734f1a2a368f4e124969d45dc5d1467df7d", - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:2c8ed71@sha256:9ec7c431a5a3b2c4c89313ddee32d734f1a2a368f4e124969d45dc5d1467df7d", - "most_recent_timestamp": 1780745756, - "flow": "exercises-start-points-ci", - "commit_url": "https://github.com/cyber-dojo/exercises-start-points/commit/2c8ed71d71be0735bad97f42d3de44d7cea0d2bd", + "fingerprint": "baec4fc23097cbc40348caa9b7fdcf6bfbeec8f48fc697bf3e7002460a605874", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/custom-start-points:eeb4288@sha256:baec4fc23097cbc40348caa9b7fdcf6bfbeec8f48fc697bf3e7002460a605874", + "most_recent_timestamp": 1781439984, + "flow": "custom-start-points-ci", + "commit_url": "https://github.com/cyber-dojo/custom-start-points/commit/eeb4288778e41b2d7d54d333d6b09514a947f693", "instance_count": 1 }, { - "fingerprint": "a64ce001d75001055cfb53ad374ef12ac7cf023c32ad11224c21baeb82ef54a7", - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/differ:42725db@sha256:a64ce001d75001055cfb53ad374ef12ac7cf023c32ad11224c21baeb82ef54a7", - "most_recent_timestamp": 1781169622, + "fingerprint": "c012ad13f83df1701223f5e5d3a88e76cae4e3fd3662255f2b48ed444eea65cd", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/differ:3ab1ef8@sha256:c012ad13f83df1701223f5e5d3a88e76cae4e3fd3662255f2b48ed444eea65cd", + "most_recent_timestamp": 1781440688, "flow": "differ-ci", - "commit_url": "https://github.com/cyber-dojo/differ/commit/42725dbb208d993e5b7c75e975335c0a20646493", + "commit_url": "https://github.com/cyber-dojo/differ/commit/3ab1ef84cb2243f184502ddb7f491e24d4ced1c1", "instance_count": 1 }, { - "fingerprint": "b895f49b10576f8945afe0d417a6f2e3b7604b897d70d3d53c229db39ab9ceb7", - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:3ea308c@sha256:b895f49b10576f8945afe0d417a6f2e3b7604b897d70d3d53c229db39ab9ceb7", - "most_recent_timestamp": 1781168746, + "fingerprint": "c3e10b6879caa50792774c8d5eccf54ce23cbd730bee922846abf28fa534d5db", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:ff89dd9@sha256:c3e10b6879caa50792774c8d5eccf54ce23cbd730bee922846abf28fa534d5db", + "most_recent_timestamp": 1781436093, "flow": "dashboard-ci", - "commit_url": "https://github.com/cyber-dojo/dashboard/commit/3ea308cbf42237cc8e564c2d849ee53f69b355ad", + "commit_url": "https://github.com/cyber-dojo/dashboard/commit/ff89dd9bd1bfc5441854450adcf25d5aad9508f4", "instance_count": 1 - }, - { - "fingerprint": "bf41ad448f32a5ffdfc40fa906ed3d06adda95bbcef54f3ba1739b60fc33033b", - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:5559a2a@sha256:bf41ad448f32a5ffdfc40fa906ed3d06adda95bbcef54f3ba1739b60fc33033b", - "most_recent_timestamp": 1781120540, - "flow": "runner-ci", - "commit_url": "https://github.com/cyber-dojo/runner/commit/5559a2a189654b055270f44312048e8244a7a847", - "instance_count": 3 } ] }, "snappish2": { - "snapshot_id": "aws-prod#4749", + "snapshot_id": "aws-prod#4781", "artifacts": [ { - "fingerprint": "12c8c3b837fc9fef8c25c7c0fc905f8537877f674a93ebd18cf4ff804594a3bc", - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:7635511@sha256:12c8c3b837fc9fef8c25c7c0fc905f8537877f674a93ebd18cf4ff804594a3bc", - "most_recent_timestamp": 1780332951, - "flow": "exercises-start-points-ci", - "commit_url": "https://github.com/cyber-dojo/exercises-start-points/commit/76355112651c4ee66d6ee47f67e35459616f0dae", - "instance_count": 1 - }, - { - "fingerprint": "31af583cc43761df4e53ffaabeafb6fa378af6af45f92d9cd12d76e48d4ceb02", - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/languages-start-points:9513e77@sha256:31af583cc43761df4e53ffaabeafb6fa378af6af45f92d9cd12d76e48d4ceb02", - "most_recent_timestamp": 1780333031, - "flow": "languages-start-points-ci", - "commit_url": "https://github.com/cyber-dojo/languages-start-points/commit/9513e77858d775950f22173d0afd0634b2ac20b9", - "instance_count": 1 - }, - { - "fingerprint": "443fe71ccfa84a1b7eb1ebe4cf8931c43371843201f540e5f6a8c55154fdb735", - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:8863c10@sha256:443fe71ccfa84a1b7eb1ebe4cf8931c43371843201f540e5f6a8c55154fdb735", - "most_recent_timestamp": 1780898570, + "fingerprint": "29c69c2f30f261a26fff4793fd8ae44b9081def1d4bcaaa27b0fef0501d949e4", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:f66cc5c@sha256:29c69c2f30f261a26fff4793fd8ae44b9081def1d4bcaaa27b0fef0501d949e4", + "most_recent_timestamp": 1781590572, "flow": "web-ci", - "commit_url": "https://github.com/cyber-dojo/web/commit/8863c10c2c93d3539672e0bf75bd9925f8778564", + "commit_url": "https://github.com/cyber-dojo/web/commit/f66cc5c51fcc19b04b36e0542b36b6cc52515d3c", "instance_count": 3 }, { - "fingerprint": "5ee9f19010bb3ae0bbd97098f83c9f652254eda1d1a488a057adedf02af9fbc9", - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:68d791f@sha256:5ee9f19010bb3ae0bbd97098f83c9f652254eda1d1a488a057adedf02af9fbc9", - "most_recent_timestamp": 1780332962, - "flow": "saver-ci", - "commit_url": "https://github.com/cyber-dojo/saver/commit/68d791f93dc161fd8dba63e49b7fe9f909cbe758", - "instance_count": 1 + "fingerprint": "414a07a72fbd04444ba4d2e19b6c7102095d5aeb469211f99166538626c08d06", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:9cc2a80@sha256:414a07a72fbd04444ba4d2e19b6c7102095d5aeb469211f99166538626c08d06", + "most_recent_timestamp": 1781590577, + "flow": "runner-ci", + "commit_url": "https://github.com/cyber-dojo/runner/commit/9cc2a80e1306376b88039715dfdcfc161a0e3904", + "instance_count": 3 }, { - "fingerprint": "9452c2f85c1d539974227f7e201f734934dce7b7dcbd2e056fcf9678454895e6", - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/custom-start-points:d3e5850@sha256:9452c2f85c1d539974227f7e201f734934dce7b7dcbd2e056fcf9678454895e6", - "most_recent_timestamp": 1780333290, - "flow": "custom-start-points-ci", - "commit_url": "https://github.com/cyber-dojo/custom-start-points/commit/d3e5850912655f2b18a68129f5f3a6480fe305ef", + "fingerprint": "45513c642ba191052bde056d56eeba8b06b0346eb444ec0008bd59bc0581bb8c", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:87f560f@sha256:45513c642ba191052bde056d56eeba8b06b0346eb444ec0008bd59bc0581bb8c", + "most_recent_timestamp": 1781590471, + "flow": "dashboard-ci", + "commit_url": "https://github.com/cyber-dojo/dashboard/commit/87f560f87fb2bc242ee5c58d74d0e209d71cd338", "instance_count": 1 }, { - "fingerprint": "9aa8b29c6163d8d454fdc63f896d1d0d8dec8f74ad364004e47727db3c1d3349", - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:f3c6791@sha256:9aa8b29c6163d8d454fdc63f896d1d0d8dec8f74ad364004e47727db3c1d3349", - "most_recent_timestamp": 1780333321, - "flow": "dashboard-ci", - "commit_url": "https://github.com/cyber-dojo/dashboard/commit/f3c679170776733c60dc485e076b7cb515caa7a4", + "fingerprint": "902ec7af03407049ac6e5ef713146d518bbffd9d99cd28715fa0df973e809b7b", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/differ:981dcfc@sha256:902ec7af03407049ac6e5ef713146d518bbffd9d99cd28715fa0df973e809b7b", + "most_recent_timestamp": 1781590460, + "flow": "differ-ci", + "commit_url": "https://github.com/cyber-dojo/differ/commit/981dcfc34f584d46afb46b217b47ce68f2f14a08", "instance_count": 1 }, { - "fingerprint": "bdc8eb7fd4717d25b74f5bae58316e66c24283f17a03ce0256ea04fe7eee72b1", - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:bc5fbc1@sha256:bdc8eb7fd4717d25b74f5bae58316e66c24283f17a03ce0256ea04fe7eee72b1", - "most_recent_timestamp": 1780724058, - "flow": "runner-ci", - "commit_url": "https://github.com/cyber-dojo/runner/commit/bc5fbc14361ce7a6281b6110049d90a03f69d786", - "instance_count": 3 + "fingerprint": "b2f51324efc1528e4dda57d235bdbc68d966e1ea23722d5d296f98eefbfc2676", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/languages-start-points:7e86fed@sha256:b2f51324efc1528e4dda57d235bdbc68d966e1ea23722d5d296f98eefbfc2676", + "most_recent_timestamp": 1781590480, + "flow": "languages-start-points-ci", + "commit_url": "https://github.com/cyber-dojo/languages-start-points/commit/7e86fede3e42d573de92fed483559b8317ce2dda", + "instance_count": 1 }, { - "fingerprint": "d2c30df1412005c8746cef54c3e3a88ddea23fdc0d96085a8ea66d91c61ac6d9", - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/differ:43d2a72@sha256:d2c30df1412005c8746cef54c3e3a88ddea23fdc0d96085a8ea66d91c61ac6d9", - "most_recent_timestamp": 1780332956, - "flow": "differ-ci", - "commit_url": "https://github.com/cyber-dojo/differ/commit/43d2a72431124e9fcf47bf866621ba3fd8e7f618", + "fingerprint": "b4448ca68a0926e4a7a800f5b101b63e9c2f38e1caaebb7e929d992763570928", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/custom-start-points:6b5c159@sha256:b4448ca68a0926e4a7a800f5b101b63e9c2f38e1caaebb7e929d992763570928", + "most_recent_timestamp": 1781590462, + "flow": "custom-start-points-ci", + "commit_url": "https://github.com/cyber-dojo/custom-start-points/commit/6b5c1598cc13c388a0fec71852e6b03bf0696e0b", "instance_count": 1 }, { - "fingerprint": "da15b4868e6a3d31647edb8be04f3ef47878315068bd5f15ea78c8da09eba2b4", - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:cdaac80@sha256:da15b4868e6a3d31647edb8be04f3ef47878315068bd5f15ea78c8da09eba2b4", - "most_recent_timestamp": 1780898567, - "flow": "nginx-ci", - "commit_url": "https://github.com/cyber-dojo/nginx/commit/cdaac807f3282bd0bba056d906d5536074297a04", + "fingerprint": "f00aa234bebafb1980dced29626750f84a6fe6c9c50f6a90167e4d8e6511a8a8", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:b8e5cbf@sha256:f00aa234bebafb1980dced29626750f84a6fe6c9c50f6a90167e4d8e6511a8a8", + "most_recent_timestamp": 1781590465, + "flow": "exercises-start-points-ci", + "commit_url": "https://github.com/cyber-dojo/exercises-start-points/commit/b8e5cbf56e7fc03becdeee6a1d493c0231fa2d0d", "instance_count": 1 }, { - "fingerprint": "e433c4e99e5191290a2b36c72acdf86806a960381309e11dab902e4db8bfb035", - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/creator:2036886@sha256:e433c4e99e5191290a2b36c72acdf86806a960381309e11dab902e4db8bfb035", - "most_recent_timestamp": 1780389628, - "flow": "creator-ci", - "commit_url": "https://gitlab.com/cyber-dojo/creator/-/commit/20368865b1ba0532f99f69641bbb96e6334cb545", + "fingerprint": "f5909cc8dd53b2105953d1a72cd5d6181367d3588964aa01a04c056205a5d419", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:8c84fac@sha256:f5909cc8dd53b2105953d1a72cd5d6181367d3588964aa01a04c056205a5d419", + "most_recent_timestamp": 1781590483, + "flow": "saver-ci", + "commit_url": "https://github.com/cyber-dojo/saver/commit/8c84facc7fd6a663fe7d40a6b4aff8f13a94d600", "instance_count": 1 } ] @@ -241,7 +209,24 @@ kosli diff snapshots aws-beta aws-prod --output=json "artifacts": [] }, "not-changed": { - "artifacts": [] + "artifacts": [ + { + "fingerprint": "b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:7065268@sha256:b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8", + "most_recent_timestamp": 1781590473, + "flow": "nginx-ci", + "commit_url": "https://github.com/cyber-dojo/nginx/commit/706526874659341458da5bb21903a6423c0a5a29", + "instance_count": 1 + }, + { + "fingerprint": "f221996be414b7698b15bfe68d143c90896dc70431099bd42ecc594127087c43", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/creator:34f14b6@sha256:f221996be414b7698b15bfe68d143c90896dc70431099bd42ecc594127087c43", + "most_recent_timestamp": 1781592148, + "flow": "creator-ci", + "commit_url": "https://github.com/cyber-dojo/creator/commit/34f14b6fc5d87ff95426046716ec8a09141c13a7", + "instance_count": 1 + } + ] } } ``` diff --git a/client_reference/kosli_evaluate_input.md b/client_reference/kosli_evaluate_input.md index f975e47..aeec76c 100644 --- a/client_reference/kosli_evaluate_input.md +++ b/client_reference/kosli_evaluate_input.md @@ -61,7 +61,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/ae002419e71c05cc5c1a285b52afdcef23d927c7/tests/test_rego_rules.sh#L272) + In [this YAML file](https://github.com/cyber-dojo/snyk-scanning/blob/00c479764cb9eca038fdaaaef108672d0bb0ed26/tests/test_rego_rules.sh#L272) diff --git a/client_reference/kosli_evaluate_trail.md b/client_reference/kosli_evaluate_trail.md index be64d5d..09f3baf 100644 --- a/client_reference/kosli_evaluate_trail.md +++ b/client_reference/kosli_evaluate_trail.md @@ -52,7 +52,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/ae002419e71c05cc5c1a285b52afdcef23d927c7/.github/workflows/artifact_snyk_test.yml#L321) + In [this YAML file](https://github.com/cyber-dojo/snyk-scanning/blob/00c479764cb9eca038fdaaaef108672d0bb0ed26/.github/workflows/artifact_snyk_test.yml#L323) diff --git a/client_reference/kosli_fingerprint.md b/client_reference/kosli_fingerprint.md index 149ca57..a1ec1a4 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/ae002419e71c05cc5c1a285b52afdcef23d927c7/.github/workflows/artifact_snyk_test.yml#L152) + In [this YAML file](https://github.com/cyber-dojo/snyk-scanning/blob/00c479764cb9eca038fdaaaef108672d0bb0ed26/.github/workflows/artifact_snyk_test.yml#L152) diff --git a/client_reference/kosli_get_environment.md b/client_reference/kosli_get_environment.md index 443c4fb..a83e073 100644 --- a/client_reference/kosli_get_environment.md +++ b/client_reference/kosli_get_environment.md @@ -52,9 +52,9 @@ kosli get environment aws-prod --output=json "name": "aws-prod", "type": "ECS", "description": "The ECS cluster for production cyber-dojo", - "last_modified_at": 1781173678.7227857, - "last_reported_at": 1781173678.7227857, - "last_changed_at": 1781167678.669744, + "last_modified_at": 1781604298.5932145, + "last_reported_at": 1781604298.5932145, + "last_changed_at": 1781596438.4966626, "state": true, "include_scaling": false, "tags": { diff --git a/client_reference/kosli_get_snapshot.md b/client_reference/kosli_get_snapshot.md index e1a90db..237d61e 100644 --- a/client_reference/kosli_get_snapshot.md +++ b/client_reference/kosli_get_snapshot.md @@ -66,7 +66,7 @@ kosli get snapshot aws-prod --output=json ```json { - "index": 4749, + "index": 4781, "is_latest": true, "next_snapshot_timestamp": null, "artifact_compliance_count": { @@ -74,13 +74,13 @@ kosli get snapshot aws-prod --output=json "false": 0, "null": 0 }, - "timestamp": 1781167678.669744, + "timestamp": 1781596438.4966626, "type": "ECS", "compliant": true, - "html_url": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/4749", + "html_url": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/4781", "artifacts": [ { - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:8863c10@sha256:443fe71ccfa84a1b7eb1ebe4cf8931c43371843201f540e5f6a8c55154fdb735", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:9cc2a80@sha256:414a07a72fbd04444ba4d2e19b6c7102095d5aeb469211f99166538626c08d06", "compliant": true, "deployments": [], "policy_decisions": [ @@ -102,8 +102,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "web-ci", - "trail_name": "8863c10c2c93d3539672e0bf75bd9925f8778564", + "flow_name": "runner-ci", + "trail_name": "9cc2a80e1306376b88039715dfdcfc161a0e3904", "artifact_status": null } }, @@ -111,7 +111,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-65", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -119,7 +119,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "web-443fe71ccfa84a1b7eb1ebe4cf8931c43371843201f540e5f6a8c55154fdb735", + "trail_name": "runner-414a07a72fbd04444ba4d2e19b6c7102095d5aeb469211f99166538626c08d06", "artifact_status": null } }, @@ -127,7 +127,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "web-443fe71ccfa84a1b7eb1ebe4cf8931c43371843201f540e5f6a8c55154fdb735", + "trail_name": "runner-414a07a72fbd04444ba4d2e19b6c7102095d5aeb469211f99166538626c08d06", "artifact_status": null } } @@ -147,8 +147,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "web-ci", - "trail_name": "8863c10c2c93d3539672e0bf75bd9925f8778564", + "flow_name": "runner-ci", + "trail_name": "9cc2a80e1306376b88039715dfdcfc161a0e3904", "artifact_status": "COMPLIANT" } }, @@ -156,7 +156,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-65", + "trail_name": "promote-all-23", "artifact_status": "COMPLIANT" } }, @@ -164,7 +164,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "web-443fe71ccfa84a1b7eb1ebe4cf8931c43371843201f540e5f6a8c55154fdb735", + "trail_name": "runner-414a07a72fbd04444ba4d2e19b6c7102095d5aeb469211f99166538626c08d06", "artifact_status": "COMPLIANT" } }, @@ -172,7 +172,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "web-443fe71ccfa84a1b7eb1ebe4cf8931c43371843201f540e5f6a8c55154fdb735", + "trail_name": "runner-414a07a72fbd04444ba4d2e19b6c7102095d5aeb469211f99166538626c08d06", "artifact_status": "COMPLIANT" } } @@ -197,8 +197,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "web-ci", - "trail_name": "8863c10c2c93d3539672e0bf75bd9925f8778564", + "flow_name": "runner-ci", + "trail_name": "9cc2a80e1306376b88039715dfdcfc161a0e3904", "artifact_status": null } }, @@ -206,7 +206,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-65", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -214,7 +214,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "web-443fe71ccfa84a1b7eb1ebe4cf8931c43371843201f540e5f6a8c55154fdb735", + "trail_name": "runner-414a07a72fbd04444ba4d2e19b6c7102095d5aeb469211f99166538626c08d06", "artifact_status": null } }, @@ -222,7 +222,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "web-443fe71ccfa84a1b7eb1ebe4cf8931c43371843201f540e5f6a8c55154fdb735", + "trail_name": "runner-414a07a72fbd04444ba4d2e19b6c7102095d5aeb469211f99166538626c08d06", "artifact_status": null } } @@ -249,8 +249,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "web-ci", - "trail_name": "8863c10c2c93d3539672e0bf75bd9925f8778564", + "flow_name": "runner-ci", + "trail_name": "9cc2a80e1306376b88039715dfdcfc161a0e3904", "artifact_status": null } }, @@ -258,7 +258,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-65", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -266,7 +266,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "web-443fe71ccfa84a1b7eb1ebe4cf8931c43371843201f540e5f6a8c55154fdb735", + "trail_name": "runner-414a07a72fbd04444ba4d2e19b6c7102095d5aeb469211f99166538626c08d06", "artifact_status": null } }, @@ -274,7 +274,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "web-443fe71ccfa84a1b7eb1ebe4cf8931c43371843201f540e5f6a8c55154fdb735", + "trail_name": "runner-414a07a72fbd04444ba4d2e19b6c7102095d5aeb469211f99166538626c08d06", "artifact_status": null } } @@ -294,8 +294,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "web-ci", - "trail_name": "8863c10c2c93d3539672e0bf75bd9925f8778564", + "flow_name": "runner-ci", + "trail_name": "9cc2a80e1306376b88039715dfdcfc161a0e3904", "artifact_status": "COMPLIANT" } }, @@ -303,7 +303,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-65", + "trail_name": "promote-all-23", "artifact_status": "COMPLIANT" } }, @@ -311,7 +311,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "web-443fe71ccfa84a1b7eb1ebe4cf8931c43371843201f540e5f6a8c55154fdb735", + "trail_name": "runner-414a07a72fbd04444ba4d2e19b6c7102095d5aeb469211f99166538626c08d06", "artifact_status": "COMPLIANT" } }, @@ -319,7 +319,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "web-443fe71ccfa84a1b7eb1ebe4cf8931c43371843201f540e5f6a8c55154fdb735", + "trail_name": "runner-414a07a72fbd04444ba4d2e19b6c7102095d5aeb469211f99166538626c08d06", "artifact_status": "COMPLIANT" } } @@ -346,8 +346,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "web-ci", - "trail_name": "8863c10c2c93d3539672e0bf75bd9925f8778564", + "flow_name": "runner-ci", + "trail_name": "9cc2a80e1306376b88039715dfdcfc161a0e3904", "artifact_status": null } }, @@ -355,7 +355,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-65", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -363,7 +363,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "web-443fe71ccfa84a1b7eb1ebe4cf8931c43371843201f540e5f6a8c55154fdb735", + "trail_name": "runner-414a07a72fbd04444ba4d2e19b6c7102095d5aeb469211f99166538626c08d06", "artifact_status": null } }, @@ -371,7 +371,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "web-443fe71ccfa84a1b7eb1ebe4cf8931c43371843201f540e5f6a8c55154fdb735", + "trail_name": "runner-414a07a72fbd04444ba4d2e19b6c7102095d5aeb469211f99166538626c08d06", "artifact_status": null } } @@ -391,8 +391,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "web-ci", - "trail_name": "8863c10c2c93d3539672e0bf75bd9925f8778564", + "flow_name": "runner-ci", + "trail_name": "9cc2a80e1306376b88039715dfdcfc161a0e3904", "artifact_status": "COMPLIANT" } }, @@ -400,7 +400,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-65", + "trail_name": "promote-all-23", "artifact_status": "COMPLIANT" } }, @@ -408,7 +408,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "web-443fe71ccfa84a1b7eb1ebe4cf8931c43371843201f540e5f6a8c55154fdb735", + "trail_name": "runner-414a07a72fbd04444ba4d2e19b6c7102095d5aeb469211f99166538626c08d06", "artifact_status": "COMPLIANT" } }, @@ -416,7 +416,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "web-443fe71ccfa84a1b7eb1ebe4cf8931c43371843201f540e5f6a8c55154fdb735", + "trail_name": "runner-414a07a72fbd04444ba4d2e19b6c7102095d5aeb469211f99166538626c08d06", "artifact_status": "COMPLIANT" } } @@ -441,8 +441,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "web-ci", - "trail_name": "8863c10c2c93d3539672e0bf75bd9925f8778564", + "flow_name": "runner-ci", + "trail_name": "9cc2a80e1306376b88039715dfdcfc161a0e3904", "artifact_status": null } }, @@ -450,7 +450,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-65", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -458,7 +458,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "web-443fe71ccfa84a1b7eb1ebe4cf8931c43371843201f540e5f6a8c55154fdb735", + "trail_name": "runner-414a07a72fbd04444ba4d2e19b6c7102095d5aeb469211f99166538626c08d06", "artifact_status": null } }, @@ -466,7 +466,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "web-443fe71ccfa84a1b7eb1ebe4cf8931c43371843201f540e5f6a8c55154fdb735", + "trail_name": "runner-414a07a72fbd04444ba4d2e19b6c7102095d5aeb469211f99166538626c08d06", "artifact_status": null } } @@ -493,8 +493,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "web-ci", - "trail_name": "8863c10c2c93d3539672e0bf75bd9925f8778564", + "flow_name": "runner-ci", + "trail_name": "9cc2a80e1306376b88039715dfdcfc161a0e3904", "artifact_status": null } }, @@ -502,7 +502,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-65", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -510,7 +510,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "web-443fe71ccfa84a1b7eb1ebe4cf8931c43371843201f540e5f6a8c55154fdb735", + "trail_name": "runner-414a07a72fbd04444ba4d2e19b6c7102095d5aeb469211f99166538626c08d06", "artifact_status": null } }, @@ -518,7 +518,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "web-443fe71ccfa84a1b7eb1ebe4cf8931c43371843201f540e5f6a8c55154fdb735", + "trail_name": "runner-414a07a72fbd04444ba4d2e19b6c7102095d5aeb469211f99166538626c08d06", "artifact_status": null } } @@ -538,8 +538,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "web-ci", - "trail_name": "8863c10c2c93d3539672e0bf75bd9925f8778564", + "flow_name": "runner-ci", + "trail_name": "9cc2a80e1306376b88039715dfdcfc161a0e3904", "artifact_status": "COMPLIANT" } }, @@ -547,7 +547,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-65", + "trail_name": "promote-all-23", "artifact_status": "COMPLIANT" } }, @@ -555,7 +555,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "web-443fe71ccfa84a1b7eb1ebe4cf8931c43371843201f540e5f6a8c55154fdb735", + "trail_name": "runner-414a07a72fbd04444ba4d2e19b6c7102095d5aeb469211f99166538626c08d06", "artifact_status": "COMPLIANT" } }, @@ -563,7 +563,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "web-443fe71ccfa84a1b7eb1ebe4cf8931c43371843201f540e5f6a8c55154fdb735", + "trail_name": "runner-414a07a72fbd04444ba4d2e19b6c7102095d5aeb469211f99166538626c08d06", "artifact_status": "COMPLIANT" } } @@ -588,8 +588,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "web-ci", - "trail_name": "8863c10c2c93d3539672e0bf75bd9925f8778564", + "flow_name": "runner-ci", + "trail_name": "9cc2a80e1306376b88039715dfdcfc161a0e3904", "artifact_status": null } }, @@ -597,7 +597,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-65", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -605,7 +605,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "web-443fe71ccfa84a1b7eb1ebe4cf8931c43371843201f540e5f6a8c55154fdb735", + "trail_name": "runner-414a07a72fbd04444ba4d2e19b6c7102095d5aeb469211f99166538626c08d06", "artifact_status": null } }, @@ -613,7 +613,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "web-443fe71ccfa84a1b7eb1ebe4cf8931c43371843201f540e5f6a8c55154fdb735", + "trail_name": "runner-414a07a72fbd04444ba4d2e19b6c7102095d5aeb469211f99166538626c08d06", "artifact_status": null } } @@ -640,8 +640,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "web-ci", - "trail_name": "8863c10c2c93d3539672e0bf75bd9925f8778564", + "flow_name": "runner-ci", + "trail_name": "9cc2a80e1306376b88039715dfdcfc161a0e3904", "artifact_status": null } }, @@ -649,7 +649,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-65", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -657,7 +657,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "web-443fe71ccfa84a1b7eb1ebe4cf8931c43371843201f540e5f6a8c55154fdb735", + "trail_name": "runner-414a07a72fbd04444ba4d2e19b6c7102095d5aeb469211f99166538626c08d06", "artifact_status": null } }, @@ -665,7 +665,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "web-443fe71ccfa84a1b7eb1ebe4cf8931c43371843201f540e5f6a8c55154fdb735", + "trail_name": "runner-414a07a72fbd04444ba4d2e19b6c7102095d5aeb469211f99166538626c08d06", "artifact_status": null } } @@ -691,8 +691,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "web-ci", - "trail_name": "8863c10c2c93d3539672e0bf75bd9925f8778564", + "flow_name": "runner-ci", + "trail_name": "9cc2a80e1306376b88039715dfdcfc161a0e3904", "artifact_status": "COMPLIANT" } }, @@ -700,7 +700,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-65", + "trail_name": "promote-all-23", "artifact_status": "COMPLIANT" } }, @@ -708,7 +708,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "web-443fe71ccfa84a1b7eb1ebe4cf8931c43371843201f540e5f6a8c55154fdb735", + "trail_name": "runner-414a07a72fbd04444ba4d2e19b6c7102095d5aeb469211f99166538626c08d06", "artifact_status": "COMPLIANT" } }, @@ -716,7 +716,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "web-443fe71ccfa84a1b7eb1ebe4cf8931c43371843201f540e5f6a8c55154fdb735", + "trail_name": "runner-414a07a72fbd04444ba4d2e19b6c7102095d5aeb469211f99166538626c08d06", "artifact_status": "COMPLIANT" } } @@ -727,159 +727,159 @@ kosli get snapshot aws-prod --output=json } ], "reasons_for_incompliance": [], - "fingerprint": "443fe71ccfa84a1b7eb1ebe4cf8931c43371843201f540e5f6a8c55154fdb735", + "fingerprint": "414a07a72fbd04444ba4d2e19b6c7102095d5aeb469211f99166538626c08d06", "creationTimestamp": [ - 1780898567, - 1780898570, - 1780898570 + 1781590488, + 1781590574, + 1781590577 ], "pods": null, "annotation": { - "type": "changed", + "type": "updated-provenance", "was": 3, "now": 3 }, - "flow_name": "web-ci", - "git_commit": "8863c10c2c93d3539672e0bf75bd9925f8778564", - "commit_url": "https://github.com/cyber-dojo/web/commit/8863c10c2c93d3539672e0bf75bd9925f8778564", - "html_url": "https://app.kosli.com/cyber-dojo/flows/web-ci/artifacts/443fe71ccfa84a1b7eb1ebe4cf8931c43371843201f540e5f6a8c55154fdb735?artifact_id=65fd4674-3e05-441a-8bd3-71492624", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/web-ci", + "flow_name": "runner-ci", + "git_commit": "9cc2a80e1306376b88039715dfdcfc161a0e3904", + "commit_url": "https://github.com/cyber-dojo/runner/commit/9cc2a80e1306376b88039715dfdcfc161a0e3904", + "html_url": "https://app.kosli.com/cyber-dojo/flows/runner-ci/artifacts/414a07a72fbd04444ba4d2e19b6c7102095d5aeb469211f99166538626c08d06?artifact_id=73a8e588-a383-4eb5-a88c-a1db6160", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/runner-ci", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/web/compare/517657b9dec6ac7ff431ca5d9b2de72fded5c295...8863c10c2c93d3539672e0bf75bd9925f8778564", - "previous_git_commit": "517657b9dec6ac7ff431ca5d9b2de72fded5c295", - "previous_fingerprint": "a416f3378c6bc07f2735aec03e80bc55acefe1c2f55c04930a5a7c5b4181e770", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:517657b@sha256:a416f3378c6bc07f2735aec03e80bc55acefe1c2f55c04930a5a7c5b4181e770", + "diff_url": "https://github.com/cyber-dojo/runner/compare/bc5fbc14361ce7a6281b6110049d90a03f69d786...9cc2a80e1306376b88039715dfdcfc161a0e3904", + "previous_git_commit": "bc5fbc14361ce7a6281b6110049d90a03f69d786", + "previous_fingerprint": "bdc8eb7fd4717d25b74f5bae58316e66c24283f17a03ce0256ea04fe7eee72b1", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:bc5fbc1@sha256:bdc8eb7fd4717d25b74f5bae58316e66c24283f17a03ce0256ea04fe7eee72b1", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/web/commit/517657b9dec6ac7ff431ca5d9b2de72fded5c295", - "previous_trail_name": "517657b9dec6ac7ff431ca5d9b2de72fded5c295", - "previous_template_reference_name": "web" + "previous_git_commit_url": "https://github.com/cyber-dojo/runner/commit/bc5fbc14361ce7a6281b6110049d90a03f69d786", + "previous_trail_name": "bc5fbc14361ce7a6281b6110049d90a03f69d786", + "previous_template_reference_name": "runner" }, - "commit_lead_time": 4454.0, + "commit_lead_time": 8211.0, "flows": [ { - "flow_name": "web-ci", - "trail_name": "8863c10c2c93d3539672e0bf75bd9925f8778564", - "template_reference_name": "web", - "git_commit": "8863c10c2c93d3539672e0bf75bd9925f8778564", - "commit_url": "https://github.com/cyber-dojo/web/commit/8863c10c2c93d3539672e0bf75bd9925f8778564", + "flow_name": "runner-ci", + "trail_name": "9cc2a80e1306376b88039715dfdcfc161a0e3904", + "template_reference_name": "runner", + "git_commit": "9cc2a80e1306376b88039715dfdcfc161a0e3904", + "commit_url": "https://github.com/cyber-dojo/runner/commit/9cc2a80e1306376b88039715dfdcfc161a0e3904", "git_commit_info": { - "sha1": "8863c10c2c93d3539672e0bf75bd9925f8778564", - "message": "Show selection underbar on inter-file icons in detailed diff (#357)\n\nIn detailed diff mode the traffic-lights strip also shows inter-file\n icons, but selecting one drew no underbar while selecting a rag-light\n did. The marker was built from the raw light.colour, so file\n events requested marker_file_edit.png etc. -- images that were never\n created -- and 404'd silently.\n\n File-event icons are named file_test/file_code (not by colour), so the\n marker must follow the same mapping. Extract that name into a shared\n fileEventIcon() helper and have $lightMarker use light.colour for\n rag-lights and fileEventIcon() for file events, keeping each icon and\n its underbar in sync.\n\n Companion marker_file_test.png / marker_file_code.png are added in the\n nginx image repo.", + "sha1": "9cc2a80e1306376b88039715dfdcfc161a0e3904", + "message": "Merge pull request #244 from cyber-dojo/force-ci-run-129\n\nRun ci workflow to pickup new --annotation in secure-docker-build.yml", "author": "Jon Jagger ", "branch": "", - "timestamp": 1780894113.0, - "url": "https://github.com/cyber-dojo/web/commit/8863c10c2c93d3539672e0bf75bd9925f8778564" + "timestamp": 1781417039.0, + "url": "https://github.com/cyber-dojo/runner/commit/9cc2a80e1306376b88039715dfdcfc161a0e3904" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/web-ci/artifacts/443fe71ccfa84a1b7eb1ebe4cf8931c43371843201f540e5f6a8c55154fdb735?artifact_id=65fd4674-3e05-441a-8bd3-71492624", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/web-ci", + "html_url": "https://app.kosli.com/cyber-dojo/flows/runner-ci/artifacts/414a07a72fbd04444ba4d2e19b6c7102095d5aeb469211f99166538626c08d06?artifact_id=73a8e588-a383-4eb5-a88c-a1db6160", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/runner-ci", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/web/compare/517657b9dec6ac7ff431ca5d9b2de72fded5c295...8863c10c2c93d3539672e0bf75bd9925f8778564", - "previous_git_commit": "517657b9dec6ac7ff431ca5d9b2de72fded5c295", - "previous_fingerprint": "a416f3378c6bc07f2735aec03e80bc55acefe1c2f55c04930a5a7c5b4181e770", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:517657b@sha256:a416f3378c6bc07f2735aec03e80bc55acefe1c2f55c04930a5a7c5b4181e770", + "diff_url": "https://github.com/cyber-dojo/runner/compare/bc5fbc14361ce7a6281b6110049d90a03f69d786...9cc2a80e1306376b88039715dfdcfc161a0e3904", + "previous_git_commit": "bc5fbc14361ce7a6281b6110049d90a03f69d786", + "previous_fingerprint": "bdc8eb7fd4717d25b74f5bae58316e66c24283f17a03ce0256ea04fe7eee72b1", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:bc5fbc1@sha256:bdc8eb7fd4717d25b74f5bae58316e66c24283f17a03ce0256ea04fe7eee72b1", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/web/commit/517657b9dec6ac7ff431ca5d9b2de72fded5c295", - "previous_trail_name": "517657b9dec6ac7ff431ca5d9b2de72fded5c295", - "previous_template_reference_name": "web" + "previous_git_commit_url": "https://github.com/cyber-dojo/runner/commit/bc5fbc14361ce7a6281b6110049d90a03f69d786", + "previous_trail_name": "bc5fbc14361ce7a6281b6110049d90a03f69d786", + "previous_template_reference_name": "runner" }, - "commit_lead_time": 4454.0, + "commit_lead_time": 8211.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "production-promotion", - "trail_name": "promotion-one-65", - "template_reference_name": "web", - "git_commit": "8d5d7b8b19d97204eb0701a813fe53c68c21ccd0", - "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/8d5d7b8b19d97204eb0701a813fe53c68c21ccd0", + "trail_name": "promote-all-23", + "template_reference_name": "runner", + "git_commit": "01dd4c6406d6655898ef2236875ec9f67091c792", + "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/01dd4c6406d6655898ef2236875ec9f67091c792", "git_commit_info": { - "sha1": "8d5d7b8b19d97204eb0701a813fe53c68c21ccd0", - "message": "Tag the Flowis with their target environment (#396)", + "sha1": "01dd4c6406d6655898ef2236875ec9f67091c792", + "message": "Update comment and help text", "author": "JonJagger ", "branch": "main", - "timestamp": 1780748155.0, - "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/8d5d7b8b19d97204eb0701a813fe53c68c21ccd0" + "timestamp": 1781413514.0, + "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/01dd4c6406d6655898ef2236875ec9f67091c792" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/443fe71ccfa84a1b7eb1ebe4cf8931c43371843201f540e5f6a8c55154fdb735?artifact_id=34c94975-a70e-47ba-8ba1-dc7b23bc", + "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/414a07a72fbd04444ba4d2e19b6c7102095d5aeb469211f99166538626c08d06?artifact_id=de0528f8-6f6a-437c-801c-0f6a5302", "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/0f823ea52be90061b69b3f8f6056ca1203ac3d81...8d5d7b8b19d97204eb0701a813fe53c68c21ccd0", + "diff_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/compare/0f823ea52be90061b69b3f8f6056ca1203ac3d81...01dd4c6406d6655898ef2236875ec9f67091c792", "previous_git_commit": "0f823ea52be90061b69b3f8f6056ca1203ac3d81", - "previous_fingerprint": "a416f3378c6bc07f2735aec03e80bc55acefe1c2f55c04930a5a7c5b4181e770", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:517657b@sha256:a416f3378c6bc07f2735aec03e80bc55acefe1c2f55c04930a5a7c5b4181e770", + "previous_fingerprint": "bdc8eb7fd4717d25b74f5bae58316e66c24283f17a03ce0256ea04fe7eee72b1", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:bc5fbc1@sha256:bdc8eb7fd4717d25b74f5bae58316e66c24283f17a03ce0256ea04fe7eee72b1", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/0f823ea52be90061b69b3f8f6056ca1203ac3d81", - "previous_trail_name": "promote-all-21", - "previous_template_reference_name": "web" + "previous_trail_name": "promotion-one-63", + "previous_template_reference_name": "runner" }, - "commit_lead_time": 150412.0, + "commit_lead_time": 11736.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "web-443fe71ccfa84a1b7eb1ebe4cf8931c43371843201f540e5f6a8c55154fdb735", - "template_reference_name": "web", - "git_commit": "ae002419e71c05cc5c1a285b52afdcef23d927c7", - "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/ae002419e71c05cc5c1a285b52afdcef23d927c7", + "trail_name": "runner-414a07a72fbd04444ba4d2e19b6c7102095d5aeb469211f99166538626c08d06", + "template_reference_name": "runner", + "git_commit": "09e584191c69ab283e35869dcdaa474414b03e45", + "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/09e584191c69ab283e35869dcdaa474414b03e45", "git_commit_info": { - "sha1": "ae002419e71c05cc5c1a285b52afdcef23d927c7", - "message": "Upgrade workflows to use kosli-cli-setup v5", + "sha1": "09e584191c69ab283e35869dcdaa474414b03e45", + "message": "Detect build flows by the type=build annotation, not a hardcoded list\n\n The hardcoded BUILD_FLOWS list had to be hand-edited per service, and a\n new build flow missing from it was silently skipped, leaving its artifact\n unscanned (the unsafe direction). Detect build flows from the per-artifact\n type=build annotation instead.\n\n - artifacts.py: is_build_flow reads the (flow, fingerprint) annotation via an\n injected fetcher; derive repo_name from the commit_url rather than stripping\n a -ci suffix.\n - Fail loud on missing KOSLI_HOST/ORG/API_TOKEN, and run kosli with a\n PATH-only environment.\n - Replace the shell artifacts test with pytest using a fake fetcher (no live\n kosli calls).\n - Bring the docs into line with the current code.", "author": "JonJagger ", "branch": "main", - "timestamp": 1780908047.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/ae002419e71c05cc5c1a285b52afdcef23d927c7" + "timestamp": 1781535543.0, + "url": "https://github.com/cyber-dojo/snyk-scanning/commit/09e584191c69ab283e35869dcdaa474414b03e45" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/443fe71ccfa84a1b7eb1ebe4cf8931c43371843201f540e5f6a8c55154fdb735?artifact_id=b15ec5b2-0f82-43e5-8c70-830ea4d0", + "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/414a07a72fbd04444ba4d2e19b6c7102095d5aeb469211f99166538626c08d06?artifact_id=81df1aad-7d4f-4376-ae57-29400c8c", "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/ee081fb7be2ac7e2094bb4d02f3effdb9f73dd74...ae002419e71c05cc5c1a285b52afdcef23d927c7", - "previous_git_commit": "ee081fb7be2ac7e2094bb4d02f3effdb9f73dd74", - "previous_fingerprint": "a416f3378c6bc07f2735aec03e80bc55acefe1c2f55c04930a5a7c5b4181e770", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:517657b@sha256:a416f3378c6bc07f2735aec03e80bc55acefe1c2f55c04930a5a7c5b4181e770", - "previous_artifact_compliance_state": "COMPLIANT", + "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/604111f4822bbc01169317b26fd0f794f5ee7cbf...09e584191c69ab283e35869dcdaa474414b03e45", + "previous_git_commit": "604111f4822bbc01169317b26fd0f794f5ee7cbf", + "previous_fingerprint": "9db5a9987ba83419bec8ded2cc7bc5c9db814c8f0f275b5fe7228957ceed5ac2", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:bc8fb51@sha256:9db5a9987ba83419bec8ded2cc7bc5c9db814c8f0f275b5fe7228957ceed5ac2", + "previous_artifact_compliance_state": "NON-COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/ee081fb7be2ac7e2094bb4d02f3effdb9f73dd74", - "previous_trail_name": "web-a416f3378c6bc07f2735aec03e80bc55acefe1c2f55c04930a5a7c5b4181e770", - "previous_template_reference_name": "web" + "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/604111f4822bbc01169317b26fd0f794f5ee7cbf", + "previous_trail_name": "runner-9db5a9987ba83419bec8ded2cc7bc5c9db814c8f0f275b5fe7228957ceed5ac2", + "previous_template_reference_name": "runner" }, - "commit_lead_time": -9480.0, + "commit_lead_time": -110293.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "web-443fe71ccfa84a1b7eb1ebe4cf8931c43371843201f540e5f6a8c55154fdb735", - "template_reference_name": "web", - "git_commit": "ae002419e71c05cc5c1a285b52afdcef23d927c7", - "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/ae002419e71c05cc5c1a285b52afdcef23d927c7", + "trail_name": "runner-414a07a72fbd04444ba4d2e19b6c7102095d5aeb469211f99166538626c08d06", + "template_reference_name": "runner", + "git_commit": "00c479764cb9eca038fdaaaef108672d0bb0ed26", + "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/00c479764cb9eca038fdaaaef108672d0bb0ed26", "git_commit_info": { - "sha1": "ae002419e71c05cc5c1a285b52afdcef23d927c7", - "message": "Upgrade workflows to use kosli-cli-setup v5", + "sha1": "00c479764cb9eca038fdaaaef108672d0bb0ed26", + "message": "Shorten the per-vuln attestation name to a 10-char fingerprint\n\n The per-vuln attestation was named snyk-. A full\n SHA-256 fingerprint is 64 hex chars, which renders badly on the\n snyk--per-vuln flow page. The fingerprint is only there to keep two\n builds of the same artifact in one deploy snapshot from clobbering each\n other on the shared per-vuln trail, and the first 10 hex chars (40 bits)\n are far more than enough to keep distinct builds apart.\n\n GitHub Actions expressions have no substring function, so the name can\n no longer be built inline in the job-level env. Compute it in a shell\n step that truncates the fingerprint and exports VULN_ATTESTATION_NAME to\n $GITHUB_ENV, ahead of every step that reads it.\n\n Note: per-vuln trails that already carry a snyk-\n attestation will, on their next run, also gain a snyk-<10-char> one,\n since Kosli keys attestations by name. Only trails created after this\n change will have the short name alone.", "author": "JonJagger ", "branch": "main", - "timestamp": 1780908047.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/ae002419e71c05cc5c1a285b52afdcef23d927c7" + "timestamp": 1781594940.0, + "url": "https://github.com/cyber-dojo/snyk-scanning/commit/00c479764cb9eca038fdaaaef108672d0bb0ed26" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/443fe71ccfa84a1b7eb1ebe4cf8931c43371843201f540e5f6a8c55154fdb735?artifact_id=d40dc2f3-8382-4cb6-88df-8f1dc1c4", + "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/414a07a72fbd04444ba4d2e19b6c7102095d5aeb469211f99166538626c08d06?artifact_id=70e23416-e30e-4783-abff-a1dd3ed4", "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact", "deployment_diff": null, - "commit_lead_time": -9480.0, + "commit_lead_time": -169690.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] } ], "ecs_context": { - "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/f0007a451aea435bad6fb6a0107cde93", + "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/c5d9f7159999424d8bffd557e2e421da", "cluster_name": null, "service_name": null } }, { - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:cdaac80@sha256:da15b4868e6a3d31647edb8be04f3ef47878315068bd5f15ea78c8da09eba2b4", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/custom-start-points:6b5c159@sha256:b4448ca68a0926e4a7a800f5b101b63e9c2f38e1caaebb7e929d992763570928", "compliant": true, "deployments": [], "policy_decisions": [ @@ -901,24 +901,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "nginx-ci", - "trail_name": "cdaac807f3282bd0bba056d906d5536074297a04", + "flow_name": "custom-start-points-ci", + "trail_name": "6b5c1598cc13c388a0fec71852e6b03bf0696e0b", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-64", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "custom-start-points-b4448ca68a0926e4a7a800f5b101b63e9c2f38e1caaebb7e929d992763570928", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "nginx-da15b4868e6a3d31647edb8be04f3ef47878315068bd5f15ea78c8da09eba2b4", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -926,7 +926,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "nginx-da15b4868e6a3d31647edb8be04f3ef47878315068bd5f15ea78c8da09eba2b4", + "trail_name": "custom-start-points-b4448ca68a0926e4a7a800f5b101b63e9c2f38e1caaebb7e929d992763570928", "artifact_status": null } } @@ -946,24 +946,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "nginx-ci", - "trail_name": "cdaac807f3282bd0bba056d906d5536074297a04", + "flow_name": "custom-start-points-ci", + "trail_name": "6b5c1598cc13c388a0fec71852e6b03bf0696e0b", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-64", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "custom-start-points-b4448ca68a0926e4a7a800f5b101b63e9c2f38e1caaebb7e929d992763570928", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "nginx-da15b4868e6a3d31647edb8be04f3ef47878315068bd5f15ea78c8da09eba2b4", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": "COMPLIANT" } }, @@ -971,7 +971,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "nginx-da15b4868e6a3d31647edb8be04f3ef47878315068bd5f15ea78c8da09eba2b4", + "trail_name": "custom-start-points-b4448ca68a0926e4a7a800f5b101b63e9c2f38e1caaebb7e929d992763570928", "artifact_status": "COMPLIANT" } } @@ -996,24 +996,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "nginx-ci", - "trail_name": "cdaac807f3282bd0bba056d906d5536074297a04", + "flow_name": "custom-start-points-ci", + "trail_name": "6b5c1598cc13c388a0fec71852e6b03bf0696e0b", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-64", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "custom-start-points-b4448ca68a0926e4a7a800f5b101b63e9c2f38e1caaebb7e929d992763570928", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "nginx-da15b4868e6a3d31647edb8be04f3ef47878315068bd5f15ea78c8da09eba2b4", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -1021,7 +1021,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "nginx-da15b4868e6a3d31647edb8be04f3ef47878315068bd5f15ea78c8da09eba2b4", + "trail_name": "custom-start-points-b4448ca68a0926e4a7a800f5b101b63e9c2f38e1caaebb7e929d992763570928", "artifact_status": null } } @@ -1048,24 +1048,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "nginx-ci", - "trail_name": "cdaac807f3282bd0bba056d906d5536074297a04", + "flow_name": "custom-start-points-ci", + "trail_name": "6b5c1598cc13c388a0fec71852e6b03bf0696e0b", "artifact_status": null } }, { "type": "rule_satisfied", "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-64", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "custom-start-points-b4448ca68a0926e4a7a800f5b101b63e9c2f38e1caaebb7e929d992763570928", "artifact_status": null } }, { "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "nginx-da15b4868e6a3d31647edb8be04f3ef47878315068bd5f15ea78c8da09eba2b4", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -1073,7 +1073,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "nginx-da15b4868e6a3d31647edb8be04f3ef47878315068bd5f15ea78c8da09eba2b4", + "trail_name": "custom-start-points-b4448ca68a0926e4a7a800f5b101b63e9c2f38e1caaebb7e929d992763570928", "artifact_status": null } } @@ -1093,24 +1093,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "nginx-ci", - "trail_name": "cdaac807f3282bd0bba056d906d5536074297a04", + "flow_name": "custom-start-points-ci", + "trail_name": "6b5c1598cc13c388a0fec71852e6b03bf0696e0b", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-64", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "custom-start-points-b4448ca68a0926e4a7a800f5b101b63e9c2f38e1caaebb7e929d992763570928", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "nginx-da15b4868e6a3d31647edb8be04f3ef47878315068bd5f15ea78c8da09eba2b4", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": "COMPLIANT" } }, @@ -1118,7 +1118,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "nginx-da15b4868e6a3d31647edb8be04f3ef47878315068bd5f15ea78c8da09eba2b4", + "trail_name": "custom-start-points-b4448ca68a0926e4a7a800f5b101b63e9c2f38e1caaebb7e929d992763570928", "artifact_status": "COMPLIANT" } } @@ -1145,24 +1145,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "nginx-ci", - "trail_name": "cdaac807f3282bd0bba056d906d5536074297a04", + "flow_name": "custom-start-points-ci", + "trail_name": "6b5c1598cc13c388a0fec71852e6b03bf0696e0b", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-64", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "custom-start-points-b4448ca68a0926e4a7a800f5b101b63e9c2f38e1caaebb7e929d992763570928", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "nginx-da15b4868e6a3d31647edb8be04f3ef47878315068bd5f15ea78c8da09eba2b4", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -1170,7 +1170,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "nginx-da15b4868e6a3d31647edb8be04f3ef47878315068bd5f15ea78c8da09eba2b4", + "trail_name": "custom-start-points-b4448ca68a0926e4a7a800f5b101b63e9c2f38e1caaebb7e929d992763570928", "artifact_status": null } } @@ -1190,24 +1190,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "nginx-ci", - "trail_name": "cdaac807f3282bd0bba056d906d5536074297a04", + "flow_name": "custom-start-points-ci", + "trail_name": "6b5c1598cc13c388a0fec71852e6b03bf0696e0b", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-64", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "custom-start-points-b4448ca68a0926e4a7a800f5b101b63e9c2f38e1caaebb7e929d992763570928", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "nginx-da15b4868e6a3d31647edb8be04f3ef47878315068bd5f15ea78c8da09eba2b4", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": "COMPLIANT" } }, @@ -1215,7 +1215,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "nginx-da15b4868e6a3d31647edb8be04f3ef47878315068bd5f15ea78c8da09eba2b4", + "trail_name": "custom-start-points-b4448ca68a0926e4a7a800f5b101b63e9c2f38e1caaebb7e929d992763570928", "artifact_status": "COMPLIANT" } } @@ -1240,24 +1240,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "nginx-ci", - "trail_name": "cdaac807f3282bd0bba056d906d5536074297a04", + "flow_name": "custom-start-points-ci", + "trail_name": "6b5c1598cc13c388a0fec71852e6b03bf0696e0b", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-64", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "custom-start-points-b4448ca68a0926e4a7a800f5b101b63e9c2f38e1caaebb7e929d992763570928", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "nginx-da15b4868e6a3d31647edb8be04f3ef47878315068bd5f15ea78c8da09eba2b4", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -1265,7 +1265,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "nginx-da15b4868e6a3d31647edb8be04f3ef47878315068bd5f15ea78c8da09eba2b4", + "trail_name": "custom-start-points-b4448ca68a0926e4a7a800f5b101b63e9c2f38e1caaebb7e929d992763570928", "artifact_status": null } } @@ -1292,24 +1292,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "nginx-ci", - "trail_name": "cdaac807f3282bd0bba056d906d5536074297a04", + "flow_name": "custom-start-points-ci", + "trail_name": "6b5c1598cc13c388a0fec71852e6b03bf0696e0b", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-64", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "custom-start-points-b4448ca68a0926e4a7a800f5b101b63e9c2f38e1caaebb7e929d992763570928", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "nginx-da15b4868e6a3d31647edb8be04f3ef47878315068bd5f15ea78c8da09eba2b4", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -1317,7 +1317,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "nginx-da15b4868e6a3d31647edb8be04f3ef47878315068bd5f15ea78c8da09eba2b4", + "trail_name": "custom-start-points-b4448ca68a0926e4a7a800f5b101b63e9c2f38e1caaebb7e929d992763570928", "artifact_status": null } } @@ -1337,24 +1337,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "nginx-ci", - "trail_name": "cdaac807f3282bd0bba056d906d5536074297a04", + "flow_name": "custom-start-points-ci", + "trail_name": "6b5c1598cc13c388a0fec71852e6b03bf0696e0b", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-64", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "custom-start-points-b4448ca68a0926e4a7a800f5b101b63e9c2f38e1caaebb7e929d992763570928", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "nginx-da15b4868e6a3d31647edb8be04f3ef47878315068bd5f15ea78c8da09eba2b4", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": "COMPLIANT" } }, @@ -1362,7 +1362,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "nginx-da15b4868e6a3d31647edb8be04f3ef47878315068bd5f15ea78c8da09eba2b4", + "trail_name": "custom-start-points-b4448ca68a0926e4a7a800f5b101b63e9c2f38e1caaebb7e929d992763570928", "artifact_status": "COMPLIANT" } } @@ -1387,24 +1387,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "nginx-ci", - "trail_name": "cdaac807f3282bd0bba056d906d5536074297a04", + "flow_name": "custom-start-points-ci", + "trail_name": "6b5c1598cc13c388a0fec71852e6b03bf0696e0b", "artifact_status": null } }, { - "type": "rule_satisfied", + "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-64", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "custom-start-points-b4448ca68a0926e4a7a800f5b101b63e9c2f38e1caaebb7e929d992763570928", "artifact_status": null } }, { - "type": "rule_not_applicable", + "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "nginx-da15b4868e6a3d31647edb8be04f3ef47878315068bd5f15ea78c8da09eba2b4", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -1412,7 +1412,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "nginx-da15b4868e6a3d31647edb8be04f3ef47878315068bd5f15ea78c8da09eba2b4", + "trail_name": "custom-start-points-b4448ca68a0926e4a7a800f5b101b63e9c2f38e1caaebb7e929d992763570928", "artifact_status": null } } @@ -1439,24 +1439,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "nginx-ci", - "trail_name": "cdaac807f3282bd0bba056d906d5536074297a04", + "flow_name": "custom-start-points-ci", + "trail_name": "6b5c1598cc13c388a0fec71852e6b03bf0696e0b", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-64", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "custom-start-points-b4448ca68a0926e4a7a800f5b101b63e9c2f38e1caaebb7e929d992763570928", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "nginx-da15b4868e6a3d31647edb8be04f3ef47878315068bd5f15ea78c8da09eba2b4", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -1464,7 +1464,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "nginx-da15b4868e6a3d31647edb8be04f3ef47878315068bd5f15ea78c8da09eba2b4", + "trail_name": "custom-start-points-b4448ca68a0926e4a7a800f5b101b63e9c2f38e1caaebb7e929d992763570928", "artifact_status": null } } @@ -1490,24 +1490,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "nginx-ci", - "trail_name": "cdaac807f3282bd0bba056d906d5536074297a04", + "flow_name": "custom-start-points-ci", + "trail_name": "6b5c1598cc13c388a0fec71852e6b03bf0696e0b", "artifact_status": "COMPLIANT" } }, { - "type": "rule_satisfied", + "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-64", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "custom-start-points-b4448ca68a0926e4a7a800f5b101b63e9c2f38e1caaebb7e929d992763570928", "artifact_status": "COMPLIANT" } }, { - "type": "rule_not_applicable", + "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "nginx-da15b4868e6a3d31647edb8be04f3ef47878315068bd5f15ea78c8da09eba2b4", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": "COMPLIANT" } }, @@ -1515,7 +1515,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "nginx-da15b4868e6a3d31647edb8be04f3ef47878315068bd5f15ea78c8da09eba2b4", + "trail_name": "custom-start-points-b4448ca68a0926e4a7a800f5b101b63e9c2f38e1caaebb7e929d992763570928", "artifact_status": "COMPLIANT" } } @@ -1526,157 +1526,157 @@ kosli get snapshot aws-prod --output=json } ], "reasons_for_incompliance": [], - "fingerprint": "da15b4868e6a3d31647edb8be04f3ef47878315068bd5f15ea78c8da09eba2b4", + "fingerprint": "b4448ca68a0926e4a7a800f5b101b63e9c2f38e1caaebb7e929d992763570928", "creationTimestamp": [ - 1780898567 + 1781590462 ], "pods": null, "annotation": { - "type": "changed", + "type": "updated-provenance", "was": 1, "now": 1 }, - "flow_name": "nginx-ci", - "git_commit": "cdaac807f3282bd0bba056d906d5536074297a04", - "commit_url": "https://github.com/cyber-dojo/nginx/commit/cdaac807f3282bd0bba056d906d5536074297a04", - "html_url": "https://app.kosli.com/cyber-dojo/flows/nginx-ci/artifacts/da15b4868e6a3d31647edb8be04f3ef47878315068bd5f15ea78c8da09eba2b4?artifact_id=daaf8e44-a0d4-46df-af10-a134861d", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/nginx-ci", + "flow_name": "custom-start-points-ci", + "git_commit": "6b5c1598cc13c388a0fec71852e6b03bf0696e0b", + "commit_url": "https://github.com/cyber-dojo/custom-start-points/commit/6b5c1598cc13c388a0fec71852e6b03bf0696e0b", + "html_url": "https://app.kosli.com/cyber-dojo/flows/custom-start-points-ci/artifacts/b4448ca68a0926e4a7a800f5b101b63e9c2f38e1caaebb7e929d992763570928?artifact_id=954d759d-077a-4359-b51f-54c7f182", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/custom-start-points-ci", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/nginx/compare/ebf104fc1c073c7462a6ec381af70f639e4b8ba0...cdaac807f3282bd0bba056d906d5536074297a04", - "previous_git_commit": "ebf104fc1c073c7462a6ec381af70f639e4b8ba0", - "previous_fingerprint": "df695792109b605031fbe0c33d89afa13b3fb26b513e7576f5201e991fd95a62", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:ebf104f@sha256:df695792109b605031fbe0c33d89afa13b3fb26b513e7576f5201e991fd95a62", + "diff_url": "https://github.com/cyber-dojo/custom-start-points/compare/d3e5850912655f2b18a68129f5f3a6480fe305ef...6b5c1598cc13c388a0fec71852e6b03bf0696e0b", + "previous_git_commit": "d3e5850912655f2b18a68129f5f3a6480fe305ef", + "previous_fingerprint": "9452c2f85c1d539974227f7e201f734934dce7b7dcbd2e056fcf9678454895e6", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/custom-start-points:d3e5850@sha256:9452c2f85c1d539974227f7e201f734934dce7b7dcbd2e056fcf9678454895e6", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/nginx/commit/ebf104fc1c073c7462a6ec381af70f639e4b8ba0", - "previous_trail_name": "ebf104fc1c073c7462a6ec381af70f639e4b8ba0", - "previous_template_reference_name": "nginx" + "previous_git_commit_url": "https://github.com/cyber-dojo/custom-start-points/commit/d3e5850912655f2b18a68129f5f3a6480fe305ef", + "previous_trail_name": "d3e5850912655f2b18a68129f5f3a6480fe305ef", + "previous_template_reference_name": "custom-start-points" }, - "commit_lead_time": 4926.0, + "commit_lead_time": 7979.0, "flows": [ { - "flow_name": "nginx-ci", - "trail_name": "cdaac807f3282bd0bba056d906d5536074297a04", - "template_reference_name": "nginx", - "git_commit": "cdaac807f3282bd0bba056d906d5536074297a04", - "commit_url": "https://github.com/cyber-dojo/nginx/commit/cdaac807f3282bd0bba056d906d5536074297a04", + "flow_name": "custom-start-points-ci", + "trail_name": "6b5c1598cc13c388a0fec71852e6b03bf0696e0b", + "template_reference_name": "custom-start-points", + "git_commit": "6b5c1598cc13c388a0fec71852e6b03bf0696e0b", + "commit_url": "https://github.com/cyber-dojo/custom-start-points/commit/6b5c1598cc13c388a0fec71852e6b03bf0696e0b", "git_commit_info": { - "sha1": "cdaac807f3282bd0bba056d906d5536074297a04", - "message": "Merge pull request #130 from cyber-dojo/add-missing-underbar-images\n\nAdd missing underbar images", + "sha1": "6b5c1598cc13c388a0fec71852e6b03bf0696e0b", + "message": "Merge pull request #119 from cyber-dojo/annotate-build-attestation\n\nAdd --annotate type=build to kosli-attest-artifact", "author": "Jon Jagger ", - "branch": "", - "timestamp": 1780893641.0, - "url": "https://github.com/cyber-dojo/nginx/commit/cdaac807f3282bd0bba056d906d5536074297a04" + "branch": "main", + "timestamp": 1781417184.0, + "url": "https://github.com/cyber-dojo/custom-start-points/commit/6b5c1598cc13c388a0fec71852e6b03bf0696e0b" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/nginx-ci/artifacts/da15b4868e6a3d31647edb8be04f3ef47878315068bd5f15ea78c8da09eba2b4?artifact_id=daaf8e44-a0d4-46df-af10-a134861d", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/nginx-ci", + "html_url": "https://app.kosli.com/cyber-dojo/flows/custom-start-points-ci/artifacts/b4448ca68a0926e4a7a800f5b101b63e9c2f38e1caaebb7e929d992763570928?artifact_id=954d759d-077a-4359-b51f-54c7f182", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/custom-start-points-ci", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/nginx/compare/ebf104fc1c073c7462a6ec381af70f639e4b8ba0...cdaac807f3282bd0bba056d906d5536074297a04", - "previous_git_commit": "ebf104fc1c073c7462a6ec381af70f639e4b8ba0", - "previous_fingerprint": "df695792109b605031fbe0c33d89afa13b3fb26b513e7576f5201e991fd95a62", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:ebf104f@sha256:df695792109b605031fbe0c33d89afa13b3fb26b513e7576f5201e991fd95a62", + "diff_url": "https://github.com/cyber-dojo/custom-start-points/compare/d3e5850912655f2b18a68129f5f3a6480fe305ef...6b5c1598cc13c388a0fec71852e6b03bf0696e0b", + "previous_git_commit": "d3e5850912655f2b18a68129f5f3a6480fe305ef", + "previous_fingerprint": "9452c2f85c1d539974227f7e201f734934dce7b7dcbd2e056fcf9678454895e6", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/custom-start-points:d3e5850@sha256:9452c2f85c1d539974227f7e201f734934dce7b7dcbd2e056fcf9678454895e6", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/nginx/commit/ebf104fc1c073c7462a6ec381af70f639e4b8ba0", - "previous_trail_name": "ebf104fc1c073c7462a6ec381af70f639e4b8ba0", - "previous_template_reference_name": "nginx" + "previous_git_commit_url": "https://github.com/cyber-dojo/custom-start-points/commit/d3e5850912655f2b18a68129f5f3a6480fe305ef", + "previous_trail_name": "d3e5850912655f2b18a68129f5f3a6480fe305ef", + "previous_template_reference_name": "custom-start-points" }, - "commit_lead_time": 4926.0, + "commit_lead_time": 7979.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { - "flow_name": "production-promotion", - "trail_name": "promotion-one-64", - "template_reference_name": "nginx", - "git_commit": "8d5d7b8b19d97204eb0701a813fe53c68c21ccd0", - "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/8d5d7b8b19d97204eb0701a813fe53c68c21ccd0", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "custom-start-points-b4448ca68a0926e4a7a800f5b101b63e9c2f38e1caaebb7e929d992763570928", + "template_reference_name": "custom-start-points", + "git_commit": "7172cc22125f480a9f12127edb481a4d84aabea3", + "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/7172cc22125f480a9f12127edb481a4d84aabea3", "git_commit_info": { - "sha1": "8d5d7b8b19d97204eb0701a813fe53c68c21ccd0", - "message": "Tag the Flowis with their target environment (#396)", + "sha1": "7172cc22125f480a9f12127edb481a4d84aabea3", + "message": "Add notes on proposed refactoring to detecting a build flow [ci skip]", "author": "JonJagger ", "branch": "main", - "timestamp": 1780748155.0, - "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/8d5d7b8b19d97204eb0701a813fe53c68c21ccd0" + "timestamp": 1781416288.0, + "url": "https://github.com/cyber-dojo/snyk-scanning/commit/7172cc22125f480a9f12127edb481a4d84aabea3" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/da15b4868e6a3d31647edb8be04f3ef47878315068bd5f15ea78c8da09eba2b4?artifact_id=e3f37ff7-edc9-477a-9fc3-2752be12", - "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/b4448ca68a0926e4a7a800f5b101b63e9c2f38e1caaebb7e929d992763570928?artifact_id=b86568eb-1f60-4797-b74f-dd18f8d0", + "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/0f823ea52be90061b69b3f8f6056ca1203ac3d81...8d5d7b8b19d97204eb0701a813fe53c68c21ccd0", - "previous_git_commit": "0f823ea52be90061b69b3f8f6056ca1203ac3d81", - "previous_fingerprint": "df695792109b605031fbe0c33d89afa13b3fb26b513e7576f5201e991fd95a62", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:ebf104f@sha256:df695792109b605031fbe0c33d89afa13b3fb26b513e7576f5201e991fd95a62", + "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/c96bbe5f1b3c4cf747f77fc9a81210e1fd2c30e4...7172cc22125f480a9f12127edb481a4d84aabea3", + "previous_git_commit": "c96bbe5f1b3c4cf747f77fc9a81210e1fd2c30e4", + "previous_fingerprint": "9452c2f85c1d539974227f7e201f734934dce7b7dcbd2e056fcf9678454895e6", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/custom-start-points:d3e5850@sha256:9452c2f85c1d539974227f7e201f734934dce7b7dcbd2e056fcf9678454895e6", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/0f823ea52be90061b69b3f8f6056ca1203ac3d81", - "previous_trail_name": "promote-all-21", - "previous_template_reference_name": "nginx" + "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/c96bbe5f1b3c4cf747f77fc9a81210e1fd2c30e4", + "previous_trail_name": "custom-start-points-9452c2f85c1d539974227f7e201f734934dce7b7dcbd2e056fcf9678454895e6", + "previous_template_reference_name": "custom-start-points" }, - "commit_lead_time": 150412.0, + "commit_lead_time": 8875.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "nginx-da15b4868e6a3d31647edb8be04f3ef47878315068bd5f15ea78c8da09eba2b4", - "template_reference_name": "nginx", - "git_commit": "ae002419e71c05cc5c1a285b52afdcef23d927c7", - "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/ae002419e71c05cc5c1a285b52afdcef23d927c7", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", + "template_reference_name": "custom-start-points", + "git_commit": "01dd4c6406d6655898ef2236875ec9f67091c792", + "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/01dd4c6406d6655898ef2236875ec9f67091c792", "git_commit_info": { - "sha1": "ae002419e71c05cc5c1a285b52afdcef23d927c7", - "message": "Upgrade workflows to use kosli-cli-setup v5", + "sha1": "01dd4c6406d6655898ef2236875ec9f67091c792", + "message": "Update comment and help text", "author": "JonJagger ", "branch": "main", - "timestamp": 1780908047.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/ae002419e71c05cc5c1a285b52afdcef23d927c7" + "timestamp": 1781413514.0, + "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/01dd4c6406d6655898ef2236875ec9f67091c792" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/da15b4868e6a3d31647edb8be04f3ef47878315068bd5f15ea78c8da09eba2b4?artifact_id=82f7872b-9ce4-4a7b-a0ad-895f661b", - "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/b4448ca68a0926e4a7a800f5b101b63e9c2f38e1caaebb7e929d992763570928?artifact_id=1db97c2c-1e00-400b-a712-bde4fce3", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/c96bbe5f1b3c4cf747f77fc9a81210e1fd2c30e4...ae002419e71c05cc5c1a285b52afdcef23d927c7", - "previous_git_commit": "c96bbe5f1b3c4cf747f77fc9a81210e1fd2c30e4", - "previous_fingerprint": "df695792109b605031fbe0c33d89afa13b3fb26b513e7576f5201e991fd95a62", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:ebf104f@sha256:df695792109b605031fbe0c33d89afa13b3fb26b513e7576f5201e991fd95a62", + "diff_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/compare/0f823ea52be90061b69b3f8f6056ca1203ac3d81...01dd4c6406d6655898ef2236875ec9f67091c792", + "previous_git_commit": "0f823ea52be90061b69b3f8f6056ca1203ac3d81", + "previous_fingerprint": "9452c2f85c1d539974227f7e201f734934dce7b7dcbd2e056fcf9678454895e6", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/custom-start-points:d3e5850@sha256:9452c2f85c1d539974227f7e201f734934dce7b7dcbd2e056fcf9678454895e6", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/c96bbe5f1b3c4cf747f77fc9a81210e1fd2c30e4", - "previous_trail_name": "nginx-df695792109b605031fbe0c33d89afa13b3fb26b513e7576f5201e991fd95a62", - "previous_template_reference_name": "nginx" + "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/0f823ea52be90061b69b3f8f6056ca1203ac3d81", + "previous_trail_name": "promote-all-21", + "previous_template_reference_name": "custom-start-points" }, - "commit_lead_time": -9480.0, + "commit_lead_time": 11649.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "nginx-da15b4868e6a3d31647edb8be04f3ef47878315068bd5f15ea78c8da09eba2b4", - "template_reference_name": "nginx", - "git_commit": "ae002419e71c05cc5c1a285b52afdcef23d927c7", - "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/ae002419e71c05cc5c1a285b52afdcef23d927c7", + "trail_name": "custom-start-points-b4448ca68a0926e4a7a800f5b101b63e9c2f38e1caaebb7e929d992763570928", + "template_reference_name": "custom-start-points", + "git_commit": "00c479764cb9eca038fdaaaef108672d0bb0ed26", + "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/00c479764cb9eca038fdaaaef108672d0bb0ed26", "git_commit_info": { - "sha1": "ae002419e71c05cc5c1a285b52afdcef23d927c7", - "message": "Upgrade workflows to use kosli-cli-setup v5", + "sha1": "00c479764cb9eca038fdaaaef108672d0bb0ed26", + "message": "Shorten the per-vuln attestation name to a 10-char fingerprint\n\n The per-vuln attestation was named snyk-. A full\n SHA-256 fingerprint is 64 hex chars, which renders badly on the\n snyk--per-vuln flow page. The fingerprint is only there to keep two\n builds of the same artifact in one deploy snapshot from clobbering each\n other on the shared per-vuln trail, and the first 10 hex chars (40 bits)\n are far more than enough to keep distinct builds apart.\n\n GitHub Actions expressions have no substring function, so the name can\n no longer be built inline in the job-level env. Compute it in a shell\n step that truncates the fingerprint and exports VULN_ATTESTATION_NAME to\n $GITHUB_ENV, ahead of every step that reads it.\n\n Note: per-vuln trails that already carry a snyk-\n attestation will, on their next run, also gain a snyk-<10-char> one,\n since Kosli keys attestations by name. Only trails created after this\n change will have the short name alone.", "author": "JonJagger ", "branch": "main", - "timestamp": 1780908047.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/ae002419e71c05cc5c1a285b52afdcef23d927c7" + "timestamp": 1781594940.0, + "url": "https://github.com/cyber-dojo/snyk-scanning/commit/00c479764cb9eca038fdaaaef108672d0bb0ed26" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/da15b4868e6a3d31647edb8be04f3ef47878315068bd5f15ea78c8da09eba2b4?artifact_id=c25c3cbd-3cc7-408f-9056-c23b905b", + "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/b4448ca68a0926e4a7a800f5b101b63e9c2f38e1caaebb7e929d992763570928?artifact_id=50f19ded-0e89-4099-ac88-2cacc4ad", "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact", "deployment_diff": null, - "commit_lead_time": -9480.0, + "commit_lead_time": -169777.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] } ], "ecs_context": { - "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/61f124feb01149d4be6e661ea878342c", + "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/79e01ca7846446399eb4a8a0e4a5f508", "cluster_name": null, "service_name": null } }, { - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:bc5fbc1@sha256:bdc8eb7fd4717d25b74f5bae58316e66c24283f17a03ce0256ea04fe7eee72b1", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/creator:34f14b6@sha256:f221996be414b7698b15bfe68d143c90896dc70431099bd42ecc594127087c43", "compliant": true, "deployments": [], "policy_decisions": [ @@ -1698,8 +1698,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "runner-ci", - "trail_name": "bc5fbc14361ce7a6281b6110049d90a03f69d786", + "flow_name": "creator-ci", + "trail_name": "34f14b6fc5d87ff95426046716ec8a09141c13a7", "artifact_status": null } }, @@ -1707,7 +1707,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-63", + "trail_name": "promotion-one-69", "artifact_status": null } }, @@ -1715,7 +1715,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "runner-bdc8eb7fd4717d25b74f5bae58316e66c24283f17a03ce0256ea04fe7eee72b1", + "trail_name": "creator-f221996be414b7698b15bfe68d143c90896dc70431099bd42ecc594127087c43", "artifact_status": null } }, @@ -1723,7 +1723,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "runner-bdc8eb7fd4717d25b74f5bae58316e66c24283f17a03ce0256ea04fe7eee72b1", + "trail_name": "creator-f221996be414b7698b15bfe68d143c90896dc70431099bd42ecc594127087c43", "artifact_status": null } } @@ -1743,8 +1743,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "runner-ci", - "trail_name": "bc5fbc14361ce7a6281b6110049d90a03f69d786", + "flow_name": "creator-ci", + "trail_name": "34f14b6fc5d87ff95426046716ec8a09141c13a7", "artifact_status": "COMPLIANT" } }, @@ -1752,7 +1752,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-63", + "trail_name": "promotion-one-69", "artifact_status": "COMPLIANT" } }, @@ -1760,7 +1760,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "runner-bdc8eb7fd4717d25b74f5bae58316e66c24283f17a03ce0256ea04fe7eee72b1", + "trail_name": "creator-f221996be414b7698b15bfe68d143c90896dc70431099bd42ecc594127087c43", "artifact_status": "COMPLIANT" } }, @@ -1768,7 +1768,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "runner-bdc8eb7fd4717d25b74f5bae58316e66c24283f17a03ce0256ea04fe7eee72b1", + "trail_name": "creator-f221996be414b7698b15bfe68d143c90896dc70431099bd42ecc594127087c43", "artifact_status": "COMPLIANT" } } @@ -1793,8 +1793,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "runner-ci", - "trail_name": "bc5fbc14361ce7a6281b6110049d90a03f69d786", + "flow_name": "creator-ci", + "trail_name": "34f14b6fc5d87ff95426046716ec8a09141c13a7", "artifact_status": null } }, @@ -1802,7 +1802,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-63", + "trail_name": "promotion-one-69", "artifact_status": null } }, @@ -1810,7 +1810,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "runner-bdc8eb7fd4717d25b74f5bae58316e66c24283f17a03ce0256ea04fe7eee72b1", + "trail_name": "creator-f221996be414b7698b15bfe68d143c90896dc70431099bd42ecc594127087c43", "artifact_status": null } }, @@ -1818,7 +1818,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "runner-bdc8eb7fd4717d25b74f5bae58316e66c24283f17a03ce0256ea04fe7eee72b1", + "trail_name": "creator-f221996be414b7698b15bfe68d143c90896dc70431099bd42ecc594127087c43", "artifact_status": null } } @@ -1845,8 +1845,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "runner-ci", - "trail_name": "bc5fbc14361ce7a6281b6110049d90a03f69d786", + "flow_name": "creator-ci", + "trail_name": "34f14b6fc5d87ff95426046716ec8a09141c13a7", "artifact_status": null } }, @@ -1854,7 +1854,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-63", + "trail_name": "promotion-one-69", "artifact_status": null } }, @@ -1862,7 +1862,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "runner-bdc8eb7fd4717d25b74f5bae58316e66c24283f17a03ce0256ea04fe7eee72b1", + "trail_name": "creator-f221996be414b7698b15bfe68d143c90896dc70431099bd42ecc594127087c43", "artifact_status": null } }, @@ -1870,7 +1870,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "runner-bdc8eb7fd4717d25b74f5bae58316e66c24283f17a03ce0256ea04fe7eee72b1", + "trail_name": "creator-f221996be414b7698b15bfe68d143c90896dc70431099bd42ecc594127087c43", "artifact_status": null } } @@ -1890,8 +1890,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "runner-ci", - "trail_name": "bc5fbc14361ce7a6281b6110049d90a03f69d786", + "flow_name": "creator-ci", + "trail_name": "34f14b6fc5d87ff95426046716ec8a09141c13a7", "artifact_status": "COMPLIANT" } }, @@ -1899,7 +1899,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-63", + "trail_name": "promotion-one-69", "artifact_status": "COMPLIANT" } }, @@ -1907,7 +1907,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "runner-bdc8eb7fd4717d25b74f5bae58316e66c24283f17a03ce0256ea04fe7eee72b1", + "trail_name": "creator-f221996be414b7698b15bfe68d143c90896dc70431099bd42ecc594127087c43", "artifact_status": "COMPLIANT" } }, @@ -1915,7 +1915,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "runner-bdc8eb7fd4717d25b74f5bae58316e66c24283f17a03ce0256ea04fe7eee72b1", + "trail_name": "creator-f221996be414b7698b15bfe68d143c90896dc70431099bd42ecc594127087c43", "artifact_status": "COMPLIANT" } } @@ -1942,8 +1942,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "runner-ci", - "trail_name": "bc5fbc14361ce7a6281b6110049d90a03f69d786", + "flow_name": "creator-ci", + "trail_name": "34f14b6fc5d87ff95426046716ec8a09141c13a7", "artifact_status": null } }, @@ -1951,7 +1951,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-63", + "trail_name": "promotion-one-69", "artifact_status": null } }, @@ -1959,7 +1959,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "runner-bdc8eb7fd4717d25b74f5bae58316e66c24283f17a03ce0256ea04fe7eee72b1", + "trail_name": "creator-f221996be414b7698b15bfe68d143c90896dc70431099bd42ecc594127087c43", "artifact_status": null } }, @@ -1967,7 +1967,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "runner-bdc8eb7fd4717d25b74f5bae58316e66c24283f17a03ce0256ea04fe7eee72b1", + "trail_name": "creator-f221996be414b7698b15bfe68d143c90896dc70431099bd42ecc594127087c43", "artifact_status": null } } @@ -1987,8 +1987,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "runner-ci", - "trail_name": "bc5fbc14361ce7a6281b6110049d90a03f69d786", + "flow_name": "creator-ci", + "trail_name": "34f14b6fc5d87ff95426046716ec8a09141c13a7", "artifact_status": "COMPLIANT" } }, @@ -1996,7 +1996,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-63", + "trail_name": "promotion-one-69", "artifact_status": "COMPLIANT" } }, @@ -2004,7 +2004,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "runner-bdc8eb7fd4717d25b74f5bae58316e66c24283f17a03ce0256ea04fe7eee72b1", + "trail_name": "creator-f221996be414b7698b15bfe68d143c90896dc70431099bd42ecc594127087c43", "artifact_status": "COMPLIANT" } }, @@ -2012,7 +2012,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "runner-bdc8eb7fd4717d25b74f5bae58316e66c24283f17a03ce0256ea04fe7eee72b1", + "trail_name": "creator-f221996be414b7698b15bfe68d143c90896dc70431099bd42ecc594127087c43", "artifact_status": "COMPLIANT" } } @@ -2037,8 +2037,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "runner-ci", - "trail_name": "bc5fbc14361ce7a6281b6110049d90a03f69d786", + "flow_name": "creator-ci", + "trail_name": "34f14b6fc5d87ff95426046716ec8a09141c13a7", "artifact_status": null } }, @@ -2046,7 +2046,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-63", + "trail_name": "promotion-one-69", "artifact_status": null } }, @@ -2054,7 +2054,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "runner-bdc8eb7fd4717d25b74f5bae58316e66c24283f17a03ce0256ea04fe7eee72b1", + "trail_name": "creator-f221996be414b7698b15bfe68d143c90896dc70431099bd42ecc594127087c43", "artifact_status": null } }, @@ -2062,7 +2062,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "runner-bdc8eb7fd4717d25b74f5bae58316e66c24283f17a03ce0256ea04fe7eee72b1", + "trail_name": "creator-f221996be414b7698b15bfe68d143c90896dc70431099bd42ecc594127087c43", "artifact_status": null } } @@ -2089,8 +2089,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "runner-ci", - "trail_name": "bc5fbc14361ce7a6281b6110049d90a03f69d786", + "flow_name": "creator-ci", + "trail_name": "34f14b6fc5d87ff95426046716ec8a09141c13a7", "artifact_status": null } }, @@ -2098,7 +2098,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-63", + "trail_name": "promotion-one-69", "artifact_status": null } }, @@ -2106,7 +2106,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "runner-bdc8eb7fd4717d25b74f5bae58316e66c24283f17a03ce0256ea04fe7eee72b1", + "trail_name": "creator-f221996be414b7698b15bfe68d143c90896dc70431099bd42ecc594127087c43", "artifact_status": null } }, @@ -2114,7 +2114,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "runner-bdc8eb7fd4717d25b74f5bae58316e66c24283f17a03ce0256ea04fe7eee72b1", + "trail_name": "creator-f221996be414b7698b15bfe68d143c90896dc70431099bd42ecc594127087c43", "artifact_status": null } } @@ -2134,8 +2134,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "runner-ci", - "trail_name": "bc5fbc14361ce7a6281b6110049d90a03f69d786", + "flow_name": "creator-ci", + "trail_name": "34f14b6fc5d87ff95426046716ec8a09141c13a7", "artifact_status": "COMPLIANT" } }, @@ -2143,7 +2143,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-63", + "trail_name": "promotion-one-69", "artifact_status": "COMPLIANT" } }, @@ -2151,7 +2151,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "runner-bdc8eb7fd4717d25b74f5bae58316e66c24283f17a03ce0256ea04fe7eee72b1", + "trail_name": "creator-f221996be414b7698b15bfe68d143c90896dc70431099bd42ecc594127087c43", "artifact_status": "COMPLIANT" } }, @@ -2159,7 +2159,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "runner-bdc8eb7fd4717d25b74f5bae58316e66c24283f17a03ce0256ea04fe7eee72b1", + "trail_name": "creator-f221996be414b7698b15bfe68d143c90896dc70431099bd42ecc594127087c43", "artifact_status": "COMPLIANT" } } @@ -2184,8 +2184,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "runner-ci", - "trail_name": "bc5fbc14361ce7a6281b6110049d90a03f69d786", + "flow_name": "creator-ci", + "trail_name": "34f14b6fc5d87ff95426046716ec8a09141c13a7", "artifact_status": null } }, @@ -2193,7 +2193,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-63", + "trail_name": "promotion-one-69", "artifact_status": null } }, @@ -2201,7 +2201,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "runner-bdc8eb7fd4717d25b74f5bae58316e66c24283f17a03ce0256ea04fe7eee72b1", + "trail_name": "creator-f221996be414b7698b15bfe68d143c90896dc70431099bd42ecc594127087c43", "artifact_status": null } }, @@ -2209,7 +2209,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "runner-bdc8eb7fd4717d25b74f5bae58316e66c24283f17a03ce0256ea04fe7eee72b1", + "trail_name": "creator-f221996be414b7698b15bfe68d143c90896dc70431099bd42ecc594127087c43", "artifact_status": null } } @@ -2236,8 +2236,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "runner-ci", - "trail_name": "bc5fbc14361ce7a6281b6110049d90a03f69d786", + "flow_name": "creator-ci", + "trail_name": "34f14b6fc5d87ff95426046716ec8a09141c13a7", "artifact_status": null } }, @@ -2245,7 +2245,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-63", + "trail_name": "promotion-one-69", "artifact_status": null } }, @@ -2253,7 +2253,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "runner-bdc8eb7fd4717d25b74f5bae58316e66c24283f17a03ce0256ea04fe7eee72b1", + "trail_name": "creator-f221996be414b7698b15bfe68d143c90896dc70431099bd42ecc594127087c43", "artifact_status": null } }, @@ -2261,7 +2261,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "runner-bdc8eb7fd4717d25b74f5bae58316e66c24283f17a03ce0256ea04fe7eee72b1", + "trail_name": "creator-f221996be414b7698b15bfe68d143c90896dc70431099bd42ecc594127087c43", "artifact_status": null } } @@ -2287,8 +2287,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "runner-ci", - "trail_name": "bc5fbc14361ce7a6281b6110049d90a03f69d786", + "flow_name": "creator-ci", + "trail_name": "34f14b6fc5d87ff95426046716ec8a09141c13a7", "artifact_status": "COMPLIANT" } }, @@ -2296,7 +2296,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-63", + "trail_name": "promotion-one-69", "artifact_status": "COMPLIANT" } }, @@ -2304,7 +2304,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "runner-bdc8eb7fd4717d25b74f5bae58316e66c24283f17a03ce0256ea04fe7eee72b1", + "trail_name": "creator-f221996be414b7698b15bfe68d143c90896dc70431099bd42ecc594127087c43", "artifact_status": "COMPLIANT" } }, @@ -2312,7 +2312,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "runner-bdc8eb7fd4717d25b74f5bae58316e66c24283f17a03ce0256ea04fe7eee72b1", + "trail_name": "creator-f221996be414b7698b15bfe68d143c90896dc70431099bd42ecc594127087c43", "artifact_status": "COMPLIANT" } } @@ -2323,159 +2323,167 @@ kosli get snapshot aws-prod --output=json } ], "reasons_for_incompliance": [], - "fingerprint": "bdc8eb7fd4717d25b74f5bae58316e66c24283f17a03ce0256ea04fe7eee72b1", + "fingerprint": "f221996be414b7698b15bfe68d143c90896dc70431099bd42ecc594127087c43", "creationTimestamp": [ - 1780724054, - 1780724056, - 1780724058 + 1781592148 ], "pods": null, "annotation": { - "type": "changed", - "was": 3, - "now": 3 + "type": "unchanged", + "was": 1, + "now": 1 }, - "flow_name": "runner-ci", - "git_commit": "bc5fbc14361ce7a6281b6110049d90a03f69d786", - "commit_url": "https://github.com/cyber-dojo/runner/commit/bc5fbc14361ce7a6281b6110049d90a03f69d786", - "html_url": "https://app.kosli.com/cyber-dojo/flows/runner-ci/artifacts/bdc8eb7fd4717d25b74f5bae58316e66c24283f17a03ce0256ea04fe7eee72b1?artifact_id=665ba644-8f04-4330-a5e7-7a9c03ba", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/runner-ci", + "flow_name": "creator-ci", + "git_commit": "34f14b6fc5d87ff95426046716ec8a09141c13a7", + "commit_url": "https://github.com/cyber-dojo/creator/commit/34f14b6fc5d87ff95426046716ec8a09141c13a7", + "html_url": "https://app.kosli.com/cyber-dojo/flows/creator-ci/artifacts/f221996be414b7698b15bfe68d143c90896dc70431099bd42ecc594127087c43?artifact_id=bafbb0d0-e794-4acf-bdf5-81262268", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/creator-ci", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/runner/compare/bc8fb51346a42e17a4d3669f3ea11908782a43d1...bc5fbc14361ce7a6281b6110049d90a03f69d786", - "previous_git_commit": "bc8fb51346a42e17a4d3669f3ea11908782a43d1", - "previous_fingerprint": "9db5a9987ba83419bec8ded2cc7bc5c9db814c8f0f275b5fe7228957ceed5ac2", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:bc8fb51@sha256:9db5a9987ba83419bec8ded2cc7bc5c9db814c8f0f275b5fe7228957ceed5ac2", + "diff_url": "https://github.com/cyber-dojo/creator/compare/a288de54e3751244517d5e04fc73622e5363257d...34f14b6fc5d87ff95426046716ec8a09141c13a7", + "previous_git_commit": "a288de54e3751244517d5e04fc73622e5363257d", + "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/runner/commit/bc8fb51346a42e17a4d3669f3ea11908782a43d1", - "previous_trail_name": "bc8fb51346a42e17a4d3669f3ea11908782a43d1", - "previous_template_reference_name": "runner" + "previous_git_commit_url": "https://github.com/cyber-dojo/creator/commit/a288de54e3751244517d5e04fc73622e5363257d", + "previous_trail_name": "a288de54e3751244517d5e04fc73622e5363257d", + "previous_template_reference_name": "creator" }, - "commit_lead_time": 46571.0, + "commit_lead_time": 849.0, "flows": [ { - "flow_name": "runner-ci", - "trail_name": "bc5fbc14361ce7a6281b6110049d90a03f69d786", - "template_reference_name": "runner", - "git_commit": "bc5fbc14361ce7a6281b6110049d90a03f69d786", - "commit_url": "https://github.com/cyber-dojo/runner/commit/bc5fbc14361ce7a6281b6110049d90a03f69d786", + "flow_name": "creator-ci", + "trail_name": "34f14b6fc5d87ff95426046716ec8a09141c13a7", + "template_reference_name": "creator", + "git_commit": "34f14b6fc5d87ff95426046716ec8a09141c13a7", + "commit_url": "https://github.com/cyber-dojo/creator/commit/34f14b6fc5d87ff95426046716ec8a09141c13a7", "git_commit_info": { - "sha1": "bc5fbc14361ce7a6281b6110049d90a03f69d786", - "message": "Merge pull request #241 from cyber-dojo/update-snyk-vulns\n\nUpdate snyk vulns", + "sha1": "34f14b6fc5d87ff95426046716ec8a09141c13a7", + "message": "Merge pull request #23 from cyber-dojo/remove-infra-upgrade-notice\n\nRemove infrastructure upgrade notice", "author": "Jon Jagger ", "branch": "", - "timestamp": 1780677483.0, - "url": "https://github.com/cyber-dojo/runner/commit/bc5fbc14361ce7a6281b6110049d90a03f69d786" + "timestamp": 1781591299.0, + "url": "https://github.com/cyber-dojo/creator/commit/34f14b6fc5d87ff95426046716ec8a09141c13a7" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/runner-ci/artifacts/bdc8eb7fd4717d25b74f5bae58316e66c24283f17a03ce0256ea04fe7eee72b1?artifact_id=665ba644-8f04-4330-a5e7-7a9c03ba", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/runner-ci", + "html_url": "https://app.kosli.com/cyber-dojo/flows/creator-ci/artifacts/f221996be414b7698b15bfe68d143c90896dc70431099bd42ecc594127087c43?artifact_id=bafbb0d0-e794-4acf-bdf5-81262268", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/creator-ci", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/runner/compare/bc8fb51346a42e17a4d3669f3ea11908782a43d1...bc5fbc14361ce7a6281b6110049d90a03f69d786", - "previous_git_commit": "bc8fb51346a42e17a4d3669f3ea11908782a43d1", - "previous_fingerprint": "9db5a9987ba83419bec8ded2cc7bc5c9db814c8f0f275b5fe7228957ceed5ac2", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:bc8fb51@sha256:9db5a9987ba83419bec8ded2cc7bc5c9db814c8f0f275b5fe7228957ceed5ac2", + "diff_url": "https://github.com/cyber-dojo/creator/compare/a288de54e3751244517d5e04fc73622e5363257d...34f14b6fc5d87ff95426046716ec8a09141c13a7", + "previous_git_commit": "a288de54e3751244517d5e04fc73622e5363257d", + "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/runner/commit/bc8fb51346a42e17a4d3669f3ea11908782a43d1", - "previous_trail_name": "bc8fb51346a42e17a4d3669f3ea11908782a43d1", - "previous_template_reference_name": "runner" + "previous_git_commit_url": "https://github.com/cyber-dojo/creator/commit/a288de54e3751244517d5e04fc73622e5363257d", + "previous_trail_name": "a288de54e3751244517d5e04fc73622e5363257d", + "previous_template_reference_name": "creator" }, - "commit_lead_time": 46571.0, + "commit_lead_time": 849.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "production-promotion", - "trail_name": "promotion-one-63", - "template_reference_name": "runner", - "git_commit": "0f823ea52be90061b69b3f8f6056ca1203ac3d81", - "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/0f823ea52be90061b69b3f8f6056ca1203ac3d81", + "trail_name": "promotion-one-69", + "template_reference_name": "creator", + "git_commit": "01dd4c6406d6655898ef2236875ec9f67091c792", + "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/01dd4c6406d6655898ef2236875ec9f67091c792", "git_commit_info": { - "sha1": "0f823ea52be90061b69b3f8f6056ca1203ac3d81", - "message": "Bump kosli/setup-cli-action to v5, use latest version", + "sha1": "01dd4c6406d6655898ef2236875ec9f67091c792", + "message": "Update comment and help text", "author": "JonJagger ", "branch": "main", - "timestamp": 1779364424.0, - "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/0f823ea52be90061b69b3f8f6056ca1203ac3d81" + "timestamp": 1781413514.0, + "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/01dd4c6406d6655898ef2236875ec9f67091c792" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/bdc8eb7fd4717d25b74f5bae58316e66c24283f17a03ce0256ea04fe7eee72b1?artifact_id=e03e6516-a74f-4b25-a42a-fecd41f9", + "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/f221996be414b7698b15bfe68d143c90896dc70431099bd42ecc594127087c43?artifact_id=9c9caf33-c2d0-4732-b203-7de62808", "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/0f823ea52be90061b69b3f8f6056ca1203ac3d81...0f823ea52be90061b69b3f8f6056ca1203ac3d81", - "previous_git_commit": "0f823ea52be90061b69b3f8f6056ca1203ac3d81", - "previous_fingerprint": "9db5a9987ba83419bec8ded2cc7bc5c9db814c8f0f275b5fe7228957ceed5ac2", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:bc8fb51@sha256:9db5a9987ba83419bec8ded2cc7bc5c9db814c8f0f275b5fe7228957ceed5ac2", + "diff_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/compare/01dd4c6406d6655898ef2236875ec9f67091c792...01dd4c6406d6655898ef2236875ec9f67091c792", + "previous_git_commit": "01dd4c6406d6655898ef2236875ec9f67091c792", + "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/aws-prod-co-promotion/commit/0f823ea52be90061b69b3f8f6056ca1203ac3d81", - "previous_trail_name": "promote-all-21", - "previous_template_reference_name": "runner" + "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/01dd4c6406d6655898ef2236875ec9f67091c792", + "previous_trail_name": "promotion-one-68", + "previous_template_reference_name": "creator" }, - "commit_lead_time": 1359630.0, + "commit_lead_time": 178634.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "runner-bdc8eb7fd4717d25b74f5bae58316e66c24283f17a03ce0256ea04fe7eee72b1", - "template_reference_name": "runner", - "git_commit": "ee081fb7be2ac7e2094bb4d02f3effdb9f73dd74", - "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/ee081fb7be2ac7e2094bb4d02f3effdb9f73dd74", + "trail_name": "creator-f221996be414b7698b15bfe68d143c90896dc70431099bd42ecc594127087c43", + "template_reference_name": "creator", + "git_commit": "00c479764cb9eca038fdaaaef108672d0bb0ed26", + "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/00c479764cb9eca038fdaaaef108672d0bb0ed26", "git_commit_info": { - "sha1": "ee081fb7be2ac7e2094bb4d02f3effdb9f73dd74", - "message": "Fix deploy-swap race that clobbered per-vuln Snyk verdicts\n\n The live environment Snyk scan keys each per-vuln compliance trail by\n repo-severity-vulnid only. During a rolling deploy the env snapshot\n transiently holds two builds of the same repo, so env_snyk_test fans out a\n matrix job per build and both write the same trail's `snyk` attestation.\n Last-writer-wins, so the outgoing (older) build's verdict, computed against\n its older .snyk, could clobber the incoming build's correct one. That\n surfaced as runner showing non-compliant in aws-prod for x/net/html vulns\n that were in fact ignored, and (via a required trail-compliance env policy\n that spans every trail on the fingerprint) dragged aws-beta down too.\n\n Give each build's verdict its own identity on the shared trail rather than\n trying to pick a winner from the snapshot, which is unreliable: instance\n timestamps track restarts, not build recency (a flaky outgoing task can\n restart after the incoming one starts), and commit recency inverts on\n rollback.\n\n - combine_snyk.py: emit artifact_name and artifact_fingerprint per vuln.\n - artifact_snyk_test.yml: attest/read the per-vuln verdict as\n snyk- (VULN_ATTESTATION_NAME) and merge the fingerprint into\n the evaluate-trail rego params.\n - snyk-vuln-compliance.rego: select the status for data.params.fingerprint;\n an absent fingerprint leaves allow at its false default (fail toward\n non-compliant).\n - single-snyk-vuln.schema.json: document and require the new fields (also\n closes a pre-existing now/now_ts omission), guarded by a new contract test.\n\n Vuln age is unaffected: first_seen_ts stays the shared trail's created_at,\n which is why the trail key must not include the fingerprint.\n\n Also in this change:\n - test_rego_rules.sh: per-fingerprint inputs plus a two-build isolation test.\n - Convert test_find_expiring_vulns_logic.py from unittest to pytest functions.\n - Remove Makefile targets left dangling when 79ea32a moved scripts out of bin.\n - docs/: write up the race and the cross-environment trail-compliance effect.\n\n Co-Authored-By: Claude Opus 4.8 (1M context) ", + "sha1": "00c479764cb9eca038fdaaaef108672d0bb0ed26", + "message": "Shorten the per-vuln attestation name to a 10-char fingerprint\n\n The per-vuln attestation was named snyk-. A full\n SHA-256 fingerprint is 64 hex chars, which renders badly on the\n snyk--per-vuln flow page. The fingerprint is only there to keep two\n builds of the same artifact in one deploy snapshot from clobbering each\n other on the shared per-vuln trail, and the first 10 hex chars (40 bits)\n are far more than enough to keep distinct builds apart.\n\n GitHub Actions expressions have no substring function, so the name can\n no longer be built inline in the job-level env. Compute it in a shell\n step that truncates the fingerprint and exports VULN_ATTESTATION_NAME to\n $GITHUB_ENV, ahead of every step that reads it.\n\n Note: per-vuln trails that already carry a snyk-\n attestation will, on their next run, also gain a snyk-<10-char> one,\n since Kosli keys attestations by name. Only trails created after this\n change will have the short name alone.", "author": "JonJagger ", "branch": "main", - "timestamp": 1780738845.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/ee081fb7be2ac7e2094bb4d02f3effdb9f73dd74" + "timestamp": 1781594940.0, + "url": "https://github.com/cyber-dojo/snyk-scanning/commit/00c479764cb9eca038fdaaaef108672d0bb0ed26" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/bdc8eb7fd4717d25b74f5bae58316e66c24283f17a03ce0256ea04fe7eee72b1?artifact_id=8fa3bbbb-9bf3-48a0-a95c-c557a8dc", + "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/f221996be414b7698b15bfe68d143c90896dc70431099bd42ecc594127087c43?artifact_id=7fbd1cd0-0a21-4eba-afb9-361d314f", "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/604111f4822bbc01169317b26fd0f794f5ee7cbf...ee081fb7be2ac7e2094bb4d02f3effdb9f73dd74", - "previous_git_commit": "604111f4822bbc01169317b26fd0f794f5ee7cbf", - "previous_fingerprint": "9db5a9987ba83419bec8ded2cc7bc5c9db814c8f0f275b5fe7228957ceed5ac2", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:bc8fb51@sha256:9db5a9987ba83419bec8ded2cc7bc5c9db814c8f0f275b5fe7228957ceed5ac2", - "previous_artifact_compliance_state": "NON-COMPLIANT", + "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/7172cc22125f480a9f12127edb481a4d84aabea3...00c479764cb9eca038fdaaaef108672d0bb0ed26", + "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/604111f4822bbc01169317b26fd0f794f5ee7cbf", - "previous_trail_name": "runner-9db5a9987ba83419bec8ded2cc7bc5c9db814c8f0f275b5fe7228957ceed5ac2", - "previous_template_reference_name": "runner" + "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": -14791.0, + "commit_lead_time": -2792.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "runner-bdc8eb7fd4717d25b74f5bae58316e66c24283f17a03ce0256ea04fe7eee72b1", - "template_reference_name": "runner", - "git_commit": "ae002419e71c05cc5c1a285b52afdcef23d927c7", - "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/ae002419e71c05cc5c1a285b52afdcef23d927c7", + "trail_name": "creator-f221996be414b7698b15bfe68d143c90896dc70431099bd42ecc594127087c43", + "template_reference_name": "creator", + "git_commit": "00c479764cb9eca038fdaaaef108672d0bb0ed26", + "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/00c479764cb9eca038fdaaaef108672d0bb0ed26", "git_commit_info": { - "sha1": "ae002419e71c05cc5c1a285b52afdcef23d927c7", - "message": "Upgrade workflows to use kosli-cli-setup v5", + "sha1": "00c479764cb9eca038fdaaaef108672d0bb0ed26", + "message": "Shorten the per-vuln attestation name to a 10-char fingerprint\n\n The per-vuln attestation was named snyk-. A full\n SHA-256 fingerprint is 64 hex chars, which renders badly on the\n snyk--per-vuln flow page. The fingerprint is only there to keep two\n builds of the same artifact in one deploy snapshot from clobbering each\n other on the shared per-vuln trail, and the first 10 hex chars (40 bits)\n are far more than enough to keep distinct builds apart.\n\n GitHub Actions expressions have no substring function, so the name can\n no longer be built inline in the job-level env. Compute it in a shell\n step that truncates the fingerprint and exports VULN_ATTESTATION_NAME to\n $GITHUB_ENV, ahead of every step that reads it.\n\n Note: per-vuln trails that already carry a snyk-\n attestation will, on their next run, also gain a snyk-<10-char> one,\n since Kosli keys attestations by name. Only trails created after this\n change will have the short name alone.", "author": "JonJagger ", "branch": "main", - "timestamp": 1780908047.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/ae002419e71c05cc5c1a285b52afdcef23d927c7" + "timestamp": 1781594940.0, + "url": "https://github.com/cyber-dojo/snyk-scanning/commit/00c479764cb9eca038fdaaaef108672d0bb0ed26" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/bdc8eb7fd4717d25b74f5bae58316e66c24283f17a03ce0256ea04fe7eee72b1?artifact_id=e0ddfcdd-9cd5-43ca-a86d-539cc34c", + "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/f221996be414b7698b15bfe68d143c90896dc70431099bd42ecc594127087c43?artifact_id=cad967ea-3ba5-498a-b93c-9c16e7a5", "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact", - "deployment_diff": null, - "commit_lead_time": -183993.0, + "deployment_diff": { + "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/7172cc22125f480a9f12127edb481a4d84aabea3...00c479764cb9eca038fdaaaef108672d0bb0ed26", + "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/7172cc22125f480a9f12127edb481a4d84aabea3", + "previous_trail_name": "creator-e8b5e25c5550658cdbd2b8339684b18bce86aaf6538611124ff62f2582c2e5b6", + "previous_template_reference_name": "creator" + }, + "commit_lead_time": -2792.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] } ], "ecs_context": { - "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/82017c83fa524baf8ceba3ceea36f5ca", + "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/fe497fd2bf964fa5b33898a96aff2883", "cluster_name": null, "service_name": null } }, { - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/creator:2036886@sha256:e433c4e99e5191290a2b36c72acdf86806a960381309e11dab902e4db8bfb035", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:f66cc5c@sha256:29c69c2f30f261a26fff4793fd8ae44b9081def1d4bcaaa27b0fef0501d949e4", "compliant": true, "deployments": [], "policy_decisions": [ @@ -2497,8 +2505,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "creator-ci", - "trail_name": "20368865b1ba0532f99f69641bbb96e6334cb545", + "flow_name": "web-ci", + "trail_name": "f66cc5c51fcc19b04b36e0542b36b6cc52515d3c", "artifact_status": null } }, @@ -2506,15 +2514,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-62", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "creator-e433c4e99e5191290a2b36c72acdf86806a960381309e11dab902e4db8bfb035", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -2522,7 +2522,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "creator-e433c4e99e5191290a2b36c72acdf86806a960381309e11dab902e4db8bfb035", + "trail_name": "web-29c69c2f30f261a26fff4793fd8ae44b9081def1d4bcaaa27b0fef0501d949e4", "artifact_status": null } } @@ -2542,8 +2542,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "creator-ci", - "trail_name": "20368865b1ba0532f99f69641bbb96e6334cb545", + "flow_name": "web-ci", + "trail_name": "f66cc5c51fcc19b04b36e0542b36b6cc52515d3c", "artifact_status": "COMPLIANT" } }, @@ -2551,15 +2551,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-62", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "creator-e433c4e99e5191290a2b36c72acdf86806a960381309e11dab902e4db8bfb035", + "trail_name": "promote-all-23", "artifact_status": "COMPLIANT" } }, @@ -2567,7 +2559,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "creator-e433c4e99e5191290a2b36c72acdf86806a960381309e11dab902e4db8bfb035", + "trail_name": "web-29c69c2f30f261a26fff4793fd8ae44b9081def1d4bcaaa27b0fef0501d949e4", "artifact_status": "COMPLIANT" } } @@ -2592,8 +2584,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "creator-ci", - "trail_name": "20368865b1ba0532f99f69641bbb96e6334cb545", + "flow_name": "web-ci", + "trail_name": "f66cc5c51fcc19b04b36e0542b36b6cc52515d3c", "artifact_status": null } }, @@ -2601,15 +2593,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-62", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "creator-e433c4e99e5191290a2b36c72acdf86806a960381309e11dab902e4db8bfb035", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -2617,7 +2601,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "creator-e433c4e99e5191290a2b36c72acdf86806a960381309e11dab902e4db8bfb035", + "trail_name": "web-29c69c2f30f261a26fff4793fd8ae44b9081def1d4bcaaa27b0fef0501d949e4", "artifact_status": null } } @@ -2644,8 +2628,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "creator-ci", - "trail_name": "20368865b1ba0532f99f69641bbb96e6334cb545", + "flow_name": "web-ci", + "trail_name": "f66cc5c51fcc19b04b36e0542b36b6cc52515d3c", "artifact_status": null } }, @@ -2653,15 +2637,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-62", - "artifact_status": null - } - }, - { - "type": "rule_satisfied", - "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "creator-e433c4e99e5191290a2b36c72acdf86806a960381309e11dab902e4db8bfb035", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -2669,7 +2645,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "creator-e433c4e99e5191290a2b36c72acdf86806a960381309e11dab902e4db8bfb035", + "trail_name": "web-29c69c2f30f261a26fff4793fd8ae44b9081def1d4bcaaa27b0fef0501d949e4", "artifact_status": null } } @@ -2689,8 +2665,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "creator-ci", - "trail_name": "20368865b1ba0532f99f69641bbb96e6334cb545", + "flow_name": "web-ci", + "trail_name": "f66cc5c51fcc19b04b36e0542b36b6cc52515d3c", "artifact_status": "COMPLIANT" } }, @@ -2698,15 +2674,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-62", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "creator-e433c4e99e5191290a2b36c72acdf86806a960381309e11dab902e4db8bfb035", + "trail_name": "promote-all-23", "artifact_status": "COMPLIANT" } }, @@ -2714,7 +2682,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "creator-e433c4e99e5191290a2b36c72acdf86806a960381309e11dab902e4db8bfb035", + "trail_name": "web-29c69c2f30f261a26fff4793fd8ae44b9081def1d4bcaaa27b0fef0501d949e4", "artifact_status": "COMPLIANT" } } @@ -2741,8 +2709,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "creator-ci", - "trail_name": "20368865b1ba0532f99f69641bbb96e6334cb545", + "flow_name": "web-ci", + "trail_name": "f66cc5c51fcc19b04b36e0542b36b6cc52515d3c", "artifact_status": null } }, @@ -2750,15 +2718,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-62", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "creator-e433c4e99e5191290a2b36c72acdf86806a960381309e11dab902e4db8bfb035", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -2766,7 +2726,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "creator-e433c4e99e5191290a2b36c72acdf86806a960381309e11dab902e4db8bfb035", + "trail_name": "web-29c69c2f30f261a26fff4793fd8ae44b9081def1d4bcaaa27b0fef0501d949e4", "artifact_status": null } } @@ -2786,8 +2746,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "creator-ci", - "trail_name": "20368865b1ba0532f99f69641bbb96e6334cb545", + "flow_name": "web-ci", + "trail_name": "f66cc5c51fcc19b04b36e0542b36b6cc52515d3c", "artifact_status": "COMPLIANT" } }, @@ -2795,15 +2755,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-62", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "creator-e433c4e99e5191290a2b36c72acdf86806a960381309e11dab902e4db8bfb035", + "trail_name": "promote-all-23", "artifact_status": "COMPLIANT" } }, @@ -2811,7 +2763,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "creator-e433c4e99e5191290a2b36c72acdf86806a960381309e11dab902e4db8bfb035", + "trail_name": "web-29c69c2f30f261a26fff4793fd8ae44b9081def1d4bcaaa27b0fef0501d949e4", "artifact_status": "COMPLIANT" } } @@ -2836,8 +2788,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "creator-ci", - "trail_name": "20368865b1ba0532f99f69641bbb96e6334cb545", + "flow_name": "web-ci", + "trail_name": "f66cc5c51fcc19b04b36e0542b36b6cc52515d3c", "artifact_status": null } }, @@ -2845,15 +2797,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-62", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "creator-e433c4e99e5191290a2b36c72acdf86806a960381309e11dab902e4db8bfb035", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -2861,7 +2805,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "creator-e433c4e99e5191290a2b36c72acdf86806a960381309e11dab902e4db8bfb035", + "trail_name": "web-29c69c2f30f261a26fff4793fd8ae44b9081def1d4bcaaa27b0fef0501d949e4", "artifact_status": null } } @@ -2888,8 +2832,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "creator-ci", - "trail_name": "20368865b1ba0532f99f69641bbb96e6334cb545", + "flow_name": "web-ci", + "trail_name": "f66cc5c51fcc19b04b36e0542b36b6cc52515d3c", "artifact_status": null } }, @@ -2897,15 +2841,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-62", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "creator-e433c4e99e5191290a2b36c72acdf86806a960381309e11dab902e4db8bfb035", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -2913,7 +2849,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "creator-e433c4e99e5191290a2b36c72acdf86806a960381309e11dab902e4db8bfb035", + "trail_name": "web-29c69c2f30f261a26fff4793fd8ae44b9081def1d4bcaaa27b0fef0501d949e4", "artifact_status": null } } @@ -2933,8 +2869,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "creator-ci", - "trail_name": "20368865b1ba0532f99f69641bbb96e6334cb545", + "flow_name": "web-ci", + "trail_name": "f66cc5c51fcc19b04b36e0542b36b6cc52515d3c", "artifact_status": "COMPLIANT" } }, @@ -2942,15 +2878,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-62", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "creator-e433c4e99e5191290a2b36c72acdf86806a960381309e11dab902e4db8bfb035", + "trail_name": "promote-all-23", "artifact_status": "COMPLIANT" } }, @@ -2958,7 +2886,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "creator-e433c4e99e5191290a2b36c72acdf86806a960381309e11dab902e4db8bfb035", + "trail_name": "web-29c69c2f30f261a26fff4793fd8ae44b9081def1d4bcaaa27b0fef0501d949e4", "artifact_status": "COMPLIANT" } } @@ -2983,8 +2911,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "creator-ci", - "trail_name": "20368865b1ba0532f99f69641bbb96e6334cb545", + "flow_name": "web-ci", + "trail_name": "f66cc5c51fcc19b04b36e0542b36b6cc52515d3c", "artifact_status": null } }, @@ -2992,15 +2920,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-62", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "creator-e433c4e99e5191290a2b36c72acdf86806a960381309e11dab902e4db8bfb035", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -3008,7 +2928,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "creator-e433c4e99e5191290a2b36c72acdf86806a960381309e11dab902e4db8bfb035", + "trail_name": "web-29c69c2f30f261a26fff4793fd8ae44b9081def1d4bcaaa27b0fef0501d949e4", "artifact_status": null } } @@ -3035,8 +2955,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "creator-ci", - "trail_name": "20368865b1ba0532f99f69641bbb96e6334cb545", + "flow_name": "web-ci", + "trail_name": "f66cc5c51fcc19b04b36e0542b36b6cc52515d3c", "artifact_status": null } }, @@ -3044,15 +2964,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-62", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "creator-e433c4e99e5191290a2b36c72acdf86806a960381309e11dab902e4db8bfb035", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -3060,7 +2972,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "creator-e433c4e99e5191290a2b36c72acdf86806a960381309e11dab902e4db8bfb035", + "trail_name": "web-29c69c2f30f261a26fff4793fd8ae44b9081def1d4bcaaa27b0fef0501d949e4", "artifact_status": null } } @@ -3086,8 +2998,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "creator-ci", - "trail_name": "20368865b1ba0532f99f69641bbb96e6334cb545", + "flow_name": "web-ci", + "trail_name": "f66cc5c51fcc19b04b36e0542b36b6cc52515d3c", "artifact_status": "COMPLIANT" } }, @@ -3095,15 +3007,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-62", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "creator-e433c4e99e5191290a2b36c72acdf86806a960381309e11dab902e4db8bfb035", + "trail_name": "promote-all-23", "artifact_status": "COMPLIANT" } }, @@ -3111,7 +3015,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "creator-e433c4e99e5191290a2b36c72acdf86806a960381309e11dab902e4db8bfb035", + "trail_name": "web-29c69c2f30f261a26fff4793fd8ae44b9081def1d4bcaaa27b0fef0501d949e4", "artifact_status": "COMPLIANT" } } @@ -3122,157 +3026,128 @@ kosli get snapshot aws-prod --output=json } ], "reasons_for_incompliance": [], - "fingerprint": "e433c4e99e5191290a2b36c72acdf86806a960381309e11dab902e4db8bfb035", + "fingerprint": "29c69c2f30f261a26fff4793fd8ae44b9081def1d4bcaaa27b0fef0501d949e4", "creationTimestamp": [ - 1780389628 + 1781590487, + 1781590572, + 1781590572 ], "pods": null, "annotation": { - "type": "changed", - "was": 1, - "now": 1 + "type": "unchanged", + "was": 3, + "now": 3 }, - "flow_name": "creator-ci", - "git_commit": "20368865b1ba0532f99f69641bbb96e6334cb545", - "commit_url": "https://gitlab.com/cyber-dojo/creator/-/commit/20368865b1ba0532f99f69641bbb96e6334cb545", - "html_url": "https://app.kosli.com/cyber-dojo/flows/creator-ci/artifacts/e433c4e99e5191290a2b36c72acdf86806a960381309e11dab902e4db8bfb035?artifact_id=d5d4dc83-f3c0-4a50-b5cb-fdc4f610", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/creator-ci", + "flow_name": "web-ci", + "git_commit": "f66cc5c51fcc19b04b36e0542b36b6cc52515d3c", + "commit_url": "https://github.com/cyber-dojo/web/commit/f66cc5c51fcc19b04b36e0542b36b6cc52515d3c", + "html_url": "https://app.kosli.com/cyber-dojo/flows/web-ci/artifacts/29c69c2f30f261a26fff4793fd8ae44b9081def1d4bcaaa27b0fef0501d949e4?artifact_id=ed664433-201f-41ac-938b-5931b5f4", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/web-ci", "deployment_diff": { - "diff_url": "https://gitlab.com/cyber-dojo/creator/-/compare/3a066186b7fbbcec0130419518c5bb81b50e71db...20368865b1ba0532f99f69641bbb96e6334cb545", - "previous_git_commit": "3a066186b7fbbcec0130419518c5bb81b50e71db", - "previous_fingerprint": "bd66850aada99245f34fe2302aa00023d00c8165e8409e4f7be82f8fd768797e", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/creator:3a06618@sha256:bd66850aada99245f34fe2302aa00023d00c8165e8409e4f7be82f8fd768797e", + "diff_url": "https://github.com/cyber-dojo/web/compare/8863c10c2c93d3539672e0bf75bd9925f8778564...f66cc5c51fcc19b04b36e0542b36b6cc52515d3c", + "previous_git_commit": "8863c10c2c93d3539672e0bf75bd9925f8778564", + "previous_fingerprint": "443fe71ccfa84a1b7eb1ebe4cf8931c43371843201f540e5f6a8c55154fdb735", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:8863c10@sha256:443fe71ccfa84a1b7eb1ebe4cf8931c43371843201f540e5f6a8c55154fdb735", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://gitlab.com/cyber-dojo/creator/-/commit/3a066186b7fbbcec0130419518c5bb81b50e71db", - "previous_trail_name": "3a066186b7fbbcec0130419518c5bb81b50e71db", - "previous_template_reference_name": "creator" + "previous_git_commit_url": "https://github.com/cyber-dojo/web/commit/8863c10c2c93d3539672e0bf75bd9925f8778564", + "previous_trail_name": "8863c10c2c93d3539672e0bf75bd9925f8778564", + "previous_template_reference_name": "web" }, - "commit_lead_time": 1333.0, + "commit_lead_time": 3595.0, "flows": [ { - "flow_name": "creator-ci", - "trail_name": "20368865b1ba0532f99f69641bbb96e6334cb545", - "template_reference_name": "creator", - "git_commit": "20368865b1ba0532f99f69641bbb96e6334cb545", - "commit_url": "https://gitlab.com/cyber-dojo/creator/-/commit/20368865b1ba0532f99f69641bbb96e6334cb545", + "flow_name": "web-ci", + "trail_name": "f66cc5c51fcc19b04b36e0542b36b6cc52515d3c", + "template_reference_name": "web", + "git_commit": "f66cc5c51fcc19b04b36e0542b36b6cc52515d3c", + "commit_url": "https://github.com/cyber-dojo/web/commit/f66cc5c51fcc19b04b36e0542b36b6cc52515d3c", "git_commit_info": { - "sha1": "20368865b1ba0532f99f69641bbb96e6334cb545", - "message": "Merge branch 'downtime-notice' into 'main'\n\nAdd downtime notice for pending infrastructure upgrade\n\nSee merge request cyber-dojo/creator!250", - "author": "Jon Jagger ", - "branch": "main", - "timestamp": 1780388295.0, - "url": "https://gitlab.com/cyber-dojo/creator/-/commit/20368865b1ba0532f99f69641bbb96e6334cb545" + "sha1": "f66cc5c51fcc19b04b36e0542b36b6cc52515d3c", + "message": "Unify with fork options on home page (#360)", + "author": "Jon Jagger ", + "branch": "", + "timestamp": 1781421562.0, + "url": "https://github.com/cyber-dojo/web/commit/f66cc5c51fcc19b04b36e0542b36b6cc52515d3c" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/creator-ci/artifacts/e433c4e99e5191290a2b36c72acdf86806a960381309e11dab902e4db8bfb035?artifact_id=d5d4dc83-f3c0-4a50-b5cb-fdc4f610", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/creator-ci", + "html_url": "https://app.kosli.com/cyber-dojo/flows/web-ci/artifacts/29c69c2f30f261a26fff4793fd8ae44b9081def1d4bcaaa27b0fef0501d949e4?artifact_id=ed664433-201f-41ac-938b-5931b5f4", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/web-ci", "deployment_diff": { - "diff_url": "https://gitlab.com/cyber-dojo/creator/-/compare/3a066186b7fbbcec0130419518c5bb81b50e71db...20368865b1ba0532f99f69641bbb96e6334cb545", - "previous_git_commit": "3a066186b7fbbcec0130419518c5bb81b50e71db", - "previous_fingerprint": "bd66850aada99245f34fe2302aa00023d00c8165e8409e4f7be82f8fd768797e", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/creator:3a06618@sha256:bd66850aada99245f34fe2302aa00023d00c8165e8409e4f7be82f8fd768797e", + "diff_url": "https://github.com/cyber-dojo/web/compare/8863c10c2c93d3539672e0bf75bd9925f8778564...f66cc5c51fcc19b04b36e0542b36b6cc52515d3c", + "previous_git_commit": "8863c10c2c93d3539672e0bf75bd9925f8778564", + "previous_fingerprint": "443fe71ccfa84a1b7eb1ebe4cf8931c43371843201f540e5f6a8c55154fdb735", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:8863c10@sha256:443fe71ccfa84a1b7eb1ebe4cf8931c43371843201f540e5f6a8c55154fdb735", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://gitlab.com/cyber-dojo/creator/-/commit/3a066186b7fbbcec0130419518c5bb81b50e71db", - "previous_trail_name": "3a066186b7fbbcec0130419518c5bb81b50e71db", - "previous_template_reference_name": "creator" + "previous_git_commit_url": "https://github.com/cyber-dojo/web/commit/8863c10c2c93d3539672e0bf75bd9925f8778564", + "previous_trail_name": "8863c10c2c93d3539672e0bf75bd9925f8778564", + "previous_template_reference_name": "web" }, - "commit_lead_time": 1333.0, + "commit_lead_time": 3595.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "production-promotion", - "trail_name": "promotion-one-62", - "template_reference_name": "creator", - "git_commit": "0f823ea52be90061b69b3f8f6056ca1203ac3d81", - "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/0f823ea52be90061b69b3f8f6056ca1203ac3d81", + "trail_name": "promote-all-23", + "template_reference_name": "web", + "git_commit": "01dd4c6406d6655898ef2236875ec9f67091c792", + "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/01dd4c6406d6655898ef2236875ec9f67091c792", "git_commit_info": { - "sha1": "0f823ea52be90061b69b3f8f6056ca1203ac3d81", - "message": "Bump kosli/setup-cli-action to v5, use latest version", + "sha1": "01dd4c6406d6655898ef2236875ec9f67091c792", + "message": "Update comment and help text", "author": "JonJagger ", "branch": "main", - "timestamp": 1779364424.0, - "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/0f823ea52be90061b69b3f8f6056ca1203ac3d81" + "timestamp": 1781413514.0, + "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/01dd4c6406d6655898ef2236875ec9f67091c792" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/e433c4e99e5191290a2b36c72acdf86806a960381309e11dab902e4db8bfb035?artifact_id=97fad3b0-e932-4eb8-a59f-2e4e5901", + "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/29c69c2f30f261a26fff4793fd8ae44b9081def1d4bcaaa27b0fef0501d949e4?artifact_id=f3c729dc-26db-4c43-961c-1dd0d4d0", "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/0f823ea52be90061b69b3f8f6056ca1203ac3d81...0f823ea52be90061b69b3f8f6056ca1203ac3d81", - "previous_git_commit": "0f823ea52be90061b69b3f8f6056ca1203ac3d81", - "previous_fingerprint": "bd66850aada99245f34fe2302aa00023d00c8165e8409e4f7be82f8fd768797e", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/creator:3a06618@sha256:bd66850aada99245f34fe2302aa00023d00c8165e8409e4f7be82f8fd768797e", - "previous_artifact_compliance_state": "COMPLIANT", - "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/0f823ea52be90061b69b3f8f6056ca1203ac3d81", - "previous_trail_name": "promote-all-19", - "previous_template_reference_name": "creator" - }, - "commit_lead_time": 1025204.0, - "artifact_compliance_in_flow": true, - "flow_reasons_for_non_compliance": [] - }, - { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "creator-e433c4e99e5191290a2b36c72acdf86806a960381309e11dab902e4db8bfb035", - "template_reference_name": "creator", - "git_commit": "ee081fb7be2ac7e2094bb4d02f3effdb9f73dd74", - "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/ee081fb7be2ac7e2094bb4d02f3effdb9f73dd74", - "git_commit_info": { - "sha1": "ee081fb7be2ac7e2094bb4d02f3effdb9f73dd74", - "message": "Fix deploy-swap race that clobbered per-vuln Snyk verdicts\n\n The live environment Snyk scan keys each per-vuln compliance trail by\n repo-severity-vulnid only. During a rolling deploy the env snapshot\n transiently holds two builds of the same repo, so env_snyk_test fans out a\n matrix job per build and both write the same trail's `snyk` attestation.\n Last-writer-wins, so the outgoing (older) build's verdict, computed against\n its older .snyk, could clobber the incoming build's correct one. That\n surfaced as runner showing non-compliant in aws-prod for x/net/html vulns\n that were in fact ignored, and (via a required trail-compliance env policy\n that spans every trail on the fingerprint) dragged aws-beta down too.\n\n Give each build's verdict its own identity on the shared trail rather than\n trying to pick a winner from the snapshot, which is unreliable: instance\n timestamps track restarts, not build recency (a flaky outgoing task can\n restart after the incoming one starts), and commit recency inverts on\n rollback.\n\n - combine_snyk.py: emit artifact_name and artifact_fingerprint per vuln.\n - artifact_snyk_test.yml: attest/read the per-vuln verdict as\n snyk- (VULN_ATTESTATION_NAME) and merge the fingerprint into\n the evaluate-trail rego params.\n - snyk-vuln-compliance.rego: select the status for data.params.fingerprint;\n an absent fingerprint leaves allow at its false default (fail toward\n non-compliant).\n - single-snyk-vuln.schema.json: document and require the new fields (also\n closes a pre-existing now/now_ts omission), guarded by a new contract test.\n\n Vuln age is unaffected: first_seen_ts stays the shared trail's created_at,\n which is why the trail key must not include the fingerprint.\n\n Also in this change:\n - test_rego_rules.sh: per-fingerprint inputs plus a two-build isolation test.\n - Convert test_find_expiring_vulns_logic.py from unittest to pytest functions.\n - Remove Makefile targets left dangling when 79ea32a moved scripts out of bin.\n - docs/: write up the race and the cross-environment trail-compliance effect.\n\n Co-Authored-By: Claude Opus 4.8 (1M context) ", - "author": "JonJagger ", - "branch": "main", - "timestamp": 1780738845.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/ee081fb7be2ac7e2094bb4d02f3effdb9f73dd74" - }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/e433c4e99e5191290a2b36c72acdf86806a960381309e11dab902e4db8bfb035?artifact_id=4e410286-9a56-4314-8490-5a4b1010", - "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/4cca3cf991dc8340b82c03e0a80b7b7a1b136bda...ee081fb7be2ac7e2094bb4d02f3effdb9f73dd74", - "previous_git_commit": "4cca3cf991dc8340b82c03e0a80b7b7a1b136bda", - "previous_fingerprint": "87c2ae3209e66bfb2470ffccfb9bff93a47bc7cbb215c2a68261bf13211dda41", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/creator:dba05d3@sha256:87c2ae3209e66bfb2470ffccfb9bff93a47bc7cbb215c2a68261bf13211dda41", + "diff_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/compare/8d5d7b8b19d97204eb0701a813fe53c68c21ccd0...01dd4c6406d6655898ef2236875ec9f67091c792", + "previous_git_commit": "8d5d7b8b19d97204eb0701a813fe53c68c21ccd0", + "previous_fingerprint": "443fe71ccfa84a1b7eb1ebe4cf8931c43371843201f540e5f6a8c55154fdb735", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:8863c10@sha256:443fe71ccfa84a1b7eb1ebe4cf8931c43371843201f540e5f6a8c55154fdb735", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/4cca3cf991dc8340b82c03e0a80b7b7a1b136bda", - "previous_trail_name": "creator-87c2ae3209e66bfb2470ffccfb9bff93a47bc7cbb215c2a68261bf13211dda41", - "previous_template_reference_name": "creator" + "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/8d5d7b8b19d97204eb0701a813fe53c68c21ccd0", + "previous_trail_name": "promotion-one-65", + "previous_template_reference_name": "web" }, - "commit_lead_time": -349217.0, + "commit_lead_time": 11643.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "creator-e433c4e99e5191290a2b36c72acdf86806a960381309e11dab902e4db8bfb035", - "template_reference_name": "creator", - "git_commit": "ae002419e71c05cc5c1a285b52afdcef23d927c7", - "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/ae002419e71c05cc5c1a285b52afdcef23d927c7", + "trail_name": "web-29c69c2f30f261a26fff4793fd8ae44b9081def1d4bcaaa27b0fef0501d949e4", + "template_reference_name": "web", + "git_commit": "00c479764cb9eca038fdaaaef108672d0bb0ed26", + "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/00c479764cb9eca038fdaaaef108672d0bb0ed26", "git_commit_info": { - "sha1": "ae002419e71c05cc5c1a285b52afdcef23d927c7", - "message": "Upgrade workflows to use kosli-cli-setup v5", + "sha1": "00c479764cb9eca038fdaaaef108672d0bb0ed26", + "message": "Shorten the per-vuln attestation name to a 10-char fingerprint\n\n The per-vuln attestation was named snyk-. A full\n SHA-256 fingerprint is 64 hex chars, which renders badly on the\n snyk--per-vuln flow page. The fingerprint is only there to keep two\n builds of the same artifact in one deploy snapshot from clobbering each\n other on the shared per-vuln trail, and the first 10 hex chars (40 bits)\n are far more than enough to keep distinct builds apart.\n\n GitHub Actions expressions have no substring function, so the name can\n no longer be built inline in the job-level env. Compute it in a shell\n step that truncates the fingerprint and exports VULN_ATTESTATION_NAME to\n $GITHUB_ENV, ahead of every step that reads it.\n\n Note: per-vuln trails that already carry a snyk-\n attestation will, on their next run, also gain a snyk-<10-char> one,\n since Kosli keys attestations by name. Only trails created after this\n change will have the short name alone.", "author": "JonJagger ", "branch": "main", - "timestamp": 1780908047.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/ae002419e71c05cc5c1a285b52afdcef23d927c7" + "timestamp": 1781594940.0, + "url": "https://github.com/cyber-dojo/snyk-scanning/commit/00c479764cb9eca038fdaaaef108672d0bb0ed26" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/e433c4e99e5191290a2b36c72acdf86806a960381309e11dab902e4db8bfb035?artifact_id=3fc1256c-7ba5-4869-830b-d5d5bd36", + "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/29c69c2f30f261a26fff4793fd8ae44b9081def1d4bcaaa27b0fef0501d949e4?artifact_id=60a2f8f5-0eb8-414a-8f17-e0516412", "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact", "deployment_diff": null, - "commit_lead_time": -518419.0, + "commit_lead_time": -169783.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] } ], "ecs_context": { - "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/5c12e0e349eb44aa8049af6e45f4664d", + "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/f08f2c3460d64049a886ec5a8d334a95", "cluster_name": null, "service_name": null } }, { - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:f3c6791@sha256:9aa8b29c6163d8d454fdc63f896d1d0d8dec8f74ad364004e47727db3c1d3349", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:8c84fac@sha256:f5909cc8dd53b2105953d1a72cd5d6181367d3588964aa01a04c056205a5d419", "compliant": true, "deployments": [], "policy_decisions": [ @@ -3294,24 +3169,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "dashboard-ci", - "trail_name": "f3c679170776733c60dc485e076b7cb515caa7a4", + "flow_name": "saver-ci", + "trail_name": "8c84facc7fd6a663fe7d40a6b4aff8f13a94d600", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "saver-f5909cc8dd53b2105953d1a72cd5d6181367d3588964aa01a04c056205a5d419", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "dashboard-9aa8b29c6163d8d454fdc63f896d1d0d8dec8f74ad364004e47727db3c1d3349", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -3319,7 +3194,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "dashboard-9aa8b29c6163d8d454fdc63f896d1d0d8dec8f74ad364004e47727db3c1d3349", + "trail_name": "saver-f5909cc8dd53b2105953d1a72cd5d6181367d3588964aa01a04c056205a5d419", "artifact_status": null } } @@ -3339,24 +3214,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "dashboard-ci", - "trail_name": "f3c679170776733c60dc485e076b7cb515caa7a4", + "flow_name": "saver-ci", + "trail_name": "8c84facc7fd6a663fe7d40a6b4aff8f13a94d600", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "saver-f5909cc8dd53b2105953d1a72cd5d6181367d3588964aa01a04c056205a5d419", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "dashboard-9aa8b29c6163d8d454fdc63f896d1d0d8dec8f74ad364004e47727db3c1d3349", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": "COMPLIANT" } }, @@ -3364,7 +3239,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "dashboard-9aa8b29c6163d8d454fdc63f896d1d0d8dec8f74ad364004e47727db3c1d3349", + "trail_name": "saver-f5909cc8dd53b2105953d1a72cd5d6181367d3588964aa01a04c056205a5d419", "artifact_status": "COMPLIANT" } } @@ -3389,24 +3264,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "dashboard-ci", - "trail_name": "f3c679170776733c60dc485e076b7cb515caa7a4", + "flow_name": "saver-ci", + "trail_name": "8c84facc7fd6a663fe7d40a6b4aff8f13a94d600", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "saver-f5909cc8dd53b2105953d1a72cd5d6181367d3588964aa01a04c056205a5d419", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "dashboard-9aa8b29c6163d8d454fdc63f896d1d0d8dec8f74ad364004e47727db3c1d3349", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -3414,7 +3289,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "dashboard-9aa8b29c6163d8d454fdc63f896d1d0d8dec8f74ad364004e47727db3c1d3349", + "trail_name": "saver-f5909cc8dd53b2105953d1a72cd5d6181367d3588964aa01a04c056205a5d419", "artifact_status": null } } @@ -3441,24 +3316,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "dashboard-ci", - "trail_name": "f3c679170776733c60dc485e076b7cb515caa7a4", + "flow_name": "saver-ci", + "trail_name": "8c84facc7fd6a663fe7d40a6b4aff8f13a94d600", "artifact_status": null } }, { "type": "rule_satisfied", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "saver-f5909cc8dd53b2105953d1a72cd5d6181367d3588964aa01a04c056205a5d419", "artifact_status": null } }, { "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "dashboard-9aa8b29c6163d8d454fdc63f896d1d0d8dec8f74ad364004e47727db3c1d3349", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -3466,7 +3341,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "dashboard-9aa8b29c6163d8d454fdc63f896d1d0d8dec8f74ad364004e47727db3c1d3349", + "trail_name": "saver-f5909cc8dd53b2105953d1a72cd5d6181367d3588964aa01a04c056205a5d419", "artifact_status": null } } @@ -3486,24 +3361,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "dashboard-ci", - "trail_name": "f3c679170776733c60dc485e076b7cb515caa7a4", + "flow_name": "saver-ci", + "trail_name": "8c84facc7fd6a663fe7d40a6b4aff8f13a94d600", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "saver-f5909cc8dd53b2105953d1a72cd5d6181367d3588964aa01a04c056205a5d419", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "dashboard-9aa8b29c6163d8d454fdc63f896d1d0d8dec8f74ad364004e47727db3c1d3349", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": "COMPLIANT" } }, @@ -3511,7 +3386,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "dashboard-9aa8b29c6163d8d454fdc63f896d1d0d8dec8f74ad364004e47727db3c1d3349", + "trail_name": "saver-f5909cc8dd53b2105953d1a72cd5d6181367d3588964aa01a04c056205a5d419", "artifact_status": "COMPLIANT" } } @@ -3538,24 +3413,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "dashboard-ci", - "trail_name": "f3c679170776733c60dc485e076b7cb515caa7a4", + "flow_name": "saver-ci", + "trail_name": "8c84facc7fd6a663fe7d40a6b4aff8f13a94d600", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "saver-f5909cc8dd53b2105953d1a72cd5d6181367d3588964aa01a04c056205a5d419", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "dashboard-9aa8b29c6163d8d454fdc63f896d1d0d8dec8f74ad364004e47727db3c1d3349", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -3563,7 +3438,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "dashboard-9aa8b29c6163d8d454fdc63f896d1d0d8dec8f74ad364004e47727db3c1d3349", + "trail_name": "saver-f5909cc8dd53b2105953d1a72cd5d6181367d3588964aa01a04c056205a5d419", "artifact_status": null } } @@ -3583,24 +3458,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "dashboard-ci", - "trail_name": "f3c679170776733c60dc485e076b7cb515caa7a4", + "flow_name": "saver-ci", + "trail_name": "8c84facc7fd6a663fe7d40a6b4aff8f13a94d600", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "saver-f5909cc8dd53b2105953d1a72cd5d6181367d3588964aa01a04c056205a5d419", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "dashboard-9aa8b29c6163d8d454fdc63f896d1d0d8dec8f74ad364004e47727db3c1d3349", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": "COMPLIANT" } }, @@ -3608,7 +3483,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "dashboard-9aa8b29c6163d8d454fdc63f896d1d0d8dec8f74ad364004e47727db3c1d3349", + "trail_name": "saver-f5909cc8dd53b2105953d1a72cd5d6181367d3588964aa01a04c056205a5d419", "artifact_status": "COMPLIANT" } } @@ -3633,24 +3508,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "dashboard-ci", - "trail_name": "f3c679170776733c60dc485e076b7cb515caa7a4", + "flow_name": "saver-ci", + "trail_name": "8c84facc7fd6a663fe7d40a6b4aff8f13a94d600", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "saver-f5909cc8dd53b2105953d1a72cd5d6181367d3588964aa01a04c056205a5d419", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "dashboard-9aa8b29c6163d8d454fdc63f896d1d0d8dec8f74ad364004e47727db3c1d3349", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -3658,7 +3533,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "dashboard-9aa8b29c6163d8d454fdc63f896d1d0d8dec8f74ad364004e47727db3c1d3349", + "trail_name": "saver-f5909cc8dd53b2105953d1a72cd5d6181367d3588964aa01a04c056205a5d419", "artifact_status": null } } @@ -3685,24 +3560,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "dashboard-ci", - "trail_name": "f3c679170776733c60dc485e076b7cb515caa7a4", + "flow_name": "saver-ci", + "trail_name": "8c84facc7fd6a663fe7d40a6b4aff8f13a94d600", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "saver-f5909cc8dd53b2105953d1a72cd5d6181367d3588964aa01a04c056205a5d419", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "dashboard-9aa8b29c6163d8d454fdc63f896d1d0d8dec8f74ad364004e47727db3c1d3349", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -3710,7 +3585,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "dashboard-9aa8b29c6163d8d454fdc63f896d1d0d8dec8f74ad364004e47727db3c1d3349", + "trail_name": "saver-f5909cc8dd53b2105953d1a72cd5d6181367d3588964aa01a04c056205a5d419", "artifact_status": null } } @@ -3730,24 +3605,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "dashboard-ci", - "trail_name": "f3c679170776733c60dc485e076b7cb515caa7a4", + "flow_name": "saver-ci", + "trail_name": "8c84facc7fd6a663fe7d40a6b4aff8f13a94d600", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "saver-f5909cc8dd53b2105953d1a72cd5d6181367d3588964aa01a04c056205a5d419", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "dashboard-9aa8b29c6163d8d454fdc63f896d1d0d8dec8f74ad364004e47727db3c1d3349", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": "COMPLIANT" } }, @@ -3755,7 +3630,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "dashboard-9aa8b29c6163d8d454fdc63f896d1d0d8dec8f74ad364004e47727db3c1d3349", + "trail_name": "saver-f5909cc8dd53b2105953d1a72cd5d6181367d3588964aa01a04c056205a5d419", "artifact_status": "COMPLIANT" } } @@ -3780,24 +3655,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "dashboard-ci", - "trail_name": "f3c679170776733c60dc485e076b7cb515caa7a4", + "flow_name": "saver-ci", + "trail_name": "8c84facc7fd6a663fe7d40a6b4aff8f13a94d600", "artifact_status": null } }, { - "type": "rule_satisfied", + "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "saver-f5909cc8dd53b2105953d1a72cd5d6181367d3588964aa01a04c056205a5d419", "artifact_status": null } }, { - "type": "rule_not_applicable", + "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "dashboard-9aa8b29c6163d8d454fdc63f896d1d0d8dec8f74ad364004e47727db3c1d3349", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -3805,7 +3680,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "dashboard-9aa8b29c6163d8d454fdc63f896d1d0d8dec8f74ad364004e47727db3c1d3349", + "trail_name": "saver-f5909cc8dd53b2105953d1a72cd5d6181367d3588964aa01a04c056205a5d419", "artifact_status": null } } @@ -3832,24 +3707,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "dashboard-ci", - "trail_name": "f3c679170776733c60dc485e076b7cb515caa7a4", + "flow_name": "saver-ci", + "trail_name": "8c84facc7fd6a663fe7d40a6b4aff8f13a94d600", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "saver-f5909cc8dd53b2105953d1a72cd5d6181367d3588964aa01a04c056205a5d419", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "dashboard-9aa8b29c6163d8d454fdc63f896d1d0d8dec8f74ad364004e47727db3c1d3349", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -3857,7 +3732,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "dashboard-9aa8b29c6163d8d454fdc63f896d1d0d8dec8f74ad364004e47727db3c1d3349", + "trail_name": "saver-f5909cc8dd53b2105953d1a72cd5d6181367d3588964aa01a04c056205a5d419", "artifact_status": null } } @@ -3883,24 +3758,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "dashboard-ci", - "trail_name": "f3c679170776733c60dc485e076b7cb515caa7a4", + "flow_name": "saver-ci", + "trail_name": "8c84facc7fd6a663fe7d40a6b4aff8f13a94d600", "artifact_status": "COMPLIANT" } }, { - "type": "rule_satisfied", + "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "saver-f5909cc8dd53b2105953d1a72cd5d6181367d3588964aa01a04c056205a5d419", "artifact_status": "COMPLIANT" } }, { - "type": "rule_not_applicable", + "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "dashboard-9aa8b29c6163d8d454fdc63f896d1d0d8dec8f74ad364004e47727db3c1d3349", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": "COMPLIANT" } }, @@ -3908,7 +3783,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "dashboard-9aa8b29c6163d8d454fdc63f896d1d0d8dec8f74ad364004e47727db3c1d3349", + "trail_name": "saver-f5909cc8dd53b2105953d1a72cd5d6181367d3588964aa01a04c056205a5d419", "artifact_status": "COMPLIANT" } } @@ -3919,157 +3794,157 @@ kosli get snapshot aws-prod --output=json } ], "reasons_for_incompliance": [], - "fingerprint": "9aa8b29c6163d8d454fdc63f896d1d0d8dec8f74ad364004e47727db3c1d3349", + "fingerprint": "f5909cc8dd53b2105953d1a72cd5d6181367d3588964aa01a04c056205a5d419", "creationTimestamp": [ - 1780333321 + 1781590483 ], "pods": null, "annotation": { - "type": "changed", + "type": "unchanged", "was": 1, "now": 1 }, - "flow_name": "dashboard-ci", - "git_commit": "f3c679170776733c60dc485e076b7cb515caa7a4", - "commit_url": "https://github.com/cyber-dojo/dashboard/commit/f3c679170776733c60dc485e076b7cb515caa7a4", - "html_url": "https://app.kosli.com/cyber-dojo/flows/dashboard-ci/artifacts/9aa8b29c6163d8d454fdc63f896d1d0d8dec8f74ad364004e47727db3c1d3349?artifact_id=a92f3bf6-3316-405e-aee8-51af645c", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/dashboard-ci", + "flow_name": "saver-ci", + "git_commit": "8c84facc7fd6a663fe7d40a6b4aff8f13a94d600", + "commit_url": "https://github.com/cyber-dojo/saver/commit/8c84facc7fd6a663fe7d40a6b4aff8f13a94d600", + "html_url": "https://app.kosli.com/cyber-dojo/flows/saver-ci/artifacts/f5909cc8dd53b2105953d1a72cd5d6181367d3588964aa01a04c056205a5d419?artifact_id=bf5cf82a-8413-437c-97b0-1977ba2c", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/saver-ci", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/dashboard/compare/0a839a472d41bf860d1d6dc3ded45ff63144018d...f3c679170776733c60dc485e076b7cb515caa7a4", - "previous_git_commit": "0a839a472d41bf860d1d6dc3ded45ff63144018d", - "previous_fingerprint": "3e17f5432489791b25c9b30a879b5542ca0999ef5597cab8c8485a30ebca8d39", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:0a839a4@sha256:3e17f5432489791b25c9b30a879b5542ca0999ef5597cab8c8485a30ebca8d39", + "diff_url": "https://github.com/cyber-dojo/saver/compare/68d791f93dc161fd8dba63e49b7fe9f909cbe758...8c84facc7fd6a663fe7d40a6b4aff8f13a94d600", + "previous_git_commit": "68d791f93dc161fd8dba63e49b7fe9f909cbe758", + "previous_fingerprint": "5ee9f19010bb3ae0bbd97098f83c9f652254eda1d1a488a057adedf02af9fbc9", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:68d791f@sha256:5ee9f19010bb3ae0bbd97098f83c9f652254eda1d1a488a057adedf02af9fbc9", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/dashboard/commit/0a839a472d41bf860d1d6dc3ded45ff63144018d", - "previous_trail_name": "0a839a472d41bf860d1d6dc3ded45ff63144018d", - "previous_template_reference_name": "dashboard" + "previous_git_commit_url": "https://github.com/cyber-dojo/saver/commit/68d791f93dc161fd8dba63e49b7fe9f909cbe758", + "previous_trail_name": "68d791f93dc161fd8dba63e49b7fe9f909cbe758", + "previous_template_reference_name": "saver" }, - "commit_lead_time": 282213.0, + "commit_lead_time": 10730.0, "flows": [ { - "flow_name": "dashboard-ci", - "trail_name": "f3c679170776733c60dc485e076b7cb515caa7a4", - "template_reference_name": "dashboard", - "git_commit": "f3c679170776733c60dc485e076b7cb515caa7a4", - "commit_url": "https://github.com/cyber-dojo/dashboard/commit/f3c679170776733c60dc485e076b7cb515caa7a4", + "flow_name": "saver-ci", + "trail_name": "8c84facc7fd6a663fe7d40a6b4aff8f13a94d600", + "template_reference_name": "saver", + "git_commit": "8c84facc7fd6a663fe7d40a6b4aff8f13a94d600", + "commit_url": "https://github.com/cyber-dojo/saver/commit/8c84facc7fd6a663fe7d40a6b4aff8f13a94d600", "git_commit_info": { - "sha1": "f3c679170776733c60dc485e076b7cb515caa7a4", - "message": "Improve demo reliability, hovertip UX, file-event display, and dash\u2026 (#386)\n\n* Improve demo reliability, hovertip UX, file-event display, and dashboard layout\n\n make demo now stops containers on any of our ports before tearing down the\n compose stack, preventing port-conflict failures when containers from other\n projects (e.g. test_web_saver) are already bound to the same ports.\n\n make demo now depends on image_server which depends on assets, so the\n pre-built JS/CSS are always regenerated before the server image is baked.\n Previously a stale pre-built-app.js was silently baked in, causing the\n diff_summary fetch to hit /differ/ instead of /dashboard/.\n\n Hovertip improvements:\n - Removed the duplicate traffic-light icon from the summary row\n - Removed the \"!\" type marker before each filename in the diff table\n - Diff line-count boxes are always coloured and always show the digit\n (including zero), matching the web repo's style; removed disabled attr\n whose [disabled] CSS rule was making digits invisible against the background\n - Test filenames shown in steel-blue via cd.lib.isTestFile() (ported from web)\n - Filename gets 6px left padding now the type-marker column is gone\n\n Inter-test file events (file_edit, file_create etc.) now render as\n file_test.png or file_code.png based on whether the filename is a test file,\n rather than the generic coloured icon. The filename is passed through\n light_json and Event#filename so the JS can make the distinction.\n\n Avatars with only inter-test file events (no test runs yet) now appear in\n both the dashboard and the progress dialog. Previously gatherer.rb required\n at least one light? event; it now uses a separate has_activity flag so the\n row is included whenever any non-create event exists.\n\n extra_file_edits in create_group_kata.rb now edits both hiker.sh and\n test_hiker.sh per loop iteration, giving the hovertip diff table something\n realistic to show for both file types.\n\n Dashboard table max-height changed from a fixed 520px to calc(100dvh - 90px)\n so all avatar rows are visible on typical screens without being clipped.\n\n* Bump test metrics", + "sha1": "8c84facc7fd6a663fe7d40a6b4aff8f13a94d600", + "message": "Force ci run to pick up changes in secure-docker-build workflow (#404)\n\nThe secure-docker-build now annotates the artifact with type=build\nand the intention is to use this annotation to improve the snyk\nscanning workflows determination of which flow among many in a\nenvironment snapshot is the build flow.", "author": "Jon Jagger ", - "branch": "main", - "timestamp": 1780051108.0, - "url": "https://github.com/cyber-dojo/dashboard/commit/f3c679170776733c60dc485e076b7cb515caa7a4" + "branch": "", + "timestamp": 1781414517.0, + "url": "https://github.com/cyber-dojo/saver/commit/8c84facc7fd6a663fe7d40a6b4aff8f13a94d600" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/dashboard-ci/artifacts/9aa8b29c6163d8d454fdc63f896d1d0d8dec8f74ad364004e47727db3c1d3349?artifact_id=a92f3bf6-3316-405e-aee8-51af645c", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/dashboard-ci", + "html_url": "https://app.kosli.com/cyber-dojo/flows/saver-ci/artifacts/f5909cc8dd53b2105953d1a72cd5d6181367d3588964aa01a04c056205a5d419?artifact_id=bf5cf82a-8413-437c-97b0-1977ba2c", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/saver-ci", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/dashboard/compare/0a839a472d41bf860d1d6dc3ded45ff63144018d...f3c679170776733c60dc485e076b7cb515caa7a4", - "previous_git_commit": "0a839a472d41bf860d1d6dc3ded45ff63144018d", - "previous_fingerprint": "3e17f5432489791b25c9b30a879b5542ca0999ef5597cab8c8485a30ebca8d39", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:0a839a4@sha256:3e17f5432489791b25c9b30a879b5542ca0999ef5597cab8c8485a30ebca8d39", + "diff_url": "https://github.com/cyber-dojo/saver/compare/68d791f93dc161fd8dba63e49b7fe9f909cbe758...8c84facc7fd6a663fe7d40a6b4aff8f13a94d600", + "previous_git_commit": "68d791f93dc161fd8dba63e49b7fe9f909cbe758", + "previous_fingerprint": "5ee9f19010bb3ae0bbd97098f83c9f652254eda1d1a488a057adedf02af9fbc9", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:68d791f@sha256:5ee9f19010bb3ae0bbd97098f83c9f652254eda1d1a488a057adedf02af9fbc9", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/dashboard/commit/0a839a472d41bf860d1d6dc3ded45ff63144018d", - "previous_trail_name": "0a839a472d41bf860d1d6dc3ded45ff63144018d", - "previous_template_reference_name": "dashboard" + "previous_git_commit_url": "https://github.com/cyber-dojo/saver/commit/68d791f93dc161fd8dba63e49b7fe9f909cbe758", + "previous_trail_name": "68d791f93dc161fd8dba63e49b7fe9f909cbe758", + "previous_template_reference_name": "saver" }, - "commit_lead_time": 282213.0, + "commit_lead_time": 10730.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { - "flow_name": "production-promotion", - "trail_name": "promote-all-21", - "template_reference_name": "dashboard", - "git_commit": "0f823ea52be90061b69b3f8f6056ca1203ac3d81", - "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/0f823ea52be90061b69b3f8f6056ca1203ac3d81", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "saver-f5909cc8dd53b2105953d1a72cd5d6181367d3588964aa01a04c056205a5d419", + "template_reference_name": "saver", + "git_commit": "7172cc22125f480a9f12127edb481a4d84aabea3", + "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/7172cc22125f480a9f12127edb481a4d84aabea3", "git_commit_info": { - "sha1": "0f823ea52be90061b69b3f8f6056ca1203ac3d81", - "message": "Bump kosli/setup-cli-action to v5, use latest version", + "sha1": "7172cc22125f480a9f12127edb481a4d84aabea3", + "message": "Add notes on proposed refactoring to detecting a build flow [ci skip]", "author": "JonJagger ", "branch": "main", - "timestamp": 1779364424.0, - "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/0f823ea52be90061b69b3f8f6056ca1203ac3d81" + "timestamp": 1781416288.0, + "url": "https://github.com/cyber-dojo/snyk-scanning/commit/7172cc22125f480a9f12127edb481a4d84aabea3" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/9aa8b29c6163d8d454fdc63f896d1d0d8dec8f74ad364004e47727db3c1d3349?artifact_id=61ae32cc-bd72-4d45-b577-00c7ebcc", - "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/f5909cc8dd53b2105953d1a72cd5d6181367d3588964aa01a04c056205a5d419?artifact_id=d2a65e4e-2cc7-4f40-9a76-cc369677", + "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/0f823ea52be90061b69b3f8f6056ca1203ac3d81...0f823ea52be90061b69b3f8f6056ca1203ac3d81", - "previous_git_commit": "0f823ea52be90061b69b3f8f6056ca1203ac3d81", - "previous_fingerprint": "3e17f5432489791b25c9b30a879b5542ca0999ef5597cab8c8485a30ebca8d39", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:0a839a4@sha256:3e17f5432489791b25c9b30a879b5542ca0999ef5597cab8c8485a30ebca8d39", + "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/c96bbe5f1b3c4cf747f77fc9a81210e1fd2c30e4...7172cc22125f480a9f12127edb481a4d84aabea3", + "previous_git_commit": "c96bbe5f1b3c4cf747f77fc9a81210e1fd2c30e4", + "previous_fingerprint": "5ee9f19010bb3ae0bbd97098f83c9f652254eda1d1a488a057adedf02af9fbc9", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:68d791f@sha256:5ee9f19010bb3ae0bbd97098f83c9f652254eda1d1a488a057adedf02af9fbc9", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/0f823ea52be90061b69b3f8f6056ca1203ac3d81", - "previous_trail_name": "promotion-one-60", - "previous_template_reference_name": "dashboard" + "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/c96bbe5f1b3c4cf747f77fc9a81210e1fd2c30e4", + "previous_trail_name": "saver-5ee9f19010bb3ae0bbd97098f83c9f652254eda1d1a488a057adedf02af9fbc9", + "previous_template_reference_name": "saver" }, - "commit_lead_time": 968897.0, + "commit_lead_time": 8959.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "dashboard-9aa8b29c6163d8d454fdc63f896d1d0d8dec8f74ad364004e47727db3c1d3349", - "template_reference_name": "dashboard", - "git_commit": "c96bbe5f1b3c4cf747f77fc9a81210e1fd2c30e4", - "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/c96bbe5f1b3c4cf747f77fc9a81210e1fd2c30e4", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", + "template_reference_name": "saver", + "git_commit": "01dd4c6406d6655898ef2236875ec9f67091c792", + "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/01dd4c6406d6655898ef2236875ec9f67091c792", "git_commit_info": { - "sha1": "c96bbe5f1b3c4cf747f77fc9a81210e1fd2c30e4", - "message": "Delete dead step to force a trail to have empty template", + "sha1": "01dd4c6406d6655898ef2236875ec9f67091c792", + "message": "Update comment and help text", "author": "JonJagger ", "branch": "main", - "timestamp": 1780329192.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/c96bbe5f1b3c4cf747f77fc9a81210e1fd2c30e4" + "timestamp": 1781413514.0, + "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/01dd4c6406d6655898ef2236875ec9f67091c792" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/9aa8b29c6163d8d454fdc63f896d1d0d8dec8f74ad364004e47727db3c1d3349?artifact_id=62436f11-800d-4c82-8310-fea50750", - "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/f5909cc8dd53b2105953d1a72cd5d6181367d3588964aa01a04c056205a5d419?artifact_id=e1457e4c-5b88-4bc6-930e-5d84b1c0", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/4cca3cf991dc8340b82c03e0a80b7b7a1b136bda...c96bbe5f1b3c4cf747f77fc9a81210e1fd2c30e4", - "previous_git_commit": "4cca3cf991dc8340b82c03e0a80b7b7a1b136bda", - "previous_fingerprint": "ce124c6f3f157fb1e6e456cef8d7e518997b4612bd0f40608a5f2728b2d9a0c7", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:9cd9145@sha256:ce124c6f3f157fb1e6e456cef8d7e518997b4612bd0f40608a5f2728b2d9a0c7", + "diff_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/compare/0f823ea52be90061b69b3f8f6056ca1203ac3d81...01dd4c6406d6655898ef2236875ec9f67091c792", + "previous_git_commit": "0f823ea52be90061b69b3f8f6056ca1203ac3d81", + "previous_fingerprint": "5ee9f19010bb3ae0bbd97098f83c9f652254eda1d1a488a057adedf02af9fbc9", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:68d791f@sha256:5ee9f19010bb3ae0bbd97098f83c9f652254eda1d1a488a057adedf02af9fbc9", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/4cca3cf991dc8340b82c03e0a80b7b7a1b136bda", - "previous_trail_name": "dashboard-ce124c6f3f157fb1e6e456cef8d7e518997b4612bd0f40608a5f2728b2d9a0c7", - "previous_template_reference_name": "dashboard" + "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/0f823ea52be90061b69b3f8f6056ca1203ac3d81", + "previous_trail_name": "promote-all-21", + "previous_template_reference_name": "saver" }, - "commit_lead_time": 4129.0, + "commit_lead_time": 11733.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "dashboard-9aa8b29c6163d8d454fdc63f896d1d0d8dec8f74ad364004e47727db3c1d3349", - "template_reference_name": "dashboard", - "git_commit": "ae002419e71c05cc5c1a285b52afdcef23d927c7", - "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/ae002419e71c05cc5c1a285b52afdcef23d927c7", + "trail_name": "saver-f5909cc8dd53b2105953d1a72cd5d6181367d3588964aa01a04c056205a5d419", + "template_reference_name": "saver", + "git_commit": "00c479764cb9eca038fdaaaef108672d0bb0ed26", + "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/00c479764cb9eca038fdaaaef108672d0bb0ed26", "git_commit_info": { - "sha1": "ae002419e71c05cc5c1a285b52afdcef23d927c7", - "message": "Upgrade workflows to use kosli-cli-setup v5", + "sha1": "00c479764cb9eca038fdaaaef108672d0bb0ed26", + "message": "Shorten the per-vuln attestation name to a 10-char fingerprint\n\n The per-vuln attestation was named snyk-. A full\n SHA-256 fingerprint is 64 hex chars, which renders badly on the\n snyk--per-vuln flow page. The fingerprint is only there to keep two\n builds of the same artifact in one deploy snapshot from clobbering each\n other on the shared per-vuln trail, and the first 10 hex chars (40 bits)\n are far more than enough to keep distinct builds apart.\n\n GitHub Actions expressions have no substring function, so the name can\n no longer be built inline in the job-level env. Compute it in a shell\n step that truncates the fingerprint and exports VULN_ATTESTATION_NAME to\n $GITHUB_ENV, ahead of every step that reads it.\n\n Note: per-vuln trails that already carry a snyk-\n attestation will, on their next run, also gain a snyk-<10-char> one,\n since Kosli keys attestations by name. Only trails created after this\n change will have the short name alone.", "author": "JonJagger ", "branch": "main", - "timestamp": 1780908047.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/ae002419e71c05cc5c1a285b52afdcef23d927c7" + "timestamp": 1781594940.0, + "url": "https://github.com/cyber-dojo/snyk-scanning/commit/00c479764cb9eca038fdaaaef108672d0bb0ed26" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/9aa8b29c6163d8d454fdc63f896d1d0d8dec8f74ad364004e47727db3c1d3349?artifact_id=79068d1a-ad50-4647-8a9e-7aaf8485", + "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/f5909cc8dd53b2105953d1a72cd5d6181367d3588964aa01a04c056205a5d419?artifact_id=4e422cd5-c6ed-4986-b4c4-514ff1ee", "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact", "deployment_diff": null, - "commit_lead_time": -574726.0, + "commit_lead_time": -169693.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] } ], "ecs_context": { - "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/9e212cb69576480b973a361b12389554", + "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/8d72a550952c4512b8b9bd5b74565dfd", "cluster_name": null, "service_name": null } }, { - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/custom-start-points:d3e5850@sha256:9452c2f85c1d539974227f7e201f734934dce7b7dcbd2e056fcf9678454895e6", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/languages-start-points:7e86fed@sha256:b2f51324efc1528e4dda57d235bdbc68d966e1ea23722d5d296f98eefbfc2676", "compliant": true, "deployments": [], "policy_decisions": [ @@ -4091,24 +3966,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "custom-start-points-ci", - "trail_name": "d3e5850912655f2b18a68129f5f3a6480fe305ef", + "flow_name": "languages-start-points-ci", + "trail_name": "7e86fede3e42d573de92fed483559b8317ce2dda", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "languages-start-points-b2f51324efc1528e4dda57d235bdbc68d966e1ea23722d5d296f98eefbfc2676", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "custom-start-points-9452c2f85c1d539974227f7e201f734934dce7b7dcbd2e056fcf9678454895e6", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -4116,7 +3991,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "custom-start-points-9452c2f85c1d539974227f7e201f734934dce7b7dcbd2e056fcf9678454895e6", + "trail_name": "languages-start-points-b2f51324efc1528e4dda57d235bdbc68d966e1ea23722d5d296f98eefbfc2676", "artifact_status": null } } @@ -4136,24 +4011,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "custom-start-points-ci", - "trail_name": "d3e5850912655f2b18a68129f5f3a6480fe305ef", + "flow_name": "languages-start-points-ci", + "trail_name": "7e86fede3e42d573de92fed483559b8317ce2dda", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "languages-start-points-b2f51324efc1528e4dda57d235bdbc68d966e1ea23722d5d296f98eefbfc2676", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "custom-start-points-9452c2f85c1d539974227f7e201f734934dce7b7dcbd2e056fcf9678454895e6", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": "COMPLIANT" } }, @@ -4161,7 +4036,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "custom-start-points-9452c2f85c1d539974227f7e201f734934dce7b7dcbd2e056fcf9678454895e6", + "trail_name": "languages-start-points-b2f51324efc1528e4dda57d235bdbc68d966e1ea23722d5d296f98eefbfc2676", "artifact_status": "COMPLIANT" } } @@ -4186,24 +4061,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "custom-start-points-ci", - "trail_name": "d3e5850912655f2b18a68129f5f3a6480fe305ef", + "flow_name": "languages-start-points-ci", + "trail_name": "7e86fede3e42d573de92fed483559b8317ce2dda", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "languages-start-points-b2f51324efc1528e4dda57d235bdbc68d966e1ea23722d5d296f98eefbfc2676", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "custom-start-points-9452c2f85c1d539974227f7e201f734934dce7b7dcbd2e056fcf9678454895e6", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -4211,7 +4086,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "custom-start-points-9452c2f85c1d539974227f7e201f734934dce7b7dcbd2e056fcf9678454895e6", + "trail_name": "languages-start-points-b2f51324efc1528e4dda57d235bdbc68d966e1ea23722d5d296f98eefbfc2676", "artifact_status": null } } @@ -4238,24 +4113,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "custom-start-points-ci", - "trail_name": "d3e5850912655f2b18a68129f5f3a6480fe305ef", + "flow_name": "languages-start-points-ci", + "trail_name": "7e86fede3e42d573de92fed483559b8317ce2dda", "artifact_status": null } }, { "type": "rule_satisfied", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "languages-start-points-b2f51324efc1528e4dda57d235bdbc68d966e1ea23722d5d296f98eefbfc2676", "artifact_status": null } }, { "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "custom-start-points-9452c2f85c1d539974227f7e201f734934dce7b7dcbd2e056fcf9678454895e6", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -4263,7 +4138,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "custom-start-points-9452c2f85c1d539974227f7e201f734934dce7b7dcbd2e056fcf9678454895e6", + "trail_name": "languages-start-points-b2f51324efc1528e4dda57d235bdbc68d966e1ea23722d5d296f98eefbfc2676", "artifact_status": null } } @@ -4283,24 +4158,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "custom-start-points-ci", - "trail_name": "d3e5850912655f2b18a68129f5f3a6480fe305ef", + "flow_name": "languages-start-points-ci", + "trail_name": "7e86fede3e42d573de92fed483559b8317ce2dda", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "languages-start-points-b2f51324efc1528e4dda57d235bdbc68d966e1ea23722d5d296f98eefbfc2676", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "custom-start-points-9452c2f85c1d539974227f7e201f734934dce7b7dcbd2e056fcf9678454895e6", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": "COMPLIANT" } }, @@ -4308,7 +4183,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "custom-start-points-9452c2f85c1d539974227f7e201f734934dce7b7dcbd2e056fcf9678454895e6", + "trail_name": "languages-start-points-b2f51324efc1528e4dda57d235bdbc68d966e1ea23722d5d296f98eefbfc2676", "artifact_status": "COMPLIANT" } } @@ -4335,24 +4210,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "custom-start-points-ci", - "trail_name": "d3e5850912655f2b18a68129f5f3a6480fe305ef", + "flow_name": "languages-start-points-ci", + "trail_name": "7e86fede3e42d573de92fed483559b8317ce2dda", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "languages-start-points-b2f51324efc1528e4dda57d235bdbc68d966e1ea23722d5d296f98eefbfc2676", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "custom-start-points-9452c2f85c1d539974227f7e201f734934dce7b7dcbd2e056fcf9678454895e6", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -4360,7 +4235,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "custom-start-points-9452c2f85c1d539974227f7e201f734934dce7b7dcbd2e056fcf9678454895e6", + "trail_name": "languages-start-points-b2f51324efc1528e4dda57d235bdbc68d966e1ea23722d5d296f98eefbfc2676", "artifact_status": null } } @@ -4380,24 +4255,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "custom-start-points-ci", - "trail_name": "d3e5850912655f2b18a68129f5f3a6480fe305ef", + "flow_name": "languages-start-points-ci", + "trail_name": "7e86fede3e42d573de92fed483559b8317ce2dda", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "languages-start-points-b2f51324efc1528e4dda57d235bdbc68d966e1ea23722d5d296f98eefbfc2676", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "custom-start-points-9452c2f85c1d539974227f7e201f734934dce7b7dcbd2e056fcf9678454895e6", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": "COMPLIANT" } }, @@ -4405,7 +4280,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "custom-start-points-9452c2f85c1d539974227f7e201f734934dce7b7dcbd2e056fcf9678454895e6", + "trail_name": "languages-start-points-b2f51324efc1528e4dda57d235bdbc68d966e1ea23722d5d296f98eefbfc2676", "artifact_status": "COMPLIANT" } } @@ -4430,24 +4305,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "custom-start-points-ci", - "trail_name": "d3e5850912655f2b18a68129f5f3a6480fe305ef", + "flow_name": "languages-start-points-ci", + "trail_name": "7e86fede3e42d573de92fed483559b8317ce2dda", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "languages-start-points-b2f51324efc1528e4dda57d235bdbc68d966e1ea23722d5d296f98eefbfc2676", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "custom-start-points-9452c2f85c1d539974227f7e201f734934dce7b7dcbd2e056fcf9678454895e6", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -4455,7 +4330,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "custom-start-points-9452c2f85c1d539974227f7e201f734934dce7b7dcbd2e056fcf9678454895e6", + "trail_name": "languages-start-points-b2f51324efc1528e4dda57d235bdbc68d966e1ea23722d5d296f98eefbfc2676", "artifact_status": null } } @@ -4482,24 +4357,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "custom-start-points-ci", - "trail_name": "d3e5850912655f2b18a68129f5f3a6480fe305ef", + "flow_name": "languages-start-points-ci", + "trail_name": "7e86fede3e42d573de92fed483559b8317ce2dda", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "languages-start-points-b2f51324efc1528e4dda57d235bdbc68d966e1ea23722d5d296f98eefbfc2676", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "custom-start-points-9452c2f85c1d539974227f7e201f734934dce7b7dcbd2e056fcf9678454895e6", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -4507,7 +4382,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "custom-start-points-9452c2f85c1d539974227f7e201f734934dce7b7dcbd2e056fcf9678454895e6", + "trail_name": "languages-start-points-b2f51324efc1528e4dda57d235bdbc68d966e1ea23722d5d296f98eefbfc2676", "artifact_status": null } } @@ -4527,24 +4402,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "custom-start-points-ci", - "trail_name": "d3e5850912655f2b18a68129f5f3a6480fe305ef", + "flow_name": "languages-start-points-ci", + "trail_name": "7e86fede3e42d573de92fed483559b8317ce2dda", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "languages-start-points-b2f51324efc1528e4dda57d235bdbc68d966e1ea23722d5d296f98eefbfc2676", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "custom-start-points-9452c2f85c1d539974227f7e201f734934dce7b7dcbd2e056fcf9678454895e6", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": "COMPLIANT" } }, @@ -4552,7 +4427,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "custom-start-points-9452c2f85c1d539974227f7e201f734934dce7b7dcbd2e056fcf9678454895e6", + "trail_name": "languages-start-points-b2f51324efc1528e4dda57d235bdbc68d966e1ea23722d5d296f98eefbfc2676", "artifact_status": "COMPLIANT" } } @@ -4577,24 +4452,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "custom-start-points-ci", - "trail_name": "d3e5850912655f2b18a68129f5f3a6480fe305ef", + "flow_name": "languages-start-points-ci", + "trail_name": "7e86fede3e42d573de92fed483559b8317ce2dda", "artifact_status": null } }, { - "type": "rule_satisfied", + "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "languages-start-points-b2f51324efc1528e4dda57d235bdbc68d966e1ea23722d5d296f98eefbfc2676", "artifact_status": null } }, { - "type": "rule_not_applicable", + "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "custom-start-points-9452c2f85c1d539974227f7e201f734934dce7b7dcbd2e056fcf9678454895e6", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -4602,7 +4477,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "custom-start-points-9452c2f85c1d539974227f7e201f734934dce7b7dcbd2e056fcf9678454895e6", + "trail_name": "languages-start-points-b2f51324efc1528e4dda57d235bdbc68d966e1ea23722d5d296f98eefbfc2676", "artifact_status": null } } @@ -4629,24 +4504,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "custom-start-points-ci", - "trail_name": "d3e5850912655f2b18a68129f5f3a6480fe305ef", + "flow_name": "languages-start-points-ci", + "trail_name": "7e86fede3e42d573de92fed483559b8317ce2dda", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "languages-start-points-b2f51324efc1528e4dda57d235bdbc68d966e1ea23722d5d296f98eefbfc2676", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "custom-start-points-9452c2f85c1d539974227f7e201f734934dce7b7dcbd2e056fcf9678454895e6", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -4654,7 +4529,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "custom-start-points-9452c2f85c1d539974227f7e201f734934dce7b7dcbd2e056fcf9678454895e6", + "trail_name": "languages-start-points-b2f51324efc1528e4dda57d235bdbc68d966e1ea23722d5d296f98eefbfc2676", "artifact_status": null } } @@ -4680,24 +4555,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "custom-start-points-ci", - "trail_name": "d3e5850912655f2b18a68129f5f3a6480fe305ef", + "flow_name": "languages-start-points-ci", + "trail_name": "7e86fede3e42d573de92fed483559b8317ce2dda", "artifact_status": "COMPLIANT" } }, { - "type": "rule_satisfied", + "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "languages-start-points-b2f51324efc1528e4dda57d235bdbc68d966e1ea23722d5d296f98eefbfc2676", "artifact_status": "COMPLIANT" } }, { - "type": "rule_not_applicable", + "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "custom-start-points-9452c2f85c1d539974227f7e201f734934dce7b7dcbd2e056fcf9678454895e6", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": "COMPLIANT" } }, @@ -4705,7 +4580,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "custom-start-points-9452c2f85c1d539974227f7e201f734934dce7b7dcbd2e056fcf9678454895e6", + "trail_name": "languages-start-points-b2f51324efc1528e4dda57d235bdbc68d966e1ea23722d5d296f98eefbfc2676", "artifact_status": "COMPLIANT" } } @@ -4716,157 +4591,167 @@ kosli get snapshot aws-prod --output=json } ], "reasons_for_incompliance": [], - "fingerprint": "9452c2f85c1d539974227f7e201f734934dce7b7dcbd2e056fcf9678454895e6", + "fingerprint": "b2f51324efc1528e4dda57d235bdbc68d966e1ea23722d5d296f98eefbfc2676", "creationTimestamp": [ - 1780333290 + 1781590480 ], "pods": null, "annotation": { - "type": "changed", + "type": "unchanged", "was": 1, "now": 1 }, - "flow_name": "custom-start-points-ci", - "git_commit": "d3e5850912655f2b18a68129f5f3a6480fe305ef", - "commit_url": "https://github.com/cyber-dojo/custom-start-points/commit/d3e5850912655f2b18a68129f5f3a6480fe305ef", - "html_url": "https://app.kosli.com/cyber-dojo/flows/custom-start-points-ci/artifacts/9452c2f85c1d539974227f7e201f734934dce7b7dcbd2e056fcf9678454895e6?artifact_id=7c413c73-ba1e-4707-b6d3-ced83312", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/custom-start-points-ci", + "flow_name": "languages-start-points-ci", + "git_commit": "7e86fede3e42d573de92fed483559b8317ce2dda", + "commit_url": "https://github.com/cyber-dojo/languages-start-points/commit/7e86fede3e42d573de92fed483559b8317ce2dda", + "html_url": "https://app.kosli.com/cyber-dojo/flows/languages-start-points-ci/artifacts/b2f51324efc1528e4dda57d235bdbc68d966e1ea23722d5d296f98eefbfc2676?artifact_id=8f51b5c2-8561-491c-a91e-248d6452", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/languages-start-points-ci", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/custom-start-points/compare/a300e4c15cff321ef952a60bbc3a4729772a2419...d3e5850912655f2b18a68129f5f3a6480fe305ef", - "previous_git_commit": "a300e4c15cff321ef952a60bbc3a4729772a2419", - "previous_fingerprint": "434d14680ac3762f42c8ee761b801d8202776cf49389572e351955741b89be7d", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/custom-start-points:a300e4c@sha256:434d14680ac3762f42c8ee761b801d8202776cf49389572e351955741b89be7d", + "diff_url": "https://github.com/cyber-dojo/languages-start-points/compare/9513e77858d775950f22173d0afd0634b2ac20b9...7e86fede3e42d573de92fed483559b8317ce2dda", + "previous_git_commit": "9513e77858d775950f22173d0afd0634b2ac20b9", + "previous_fingerprint": "31af583cc43761df4e53ffaabeafb6fa378af6af45f92d9cd12d76e48d4ceb02", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/languages-start-points:9513e77@sha256:31af583cc43761df4e53ffaabeafb6fa378af6af45f92d9cd12d76e48d4ceb02", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/custom-start-points/commit/a300e4c15cff321ef952a60bbc3a4729772a2419", - "previous_trail_name": "a300e4c15cff321ef952a60bbc3a4729772a2419", - "previous_template_reference_name": "custom-start-points" + "previous_git_commit_url": "https://github.com/cyber-dojo/languages-start-points/commit/9513e77858d775950f22173d0afd0634b2ac20b9", + "previous_trail_name": "9513e77858d775950f22173d0afd0634b2ac20b9", + "previous_template_reference_name": "languages-start-points" }, - "commit_lead_time": 376736.0, + "commit_lead_time": 7951.0, "flows": [ { - "flow_name": "custom-start-points-ci", - "trail_name": "d3e5850912655f2b18a68129f5f3a6480fe305ef", - "template_reference_name": "custom-start-points", - "git_commit": "d3e5850912655f2b18a68129f5f3a6480fe305ef", - "commit_url": "https://github.com/cyber-dojo/custom-start-points/commit/d3e5850912655f2b18a68129f5f3a6480fe305ef", + "flow_name": "languages-start-points-ci", + "trail_name": "7e86fede3e42d573de92fed483559b8317ce2dda", + "template_reference_name": "languages-start-points", + "git_commit": "7e86fede3e42d573de92fed483559b8317ce2dda", + "commit_url": "https://github.com/cyber-dojo/languages-start-points/commit/7e86fede3e42d573de92fed483559b8317ce2dda", "git_commit_info": { - "sha1": "d3e5850912655f2b18a68129f5f3a6480fe305ef", - "message": "Merge pull request #116 from cyber-dojo/tidy-workflow\n\nTidy workflow using composite actions", + "sha1": "7e86fede3e42d573de92fed483559b8317ce2dda", + "message": "Merge pull request #217 from cyber-dojo/annotate-build-attestation\n\nAdd --annotate type=build to kosli-attest-artifact", "author": "Jon Jagger ", "branch": "main", - "timestamp": 1779956554.0, - "url": "https://github.com/cyber-dojo/custom-start-points/commit/d3e5850912655f2b18a68129f5f3a6480fe305ef" + "timestamp": 1781417546.0, + "url": "https://github.com/cyber-dojo/languages-start-points/commit/7e86fede3e42d573de92fed483559b8317ce2dda" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/custom-start-points-ci/artifacts/9452c2f85c1d539974227f7e201f734934dce7b7dcbd2e056fcf9678454895e6?artifact_id=7c413c73-ba1e-4707-b6d3-ced83312", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/custom-start-points-ci", + "html_url": "https://app.kosli.com/cyber-dojo/flows/languages-start-points-ci/artifacts/b2f51324efc1528e4dda57d235bdbc68d966e1ea23722d5d296f98eefbfc2676?artifact_id=8f51b5c2-8561-491c-a91e-248d6452", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/languages-start-points-ci", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/custom-start-points/compare/a300e4c15cff321ef952a60bbc3a4729772a2419...d3e5850912655f2b18a68129f5f3a6480fe305ef", - "previous_git_commit": "a300e4c15cff321ef952a60bbc3a4729772a2419", - "previous_fingerprint": "434d14680ac3762f42c8ee761b801d8202776cf49389572e351955741b89be7d", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/custom-start-points:a300e4c@sha256:434d14680ac3762f42c8ee761b801d8202776cf49389572e351955741b89be7d", + "diff_url": "https://github.com/cyber-dojo/languages-start-points/compare/9513e77858d775950f22173d0afd0634b2ac20b9...7e86fede3e42d573de92fed483559b8317ce2dda", + "previous_git_commit": "9513e77858d775950f22173d0afd0634b2ac20b9", + "previous_fingerprint": "31af583cc43761df4e53ffaabeafb6fa378af6af45f92d9cd12d76e48d4ceb02", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/languages-start-points:9513e77@sha256:31af583cc43761df4e53ffaabeafb6fa378af6af45f92d9cd12d76e48d4ceb02", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/custom-start-points/commit/a300e4c15cff321ef952a60bbc3a4729772a2419", - "previous_trail_name": "a300e4c15cff321ef952a60bbc3a4729772a2419", - "previous_template_reference_name": "custom-start-points" + "previous_git_commit_url": "https://github.com/cyber-dojo/languages-start-points/commit/9513e77858d775950f22173d0afd0634b2ac20b9", + "previous_trail_name": "9513e77858d775950f22173d0afd0634b2ac20b9", + "previous_template_reference_name": "languages-start-points" }, - "commit_lead_time": 376736.0, + "commit_lead_time": 7951.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { - "flow_name": "production-promotion", - "trail_name": "promote-all-21", - "template_reference_name": "custom-start-points", - "git_commit": "0f823ea52be90061b69b3f8f6056ca1203ac3d81", - "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/0f823ea52be90061b69b3f8f6056ca1203ac3d81", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "languages-start-points-b2f51324efc1528e4dda57d235bdbc68d966e1ea23722d5d296f98eefbfc2676", + "template_reference_name": "languages-start-points", + "git_commit": "7172cc22125f480a9f12127edb481a4d84aabea3", + "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/7172cc22125f480a9f12127edb481a4d84aabea3", "git_commit_info": { - "sha1": "0f823ea52be90061b69b3f8f6056ca1203ac3d81", - "message": "Bump kosli/setup-cli-action to v5, use latest version", + "sha1": "7172cc22125f480a9f12127edb481a4d84aabea3", + "message": "Add notes on proposed refactoring to detecting a build flow [ci skip]", "author": "JonJagger ", "branch": "main", - "timestamp": 1779364424.0, - "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/0f823ea52be90061b69b3f8f6056ca1203ac3d81" + "timestamp": 1781416288.0, + "url": "https://github.com/cyber-dojo/snyk-scanning/commit/7172cc22125f480a9f12127edb481a4d84aabea3" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/9452c2f85c1d539974227f7e201f734934dce7b7dcbd2e056fcf9678454895e6?artifact_id=48c2d119-e488-4ba6-8c7e-27abb4f5", - "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/b2f51324efc1528e4dda57d235bdbc68d966e1ea23722d5d296f98eefbfc2676?artifact_id=1358dc7a-956e-42d9-94f0-f80d43f4", + "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/5fd1b6bba27771e4c93b8c29b3ff69465dff1c26...0f823ea52be90061b69b3f8f6056ca1203ac3d81", - "previous_git_commit": "5fd1b6bba27771e4c93b8c29b3ff69465dff1c26", - "previous_fingerprint": "434d14680ac3762f42c8ee761b801d8202776cf49389572e351955741b89be7d", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/custom-start-points:a300e4c@sha256:434d14680ac3762f42c8ee761b801d8202776cf49389572e351955741b89be7d", + "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/c96bbe5f1b3c4cf747f77fc9a81210e1fd2c30e4...7172cc22125f480a9f12127edb481a4d84aabea3", + "previous_git_commit": "c96bbe5f1b3c4cf747f77fc9a81210e1fd2c30e4", + "previous_fingerprint": "31af583cc43761df4e53ffaabeafb6fa378af6af45f92d9cd12d76e48d4ceb02", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/languages-start-points:9513e77@sha256:31af583cc43761df4e53ffaabeafb6fa378af6af45f92d9cd12d76e48d4ceb02", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/5fd1b6bba27771e4c93b8c29b3ff69465dff1c26", - "previous_trail_name": "promote-all-18", - "previous_template_reference_name": "custom-start-points" + "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/c96bbe5f1b3c4cf747f77fc9a81210e1fd2c30e4", + "previous_trail_name": "languages-start-points-31af583cc43761df4e53ffaabeafb6fa378af6af45f92d9cd12d76e48d4ceb02", + "previous_template_reference_name": "languages-start-points" }, - "commit_lead_time": 968866.0, + "commit_lead_time": 9209.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "custom-start-points-9452c2f85c1d539974227f7e201f734934dce7b7dcbd2e056fcf9678454895e6", - "template_reference_name": "custom-start-points", - "git_commit": "c96bbe5f1b3c4cf747f77fc9a81210e1fd2c30e4", - "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/c96bbe5f1b3c4cf747f77fc9a81210e1fd2c30e4", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", + "template_reference_name": "languages-start-points", + "git_commit": "01dd4c6406d6655898ef2236875ec9f67091c792", + "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/01dd4c6406d6655898ef2236875ec9f67091c792", "git_commit_info": { - "sha1": "c96bbe5f1b3c4cf747f77fc9a81210e1fd2c30e4", - "message": "Delete dead step to force a trail to have empty template", + "sha1": "01dd4c6406d6655898ef2236875ec9f67091c792", + "message": "Update comment and help text", "author": "JonJagger ", "branch": "main", - "timestamp": 1780329192.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/c96bbe5f1b3c4cf747f77fc9a81210e1fd2c30e4" + "timestamp": 1781413514.0, + "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/01dd4c6406d6655898ef2236875ec9f67091c792" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/9452c2f85c1d539974227f7e201f734934dce7b7dcbd2e056fcf9678454895e6?artifact_id=c151610f-8a0c-4ba7-b38d-b9cbd626", - "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/b2f51324efc1528e4dda57d235bdbc68d966e1ea23722d5d296f98eefbfc2676?artifact_id=829046f2-8834-4970-b5e0-eeb47e59", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/822a5831653b0901ce5256c6e16d7eedb63ebc06...c96bbe5f1b3c4cf747f77fc9a81210e1fd2c30e4", - "previous_git_commit": "822a5831653b0901ce5256c6e16d7eedb63ebc06", - "previous_fingerprint": "434d14680ac3762f42c8ee761b801d8202776cf49389572e351955741b89be7d", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/custom-start-points:a300e4c@sha256:434d14680ac3762f42c8ee761b801d8202776cf49389572e351955741b89be7d", + "diff_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/compare/0f823ea52be90061b69b3f8f6056ca1203ac3d81...01dd4c6406d6655898ef2236875ec9f67091c792", + "previous_git_commit": "0f823ea52be90061b69b3f8f6056ca1203ac3d81", + "previous_fingerprint": "31af583cc43761df4e53ffaabeafb6fa378af6af45f92d9cd12d76e48d4ceb02", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/languages-start-points:9513e77@sha256:31af583cc43761df4e53ffaabeafb6fa378af6af45f92d9cd12d76e48d4ceb02", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/822a5831653b0901ce5256c6e16d7eedb63ebc06", - "previous_trail_name": "custom-start-points-434d14680ac3762f42c8ee761b801d8202776cf49389572e351955741b89be7d", - "previous_template_reference_name": "custom-start-points" + "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/0f823ea52be90061b69b3f8f6056ca1203ac3d81", + "previous_trail_name": "promote-all-21", + "previous_template_reference_name": "languages-start-points" }, - "commit_lead_time": 4098.0, + "commit_lead_time": 11983.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "custom-start-points-9452c2f85c1d539974227f7e201f734934dce7b7dcbd2e056fcf9678454895e6", - "template_reference_name": "custom-start-points", - "git_commit": "ae002419e71c05cc5c1a285b52afdcef23d927c7", - "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/ae002419e71c05cc5c1a285b52afdcef23d927c7", + "trail_name": "languages-start-points-b2f51324efc1528e4dda57d235bdbc68d966e1ea23722d5d296f98eefbfc2676", + "template_reference_name": "languages-start-points", + "git_commit": "00c479764cb9eca038fdaaaef108672d0bb0ed26", + "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/00c479764cb9eca038fdaaaef108672d0bb0ed26", "git_commit_info": { - "sha1": "ae002419e71c05cc5c1a285b52afdcef23d927c7", - "message": "Upgrade workflows to use kosli-cli-setup v5", + "sha1": "00c479764cb9eca038fdaaaef108672d0bb0ed26", + "message": "Shorten the per-vuln attestation name to a 10-char fingerprint\n\n The per-vuln attestation was named snyk-. A full\n SHA-256 fingerprint is 64 hex chars, which renders badly on the\n snyk--per-vuln flow page. The fingerprint is only there to keep two\n builds of the same artifact in one deploy snapshot from clobbering each\n other on the shared per-vuln trail, and the first 10 hex chars (40 bits)\n are far more than enough to keep distinct builds apart.\n\n GitHub Actions expressions have no substring function, so the name can\n no longer be built inline in the job-level env. Compute it in a shell\n step that truncates the fingerprint and exports VULN_ATTESTATION_NAME to\n $GITHUB_ENV, ahead of every step that reads it.\n\n Note: per-vuln trails that already carry a snyk-\n attestation will, on their next run, also gain a snyk-<10-char> one,\n since Kosli keys attestations by name. Only trails created after this\n change will have the short name alone.", "author": "JonJagger ", "branch": "main", - "timestamp": 1780908047.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/ae002419e71c05cc5c1a285b52afdcef23d927c7" + "timestamp": 1781594940.0, + "url": "https://github.com/cyber-dojo/snyk-scanning/commit/00c479764cb9eca038fdaaaef108672d0bb0ed26" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/9452c2f85c1d539974227f7e201f734934dce7b7dcbd2e056fcf9678454895e6?artifact_id=b0c2bef4-6074-4910-9c85-f9132902", + "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/b2f51324efc1528e4dda57d235bdbc68d966e1ea23722d5d296f98eefbfc2676?artifact_id=ff36b479-e375-4c03-8a1e-66d35e93", "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact", - "deployment_diff": null, - "commit_lead_time": -574757.0, + "deployment_diff": { + "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/60fd5bffe45bc9618e81fabf8dd6793f92d10817...00c479764cb9eca038fdaaaef108672d0bb0ed26", + "previous_git_commit": "60fd5bffe45bc9618e81fabf8dd6793f92d10817", + "previous_fingerprint": "61efd6bdd33f8aefaca42f60b29303634cd82c912eecbce570abe2eca9bd20c7", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/languages-start-points:20ff3f9@sha256:61efd6bdd33f8aefaca42f60b29303634cd82c912eecbce570abe2eca9bd20c7", + "previous_artifact_compliance_state": "COMPLIANT", + "previous_running": false, + "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/60fd5bffe45bc9618e81fabf8dd6793f92d10817", + "previous_trail_name": "languages-start-points-61efd6bdd33f8aefaca42f60b29303634cd82c912eecbce570abe2eca9bd20c7", + "previous_template_reference_name": "languages-start-points" + }, + "commit_lead_time": -169443.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] } ], "ecs_context": { - "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/f8dea79e89ef4714a3d069452ce8aea0", + "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/a1f4adbbf9094ef88e2e8f7a05e50a65", "cluster_name": null, "service_name": null } }, { - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/languages-start-points:9513e77@sha256:31af583cc43761df4e53ffaabeafb6fa378af6af45f92d9cd12d76e48d4ceb02", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:7065268@sha256:b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8", "compliant": true, "deployments": [], "policy_decisions": [ @@ -4888,8 +4773,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "languages-start-points-ci", - "trail_name": "9513e77858d775950f22173d0afd0634b2ac20b9", + "flow_name": "nginx-ci", + "trail_name": "706526874659341458da5bb21903a6423c0a5a29", "artifact_status": null } }, @@ -4897,7 +4782,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -4905,7 +4790,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-31af583cc43761df4e53ffaabeafb6fa378af6af45f92d9cd12d76e48d4ceb02", + "trail_name": "nginx-b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8", "artifact_status": null } }, @@ -4913,7 +4798,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-31af583cc43761df4e53ffaabeafb6fa378af6af45f92d9cd12d76e48d4ceb02", + "trail_name": "nginx-b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8", "artifact_status": null } } @@ -4933,8 +4818,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "languages-start-points-ci", - "trail_name": "9513e77858d775950f22173d0afd0634b2ac20b9", + "flow_name": "nginx-ci", + "trail_name": "706526874659341458da5bb21903a6423c0a5a29", "artifact_status": "COMPLIANT" } }, @@ -4942,7 +4827,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "trail_name": "promote-all-23", "artifact_status": "COMPLIANT" } }, @@ -4950,7 +4835,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-31af583cc43761df4e53ffaabeafb6fa378af6af45f92d9cd12d76e48d4ceb02", + "trail_name": "nginx-b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8", "artifact_status": "COMPLIANT" } }, @@ -4958,7 +4843,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-31af583cc43761df4e53ffaabeafb6fa378af6af45f92d9cd12d76e48d4ceb02", + "trail_name": "nginx-b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8", "artifact_status": "COMPLIANT" } } @@ -4983,8 +4868,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "languages-start-points-ci", - "trail_name": "9513e77858d775950f22173d0afd0634b2ac20b9", + "flow_name": "nginx-ci", + "trail_name": "706526874659341458da5bb21903a6423c0a5a29", "artifact_status": null } }, @@ -4992,7 +4877,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -5000,7 +4885,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-31af583cc43761df4e53ffaabeafb6fa378af6af45f92d9cd12d76e48d4ceb02", + "trail_name": "nginx-b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8", "artifact_status": null } }, @@ -5008,7 +4893,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-31af583cc43761df4e53ffaabeafb6fa378af6af45f92d9cd12d76e48d4ceb02", + "trail_name": "nginx-b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8", "artifact_status": null } } @@ -5035,8 +4920,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "languages-start-points-ci", - "trail_name": "9513e77858d775950f22173d0afd0634b2ac20b9", + "flow_name": "nginx-ci", + "trail_name": "706526874659341458da5bb21903a6423c0a5a29", "artifact_status": null } }, @@ -5044,7 +4929,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -5052,7 +4937,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "languages-start-points-31af583cc43761df4e53ffaabeafb6fa378af6af45f92d9cd12d76e48d4ceb02", + "trail_name": "nginx-b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8", "artifact_status": null } }, @@ -5060,7 +4945,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "languages-start-points-31af583cc43761df4e53ffaabeafb6fa378af6af45f92d9cd12d76e48d4ceb02", + "trail_name": "nginx-b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8", "artifact_status": null } } @@ -5080,8 +4965,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "languages-start-points-ci", - "trail_name": "9513e77858d775950f22173d0afd0634b2ac20b9", + "flow_name": "nginx-ci", + "trail_name": "706526874659341458da5bb21903a6423c0a5a29", "artifact_status": "COMPLIANT" } }, @@ -5089,7 +4974,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "trail_name": "promote-all-23", "artifact_status": "COMPLIANT" } }, @@ -5097,7 +4982,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-31af583cc43761df4e53ffaabeafb6fa378af6af45f92d9cd12d76e48d4ceb02", + "trail_name": "nginx-b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8", "artifact_status": "COMPLIANT" } }, @@ -5105,7 +4990,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-31af583cc43761df4e53ffaabeafb6fa378af6af45f92d9cd12d76e48d4ceb02", + "trail_name": "nginx-b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8", "artifact_status": "COMPLIANT" } } @@ -5132,8 +5017,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "languages-start-points-ci", - "trail_name": "9513e77858d775950f22173d0afd0634b2ac20b9", + "flow_name": "nginx-ci", + "trail_name": "706526874659341458da5bb21903a6423c0a5a29", "artifact_status": null } }, @@ -5141,7 +5026,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -5149,7 +5034,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-31af583cc43761df4e53ffaabeafb6fa378af6af45f92d9cd12d76e48d4ceb02", + "trail_name": "nginx-b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8", "artifact_status": null } }, @@ -5157,7 +5042,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-31af583cc43761df4e53ffaabeafb6fa378af6af45f92d9cd12d76e48d4ceb02", + "trail_name": "nginx-b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8", "artifact_status": null } } @@ -5177,8 +5062,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "languages-start-points-ci", - "trail_name": "9513e77858d775950f22173d0afd0634b2ac20b9", + "flow_name": "nginx-ci", + "trail_name": "706526874659341458da5bb21903a6423c0a5a29", "artifact_status": "COMPLIANT" } }, @@ -5186,7 +5071,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "trail_name": "promote-all-23", "artifact_status": "COMPLIANT" } }, @@ -5194,7 +5079,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-31af583cc43761df4e53ffaabeafb6fa378af6af45f92d9cd12d76e48d4ceb02", + "trail_name": "nginx-b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8", "artifact_status": "COMPLIANT" } }, @@ -5202,7 +5087,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-31af583cc43761df4e53ffaabeafb6fa378af6af45f92d9cd12d76e48d4ceb02", + "trail_name": "nginx-b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8", "artifact_status": "COMPLIANT" } } @@ -5227,8 +5112,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "languages-start-points-ci", - "trail_name": "9513e77858d775950f22173d0afd0634b2ac20b9", + "flow_name": "nginx-ci", + "trail_name": "706526874659341458da5bb21903a6423c0a5a29", "artifact_status": null } }, @@ -5236,7 +5121,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -5244,7 +5129,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-31af583cc43761df4e53ffaabeafb6fa378af6af45f92d9cd12d76e48d4ceb02", + "trail_name": "nginx-b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8", "artifact_status": null } }, @@ -5252,7 +5137,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "languages-start-points-31af583cc43761df4e53ffaabeafb6fa378af6af45f92d9cd12d76e48d4ceb02", + "trail_name": "nginx-b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8", "artifact_status": null } } @@ -5279,8 +5164,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "languages-start-points-ci", - "trail_name": "9513e77858d775950f22173d0afd0634b2ac20b9", + "flow_name": "nginx-ci", + "trail_name": "706526874659341458da5bb21903a6423c0a5a29", "artifact_status": null } }, @@ -5288,7 +5173,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -5296,7 +5181,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-31af583cc43761df4e53ffaabeafb6fa378af6af45f92d9cd12d76e48d4ceb02", + "trail_name": "nginx-b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8", "artifact_status": null } }, @@ -5304,7 +5189,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-31af583cc43761df4e53ffaabeafb6fa378af6af45f92d9cd12d76e48d4ceb02", + "trail_name": "nginx-b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8", "artifact_status": null } } @@ -5324,8 +5209,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "languages-start-points-ci", - "trail_name": "9513e77858d775950f22173d0afd0634b2ac20b9", + "flow_name": "nginx-ci", + "trail_name": "706526874659341458da5bb21903a6423c0a5a29", "artifact_status": "COMPLIANT" } }, @@ -5333,7 +5218,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "trail_name": "promote-all-23", "artifact_status": "COMPLIANT" } }, @@ -5341,7 +5226,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-31af583cc43761df4e53ffaabeafb6fa378af6af45f92d9cd12d76e48d4ceb02", + "trail_name": "nginx-b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8", "artifact_status": "COMPLIANT" } }, @@ -5349,7 +5234,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-31af583cc43761df4e53ffaabeafb6fa378af6af45f92d9cd12d76e48d4ceb02", + "trail_name": "nginx-b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8", "artifact_status": "COMPLIANT" } } @@ -5374,8 +5259,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "languages-start-points-ci", - "trail_name": "9513e77858d775950f22173d0afd0634b2ac20b9", + "flow_name": "nginx-ci", + "trail_name": "706526874659341458da5bb21903a6423c0a5a29", "artifact_status": null } }, @@ -5383,7 +5268,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -5391,7 +5276,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-31af583cc43761df4e53ffaabeafb6fa378af6af45f92d9cd12d76e48d4ceb02", + "trail_name": "nginx-b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8", "artifact_status": null } }, @@ -5399,7 +5284,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-31af583cc43761df4e53ffaabeafb6fa378af6af45f92d9cd12d76e48d4ceb02", + "trail_name": "nginx-b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8", "artifact_status": null } } @@ -5426,8 +5311,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "languages-start-points-ci", - "trail_name": "9513e77858d775950f22173d0afd0634b2ac20b9", + "flow_name": "nginx-ci", + "trail_name": "706526874659341458da5bb21903a6423c0a5a29", "artifact_status": null } }, @@ -5435,7 +5320,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -5443,7 +5328,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-31af583cc43761df4e53ffaabeafb6fa378af6af45f92d9cd12d76e48d4ceb02", + "trail_name": "nginx-b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8", "artifact_status": null } }, @@ -5451,7 +5336,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-31af583cc43761df4e53ffaabeafb6fa378af6af45f92d9cd12d76e48d4ceb02", + "trail_name": "nginx-b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8", "artifact_status": null } } @@ -5477,8 +5362,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "languages-start-points-ci", - "trail_name": "9513e77858d775950f22173d0afd0634b2ac20b9", + "flow_name": "nginx-ci", + "trail_name": "706526874659341458da5bb21903a6423c0a5a29", "artifact_status": "COMPLIANT" } }, @@ -5486,7 +5371,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "trail_name": "promote-all-23", "artifact_status": "COMPLIANT" } }, @@ -5494,7 +5379,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-31af583cc43761df4e53ffaabeafb6fa378af6af45f92d9cd12d76e48d4ceb02", + "trail_name": "nginx-b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8", "artifact_status": "COMPLIANT" } }, @@ -5502,7 +5387,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "languages-start-points-31af583cc43761df4e53ffaabeafb6fa378af6af45f92d9cd12d76e48d4ceb02", + "trail_name": "nginx-b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8", "artifact_status": "COMPLIANT" } } @@ -5513,167 +5398,157 @@ kosli get snapshot aws-prod --output=json } ], "reasons_for_incompliance": [], - "fingerprint": "31af583cc43761df4e53ffaabeafb6fa378af6af45f92d9cd12d76e48d4ceb02", + "fingerprint": "b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8", "creationTimestamp": [ - 1780333031 + 1781590473 ], "pods": null, "annotation": { - "type": "changed", + "type": "unchanged", "was": 1, "now": 1 }, - "flow_name": "languages-start-points-ci", - "git_commit": "9513e77858d775950f22173d0afd0634b2ac20b9", - "commit_url": "https://github.com/cyber-dojo/languages-start-points/commit/9513e77858d775950f22173d0afd0634b2ac20b9", - "html_url": "https://app.kosli.com/cyber-dojo/flows/languages-start-points-ci/artifacts/31af583cc43761df4e53ffaabeafb6fa378af6af45f92d9cd12d76e48d4ceb02?artifact_id=ed68d54a-2549-4822-9dc5-96dad6c1", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/languages-start-points-ci", + "flow_name": "nginx-ci", + "git_commit": "706526874659341458da5bb21903a6423c0a5a29", + "commit_url": "https://github.com/cyber-dojo/nginx/commit/706526874659341458da5bb21903a6423c0a5a29", + "html_url": "https://app.kosli.com/cyber-dojo/flows/nginx-ci/artifacts/b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8?artifact_id=0438395b-a9b0-4ee5-9b30-8cd146d9", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/nginx-ci", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/languages-start-points/compare/16d155bdd120fe5a926504069dd18a98b8275fa8...9513e77858d775950f22173d0afd0634b2ac20b9", - "previous_git_commit": "16d155bdd120fe5a926504069dd18a98b8275fa8", - "previous_fingerprint": "83a90c5556aa83e18b36983267ed9d160f665cb35d9fb0572b0f7c410de5e2bd", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/languages-start-points:16d155b@sha256:83a90c5556aa83e18b36983267ed9d160f665cb35d9fb0572b0f7c410de5e2bd", + "diff_url": "https://github.com/cyber-dojo/nginx/compare/cdaac807f3282bd0bba056d906d5536074297a04...706526874659341458da5bb21903a6423c0a5a29", + "previous_git_commit": "cdaac807f3282bd0bba056d906d5536074297a04", + "previous_fingerprint": "da15b4868e6a3d31647edb8be04f3ef47878315068bd5f15ea78c8da09eba2b4", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:cdaac80@sha256:da15b4868e6a3d31647edb8be04f3ef47878315068bd5f15ea78c8da09eba2b4", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/languages-start-points/commit/16d155bdd120fe5a926504069dd18a98b8275fa8", - "previous_trail_name": "16d155bdd120fe5a926504069dd18a98b8275fa8", - "previous_template_reference_name": "languages-start-points" + "previous_git_commit_url": "https://github.com/cyber-dojo/nginx/commit/cdaac807f3282bd0bba056d906d5536074297a04", + "previous_trail_name": "cdaac807f3282bd0bba056d906d5536074297a04", + "previous_template_reference_name": "nginx" }, - "commit_lead_time": 376070.0, + "commit_lead_time": 8575.0, "flows": [ { - "flow_name": "languages-start-points-ci", - "trail_name": "9513e77858d775950f22173d0afd0634b2ac20b9", - "template_reference_name": "languages-start-points", - "git_commit": "9513e77858d775950f22173d0afd0634b2ac20b9", - "commit_url": "https://github.com/cyber-dojo/languages-start-points/commit/9513e77858d775950f22173d0afd0634b2ac20b9", + "flow_name": "nginx-ci", + "trail_name": "706526874659341458da5bb21903a6423c0a5a29", + "template_reference_name": "nginx", + "git_commit": "706526874659341458da5bb21903a6423c0a5a29", + "commit_url": "https://github.com/cyber-dojo/nginx/commit/706526874659341458da5bb21903a6423c0a5a29", "git_commit_info": { - "sha1": "9513e77858d775950f22173d0afd0634b2ac20b9", - "message": "Merge pull request #214 from cyber-dojo/tidy-workflow\n\nTidy workflow using composite actions", + "sha1": "706526874659341458da5bb21903a6423c0a5a29", + "message": "Merge pull request #132 from cyber-dojo/force-ci-run-34\n\nRun ci workflow to pickup new --annotation in secure-docker-build.yml", "author": "Jon Jagger ", - "branch": "main", - "timestamp": 1779956961.0, - "url": "https://github.com/cyber-dojo/languages-start-points/commit/9513e77858d775950f22173d0afd0634b2ac20b9" + "branch": "", + "timestamp": 1781416577.0, + "url": "https://github.com/cyber-dojo/nginx/commit/706526874659341458da5bb21903a6423c0a5a29" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/languages-start-points-ci/artifacts/31af583cc43761df4e53ffaabeafb6fa378af6af45f92d9cd12d76e48d4ceb02?artifact_id=ed68d54a-2549-4822-9dc5-96dad6c1", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/languages-start-points-ci", + "html_url": "https://app.kosli.com/cyber-dojo/flows/nginx-ci/artifacts/b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8?artifact_id=0438395b-a9b0-4ee5-9b30-8cd146d9", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/nginx-ci", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/languages-start-points/compare/16d155bdd120fe5a926504069dd18a98b8275fa8...9513e77858d775950f22173d0afd0634b2ac20b9", - "previous_git_commit": "16d155bdd120fe5a926504069dd18a98b8275fa8", - "previous_fingerprint": "83a90c5556aa83e18b36983267ed9d160f665cb35d9fb0572b0f7c410de5e2bd", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/languages-start-points:16d155b@sha256:83a90c5556aa83e18b36983267ed9d160f665cb35d9fb0572b0f7c410de5e2bd", + "diff_url": "https://github.com/cyber-dojo/nginx/compare/cdaac807f3282bd0bba056d906d5536074297a04...706526874659341458da5bb21903a6423c0a5a29", + "previous_git_commit": "cdaac807f3282bd0bba056d906d5536074297a04", + "previous_fingerprint": "da15b4868e6a3d31647edb8be04f3ef47878315068bd5f15ea78c8da09eba2b4", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:cdaac80@sha256:da15b4868e6a3d31647edb8be04f3ef47878315068bd5f15ea78c8da09eba2b4", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/languages-start-points/commit/16d155bdd120fe5a926504069dd18a98b8275fa8", - "previous_trail_name": "16d155bdd120fe5a926504069dd18a98b8275fa8", - "previous_template_reference_name": "languages-start-points" + "previous_git_commit_url": "https://github.com/cyber-dojo/nginx/commit/cdaac807f3282bd0bba056d906d5536074297a04", + "previous_trail_name": "cdaac807f3282bd0bba056d906d5536074297a04", + "previous_template_reference_name": "nginx" }, - "commit_lead_time": 376070.0, + "commit_lead_time": 8575.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "production-promotion", - "trail_name": "promote-all-21", - "template_reference_name": "languages-start-points", - "git_commit": "0f823ea52be90061b69b3f8f6056ca1203ac3d81", - "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/0f823ea52be90061b69b3f8f6056ca1203ac3d81", + "trail_name": "promote-all-23", + "template_reference_name": "nginx", + "git_commit": "01dd4c6406d6655898ef2236875ec9f67091c792", + "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/01dd4c6406d6655898ef2236875ec9f67091c792", "git_commit_info": { - "sha1": "0f823ea52be90061b69b3f8f6056ca1203ac3d81", - "message": "Bump kosli/setup-cli-action to v5, use latest version", + "sha1": "01dd4c6406d6655898ef2236875ec9f67091c792", + "message": "Update comment and help text", "author": "JonJagger ", "branch": "main", - "timestamp": 1779364424.0, - "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/0f823ea52be90061b69b3f8f6056ca1203ac3d81" + "timestamp": 1781413514.0, + "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/01dd4c6406d6655898ef2236875ec9f67091c792" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/31af583cc43761df4e53ffaabeafb6fa378af6af45f92d9cd12d76e48d4ceb02?artifact_id=8ef65f13-3f37-4cfd-8b36-dcf53855", + "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8?artifact_id=3c4dd232-3468-4345-a062-0bc37fd1", "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/5fd1b6bba27771e4c93b8c29b3ff69465dff1c26...0f823ea52be90061b69b3f8f6056ca1203ac3d81", - "previous_git_commit": "5fd1b6bba27771e4c93b8c29b3ff69465dff1c26", - "previous_fingerprint": "83a90c5556aa83e18b36983267ed9d160f665cb35d9fb0572b0f7c410de5e2bd", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/languages-start-points:16d155b@sha256:83a90c5556aa83e18b36983267ed9d160f665cb35d9fb0572b0f7c410de5e2bd", + "diff_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/compare/8d5d7b8b19d97204eb0701a813fe53c68c21ccd0...01dd4c6406d6655898ef2236875ec9f67091c792", + "previous_git_commit": "8d5d7b8b19d97204eb0701a813fe53c68c21ccd0", + "previous_fingerprint": "da15b4868e6a3d31647edb8be04f3ef47878315068bd5f15ea78c8da09eba2b4", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:cdaac80@sha256:da15b4868e6a3d31647edb8be04f3ef47878315068bd5f15ea78c8da09eba2b4", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/5fd1b6bba27771e4c93b8c29b3ff69465dff1c26", - "previous_trail_name": "promote-all-18", - "previous_template_reference_name": "languages-start-points" + "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/8d5d7b8b19d97204eb0701a813fe53c68c21ccd0", + "previous_trail_name": "promotion-one-64", + "previous_template_reference_name": "nginx" }, - "commit_lead_time": 968607.0, + "commit_lead_time": 11638.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "languages-start-points-31af583cc43761df4e53ffaabeafb6fa378af6af45f92d9cd12d76e48d4ceb02", - "template_reference_name": "languages-start-points", - "git_commit": "c96bbe5f1b3c4cf747f77fc9a81210e1fd2c30e4", - "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/c96bbe5f1b3c4cf747f77fc9a81210e1fd2c30e4", + "trail_name": "nginx-b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8", + "template_reference_name": "nginx", + "git_commit": "00c479764cb9eca038fdaaaef108672d0bb0ed26", + "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/00c479764cb9eca038fdaaaef108672d0bb0ed26", "git_commit_info": { - "sha1": "c96bbe5f1b3c4cf747f77fc9a81210e1fd2c30e4", - "message": "Delete dead step to force a trail to have empty template", + "sha1": "00c479764cb9eca038fdaaaef108672d0bb0ed26", + "message": "Shorten the per-vuln attestation name to a 10-char fingerprint\n\n The per-vuln attestation was named snyk-. A full\n SHA-256 fingerprint is 64 hex chars, which renders badly on the\n snyk--per-vuln flow page. The fingerprint is only there to keep two\n builds of the same artifact in one deploy snapshot from clobbering each\n other on the shared per-vuln trail, and the first 10 hex chars (40 bits)\n are far more than enough to keep distinct builds apart.\n\n GitHub Actions expressions have no substring function, so the name can\n no longer be built inline in the job-level env. Compute it in a shell\n step that truncates the fingerprint and exports VULN_ATTESTATION_NAME to\n $GITHUB_ENV, ahead of every step that reads it.\n\n Note: per-vuln trails that already carry a snyk-\n attestation will, on their next run, also gain a snyk-<10-char> one,\n since Kosli keys attestations by name. Only trails created after this\n change will have the short name alone.", "author": "JonJagger ", "branch": "main", - "timestamp": 1780329192.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/c96bbe5f1b3c4cf747f77fc9a81210e1fd2c30e4" + "timestamp": 1781594940.0, + "url": "https://github.com/cyber-dojo/snyk-scanning/commit/00c479764cb9eca038fdaaaef108672d0bb0ed26" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/31af583cc43761df4e53ffaabeafb6fa378af6af45f92d9cd12d76e48d4ceb02?artifact_id=f597c1ad-e9f8-4c30-8af7-411b5a0d", + "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8?artifact_id=12da50dd-c783-4045-af67-71a8b222", "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/822a5831653b0901ce5256c6e16d7eedb63ebc06...c96bbe5f1b3c4cf747f77fc9a81210e1fd2c30e4", - "previous_git_commit": "822a5831653b0901ce5256c6e16d7eedb63ebc06", - "previous_fingerprint": "83a90c5556aa83e18b36983267ed9d160f665cb35d9fb0572b0f7c410de5e2bd", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/languages-start-points:16d155b@sha256:83a90c5556aa83e18b36983267ed9d160f665cb35d9fb0572b0f7c410de5e2bd", + "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/c96bbe5f1b3c4cf747f77fc9a81210e1fd2c30e4...00c479764cb9eca038fdaaaef108672d0bb0ed26", + "previous_git_commit": "c96bbe5f1b3c4cf747f77fc9a81210e1fd2c30e4", + "previous_fingerprint": "df695792109b605031fbe0c33d89afa13b3fb26b513e7576f5201e991fd95a62", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:ebf104f@sha256:df695792109b605031fbe0c33d89afa13b3fb26b513e7576f5201e991fd95a62", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/822a5831653b0901ce5256c6e16d7eedb63ebc06", - "previous_trail_name": "languages-start-points-83a90c5556aa83e18b36983267ed9d160f665cb35d9fb0572b0f7c410de5e2bd", - "previous_template_reference_name": "languages-start-points" + "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/c96bbe5f1b3c4cf747f77fc9a81210e1fd2c30e4", + "previous_trail_name": "nginx-df695792109b605031fbe0c33d89afa13b3fb26b513e7576f5201e991fd95a62", + "previous_template_reference_name": "nginx" }, - "commit_lead_time": 3839.0, + "commit_lead_time": -169788.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "languages-start-points-31af583cc43761df4e53ffaabeafb6fa378af6af45f92d9cd12d76e48d4ceb02", - "template_reference_name": "languages-start-points", - "git_commit": "ae002419e71c05cc5c1a285b52afdcef23d927c7", - "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/ae002419e71c05cc5c1a285b52afdcef23d927c7", + "trail_name": "nginx-b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8", + "template_reference_name": "nginx", + "git_commit": "00c479764cb9eca038fdaaaef108672d0bb0ed26", + "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/00c479764cb9eca038fdaaaef108672d0bb0ed26", "git_commit_info": { - "sha1": "ae002419e71c05cc5c1a285b52afdcef23d927c7", - "message": "Upgrade workflows to use kosli-cli-setup v5", + "sha1": "00c479764cb9eca038fdaaaef108672d0bb0ed26", + "message": "Shorten the per-vuln attestation name to a 10-char fingerprint\n\n The per-vuln attestation was named snyk-. A full\n SHA-256 fingerprint is 64 hex chars, which renders badly on the\n snyk--per-vuln flow page. The fingerprint is only there to keep two\n builds of the same artifact in one deploy snapshot from clobbering each\n other on the shared per-vuln trail, and the first 10 hex chars (40 bits)\n are far more than enough to keep distinct builds apart.\n\n GitHub Actions expressions have no substring function, so the name can\n no longer be built inline in the job-level env. Compute it in a shell\n step that truncates the fingerprint and exports VULN_ATTESTATION_NAME to\n $GITHUB_ENV, ahead of every step that reads it.\n\n Note: per-vuln trails that already carry a snyk-\n attestation will, on their next run, also gain a snyk-<10-char> one,\n since Kosli keys attestations by name. Only trails created after this\n change will have the short name alone.", "author": "JonJagger ", "branch": "main", - "timestamp": 1780908047.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/ae002419e71c05cc5c1a285b52afdcef23d927c7" + "timestamp": 1781594940.0, + "url": "https://github.com/cyber-dojo/snyk-scanning/commit/00c479764cb9eca038fdaaaef108672d0bb0ed26" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/31af583cc43761df4e53ffaabeafb6fa378af6af45f92d9cd12d76e48d4ceb02?artifact_id=c7e63ee7-893c-415e-8129-c8d62efd", + "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8?artifact_id=655894cf-1a00-46fb-a6e9-5b538d4f", "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/60fd5bffe45bc9618e81fabf8dd6793f92d10817...ae002419e71c05cc5c1a285b52afdcef23d927c7", - "previous_git_commit": "60fd5bffe45bc9618e81fabf8dd6793f92d10817", - "previous_fingerprint": "61efd6bdd33f8aefaca42f60b29303634cd82c912eecbce570abe2eca9bd20c7", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/languages-start-points:20ff3f9@sha256:61efd6bdd33f8aefaca42f60b29303634cd82c912eecbce570abe2eca9bd20c7", - "previous_artifact_compliance_state": "COMPLIANT", - "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/60fd5bffe45bc9618e81fabf8dd6793f92d10817", - "previous_trail_name": "languages-start-points-61efd6bdd33f8aefaca42f60b29303634cd82c912eecbce570abe2eca9bd20c7", - "previous_template_reference_name": "languages-start-points" - }, - "commit_lead_time": -575016.0, + "deployment_diff": null, + "commit_lead_time": -169788.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] } ], "ecs_context": { - "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/d7d2ece04ce2423aaa9dd7e9c25c1d30", + "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/f28f3838890949eb9661023a6ac67c44", "cluster_name": null, "service_name": null } }, { - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:68d791f@sha256:5ee9f19010bb3ae0bbd97098f83c9f652254eda1d1a488a057adedf02af9fbc9", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:87f560f@sha256:45513c642ba191052bde056d56eeba8b06b0346eb444ec0008bd59bc0581bb8c", "compliant": true, "deployments": [], "policy_decisions": [ @@ -5695,24 +5570,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "saver-ci", - "trail_name": "68d791f93dc161fd8dba63e49b7fe9f909cbe758", + "flow_name": "dashboard-ci", + "trail_name": "87f560f87fb2bc242ee5c58d74d0e209d71cd338", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "dashboard-45513c642ba191052bde056d56eeba8b06b0346eb444ec0008bd59bc0581bb8c", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "saver-5ee9f19010bb3ae0bbd97098f83c9f652254eda1d1a488a057adedf02af9fbc9", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -5720,7 +5595,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "saver-5ee9f19010bb3ae0bbd97098f83c9f652254eda1d1a488a057adedf02af9fbc9", + "trail_name": "dashboard-45513c642ba191052bde056d56eeba8b06b0346eb444ec0008bd59bc0581bb8c", "artifact_status": null } } @@ -5740,24 +5615,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "saver-ci", - "trail_name": "68d791f93dc161fd8dba63e49b7fe9f909cbe758", + "flow_name": "dashboard-ci", + "trail_name": "87f560f87fb2bc242ee5c58d74d0e209d71cd338", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "dashboard-45513c642ba191052bde056d56eeba8b06b0346eb444ec0008bd59bc0581bb8c", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "saver-5ee9f19010bb3ae0bbd97098f83c9f652254eda1d1a488a057adedf02af9fbc9", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": "COMPLIANT" } }, @@ -5765,7 +5640,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "saver-5ee9f19010bb3ae0bbd97098f83c9f652254eda1d1a488a057adedf02af9fbc9", + "trail_name": "dashboard-45513c642ba191052bde056d56eeba8b06b0346eb444ec0008bd59bc0581bb8c", "artifact_status": "COMPLIANT" } } @@ -5790,24 +5665,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "saver-ci", - "trail_name": "68d791f93dc161fd8dba63e49b7fe9f909cbe758", + "flow_name": "dashboard-ci", + "trail_name": "87f560f87fb2bc242ee5c58d74d0e209d71cd338", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "dashboard-45513c642ba191052bde056d56eeba8b06b0346eb444ec0008bd59bc0581bb8c", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "saver-5ee9f19010bb3ae0bbd97098f83c9f652254eda1d1a488a057adedf02af9fbc9", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -5815,7 +5690,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "saver-5ee9f19010bb3ae0bbd97098f83c9f652254eda1d1a488a057adedf02af9fbc9", + "trail_name": "dashboard-45513c642ba191052bde056d56eeba8b06b0346eb444ec0008bd59bc0581bb8c", "artifact_status": null } } @@ -5842,24 +5717,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "saver-ci", - "trail_name": "68d791f93dc161fd8dba63e49b7fe9f909cbe758", + "flow_name": "dashboard-ci", + "trail_name": "87f560f87fb2bc242ee5c58d74d0e209d71cd338", "artifact_status": null } }, { "type": "rule_satisfied", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "dashboard-45513c642ba191052bde056d56eeba8b06b0346eb444ec0008bd59bc0581bb8c", "artifact_status": null } }, { "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "saver-5ee9f19010bb3ae0bbd97098f83c9f652254eda1d1a488a057adedf02af9fbc9", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -5867,7 +5742,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "saver-5ee9f19010bb3ae0bbd97098f83c9f652254eda1d1a488a057adedf02af9fbc9", + "trail_name": "dashboard-45513c642ba191052bde056d56eeba8b06b0346eb444ec0008bd59bc0581bb8c", "artifact_status": null } } @@ -5887,24 +5762,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "saver-ci", - "trail_name": "68d791f93dc161fd8dba63e49b7fe9f909cbe758", + "flow_name": "dashboard-ci", + "trail_name": "87f560f87fb2bc242ee5c58d74d0e209d71cd338", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "dashboard-45513c642ba191052bde056d56eeba8b06b0346eb444ec0008bd59bc0581bb8c", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "saver-5ee9f19010bb3ae0bbd97098f83c9f652254eda1d1a488a057adedf02af9fbc9", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": "COMPLIANT" } }, @@ -5912,7 +5787,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "saver-5ee9f19010bb3ae0bbd97098f83c9f652254eda1d1a488a057adedf02af9fbc9", + "trail_name": "dashboard-45513c642ba191052bde056d56eeba8b06b0346eb444ec0008bd59bc0581bb8c", "artifact_status": "COMPLIANT" } } @@ -5939,24 +5814,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "saver-ci", - "trail_name": "68d791f93dc161fd8dba63e49b7fe9f909cbe758", + "flow_name": "dashboard-ci", + "trail_name": "87f560f87fb2bc242ee5c58d74d0e209d71cd338", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "dashboard-45513c642ba191052bde056d56eeba8b06b0346eb444ec0008bd59bc0581bb8c", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "saver-5ee9f19010bb3ae0bbd97098f83c9f652254eda1d1a488a057adedf02af9fbc9", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -5964,7 +5839,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "saver-5ee9f19010bb3ae0bbd97098f83c9f652254eda1d1a488a057adedf02af9fbc9", + "trail_name": "dashboard-45513c642ba191052bde056d56eeba8b06b0346eb444ec0008bd59bc0581bb8c", "artifact_status": null } } @@ -5984,24 +5859,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "saver-ci", - "trail_name": "68d791f93dc161fd8dba63e49b7fe9f909cbe758", + "flow_name": "dashboard-ci", + "trail_name": "87f560f87fb2bc242ee5c58d74d0e209d71cd338", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "dashboard-45513c642ba191052bde056d56eeba8b06b0346eb444ec0008bd59bc0581bb8c", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "saver-5ee9f19010bb3ae0bbd97098f83c9f652254eda1d1a488a057adedf02af9fbc9", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": "COMPLIANT" } }, @@ -6009,7 +5884,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "saver-5ee9f19010bb3ae0bbd97098f83c9f652254eda1d1a488a057adedf02af9fbc9", + "trail_name": "dashboard-45513c642ba191052bde056d56eeba8b06b0346eb444ec0008bd59bc0581bb8c", "artifact_status": "COMPLIANT" } } @@ -6034,24 +5909,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "saver-ci", - "trail_name": "68d791f93dc161fd8dba63e49b7fe9f909cbe758", + "flow_name": "dashboard-ci", + "trail_name": "87f560f87fb2bc242ee5c58d74d0e209d71cd338", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "dashboard-45513c642ba191052bde056d56eeba8b06b0346eb444ec0008bd59bc0581bb8c", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "saver-5ee9f19010bb3ae0bbd97098f83c9f652254eda1d1a488a057adedf02af9fbc9", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -6059,7 +5934,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "saver-5ee9f19010bb3ae0bbd97098f83c9f652254eda1d1a488a057adedf02af9fbc9", + "trail_name": "dashboard-45513c642ba191052bde056d56eeba8b06b0346eb444ec0008bd59bc0581bb8c", "artifact_status": null } } @@ -6086,24 +5961,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "saver-ci", - "trail_name": "68d791f93dc161fd8dba63e49b7fe9f909cbe758", + "flow_name": "dashboard-ci", + "trail_name": "87f560f87fb2bc242ee5c58d74d0e209d71cd338", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "dashboard-45513c642ba191052bde056d56eeba8b06b0346eb444ec0008bd59bc0581bb8c", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "saver-5ee9f19010bb3ae0bbd97098f83c9f652254eda1d1a488a057adedf02af9fbc9", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -6111,7 +5986,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "saver-5ee9f19010bb3ae0bbd97098f83c9f652254eda1d1a488a057adedf02af9fbc9", + "trail_name": "dashboard-45513c642ba191052bde056d56eeba8b06b0346eb444ec0008bd59bc0581bb8c", "artifact_status": null } } @@ -6131,24 +6006,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "saver-ci", - "trail_name": "68d791f93dc161fd8dba63e49b7fe9f909cbe758", + "flow_name": "dashboard-ci", + "trail_name": "87f560f87fb2bc242ee5c58d74d0e209d71cd338", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "dashboard-45513c642ba191052bde056d56eeba8b06b0346eb444ec0008bd59bc0581bb8c", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "saver-5ee9f19010bb3ae0bbd97098f83c9f652254eda1d1a488a057adedf02af9fbc9", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": "COMPLIANT" } }, @@ -6156,7 +6031,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "saver-5ee9f19010bb3ae0bbd97098f83c9f652254eda1d1a488a057adedf02af9fbc9", + "trail_name": "dashboard-45513c642ba191052bde056d56eeba8b06b0346eb444ec0008bd59bc0581bb8c", "artifact_status": "COMPLIANT" } } @@ -6181,24 +6056,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "saver-ci", - "trail_name": "68d791f93dc161fd8dba63e49b7fe9f909cbe758", + "flow_name": "dashboard-ci", + "trail_name": "87f560f87fb2bc242ee5c58d74d0e209d71cd338", "artifact_status": null } }, { - "type": "rule_satisfied", + "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "dashboard-45513c642ba191052bde056d56eeba8b06b0346eb444ec0008bd59bc0581bb8c", "artifact_status": null } }, { - "type": "rule_not_applicable", + "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "saver-5ee9f19010bb3ae0bbd97098f83c9f652254eda1d1a488a057adedf02af9fbc9", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -6206,7 +6081,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "saver-5ee9f19010bb3ae0bbd97098f83c9f652254eda1d1a488a057adedf02af9fbc9", + "trail_name": "dashboard-45513c642ba191052bde056d56eeba8b06b0346eb444ec0008bd59bc0581bb8c", "artifact_status": null } } @@ -6233,24 +6108,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "saver-ci", - "trail_name": "68d791f93dc161fd8dba63e49b7fe9f909cbe758", + "flow_name": "dashboard-ci", + "trail_name": "87f560f87fb2bc242ee5c58d74d0e209d71cd338", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "dashboard-45513c642ba191052bde056d56eeba8b06b0346eb444ec0008bd59bc0581bb8c", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "saver-5ee9f19010bb3ae0bbd97098f83c9f652254eda1d1a488a057adedf02af9fbc9", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -6258,7 +6133,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "saver-5ee9f19010bb3ae0bbd97098f83c9f652254eda1d1a488a057adedf02af9fbc9", + "trail_name": "dashboard-45513c642ba191052bde056d56eeba8b06b0346eb444ec0008bd59bc0581bb8c", "artifact_status": null } } @@ -6284,24 +6159,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "saver-ci", - "trail_name": "68d791f93dc161fd8dba63e49b7fe9f909cbe758", + "flow_name": "dashboard-ci", + "trail_name": "87f560f87fb2bc242ee5c58d74d0e209d71cd338", "artifact_status": "COMPLIANT" } }, { - "type": "rule_satisfied", + "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "dashboard-45513c642ba191052bde056d56eeba8b06b0346eb444ec0008bd59bc0581bb8c", "artifact_status": "COMPLIANT" } }, { - "type": "rule_not_applicable", + "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "saver-5ee9f19010bb3ae0bbd97098f83c9f652254eda1d1a488a057adedf02af9fbc9", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": "COMPLIANT" } }, @@ -6309,7 +6184,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "saver-5ee9f19010bb3ae0bbd97098f83c9f652254eda1d1a488a057adedf02af9fbc9", + "trail_name": "dashboard-45513c642ba191052bde056d56eeba8b06b0346eb444ec0008bd59bc0581bb8c", "artifact_status": "COMPLIANT" } } @@ -6320,157 +6195,157 @@ kosli get snapshot aws-prod --output=json } ], "reasons_for_incompliance": [], - "fingerprint": "5ee9f19010bb3ae0bbd97098f83c9f652254eda1d1a488a057adedf02af9fbc9", + "fingerprint": "45513c642ba191052bde056d56eeba8b06b0346eb444ec0008bd59bc0581bb8c", "creationTimestamp": [ - 1780332962 + 1781590471 ], "pods": null, "annotation": { - "type": "changed", + "type": "unchanged", "was": 1, "now": 1 }, - "flow_name": "saver-ci", - "git_commit": "68d791f93dc161fd8dba63e49b7fe9f909cbe758", - "commit_url": "https://github.com/cyber-dojo/saver/commit/68d791f93dc161fd8dba63e49b7fe9f909cbe758", - "html_url": "https://app.kosli.com/cyber-dojo/flows/saver-ci/artifacts/5ee9f19010bb3ae0bbd97098f83c9f652254eda1d1a488a057adedf02af9fbc9?artifact_id=174dfb75-db2f-40b0-901a-8a02499c", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/saver-ci", + "flow_name": "dashboard-ci", + "git_commit": "87f560f87fb2bc242ee5c58d74d0e209d71cd338", + "commit_url": "https://github.com/cyber-dojo/dashboard/commit/87f560f87fb2bc242ee5c58d74d0e209d71cd338", + "html_url": "https://app.kosli.com/cyber-dojo/flows/dashboard-ci/artifacts/45513c642ba191052bde056d56eeba8b06b0346eb444ec0008bd59bc0581bb8c?artifact_id=bd23bb89-f867-46b2-9139-1f7fc8b3", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/dashboard-ci", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/saver/compare/a11b7588b2d2333e1346f1a2bb100395f11f42d2...68d791f93dc161fd8dba63e49b7fe9f909cbe758", - "previous_git_commit": "a11b7588b2d2333e1346f1a2bb100395f11f42d2", - "previous_fingerprint": "a6cf2805f1dd2105257cc0febeb475f707b7de3ee664d172957f71943b64c4bc", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:a11b758@sha256:a6cf2805f1dd2105257cc0febeb475f707b7de3ee664d172957f71943b64c4bc", + "diff_url": "https://github.com/cyber-dojo/dashboard/compare/f3c679170776733c60dc485e076b7cb515caa7a4...87f560f87fb2bc242ee5c58d74d0e209d71cd338", + "previous_git_commit": "f3c679170776733c60dc485e076b7cb515caa7a4", + "previous_fingerprint": "9aa8b29c6163d8d454fdc63f896d1d0d8dec8f74ad364004e47727db3c1d3349", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:f3c6791@sha256:9aa8b29c6163d8d454fdc63f896d1d0d8dec8f74ad364004e47727db3c1d3349", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/saver/commit/a11b7588b2d2333e1346f1a2bb100395f11f42d2", - "previous_trail_name": "a11b7588b2d2333e1346f1a2bb100395f11f42d2", - "previous_template_reference_name": "saver" + "previous_git_commit_url": "https://github.com/cyber-dojo/dashboard/commit/f3c679170776733c60dc485e076b7cb515caa7a4", + "previous_trail_name": "f3c679170776733c60dc485e076b7cb515caa7a4", + "previous_template_reference_name": "dashboard" }, - "commit_lead_time": 375439.0, + "commit_lead_time": 8302.0, "flows": [ { - "flow_name": "saver-ci", - "trail_name": "68d791f93dc161fd8dba63e49b7fe9f909cbe758", - "template_reference_name": "saver", - "git_commit": "68d791f93dc161fd8dba63e49b7fe9f909cbe758", - "commit_url": "https://github.com/cyber-dojo/saver/commit/68d791f93dc161fd8dba63e49b7fe9f909cbe758", + "flow_name": "dashboard-ci", + "trail_name": "87f560f87fb2bc242ee5c58d74d0e209d71cd338", + "template_reference_name": "dashboard", + "git_commit": "87f560f87fb2bc242ee5c58d74d0e209d71cd338", + "commit_url": "https://github.com/cyber-dojo/dashboard/commit/87f560f87fb2bc242ee5c58d74d0e209d71cd338", "git_commit_info": { - "sha1": "68d791f93dc161fd8dba63e49b7fe9f909cbe758", - "message": "Tidy workflow using composite actions (#382)", + "sha1": "87f560f87fb2bc242ee5c58d74d0e209d71cd338", + "message": "Run ci workflow to pickup new --annotation in secure-docker-build.yml (#390)", "author": "Jon Jagger ", - "branch": "main", - "timestamp": 1779957523.0, - "url": "https://github.com/cyber-dojo/saver/commit/68d791f93dc161fd8dba63e49b7fe9f909cbe758" + "branch": "", + "timestamp": 1781417198.0, + "url": "https://github.com/cyber-dojo/dashboard/commit/87f560f87fb2bc242ee5c58d74d0e209d71cd338" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/saver-ci/artifacts/5ee9f19010bb3ae0bbd97098f83c9f652254eda1d1a488a057adedf02af9fbc9?artifact_id=174dfb75-db2f-40b0-901a-8a02499c", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/saver-ci", + "html_url": "https://app.kosli.com/cyber-dojo/flows/dashboard-ci/artifacts/45513c642ba191052bde056d56eeba8b06b0346eb444ec0008bd59bc0581bb8c?artifact_id=bd23bb89-f867-46b2-9139-1f7fc8b3", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/dashboard-ci", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/saver/compare/a11b7588b2d2333e1346f1a2bb100395f11f42d2...68d791f93dc161fd8dba63e49b7fe9f909cbe758", - "previous_git_commit": "a11b7588b2d2333e1346f1a2bb100395f11f42d2", - "previous_fingerprint": "a6cf2805f1dd2105257cc0febeb475f707b7de3ee664d172957f71943b64c4bc", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:a11b758@sha256:a6cf2805f1dd2105257cc0febeb475f707b7de3ee664d172957f71943b64c4bc", + "diff_url": "https://github.com/cyber-dojo/dashboard/compare/f3c679170776733c60dc485e076b7cb515caa7a4...87f560f87fb2bc242ee5c58d74d0e209d71cd338", + "previous_git_commit": "f3c679170776733c60dc485e076b7cb515caa7a4", + "previous_fingerprint": "9aa8b29c6163d8d454fdc63f896d1d0d8dec8f74ad364004e47727db3c1d3349", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:f3c6791@sha256:9aa8b29c6163d8d454fdc63f896d1d0d8dec8f74ad364004e47727db3c1d3349", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/saver/commit/a11b7588b2d2333e1346f1a2bb100395f11f42d2", - "previous_trail_name": "a11b7588b2d2333e1346f1a2bb100395f11f42d2", - "previous_template_reference_name": "saver" + "previous_git_commit_url": "https://github.com/cyber-dojo/dashboard/commit/f3c679170776733c60dc485e076b7cb515caa7a4", + "previous_trail_name": "f3c679170776733c60dc485e076b7cb515caa7a4", + "previous_template_reference_name": "dashboard" }, - "commit_lead_time": 375439.0, + "commit_lead_time": 8302.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { - "flow_name": "production-promotion", - "trail_name": "promote-all-21", - "template_reference_name": "saver", - "git_commit": "0f823ea52be90061b69b3f8f6056ca1203ac3d81", - "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/0f823ea52be90061b69b3f8f6056ca1203ac3d81", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "dashboard-45513c642ba191052bde056d56eeba8b06b0346eb444ec0008bd59bc0581bb8c", + "template_reference_name": "dashboard", + "git_commit": "7172cc22125f480a9f12127edb481a4d84aabea3", + "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/7172cc22125f480a9f12127edb481a4d84aabea3", "git_commit_info": { - "sha1": "0f823ea52be90061b69b3f8f6056ca1203ac3d81", - "message": "Bump kosli/setup-cli-action to v5, use latest version", + "sha1": "7172cc22125f480a9f12127edb481a4d84aabea3", + "message": "Add notes on proposed refactoring to detecting a build flow [ci skip]", "author": "JonJagger ", "branch": "main", - "timestamp": 1779364424.0, - "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/0f823ea52be90061b69b3f8f6056ca1203ac3d81" + "timestamp": 1781416288.0, + "url": "https://github.com/cyber-dojo/snyk-scanning/commit/7172cc22125f480a9f12127edb481a4d84aabea3" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/5ee9f19010bb3ae0bbd97098f83c9f652254eda1d1a488a057adedf02af9fbc9?artifact_id=5e6ca9ae-d19c-4ed0-8fee-40daa67b", - "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/45513c642ba191052bde056d56eeba8b06b0346eb444ec0008bd59bc0581bb8c?artifact_id=79a051e4-4e90-4286-a0db-b9ea21b7", + "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/0f823ea52be90061b69b3f8f6056ca1203ac3d81...0f823ea52be90061b69b3f8f6056ca1203ac3d81", - "previous_git_commit": "0f823ea52be90061b69b3f8f6056ca1203ac3d81", - "previous_fingerprint": "a6cf2805f1dd2105257cc0febeb475f707b7de3ee664d172957f71943b64c4bc", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:a11b758@sha256:a6cf2805f1dd2105257cc0febeb475f707b7de3ee664d172957f71943b64c4bc", + "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/c96bbe5f1b3c4cf747f77fc9a81210e1fd2c30e4...7172cc22125f480a9f12127edb481a4d84aabea3", + "previous_git_commit": "c96bbe5f1b3c4cf747f77fc9a81210e1fd2c30e4", + "previous_fingerprint": "9aa8b29c6163d8d454fdc63f896d1d0d8dec8f74ad364004e47727db3c1d3349", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:f3c6791@sha256:9aa8b29c6163d8d454fdc63f896d1d0d8dec8f74ad364004e47727db3c1d3349", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/0f823ea52be90061b69b3f8f6056ca1203ac3d81", - "previous_trail_name": "promotion-one-58", - "previous_template_reference_name": "saver" + "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/c96bbe5f1b3c4cf747f77fc9a81210e1fd2c30e4", + "previous_trail_name": "dashboard-9aa8b29c6163d8d454fdc63f896d1d0d8dec8f74ad364004e47727db3c1d3349", + "previous_template_reference_name": "dashboard" }, - "commit_lead_time": 968538.0, + "commit_lead_time": 9212.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "saver-5ee9f19010bb3ae0bbd97098f83c9f652254eda1d1a488a057adedf02af9fbc9", - "template_reference_name": "saver", - "git_commit": "c96bbe5f1b3c4cf747f77fc9a81210e1fd2c30e4", - "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/c96bbe5f1b3c4cf747f77fc9a81210e1fd2c30e4", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", + "template_reference_name": "dashboard", + "git_commit": "01dd4c6406d6655898ef2236875ec9f67091c792", + "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/01dd4c6406d6655898ef2236875ec9f67091c792", "git_commit_info": { - "sha1": "c96bbe5f1b3c4cf747f77fc9a81210e1fd2c30e4", - "message": "Delete dead step to force a trail to have empty template", + "sha1": "01dd4c6406d6655898ef2236875ec9f67091c792", + "message": "Update comment and help text", "author": "JonJagger ", "branch": "main", - "timestamp": 1780329192.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/c96bbe5f1b3c4cf747f77fc9a81210e1fd2c30e4" + "timestamp": 1781413514.0, + "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/01dd4c6406d6655898ef2236875ec9f67091c792" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/5ee9f19010bb3ae0bbd97098f83c9f652254eda1d1a488a057adedf02af9fbc9?artifact_id=c56512ee-6696-474c-8581-6fae3179", - "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/45513c642ba191052bde056d56eeba8b06b0346eb444ec0008bd59bc0581bb8c?artifact_id=009a5042-4d7f-45e4-86e6-fc4fa29c", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/4cca3cf991dc8340b82c03e0a80b7b7a1b136bda...c96bbe5f1b3c4cf747f77fc9a81210e1fd2c30e4", - "previous_git_commit": "4cca3cf991dc8340b82c03e0a80b7b7a1b136bda", - "previous_fingerprint": "e753a48a8a8f2a3a0b3c8429e786fa543d4c3298ed28a369cf7381435f113a1a", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:42c8baf@sha256:e753a48a8a8f2a3a0b3c8429e786fa543d4c3298ed28a369cf7381435f113a1a", + "diff_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/compare/0f823ea52be90061b69b3f8f6056ca1203ac3d81...01dd4c6406d6655898ef2236875ec9f67091c792", + "previous_git_commit": "0f823ea52be90061b69b3f8f6056ca1203ac3d81", + "previous_fingerprint": "9aa8b29c6163d8d454fdc63f896d1d0d8dec8f74ad364004e47727db3c1d3349", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:f3c6791@sha256:9aa8b29c6163d8d454fdc63f896d1d0d8dec8f74ad364004e47727db3c1d3349", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/4cca3cf991dc8340b82c03e0a80b7b7a1b136bda", - "previous_trail_name": "saver-e753a48a8a8f2a3a0b3c8429e786fa543d4c3298ed28a369cf7381435f113a1a", - "previous_template_reference_name": "saver" + "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/0f823ea52be90061b69b3f8f6056ca1203ac3d81", + "previous_trail_name": "promote-all-21", + "previous_template_reference_name": "dashboard" }, - "commit_lead_time": 3770.0, + "commit_lead_time": 11986.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "saver-5ee9f19010bb3ae0bbd97098f83c9f652254eda1d1a488a057adedf02af9fbc9", - "template_reference_name": "saver", - "git_commit": "ae002419e71c05cc5c1a285b52afdcef23d927c7", - "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/ae002419e71c05cc5c1a285b52afdcef23d927c7", + "trail_name": "dashboard-45513c642ba191052bde056d56eeba8b06b0346eb444ec0008bd59bc0581bb8c", + "template_reference_name": "dashboard", + "git_commit": "00c479764cb9eca038fdaaaef108672d0bb0ed26", + "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/00c479764cb9eca038fdaaaef108672d0bb0ed26", "git_commit_info": { - "sha1": "ae002419e71c05cc5c1a285b52afdcef23d927c7", - "message": "Upgrade workflows to use kosli-cli-setup v5", + "sha1": "00c479764cb9eca038fdaaaef108672d0bb0ed26", + "message": "Shorten the per-vuln attestation name to a 10-char fingerprint\n\n The per-vuln attestation was named snyk-. A full\n SHA-256 fingerprint is 64 hex chars, which renders badly on the\n snyk--per-vuln flow page. The fingerprint is only there to keep two\n builds of the same artifact in one deploy snapshot from clobbering each\n other on the shared per-vuln trail, and the first 10 hex chars (40 bits)\n are far more than enough to keep distinct builds apart.\n\n GitHub Actions expressions have no substring function, so the name can\n no longer be built inline in the job-level env. Compute it in a shell\n step that truncates the fingerprint and exports VULN_ATTESTATION_NAME to\n $GITHUB_ENV, ahead of every step that reads it.\n\n Note: per-vuln trails that already carry a snyk-\n attestation will, on their next run, also gain a snyk-<10-char> one,\n since Kosli keys attestations by name. Only trails created after this\n change will have the short name alone.", "author": "JonJagger ", "branch": "main", - "timestamp": 1780908047.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/ae002419e71c05cc5c1a285b52afdcef23d927c7" + "timestamp": 1781594940.0, + "url": "https://github.com/cyber-dojo/snyk-scanning/commit/00c479764cb9eca038fdaaaef108672d0bb0ed26" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/5ee9f19010bb3ae0bbd97098f83c9f652254eda1d1a488a057adedf02af9fbc9?artifact_id=7eb15577-130a-4b76-bd36-99e827ba", + "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/45513c642ba191052bde056d56eeba8b06b0346eb444ec0008bd59bc0581bb8c?artifact_id=6a20b693-7b8d-449d-9275-2956bd48", "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact", "deployment_diff": null, - "commit_lead_time": -575085.0, + "commit_lead_time": -169440.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] } ], "ecs_context": { - "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/11fcee940f3043768b79125a4a47d51b", + "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/eebdec81e47f486cbe1c50abf06472ce", "cluster_name": null, "service_name": null } }, { - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/differ:43d2a72@sha256:d2c30df1412005c8746cef54c3e3a88ddea23fdc0d96085a8ea66d91c61ac6d9", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:b8e5cbf@sha256:f00aa234bebafb1980dced29626750f84a6fe6c9c50f6a90167e4d8e6511a8a8", "compliant": true, "deployments": [], "policy_decisions": [ @@ -6492,24 +6367,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "differ-ci", - "trail_name": "43d2a72431124e9fcf47bf866621ba3fd8e7f618", + "flow_name": "exercises-start-points-ci", + "trail_name": "b8e5cbf56e7fc03becdeee6a1d493c0231fa2d0d", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "exercises-start-points-f00aa234bebafb1980dced29626750f84a6fe6c9c50f6a90167e4d8e6511a8a8", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "differ-d2c30df1412005c8746cef54c3e3a88ddea23fdc0d96085a8ea66d91c61ac6d9", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -6517,7 +6392,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "differ-d2c30df1412005c8746cef54c3e3a88ddea23fdc0d96085a8ea66d91c61ac6d9", + "trail_name": "exercises-start-points-f00aa234bebafb1980dced29626750f84a6fe6c9c50f6a90167e4d8e6511a8a8", "artifact_status": null } } @@ -6537,24 +6412,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "differ-ci", - "trail_name": "43d2a72431124e9fcf47bf866621ba3fd8e7f618", + "flow_name": "exercises-start-points-ci", + "trail_name": "b8e5cbf56e7fc03becdeee6a1d493c0231fa2d0d", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "exercises-start-points-f00aa234bebafb1980dced29626750f84a6fe6c9c50f6a90167e4d8e6511a8a8", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "differ-d2c30df1412005c8746cef54c3e3a88ddea23fdc0d96085a8ea66d91c61ac6d9", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": "COMPLIANT" } }, @@ -6562,7 +6437,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "differ-d2c30df1412005c8746cef54c3e3a88ddea23fdc0d96085a8ea66d91c61ac6d9", + "trail_name": "exercises-start-points-f00aa234bebafb1980dced29626750f84a6fe6c9c50f6a90167e4d8e6511a8a8", "artifact_status": "COMPLIANT" } } @@ -6587,24 +6462,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "differ-ci", - "trail_name": "43d2a72431124e9fcf47bf866621ba3fd8e7f618", + "flow_name": "exercises-start-points-ci", + "trail_name": "b8e5cbf56e7fc03becdeee6a1d493c0231fa2d0d", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "exercises-start-points-f00aa234bebafb1980dced29626750f84a6fe6c9c50f6a90167e4d8e6511a8a8", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "differ-d2c30df1412005c8746cef54c3e3a88ddea23fdc0d96085a8ea66d91c61ac6d9", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -6612,7 +6487,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "differ-d2c30df1412005c8746cef54c3e3a88ddea23fdc0d96085a8ea66d91c61ac6d9", + "trail_name": "exercises-start-points-f00aa234bebafb1980dced29626750f84a6fe6c9c50f6a90167e4d8e6511a8a8", "artifact_status": null } } @@ -6639,24 +6514,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "differ-ci", - "trail_name": "43d2a72431124e9fcf47bf866621ba3fd8e7f618", + "flow_name": "exercises-start-points-ci", + "trail_name": "b8e5cbf56e7fc03becdeee6a1d493c0231fa2d0d", "artifact_status": null } }, { "type": "rule_satisfied", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "exercises-start-points-f00aa234bebafb1980dced29626750f84a6fe6c9c50f6a90167e4d8e6511a8a8", "artifact_status": null } }, { "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "differ-d2c30df1412005c8746cef54c3e3a88ddea23fdc0d96085a8ea66d91c61ac6d9", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -6664,7 +6539,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "differ-d2c30df1412005c8746cef54c3e3a88ddea23fdc0d96085a8ea66d91c61ac6d9", + "trail_name": "exercises-start-points-f00aa234bebafb1980dced29626750f84a6fe6c9c50f6a90167e4d8e6511a8a8", "artifact_status": null } } @@ -6684,24 +6559,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "differ-ci", - "trail_name": "43d2a72431124e9fcf47bf866621ba3fd8e7f618", + "flow_name": "exercises-start-points-ci", + "trail_name": "b8e5cbf56e7fc03becdeee6a1d493c0231fa2d0d", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "exercises-start-points-f00aa234bebafb1980dced29626750f84a6fe6c9c50f6a90167e4d8e6511a8a8", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "differ-d2c30df1412005c8746cef54c3e3a88ddea23fdc0d96085a8ea66d91c61ac6d9", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": "COMPLIANT" } }, @@ -6709,7 +6584,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "differ-d2c30df1412005c8746cef54c3e3a88ddea23fdc0d96085a8ea66d91c61ac6d9", + "trail_name": "exercises-start-points-f00aa234bebafb1980dced29626750f84a6fe6c9c50f6a90167e4d8e6511a8a8", "artifact_status": "COMPLIANT" } } @@ -6736,24 +6611,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "differ-ci", - "trail_name": "43d2a72431124e9fcf47bf866621ba3fd8e7f618", + "flow_name": "exercises-start-points-ci", + "trail_name": "b8e5cbf56e7fc03becdeee6a1d493c0231fa2d0d", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "exercises-start-points-f00aa234bebafb1980dced29626750f84a6fe6c9c50f6a90167e4d8e6511a8a8", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "differ-d2c30df1412005c8746cef54c3e3a88ddea23fdc0d96085a8ea66d91c61ac6d9", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -6761,7 +6636,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "differ-d2c30df1412005c8746cef54c3e3a88ddea23fdc0d96085a8ea66d91c61ac6d9", + "trail_name": "exercises-start-points-f00aa234bebafb1980dced29626750f84a6fe6c9c50f6a90167e4d8e6511a8a8", "artifact_status": null } } @@ -6781,24 +6656,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "differ-ci", - "trail_name": "43d2a72431124e9fcf47bf866621ba3fd8e7f618", + "flow_name": "exercises-start-points-ci", + "trail_name": "b8e5cbf56e7fc03becdeee6a1d493c0231fa2d0d", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "exercises-start-points-f00aa234bebafb1980dced29626750f84a6fe6c9c50f6a90167e4d8e6511a8a8", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "differ-d2c30df1412005c8746cef54c3e3a88ddea23fdc0d96085a8ea66d91c61ac6d9", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": "COMPLIANT" } }, @@ -6806,7 +6681,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "differ-d2c30df1412005c8746cef54c3e3a88ddea23fdc0d96085a8ea66d91c61ac6d9", + "trail_name": "exercises-start-points-f00aa234bebafb1980dced29626750f84a6fe6c9c50f6a90167e4d8e6511a8a8", "artifact_status": "COMPLIANT" } } @@ -6831,24 +6706,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "differ-ci", - "trail_name": "43d2a72431124e9fcf47bf866621ba3fd8e7f618", + "flow_name": "exercises-start-points-ci", + "trail_name": "b8e5cbf56e7fc03becdeee6a1d493c0231fa2d0d", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "exercises-start-points-f00aa234bebafb1980dced29626750f84a6fe6c9c50f6a90167e4d8e6511a8a8", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "differ-d2c30df1412005c8746cef54c3e3a88ddea23fdc0d96085a8ea66d91c61ac6d9", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -6856,7 +6731,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "differ-d2c30df1412005c8746cef54c3e3a88ddea23fdc0d96085a8ea66d91c61ac6d9", + "trail_name": "exercises-start-points-f00aa234bebafb1980dced29626750f84a6fe6c9c50f6a90167e4d8e6511a8a8", "artifact_status": null } } @@ -6883,24 +6758,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "differ-ci", - "trail_name": "43d2a72431124e9fcf47bf866621ba3fd8e7f618", + "flow_name": "exercises-start-points-ci", + "trail_name": "b8e5cbf56e7fc03becdeee6a1d493c0231fa2d0d", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "exercises-start-points-f00aa234bebafb1980dced29626750f84a6fe6c9c50f6a90167e4d8e6511a8a8", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "differ-d2c30df1412005c8746cef54c3e3a88ddea23fdc0d96085a8ea66d91c61ac6d9", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -6908,7 +6783,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "differ-d2c30df1412005c8746cef54c3e3a88ddea23fdc0d96085a8ea66d91c61ac6d9", + "trail_name": "exercises-start-points-f00aa234bebafb1980dced29626750f84a6fe6c9c50f6a90167e4d8e6511a8a8", "artifact_status": null } } @@ -6928,24 +6803,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "differ-ci", - "trail_name": "43d2a72431124e9fcf47bf866621ba3fd8e7f618", + "flow_name": "exercises-start-points-ci", + "trail_name": "b8e5cbf56e7fc03becdeee6a1d493c0231fa2d0d", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "exercises-start-points-f00aa234bebafb1980dced29626750f84a6fe6c9c50f6a90167e4d8e6511a8a8", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "differ-d2c30df1412005c8746cef54c3e3a88ddea23fdc0d96085a8ea66d91c61ac6d9", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": "COMPLIANT" } }, @@ -6953,7 +6828,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "differ-d2c30df1412005c8746cef54c3e3a88ddea23fdc0d96085a8ea66d91c61ac6d9", + "trail_name": "exercises-start-points-f00aa234bebafb1980dced29626750f84a6fe6c9c50f6a90167e4d8e6511a8a8", "artifact_status": "COMPLIANT" } } @@ -6978,24 +6853,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "differ-ci", - "trail_name": "43d2a72431124e9fcf47bf866621ba3fd8e7f618", + "flow_name": "exercises-start-points-ci", + "trail_name": "b8e5cbf56e7fc03becdeee6a1d493c0231fa2d0d", "artifact_status": null } }, { - "type": "rule_satisfied", + "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "exercises-start-points-f00aa234bebafb1980dced29626750f84a6fe6c9c50f6a90167e4d8e6511a8a8", "artifact_status": null } }, { - "type": "rule_not_applicable", + "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "differ-d2c30df1412005c8746cef54c3e3a88ddea23fdc0d96085a8ea66d91c61ac6d9", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -7003,7 +6878,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "differ-d2c30df1412005c8746cef54c3e3a88ddea23fdc0d96085a8ea66d91c61ac6d9", + "trail_name": "exercises-start-points-f00aa234bebafb1980dced29626750f84a6fe6c9c50f6a90167e4d8e6511a8a8", "artifact_status": null } } @@ -7030,24 +6905,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "differ-ci", - "trail_name": "43d2a72431124e9fcf47bf866621ba3fd8e7f618", + "flow_name": "exercises-start-points-ci", + "trail_name": "b8e5cbf56e7fc03becdeee6a1d493c0231fa2d0d", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "exercises-start-points-f00aa234bebafb1980dced29626750f84a6fe6c9c50f6a90167e4d8e6511a8a8", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "differ-d2c30df1412005c8746cef54c3e3a88ddea23fdc0d96085a8ea66d91c61ac6d9", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -7055,7 +6930,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "differ-d2c30df1412005c8746cef54c3e3a88ddea23fdc0d96085a8ea66d91c61ac6d9", + "trail_name": "exercises-start-points-f00aa234bebafb1980dced29626750f84a6fe6c9c50f6a90167e4d8e6511a8a8", "artifact_status": null } } @@ -7081,24 +6956,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "differ-ci", - "trail_name": "43d2a72431124e9fcf47bf866621ba3fd8e7f618", + "flow_name": "exercises-start-points-ci", + "trail_name": "b8e5cbf56e7fc03becdeee6a1d493c0231fa2d0d", "artifact_status": "COMPLIANT" } }, { - "type": "rule_satisfied", + "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-21", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "exercises-start-points-f00aa234bebafb1980dced29626750f84a6fe6c9c50f6a90167e4d8e6511a8a8", "artifact_status": "COMPLIANT" } }, { - "type": "rule_not_applicable", + "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "differ-d2c30df1412005c8746cef54c3e3a88ddea23fdc0d96085a8ea66d91c61ac6d9", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", "artifact_status": "COMPLIANT" } }, @@ -7106,7 +6981,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "differ-d2c30df1412005c8746cef54c3e3a88ddea23fdc0d96085a8ea66d91c61ac6d9", + "trail_name": "exercises-start-points-f00aa234bebafb1980dced29626750f84a6fe6c9c50f6a90167e4d8e6511a8a8", "artifact_status": "COMPLIANT" } } @@ -7117,157 +6992,167 @@ kosli get snapshot aws-prod --output=json } ], "reasons_for_incompliance": [], - "fingerprint": "d2c30df1412005c8746cef54c3e3a88ddea23fdc0d96085a8ea66d91c61ac6d9", + "fingerprint": "f00aa234bebafb1980dced29626750f84a6fe6c9c50f6a90167e4d8e6511a8a8", "creationTimestamp": [ - 1780332956 + 1781590465 ], "pods": null, "annotation": { - "type": "changed", + "type": "unchanged", "was": 1, "now": 1 }, - "flow_name": "differ-ci", - "git_commit": "43d2a72431124e9fcf47bf866621ba3fd8e7f618", - "commit_url": "https://github.com/cyber-dojo/differ/commit/43d2a72431124e9fcf47bf866621ba3fd8e7f618", - "html_url": "https://app.kosli.com/cyber-dojo/flows/differ-ci/artifacts/d2c30df1412005c8746cef54c3e3a88ddea23fdc0d96085a8ea66d91c61ac6d9?artifact_id=66b5c45a-22d2-4f37-8688-beeeb449", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/differ-ci", + "flow_name": "exercises-start-points-ci", + "git_commit": "b8e5cbf56e7fc03becdeee6a1d493c0231fa2d0d", + "commit_url": "https://github.com/cyber-dojo/exercises-start-points/commit/b8e5cbf56e7fc03becdeee6a1d493c0231fa2d0d", + "html_url": "https://app.kosli.com/cyber-dojo/flows/exercises-start-points-ci/artifacts/f00aa234bebafb1980dced29626750f84a6fe6c9c50f6a90167e4d8e6511a8a8?artifact_id=4d62c06d-f9a2-4bfb-a8aa-a8d36ab8", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/exercises-start-points-ci", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/differ/compare/f2e8fa718ca3b72527625bd182beb2950bea3a77...43d2a72431124e9fcf47bf866621ba3fd8e7f618", - "previous_git_commit": "f2e8fa718ca3b72527625bd182beb2950bea3a77", - "previous_fingerprint": "6c4c72c37b15c0261309b65400bb60d78b2071c9f8a82d2ec6d050399834762d", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/differ:f2e8fa7@sha256:6c4c72c37b15c0261309b65400bb60d78b2071c9f8a82d2ec6d050399834762d", + "diff_url": "https://github.com/cyber-dojo/exercises-start-points/compare/76355112651c4ee66d6ee47f67e35459616f0dae...b8e5cbf56e7fc03becdeee6a1d493c0231fa2d0d", + "previous_git_commit": "76355112651c4ee66d6ee47f67e35459616f0dae", + "previous_fingerprint": "12c8c3b837fc9fef8c25c7c0fc905f8537877f674a93ebd18cf4ff804594a3bc", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:7635511@sha256:12c8c3b837fc9fef8c25c7c0fc905f8537877f674a93ebd18cf4ff804594a3bc", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/differ/commit/f2e8fa718ca3b72527625bd182beb2950bea3a77", - "previous_trail_name": "f2e8fa718ca3b72527625bd182beb2950bea3a77", - "previous_template_reference_name": "differ" + "previous_git_commit_url": "https://github.com/cyber-dojo/exercises-start-points/commit/76355112651c4ee66d6ee47f67e35459616f0dae", + "previous_trail_name": "76355112651c4ee66d6ee47f67e35459616f0dae", + "previous_template_reference_name": "exercises-start-points" }, - "commit_lead_time": 371812.0, + "commit_lead_time": 7905.0, "flows": [ { - "flow_name": "differ-ci", - "trail_name": "43d2a72431124e9fcf47bf866621ba3fd8e7f618", - "template_reference_name": "differ", - "git_commit": "43d2a72431124e9fcf47bf866621ba3fd8e7f618", - "commit_url": "https://github.com/cyber-dojo/differ/commit/43d2a72431124e9fcf47bf866621ba3fd8e7f618", + "flow_name": "exercises-start-points-ci", + "trail_name": "b8e5cbf56e7fc03becdeee6a1d493c0231fa2d0d", + "template_reference_name": "exercises-start-points", + "git_commit": "b8e5cbf56e7fc03becdeee6a1d493c0231fa2d0d", + "commit_url": "https://github.com/cyber-dojo/exercises-start-points/commit/b8e5cbf56e7fc03becdeee6a1d493c0231fa2d0d", "git_commit_info": { - "sha1": "43d2a72431124e9fcf47bf866621ba3fd8e7f618", - "message": "Tidy workflow by pushing common steps into composite actions (#390)", + "sha1": "b8e5cbf56e7fc03becdeee6a1d493c0231fa2d0d", + "message": "Merge pull request #128 from cyber-dojo/annotate-build-attestation\n\nAdd --annotate type=build to kosli-attest-artifact", "author": "Jon Jagger ", "branch": "main", - "timestamp": 1779961144.0, - "url": "https://github.com/cyber-dojo/differ/commit/43d2a72431124e9fcf47bf866621ba3fd8e7f618" + "timestamp": 1781417251.0, + "url": "https://github.com/cyber-dojo/exercises-start-points/commit/b8e5cbf56e7fc03becdeee6a1d493c0231fa2d0d" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/differ-ci/artifacts/d2c30df1412005c8746cef54c3e3a88ddea23fdc0d96085a8ea66d91c61ac6d9?artifact_id=66b5c45a-22d2-4f37-8688-beeeb449", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/differ-ci", + "html_url": "https://app.kosli.com/cyber-dojo/flows/exercises-start-points-ci/artifacts/f00aa234bebafb1980dced29626750f84a6fe6c9c50f6a90167e4d8e6511a8a8?artifact_id=4d62c06d-f9a2-4bfb-a8aa-a8d36ab8", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/exercises-start-points-ci", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/differ/compare/f2e8fa718ca3b72527625bd182beb2950bea3a77...43d2a72431124e9fcf47bf866621ba3fd8e7f618", - "previous_git_commit": "f2e8fa718ca3b72527625bd182beb2950bea3a77", - "previous_fingerprint": "6c4c72c37b15c0261309b65400bb60d78b2071c9f8a82d2ec6d050399834762d", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/differ:f2e8fa7@sha256:6c4c72c37b15c0261309b65400bb60d78b2071c9f8a82d2ec6d050399834762d", + "diff_url": "https://github.com/cyber-dojo/exercises-start-points/compare/76355112651c4ee66d6ee47f67e35459616f0dae...b8e5cbf56e7fc03becdeee6a1d493c0231fa2d0d", + "previous_git_commit": "76355112651c4ee66d6ee47f67e35459616f0dae", + "previous_fingerprint": "12c8c3b837fc9fef8c25c7c0fc905f8537877f674a93ebd18cf4ff804594a3bc", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:7635511@sha256:12c8c3b837fc9fef8c25c7c0fc905f8537877f674a93ebd18cf4ff804594a3bc", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/differ/commit/f2e8fa718ca3b72527625bd182beb2950bea3a77", - "previous_trail_name": "f2e8fa718ca3b72527625bd182beb2950bea3a77", - "previous_template_reference_name": "differ" + "previous_git_commit_url": "https://github.com/cyber-dojo/exercises-start-points/commit/76355112651c4ee66d6ee47f67e35459616f0dae", + "previous_trail_name": "76355112651c4ee66d6ee47f67e35459616f0dae", + "previous_template_reference_name": "exercises-start-points" }, - "commit_lead_time": 371812.0, + "commit_lead_time": 7905.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { - "flow_name": "production-promotion", - "trail_name": "promote-all-21", - "template_reference_name": "differ", - "git_commit": "0f823ea52be90061b69b3f8f6056ca1203ac3d81", - "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/0f823ea52be90061b69b3f8f6056ca1203ac3d81", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "exercises-start-points-f00aa234bebafb1980dced29626750f84a6fe6c9c50f6a90167e4d8e6511a8a8", + "template_reference_name": "exercises-start-points", + "git_commit": "7172cc22125f480a9f12127edb481a4d84aabea3", + "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/7172cc22125f480a9f12127edb481a4d84aabea3", "git_commit_info": { - "sha1": "0f823ea52be90061b69b3f8f6056ca1203ac3d81", - "message": "Bump kosli/setup-cli-action to v5, use latest version", + "sha1": "7172cc22125f480a9f12127edb481a4d84aabea3", + "message": "Add notes on proposed refactoring to detecting a build flow [ci skip]", "author": "JonJagger ", "branch": "main", - "timestamp": 1779364424.0, - "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/0f823ea52be90061b69b3f8f6056ca1203ac3d81" + "timestamp": 1781416288.0, + "url": "https://github.com/cyber-dojo/snyk-scanning/commit/7172cc22125f480a9f12127edb481a4d84aabea3" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/d2c30df1412005c8746cef54c3e3a88ddea23fdc0d96085a8ea66d91c61ac6d9?artifact_id=b07368f4-ee48-449e-9670-dd0317d6", - "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/f00aa234bebafb1980dced29626750f84a6fe6c9c50f6a90167e4d8e6511a8a8?artifact_id=880ae39c-9b28-48f1-8e1d-58d9722f", + "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/0f823ea52be90061b69b3f8f6056ca1203ac3d81...0f823ea52be90061b69b3f8f6056ca1203ac3d81", - "previous_git_commit": "0f823ea52be90061b69b3f8f6056ca1203ac3d81", - "previous_fingerprint": "6c4c72c37b15c0261309b65400bb60d78b2071c9f8a82d2ec6d050399834762d", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/differ:f2e8fa7@sha256:6c4c72c37b15c0261309b65400bb60d78b2071c9f8a82d2ec6d050399834762d", + "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/c96bbe5f1b3c4cf747f77fc9a81210e1fd2c30e4...7172cc22125f480a9f12127edb481a4d84aabea3", + "previous_git_commit": "c96bbe5f1b3c4cf747f77fc9a81210e1fd2c30e4", + "previous_fingerprint": "12c8c3b837fc9fef8c25c7c0fc905f8537877f674a93ebd18cf4ff804594a3bc", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:7635511@sha256:12c8c3b837fc9fef8c25c7c0fc905f8537877f674a93ebd18cf4ff804594a3bc", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/0f823ea52be90061b69b3f8f6056ca1203ac3d81", - "previous_trail_name": "promote-all-20", - "previous_template_reference_name": "differ" + "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/c96bbe5f1b3c4cf747f77fc9a81210e1fd2c30e4", + "previous_trail_name": "exercises-start-points-12c8c3b837fc9fef8c25c7c0fc905f8537877f674a93ebd18cf4ff804594a3bc", + "previous_template_reference_name": "exercises-start-points" }, - "commit_lead_time": 968532.0, + "commit_lead_time": 8868.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "differ-d2c30df1412005c8746cef54c3e3a88ddea23fdc0d96085a8ea66d91c61ac6d9", - "template_reference_name": "differ", - "git_commit": "ee081fb7be2ac7e2094bb4d02f3effdb9f73dd74", - "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/ee081fb7be2ac7e2094bb4d02f3effdb9f73dd74", + "flow_name": "production-promotion", + "trail_name": "promote-all-23", + "template_reference_name": "exercises-start-points", + "git_commit": "01dd4c6406d6655898ef2236875ec9f67091c792", + "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/01dd4c6406d6655898ef2236875ec9f67091c792", "git_commit_info": { - "sha1": "ee081fb7be2ac7e2094bb4d02f3effdb9f73dd74", - "message": "Fix deploy-swap race that clobbered per-vuln Snyk verdicts\n\n The live environment Snyk scan keys each per-vuln compliance trail by\n repo-severity-vulnid only. During a rolling deploy the env snapshot\n transiently holds two builds of the same repo, so env_snyk_test fans out a\n matrix job per build and both write the same trail's `snyk` attestation.\n Last-writer-wins, so the outgoing (older) build's verdict, computed against\n its older .snyk, could clobber the incoming build's correct one. That\n surfaced as runner showing non-compliant in aws-prod for x/net/html vulns\n that were in fact ignored, and (via a required trail-compliance env policy\n that spans every trail on the fingerprint) dragged aws-beta down too.\n\n Give each build's verdict its own identity on the shared trail rather than\n trying to pick a winner from the snapshot, which is unreliable: instance\n timestamps track restarts, not build recency (a flaky outgoing task can\n restart after the incoming one starts), and commit recency inverts on\n rollback.\n\n - combine_snyk.py: emit artifact_name and artifact_fingerprint per vuln.\n - artifact_snyk_test.yml: attest/read the per-vuln verdict as\n snyk- (VULN_ATTESTATION_NAME) and merge the fingerprint into\n the evaluate-trail rego params.\n - snyk-vuln-compliance.rego: select the status for data.params.fingerprint;\n an absent fingerprint leaves allow at its false default (fail toward\n non-compliant).\n - single-snyk-vuln.schema.json: document and require the new fields (also\n closes a pre-existing now/now_ts omission), guarded by a new contract test.\n\n Vuln age is unaffected: first_seen_ts stays the shared trail's created_at,\n which is why the trail key must not include the fingerprint.\n\n Also in this change:\n - test_rego_rules.sh: per-fingerprint inputs plus a two-build isolation test.\n - Convert test_find_expiring_vulns_logic.py from unittest to pytest functions.\n - Remove Makefile targets left dangling when 79ea32a moved scripts out of bin.\n - docs/: write up the race and the cross-environment trail-compliance effect.\n\n Co-Authored-By: Claude Opus 4.8 (1M context) ", + "sha1": "01dd4c6406d6655898ef2236875ec9f67091c792", + "message": "Update comment and help text", "author": "JonJagger ", "branch": "main", - "timestamp": 1780738845.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/ee081fb7be2ac7e2094bb4d02f3effdb9f73dd74" + "timestamp": 1781413514.0, + "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/01dd4c6406d6655898ef2236875ec9f67091c792" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/d2c30df1412005c8746cef54c3e3a88ddea23fdc0d96085a8ea66d91c61ac6d9?artifact_id=42f20991-cd1e-40eb-acad-10f6c1f6", - "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/f00aa234bebafb1980dced29626750f84a6fe6c9c50f6a90167e4d8e6511a8a8?artifact_id=4ea0353c-31ad-4235-a5e9-362c5bd2", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/4cca3cf991dc8340b82c03e0a80b7b7a1b136bda...ee081fb7be2ac7e2094bb4d02f3effdb9f73dd74", - "previous_git_commit": "4cca3cf991dc8340b82c03e0a80b7b7a1b136bda", - "previous_fingerprint": "dc7e55a08ec45a9ab4a2323ce7b1aae3a9f4a0742bb44b06b7bc1370f5c11a6b", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/differ:fd71a71@sha256:dc7e55a08ec45a9ab4a2323ce7b1aae3a9f4a0742bb44b06b7bc1370f5c11a6b", + "diff_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/compare/0f823ea52be90061b69b3f8f6056ca1203ac3d81...01dd4c6406d6655898ef2236875ec9f67091c792", + "previous_git_commit": "0f823ea52be90061b69b3f8f6056ca1203ac3d81", + "previous_fingerprint": "12c8c3b837fc9fef8c25c7c0fc905f8537877f674a93ebd18cf4ff804594a3bc", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:7635511@sha256:12c8c3b837fc9fef8c25c7c0fc905f8537877f674a93ebd18cf4ff804594a3bc", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/4cca3cf991dc8340b82c03e0a80b7b7a1b136bda", - "previous_trail_name": "differ-dc7e55a08ec45a9ab4a2323ce7b1aae3a9f4a0742bb44b06b7bc1370f5c11a6b", - "previous_template_reference_name": "differ" + "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/0f823ea52be90061b69b3f8f6056ca1203ac3d81", + "previous_trail_name": "promote-all-21", + "previous_template_reference_name": "exercises-start-points" }, - "commit_lead_time": -405889.0, + "commit_lead_time": 11642.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "differ-d2c30df1412005c8746cef54c3e3a88ddea23fdc0d96085a8ea66d91c61ac6d9", - "template_reference_name": "differ", - "git_commit": "ae002419e71c05cc5c1a285b52afdcef23d927c7", - "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/ae002419e71c05cc5c1a285b52afdcef23d927c7", + "trail_name": "exercises-start-points-f00aa234bebafb1980dced29626750f84a6fe6c9c50f6a90167e4d8e6511a8a8", + "template_reference_name": "exercises-start-points", + "git_commit": "00c479764cb9eca038fdaaaef108672d0bb0ed26", + "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/00c479764cb9eca038fdaaaef108672d0bb0ed26", "git_commit_info": { - "sha1": "ae002419e71c05cc5c1a285b52afdcef23d927c7", - "message": "Upgrade workflows to use kosli-cli-setup v5", + "sha1": "00c479764cb9eca038fdaaaef108672d0bb0ed26", + "message": "Shorten the per-vuln attestation name to a 10-char fingerprint\n\n The per-vuln attestation was named snyk-. A full\n SHA-256 fingerprint is 64 hex chars, which renders badly on the\n snyk--per-vuln flow page. The fingerprint is only there to keep two\n builds of the same artifact in one deploy snapshot from clobbering each\n other on the shared per-vuln trail, and the first 10 hex chars (40 bits)\n are far more than enough to keep distinct builds apart.\n\n GitHub Actions expressions have no substring function, so the name can\n no longer be built inline in the job-level env. Compute it in a shell\n step that truncates the fingerprint and exports VULN_ATTESTATION_NAME to\n $GITHUB_ENV, ahead of every step that reads it.\n\n Note: per-vuln trails that already carry a snyk-\n attestation will, on their next run, also gain a snyk-<10-char> one,\n since Kosli keys attestations by name. Only trails created after this\n change will have the short name alone.", "author": "JonJagger ", "branch": "main", - "timestamp": 1780908047.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/ae002419e71c05cc5c1a285b52afdcef23d927c7" + "timestamp": 1781594940.0, + "url": "https://github.com/cyber-dojo/snyk-scanning/commit/00c479764cb9eca038fdaaaef108672d0bb0ed26" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/d2c30df1412005c8746cef54c3e3a88ddea23fdc0d96085a8ea66d91c61ac6d9?artifact_id=39fa69ea-a921-40ab-9311-1d4611ae", + "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/f00aa234bebafb1980dced29626750f84a6fe6c9c50f6a90167e4d8e6511a8a8?artifact_id=3164998a-5527-40ba-8712-4fe7988d", "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact", - "deployment_diff": null, - "commit_lead_time": -575091.0, + "deployment_diff": { + "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/4cca3cf991dc8340b82c03e0a80b7b7a1b136bda...00c479764cb9eca038fdaaaef108672d0bb0ed26", + "previous_git_commit": "4cca3cf991dc8340b82c03e0a80b7b7a1b136bda", + "previous_fingerprint": "f08c1b6607812ab5357032dd6acbf94348247d37901a409c721696b6d11ba6e4", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:f3cf3ba@sha256:f08c1b6607812ab5357032dd6acbf94348247d37901a409c721696b6d11ba6e4", + "previous_artifact_compliance_state": "COMPLIANT", + "previous_running": false, + "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/4cca3cf991dc8340b82c03e0a80b7b7a1b136bda", + "previous_trail_name": "exercises-start-points-f08c1b6607812ab5357032dd6acbf94348247d37901a409c721696b6d11ba6e4", + "previous_template_reference_name": "exercises-start-points" + }, + "commit_lead_time": -169784.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] } ], "ecs_context": { - "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/ad1c0143190c42c3b102659c4481e2b9", + "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/d3d45fdbeeb14a9bb070d4dd19887138", "cluster_name": null, "service_name": null } }, { - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:7635511@sha256:12c8c3b837fc9fef8c25c7c0fc905f8537877f674a93ebd18cf4ff804594a3bc", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/differ:981dcfc@sha256:902ec7af03407049ac6e5ef713146d518bbffd9d99cd28715fa0df973e809b7b", "compliant": true, "deployments": [], "policy_decisions": [ @@ -7289,8 +7174,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "exercises-start-points-ci", - "trail_name": "76355112651c4ee66d6ee47f67e35459616f0dae", + "flow_name": "differ-ci", + "trail_name": "981dcfc34f584d46afb46b217b47ce68f2f14a08", "artifact_status": null } }, @@ -7298,15 +7183,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-21", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "exercises-start-points-12c8c3b837fc9fef8c25c7c0fc905f8537877f674a93ebd18cf4ff804594a3bc", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -7314,7 +7191,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-12c8c3b837fc9fef8c25c7c0fc905f8537877f674a93ebd18cf4ff804594a3bc", + "trail_name": "differ-902ec7af03407049ac6e5ef713146d518bbffd9d99cd28715fa0df973e809b7b", "artifact_status": null } } @@ -7334,8 +7211,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "exercises-start-points-ci", - "trail_name": "76355112651c4ee66d6ee47f67e35459616f0dae", + "flow_name": "differ-ci", + "trail_name": "981dcfc34f584d46afb46b217b47ce68f2f14a08", "artifact_status": "COMPLIANT" } }, @@ -7343,15 +7220,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-21", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "exercises-start-points-12c8c3b837fc9fef8c25c7c0fc905f8537877f674a93ebd18cf4ff804594a3bc", + "trail_name": "promote-all-23", "artifact_status": "COMPLIANT" } }, @@ -7359,7 +7228,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-12c8c3b837fc9fef8c25c7c0fc905f8537877f674a93ebd18cf4ff804594a3bc", + "trail_name": "differ-902ec7af03407049ac6e5ef713146d518bbffd9d99cd28715fa0df973e809b7b", "artifact_status": "COMPLIANT" } } @@ -7384,8 +7253,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "exercises-start-points-ci", - "trail_name": "76355112651c4ee66d6ee47f67e35459616f0dae", + "flow_name": "differ-ci", + "trail_name": "981dcfc34f584d46afb46b217b47ce68f2f14a08", "artifact_status": null } }, @@ -7393,15 +7262,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-21", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "exercises-start-points-12c8c3b837fc9fef8c25c7c0fc905f8537877f674a93ebd18cf4ff804594a3bc", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -7409,7 +7270,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-12c8c3b837fc9fef8c25c7c0fc905f8537877f674a93ebd18cf4ff804594a3bc", + "trail_name": "differ-902ec7af03407049ac6e5ef713146d518bbffd9d99cd28715fa0df973e809b7b", "artifact_status": null } } @@ -7436,8 +7297,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "exercises-start-points-ci", - "trail_name": "76355112651c4ee66d6ee47f67e35459616f0dae", + "flow_name": "differ-ci", + "trail_name": "981dcfc34f584d46afb46b217b47ce68f2f14a08", "artifact_status": null } }, @@ -7445,15 +7306,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-21", - "artifact_status": null - } - }, - { - "type": "rule_satisfied", - "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "exercises-start-points-12c8c3b837fc9fef8c25c7c0fc905f8537877f674a93ebd18cf4ff804594a3bc", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -7461,7 +7314,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "exercises-start-points-12c8c3b837fc9fef8c25c7c0fc905f8537877f674a93ebd18cf4ff804594a3bc", + "trail_name": "differ-902ec7af03407049ac6e5ef713146d518bbffd9d99cd28715fa0df973e809b7b", "artifact_status": null } } @@ -7481,8 +7334,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "exercises-start-points-ci", - "trail_name": "76355112651c4ee66d6ee47f67e35459616f0dae", + "flow_name": "differ-ci", + "trail_name": "981dcfc34f584d46afb46b217b47ce68f2f14a08", "artifact_status": "COMPLIANT" } }, @@ -7490,15 +7343,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-21", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "exercises-start-points-12c8c3b837fc9fef8c25c7c0fc905f8537877f674a93ebd18cf4ff804594a3bc", + "trail_name": "promote-all-23", "artifact_status": "COMPLIANT" } }, @@ -7506,7 +7351,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-12c8c3b837fc9fef8c25c7c0fc905f8537877f674a93ebd18cf4ff804594a3bc", + "trail_name": "differ-902ec7af03407049ac6e5ef713146d518bbffd9d99cd28715fa0df973e809b7b", "artifact_status": "COMPLIANT" } } @@ -7533,8 +7378,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "exercises-start-points-ci", - "trail_name": "76355112651c4ee66d6ee47f67e35459616f0dae", + "flow_name": "differ-ci", + "trail_name": "981dcfc34f584d46afb46b217b47ce68f2f14a08", "artifact_status": null } }, @@ -7542,15 +7387,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-21", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "exercises-start-points-12c8c3b837fc9fef8c25c7c0fc905f8537877f674a93ebd18cf4ff804594a3bc", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -7558,7 +7395,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-12c8c3b837fc9fef8c25c7c0fc905f8537877f674a93ebd18cf4ff804594a3bc", + "trail_name": "differ-902ec7af03407049ac6e5ef713146d518bbffd9d99cd28715fa0df973e809b7b", "artifact_status": null } } @@ -7578,8 +7415,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "exercises-start-points-ci", - "trail_name": "76355112651c4ee66d6ee47f67e35459616f0dae", + "flow_name": "differ-ci", + "trail_name": "981dcfc34f584d46afb46b217b47ce68f2f14a08", "artifact_status": "COMPLIANT" } }, @@ -7587,15 +7424,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-21", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "exercises-start-points-12c8c3b837fc9fef8c25c7c0fc905f8537877f674a93ebd18cf4ff804594a3bc", + "trail_name": "promote-all-23", "artifact_status": "COMPLIANT" } }, @@ -7603,7 +7432,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-12c8c3b837fc9fef8c25c7c0fc905f8537877f674a93ebd18cf4ff804594a3bc", + "trail_name": "differ-902ec7af03407049ac6e5ef713146d518bbffd9d99cd28715fa0df973e809b7b", "artifact_status": "COMPLIANT" } } @@ -7628,8 +7457,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "exercises-start-points-ci", - "trail_name": "76355112651c4ee66d6ee47f67e35459616f0dae", + "flow_name": "differ-ci", + "trail_name": "981dcfc34f584d46afb46b217b47ce68f2f14a08", "artifact_status": null } }, @@ -7637,15 +7466,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-21", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "exercises-start-points-12c8c3b837fc9fef8c25c7c0fc905f8537877f674a93ebd18cf4ff804594a3bc", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -7653,7 +7474,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "exercises-start-points-12c8c3b837fc9fef8c25c7c0fc905f8537877f674a93ebd18cf4ff804594a3bc", + "trail_name": "differ-902ec7af03407049ac6e5ef713146d518bbffd9d99cd28715fa0df973e809b7b", "artifact_status": null } } @@ -7680,8 +7501,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "exercises-start-points-ci", - "trail_name": "76355112651c4ee66d6ee47f67e35459616f0dae", + "flow_name": "differ-ci", + "trail_name": "981dcfc34f584d46afb46b217b47ce68f2f14a08", "artifact_status": null } }, @@ -7689,15 +7510,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-21", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "exercises-start-points-12c8c3b837fc9fef8c25c7c0fc905f8537877f674a93ebd18cf4ff804594a3bc", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -7705,7 +7518,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-12c8c3b837fc9fef8c25c7c0fc905f8537877f674a93ebd18cf4ff804594a3bc", + "trail_name": "differ-902ec7af03407049ac6e5ef713146d518bbffd9d99cd28715fa0df973e809b7b", "artifact_status": null } } @@ -7725,8 +7538,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "exercises-start-points-ci", - "trail_name": "76355112651c4ee66d6ee47f67e35459616f0dae", + "flow_name": "differ-ci", + "trail_name": "981dcfc34f584d46afb46b217b47ce68f2f14a08", "artifact_status": "COMPLIANT" } }, @@ -7734,15 +7547,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-21", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "exercises-start-points-12c8c3b837fc9fef8c25c7c0fc905f8537877f674a93ebd18cf4ff804594a3bc", + "trail_name": "promote-all-23", "artifact_status": "COMPLIANT" } }, @@ -7750,7 +7555,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-12c8c3b837fc9fef8c25c7c0fc905f8537877f674a93ebd18cf4ff804594a3bc", + "trail_name": "differ-902ec7af03407049ac6e5ef713146d518bbffd9d99cd28715fa0df973e809b7b", "artifact_status": "COMPLIANT" } } @@ -7775,8 +7580,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "exercises-start-points-ci", - "trail_name": "76355112651c4ee66d6ee47f67e35459616f0dae", + "flow_name": "differ-ci", + "trail_name": "981dcfc34f584d46afb46b217b47ce68f2f14a08", "artifact_status": null } }, @@ -7784,15 +7589,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-21", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "exercises-start-points-12c8c3b837fc9fef8c25c7c0fc905f8537877f674a93ebd18cf4ff804594a3bc", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -7800,7 +7597,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-12c8c3b837fc9fef8c25c7c0fc905f8537877f674a93ebd18cf4ff804594a3bc", + "trail_name": "differ-902ec7af03407049ac6e5ef713146d518bbffd9d99cd28715fa0df973e809b7b", "artifact_status": null } } @@ -7827,8 +7624,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "exercises-start-points-ci", - "trail_name": "76355112651c4ee66d6ee47f67e35459616f0dae", + "flow_name": "differ-ci", + "trail_name": "981dcfc34f584d46afb46b217b47ce68f2f14a08", "artifact_status": null } }, @@ -7836,15 +7633,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-21", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "exercises-start-points-12c8c3b837fc9fef8c25c7c0fc905f8537877f674a93ebd18cf4ff804594a3bc", + "trail_name": "promote-all-23", "artifact_status": null } }, @@ -7852,7 +7641,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-12c8c3b837fc9fef8c25c7c0fc905f8537877f674a93ebd18cf4ff804594a3bc", + "trail_name": "differ-902ec7af03407049ac6e5ef713146d518bbffd9d99cd28715fa0df973e809b7b", "artifact_status": null } } @@ -7878,8 +7667,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "exercises-start-points-ci", - "trail_name": "76355112651c4ee66d6ee47f67e35459616f0dae", + "flow_name": "differ-ci", + "trail_name": "981dcfc34f584d46afb46b217b47ce68f2f14a08", "artifact_status": "COMPLIANT" } }, @@ -7887,15 +7676,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-21", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "exercises-start-points-12c8c3b837fc9fef8c25c7c0fc905f8537877f674a93ebd18cf4ff804594a3bc", + "trail_name": "promote-all-23", "artifact_status": "COMPLIANT" } }, @@ -7903,7 +7684,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "exercises-start-points-12c8c3b837fc9fef8c25c7c0fc905f8537877f674a93ebd18cf4ff804594a3bc", + "trail_name": "differ-902ec7af03407049ac6e5ef713146d518bbffd9d99cd28715fa0df973e809b7b", "artifact_status": "COMPLIANT" } } @@ -7914,161 +7695,120 @@ kosli get snapshot aws-prod --output=json } ], "reasons_for_incompliance": [], - "fingerprint": "12c8c3b837fc9fef8c25c7c0fc905f8537877f674a93ebd18cf4ff804594a3bc", + "fingerprint": "902ec7af03407049ac6e5ef713146d518bbffd9d99cd28715fa0df973e809b7b", "creationTimestamp": [ - 1780332951 + 1781590460 ], "pods": null, "annotation": { - "type": "changed", + "type": "unchanged", "was": 1, "now": 1 }, - "flow_name": "exercises-start-points-ci", - "git_commit": "76355112651c4ee66d6ee47f67e35459616f0dae", - "commit_url": "https://github.com/cyber-dojo/exercises-start-points/commit/76355112651c4ee66d6ee47f67e35459616f0dae", - "html_url": "https://app.kosli.com/cyber-dojo/flows/exercises-start-points-ci/artifacts/12c8c3b837fc9fef8c25c7c0fc905f8537877f674a93ebd18cf4ff804594a3bc?artifact_id=f94caaee-8681-4ead-acb2-8ea7c803", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/exercises-start-points-ci", + "flow_name": "differ-ci", + "git_commit": "981dcfc34f584d46afb46b217b47ce68f2f14a08", + "commit_url": "https://github.com/cyber-dojo/differ/commit/981dcfc34f584d46afb46b217b47ce68f2f14a08", + "html_url": "https://app.kosli.com/cyber-dojo/flows/differ-ci/artifacts/902ec7af03407049ac6e5ef713146d518bbffd9d99cd28715fa0df973e809b7b?artifact_id=03312679-db2a-4f55-a323-7cdb2c89", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/differ-ci", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/exercises-start-points/compare/545cccbc91f4030fb4004421e1076bd7c2abbc93...76355112651c4ee66d6ee47f67e35459616f0dae", - "previous_git_commit": "545cccbc91f4030fb4004421e1076bd7c2abbc93", - "previous_fingerprint": "a1e2d8e458a3813b1f8ab835befba1c1dea56a6fcc6ae2e165e7d7c6e3665c90", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:545cccb@sha256:a1e2d8e458a3813b1f8ab835befba1c1dea56a6fcc6ae2e165e7d7c6e3665c90", + "diff_url": "https://github.com/cyber-dojo/differ/compare/43d2a72431124e9fcf47bf866621ba3fd8e7f618...981dcfc34f584d46afb46b217b47ce68f2f14a08", + "previous_git_commit": "43d2a72431124e9fcf47bf866621ba3fd8e7f618", + "previous_fingerprint": "d2c30df1412005c8746cef54c3e3a88ddea23fdc0d96085a8ea66d91c61ac6d9", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/differ:43d2a72@sha256:d2c30df1412005c8746cef54c3e3a88ddea23fdc0d96085a8ea66d91c61ac6d9", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/exercises-start-points/commit/545cccbc91f4030fb4004421e1076bd7c2abbc93", - "previous_trail_name": "545cccbc91f4030fb4004421e1076bd7c2abbc93", - "previous_template_reference_name": "exercises-start-points" + "previous_git_commit_url": "https://github.com/cyber-dojo/differ/commit/43d2a72431124e9fcf47bf866621ba3fd8e7f618", + "previous_trail_name": "43d2a72431124e9fcf47bf866621ba3fd8e7f618", + "previous_template_reference_name": "differ" }, - "commit_lead_time": 376587.0, + "commit_lead_time": 5387.0, "flows": [ { - "flow_name": "exercises-start-points-ci", - "trail_name": "76355112651c4ee66d6ee47f67e35459616f0dae", - "template_reference_name": "exercises-start-points", - "git_commit": "76355112651c4ee66d6ee47f67e35459616f0dae", - "commit_url": "https://github.com/cyber-dojo/exercises-start-points/commit/76355112651c4ee66d6ee47f67e35459616f0dae", + "flow_name": "differ-ci", + "trail_name": "981dcfc34f584d46afb46b217b47ce68f2f14a08", + "template_reference_name": "differ", + "git_commit": "981dcfc34f584d46afb46b217b47ce68f2f14a08", + "commit_url": "https://github.com/cyber-dojo/differ/commit/981dcfc34f584d46afb46b217b47ce68f2f14a08", "git_commit_info": { - "sha1": "76355112651c4ee66d6ee47f67e35459616f0dae", - "message": "Merge pull request #125 from cyber-dojo/delete-dead-code\n\nDelete unused job outputs", + "sha1": "981dcfc34f584d46afb46b217b47ce68f2f14a08", + "message": "Run ci workflow to pickup new --annotation in secure-docker-build.yml (#403)", "author": "Jon Jagger ", - "branch": "main", - "timestamp": 1779956364.0, - "url": "https://github.com/cyber-dojo/exercises-start-points/commit/76355112651c4ee66d6ee47f67e35459616f0dae" + "branch": "", + "timestamp": 1781420097.0, + "url": "https://github.com/cyber-dojo/differ/commit/981dcfc34f584d46afb46b217b47ce68f2f14a08" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/exercises-start-points-ci/artifacts/12c8c3b837fc9fef8c25c7c0fc905f8537877f674a93ebd18cf4ff804594a3bc?artifact_id=f94caaee-8681-4ead-acb2-8ea7c803", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/exercises-start-points-ci", + "html_url": "https://app.kosli.com/cyber-dojo/flows/differ-ci/artifacts/902ec7af03407049ac6e5ef713146d518bbffd9d99cd28715fa0df973e809b7b?artifact_id=03312679-db2a-4f55-a323-7cdb2c89", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/differ-ci", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/exercises-start-points/compare/545cccbc91f4030fb4004421e1076bd7c2abbc93...76355112651c4ee66d6ee47f67e35459616f0dae", - "previous_git_commit": "545cccbc91f4030fb4004421e1076bd7c2abbc93", - "previous_fingerprint": "a1e2d8e458a3813b1f8ab835befba1c1dea56a6fcc6ae2e165e7d7c6e3665c90", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:545cccb@sha256:a1e2d8e458a3813b1f8ab835befba1c1dea56a6fcc6ae2e165e7d7c6e3665c90", + "diff_url": "https://github.com/cyber-dojo/differ/compare/43d2a72431124e9fcf47bf866621ba3fd8e7f618...981dcfc34f584d46afb46b217b47ce68f2f14a08", + "previous_git_commit": "43d2a72431124e9fcf47bf866621ba3fd8e7f618", + "previous_fingerprint": "d2c30df1412005c8746cef54c3e3a88ddea23fdc0d96085a8ea66d91c61ac6d9", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/differ:43d2a72@sha256:d2c30df1412005c8746cef54c3e3a88ddea23fdc0d96085a8ea66d91c61ac6d9", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/exercises-start-points/commit/545cccbc91f4030fb4004421e1076bd7c2abbc93", - "previous_trail_name": "545cccbc91f4030fb4004421e1076bd7c2abbc93", - "previous_template_reference_name": "exercises-start-points" + "previous_git_commit_url": "https://github.com/cyber-dojo/differ/commit/43d2a72431124e9fcf47bf866621ba3fd8e7f618", + "previous_trail_name": "43d2a72431124e9fcf47bf866621ba3fd8e7f618", + "previous_template_reference_name": "differ" }, - "commit_lead_time": 376587.0, + "commit_lead_time": 5387.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "production-promotion", - "trail_name": "promote-all-21", - "template_reference_name": "exercises-start-points", - "git_commit": "0f823ea52be90061b69b3f8f6056ca1203ac3d81", - "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/0f823ea52be90061b69b3f8f6056ca1203ac3d81", + "trail_name": "promote-all-23", + "template_reference_name": "differ", + "git_commit": "01dd4c6406d6655898ef2236875ec9f67091c792", + "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/01dd4c6406d6655898ef2236875ec9f67091c792", "git_commit_info": { - "sha1": "0f823ea52be90061b69b3f8f6056ca1203ac3d81", - "message": "Bump kosli/setup-cli-action to v5, use latest version", + "sha1": "01dd4c6406d6655898ef2236875ec9f67091c792", + "message": "Update comment and help text", "author": "JonJagger ", "branch": "main", - "timestamp": 1779364424.0, - "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/0f823ea52be90061b69b3f8f6056ca1203ac3d81" + "timestamp": 1781413514.0, + "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/01dd4c6406d6655898ef2236875ec9f67091c792" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/12c8c3b837fc9fef8c25c7c0fc905f8537877f674a93ebd18cf4ff804594a3bc?artifact_id=5ca58609-53a7-4173-a5ca-c2f57006", + "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/902ec7af03407049ac6e5ef713146d518bbffd9d99cd28715fa0df973e809b7b?artifact_id=5105b3dd-9a43-47c6-b724-375ecf8c", "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/5fd1b6bba27771e4c93b8c29b3ff69465dff1c26...0f823ea52be90061b69b3f8f6056ca1203ac3d81", - "previous_git_commit": "5fd1b6bba27771e4c93b8c29b3ff69465dff1c26", - "previous_fingerprint": "a1e2d8e458a3813b1f8ab835befba1c1dea56a6fcc6ae2e165e7d7c6e3665c90", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:545cccb@sha256:a1e2d8e458a3813b1f8ab835befba1c1dea56a6fcc6ae2e165e7d7c6e3665c90", - "previous_artifact_compliance_state": "COMPLIANT", - "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/5fd1b6bba27771e4c93b8c29b3ff69465dff1c26", - "previous_trail_name": "promote-all-18", - "previous_template_reference_name": "exercises-start-points" - }, - "commit_lead_time": 968527.0, - "artifact_compliance_in_flow": true, - "flow_reasons_for_non_compliance": [] - }, - { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "exercises-start-points-12c8c3b837fc9fef8c25c7c0fc905f8537877f674a93ebd18cf4ff804594a3bc", - "template_reference_name": "exercises-start-points", - "git_commit": "c96bbe5f1b3c4cf747f77fc9a81210e1fd2c30e4", - "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/c96bbe5f1b3c4cf747f77fc9a81210e1fd2c30e4", - "git_commit_info": { - "sha1": "c96bbe5f1b3c4cf747f77fc9a81210e1fd2c30e4", - "message": "Delete dead step to force a trail to have empty template", - "author": "JonJagger ", - "branch": "main", - "timestamp": 1780329192.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/c96bbe5f1b3c4cf747f77fc9a81210e1fd2c30e4" - }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/12c8c3b837fc9fef8c25c7c0fc905f8537877f674a93ebd18cf4ff804594a3bc?artifact_id=d3a5612c-c22b-46e5-b367-cd2d7f79", - "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/822a5831653b0901ce5256c6e16d7eedb63ebc06...c96bbe5f1b3c4cf747f77fc9a81210e1fd2c30e4", - "previous_git_commit": "822a5831653b0901ce5256c6e16d7eedb63ebc06", - "previous_fingerprint": "a1e2d8e458a3813b1f8ab835befba1c1dea56a6fcc6ae2e165e7d7c6e3665c90", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:545cccb@sha256:a1e2d8e458a3813b1f8ab835befba1c1dea56a6fcc6ae2e165e7d7c6e3665c90", + "diff_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/compare/0f823ea52be90061b69b3f8f6056ca1203ac3d81...01dd4c6406d6655898ef2236875ec9f67091c792", + "previous_git_commit": "0f823ea52be90061b69b3f8f6056ca1203ac3d81", + "previous_fingerprint": "d2c30df1412005c8746cef54c3e3a88ddea23fdc0d96085a8ea66d91c61ac6d9", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/differ:43d2a72@sha256:d2c30df1412005c8746cef54c3e3a88ddea23fdc0d96085a8ea66d91c61ac6d9", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/822a5831653b0901ce5256c6e16d7eedb63ebc06", - "previous_trail_name": "exercises-start-points-a1e2d8e458a3813b1f8ab835befba1c1dea56a6fcc6ae2e165e7d7c6e3665c90", - "previous_template_reference_name": "exercises-start-points" + "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/0f823ea52be90061b69b3f8f6056ca1203ac3d81", + "previous_trail_name": "promote-all-21", + "previous_template_reference_name": "differ" }, - "commit_lead_time": 3759.0, + "commit_lead_time": 11970.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "exercises-start-points-12c8c3b837fc9fef8c25c7c0fc905f8537877f674a93ebd18cf4ff804594a3bc", - "template_reference_name": "exercises-start-points", - "git_commit": "ae002419e71c05cc5c1a285b52afdcef23d927c7", - "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/ae002419e71c05cc5c1a285b52afdcef23d927c7", + "trail_name": "differ-902ec7af03407049ac6e5ef713146d518bbffd9d99cd28715fa0df973e809b7b", + "template_reference_name": "differ", + "git_commit": "00c479764cb9eca038fdaaaef108672d0bb0ed26", + "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/00c479764cb9eca038fdaaaef108672d0bb0ed26", "git_commit_info": { - "sha1": "ae002419e71c05cc5c1a285b52afdcef23d927c7", - "message": "Upgrade workflows to use kosli-cli-setup v5", + "sha1": "00c479764cb9eca038fdaaaef108672d0bb0ed26", + "message": "Shorten the per-vuln attestation name to a 10-char fingerprint\n\n The per-vuln attestation was named snyk-. A full\n SHA-256 fingerprint is 64 hex chars, which renders badly on the\n snyk--per-vuln flow page. The fingerprint is only there to keep two\n builds of the same artifact in one deploy snapshot from clobbering each\n other on the shared per-vuln trail, and the first 10 hex chars (40 bits)\n are far more than enough to keep distinct builds apart.\n\n GitHub Actions expressions have no substring function, so the name can\n no longer be built inline in the job-level env. Compute it in a shell\n step that truncates the fingerprint and exports VULN_ATTESTATION_NAME to\n $GITHUB_ENV, ahead of every step that reads it.\n\n Note: per-vuln trails that already carry a snyk-\n attestation will, on their next run, also gain a snyk-<10-char> one,\n since Kosli keys attestations by name. Only trails created after this\n change will have the short name alone.", "author": "JonJagger ", "branch": "main", - "timestamp": 1780908047.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/ae002419e71c05cc5c1a285b52afdcef23d927c7" + "timestamp": 1781594940.0, + "url": "https://github.com/cyber-dojo/snyk-scanning/commit/00c479764cb9eca038fdaaaef108672d0bb0ed26" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/12c8c3b837fc9fef8c25c7c0fc905f8537877f674a93ebd18cf4ff804594a3bc?artifact_id=2c5ce5d7-642c-48c3-bd41-3f69d62e", + "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/902ec7af03407049ac6e5ef713146d518bbffd9d99cd28715fa0df973e809b7b?artifact_id=c3ced9a1-6a7a-4708-a10d-de37693a", "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/4cca3cf991dc8340b82c03e0a80b7b7a1b136bda...ae002419e71c05cc5c1a285b52afdcef23d927c7", - "previous_git_commit": "4cca3cf991dc8340b82c03e0a80b7b7a1b136bda", - "previous_fingerprint": "f08c1b6607812ab5357032dd6acbf94348247d37901a409c721696b6d11ba6e4", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:f3cf3ba@sha256:f08c1b6607812ab5357032dd6acbf94348247d37901a409c721696b6d11ba6e4", - "previous_artifact_compliance_state": "COMPLIANT", - "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/4cca3cf991dc8340b82c03e0a80b7b7a1b136bda", - "previous_trail_name": "exercises-start-points-f08c1b6607812ab5357032dd6acbf94348247d37901a409c721696b6d11ba6e4", - "previous_template_reference_name": "exercises-start-points" - }, - "commit_lead_time": -575096.0, + "deployment_diff": null, + "commit_lead_time": -169456.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] } ], "ecs_context": { - "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/2097842cf82f4e7383ee9e950c9bf355", + "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/1163f1ac7b424e038fca08fee39f5c4c", "cluster_name": null, "service_name": null } diff --git a/client_reference/kosli_get_trail.md b/client_reference/kosli_get_trail.md index be34dfc..8301916 100644 --- a/client_reference/kosli_get_trail.md +++ b/client_reference/kosli_get_trail.md @@ -187,7 +187,9 @@ kosli get trail dashboard-ci 1159a6f1193150681b8484545150334e89de6c1c --output=j "branch": "main", "timestamp": 1711534976.0, "url": "https://github.com/cyber-dojo/dashboard/commit/1159a6f1193150681b8484545150334e89de6c1c", - "parents": null + "parents": null, + "verified": null, + "signature_state": null }, "repo_info": null, "setting_user_id": "da5d4ee8-aec0-4264-ab85-c491040c", @@ -224,7 +226,9 @@ kosli get trail dashboard-ci 1159a6f1193150681b8484545150334e89de6c1c --output=j "branch": "main", "timestamp": 1711534976.0, "url": "https://github.com/cyber-dojo/dashboard/commit/1159a6f1193150681b8484545150334e89de6c1c", - "parents": null + "parents": null, + "verified": null, + "signature_state": null }, "repo_info": null, "attestation_type": "pull_request", @@ -246,7 +250,9 @@ kosli get trail dashboard-ci 1159a6f1193150681b8484545150334e89de6c1c --output=j "branch": "main", "timestamp": 1711534976.0, "url": "https://github.com/cyber-dojo/dashboard/commit/1159a6f1193150681b8484545150334e89de6c1c", - "parents": null + "parents": null, + "verified": null, + "signature_state": null }, "repo_info": null, "attestation_type": "generic", @@ -269,7 +275,9 @@ kosli get trail dashboard-ci 1159a6f1193150681b8484545150334e89de6c1c --output=j "branch": "main", "timestamp": 1711534976.0, "url": "https://github.com/cyber-dojo/dashboard/commit/1159a6f1193150681b8484545150334e89de6c1c", - "parents": null + "parents": null, + "verified": null, + "signature_state": null }, "repo_info": null, "artifact_fingerprint": "dddd83bf5038e81c228b222f01a0184ce2a8492cb45075b66be5baf5be803ca1", @@ -292,7 +300,9 @@ kosli get trail dashboard-ci 1159a6f1193150681b8484545150334e89de6c1c --output=j "branch": "main", "timestamp": 1711534976.0, "url": "https://github.com/cyber-dojo/dashboard/commit/1159a6f1193150681b8484545150334e89de6c1c", - "parents": null + "parents": null, + "verified": null, + "signature_state": null }, "repo_info": null, "attestation_type": "snyk", @@ -317,7 +327,9 @@ kosli get trail dashboard-ci 1159a6f1193150681b8484545150334e89de6c1c --output=j "branch": "main", "timestamp": 1711534976.0, "url": "https://github.com/cyber-dojo/dashboard/commit/1159a6f1193150681b8484545150334e89de6c1c", - "parents": null + "parents": null, + "verified": null, + "signature_state": null }, "repo_info": null, "attestation_type": "snyk", @@ -402,7 +414,9 @@ kosli get trail dashboard-ci 1159a6f1193150681b8484545150334e89de6c1c --output=j "branch": "main", "timestamp": 1711195944.0, "url": "https://github.com/cyber-dojo/live-snyk-scans/commit/cf3896a8bbd2f74c9e36336b69d8ee64eae1ff25", - "parents": null + "parents": null, + "verified": null, + "signature_state": null }, "repo_info": null, "attestation_type": "snyk", @@ -427,7 +441,9 @@ kosli get trail dashboard-ci 1159a6f1193150681b8484545150334e89de6c1c --output=j "branch": "main", "timestamp": 1711195944.0, "url": "https://github.com/cyber-dojo/live-snyk-scans/commit/cf3896a8bbd2f74c9e36336b69d8ee64eae1ff25", - "parents": null + "parents": null, + "verified": null, + "signature_state": null }, "repo_info": null, "attestation_type": "snyk", @@ -452,7 +468,9 @@ kosli get trail dashboard-ci 1159a6f1193150681b8484545150334e89de6c1c --output=j "branch": "main", "timestamp": 1711195944.0, "url": "https://github.com/cyber-dojo/live-snyk-scans/commit/cf3896a8bbd2f74c9e36336b69d8ee64eae1ff25", - "parents": null + "parents": null, + "verified": null, + "signature_state": null }, "repo_info": null, "attestation_type": "snyk", @@ -477,7 +495,9 @@ kosli get trail dashboard-ci 1159a6f1193150681b8484545150334e89de6c1c --output=j "branch": "main", "timestamp": 1711195944.0, "url": "https://github.com/cyber-dojo/live-snyk-scans/commit/cf3896a8bbd2f74c9e36336b69d8ee64eae1ff25", - "parents": null + "parents": null, + "verified": null, + "signature_state": null }, "repo_info": null, "attestation_type": "snyk", @@ -502,7 +522,9 @@ kosli get trail dashboard-ci 1159a6f1193150681b8484545150334e89de6c1c --output=j "branch": "main", "timestamp": 1711195944.0, "url": "https://github.com/cyber-dojo/live-snyk-scans/commit/cf3896a8bbd2f74c9e36336b69d8ee64eae1ff25", - "parents": null + "parents": null, + "verified": null, + "signature_state": null }, "repo_info": null, "attestation_type": "snyk", @@ -527,7 +549,9 @@ kosli get trail dashboard-ci 1159a6f1193150681b8484545150334e89de6c1c --output=j "branch": "main", "timestamp": 1711195944.0, "url": "https://github.com/cyber-dojo/live-snyk-scans/commit/cf3896a8bbd2f74c9e36336b69d8ee64eae1ff25", - "parents": null + "parents": null, + "verified": null, + "signature_state": null }, "repo_info": null, "attestation_type": "snyk", @@ -552,7 +576,9 @@ kosli get trail dashboard-ci 1159a6f1193150681b8484545150334e89de6c1c --output=j "branch": "main", "timestamp": 1711195944.0, "url": "https://github.com/cyber-dojo/live-snyk-scans/commit/cf3896a8bbd2f74c9e36336b69d8ee64eae1ff25", - "parents": null + "parents": null, + "verified": null, + "signature_state": null }, "repo_info": null, "attestation_type": "snyk", @@ -577,7 +603,9 @@ kosli get trail dashboard-ci 1159a6f1193150681b8484545150334e89de6c1c --output=j "branch": "main", "timestamp": 1711195944.0, "url": "https://github.com/cyber-dojo/live-snyk-scans/commit/cf3896a8bbd2f74c9e36336b69d8ee64eae1ff25", - "parents": null + "parents": null, + "verified": null, + "signature_state": null }, "repo_info": null, "attestation_type": "snyk", @@ -602,7 +630,9 @@ kosli get trail dashboard-ci 1159a6f1193150681b8484545150334e89de6c1c --output=j "branch": "main", "timestamp": 1711195944.0, "url": "https://github.com/cyber-dojo/live-snyk-scans/commit/cf3896a8bbd2f74c9e36336b69d8ee64eae1ff25", - "parents": null + "parents": null, + "verified": null, + "signature_state": null }, "repo_info": null, "attestation_type": "snyk", @@ -627,7 +657,9 @@ kosli get trail dashboard-ci 1159a6f1193150681b8484545150334e89de6c1c --output=j "branch": "main", "timestamp": 1711195944.0, "url": "https://github.com/cyber-dojo/live-snyk-scans/commit/cf3896a8bbd2f74c9e36336b69d8ee64eae1ff25", - "parents": null + "parents": null, + "verified": null, + "signature_state": null }, "repo_info": null, "attestation_type": "snyk", @@ -681,7 +713,9 @@ kosli get trail dashboard-ci 1159a6f1193150681b8484545150334e89de6c1c --output=j "branch": "main", "timestamp": 1711195944.0, "url": "https://github.com/cyber-dojo/live-snyk-scans/commit/cf3896a8bbd2f74c9e36336b69d8ee64eae1ff25", - "parents": null + "parents": null, + "verified": null, + "signature_state": null }, "repo_info": null, "attestation_type": "snyk", @@ -706,7 +740,9 @@ kosli get trail dashboard-ci 1159a6f1193150681b8484545150334e89de6c1c --output=j "branch": "main", "timestamp": 1711195944.0, "url": "https://github.com/cyber-dojo/live-snyk-scans/commit/cf3896a8bbd2f74c9e36336b69d8ee64eae1ff25", - "parents": null + "parents": null, + "verified": null, + "signature_state": null }, "repo_info": null, "attestation_type": "snyk", diff --git a/client_reference/kosli_list_environments.md b/client_reference/kosli_list_environments.md index d547828..b02f1d3 100644 --- a/client_reference/kosli_list_environments.md +++ b/client_reference/kosli_list_environments.md @@ -65,9 +65,9 @@ kosli list environments --output=json "name": "aws-beta", "type": "ECS", "description": "The ECS cluster for staging cyber-dojo", - "last_modified_at": 1781173644.1939907, - "last_reported_at": 1781173644.1939907, - "last_changed_at": 1781171423.8723896, + "last_modified_at": 1781604264.0449266, + "last_reported_at": 1781604264.0449266, + "last_changed_at": 1781597303.9477544, "state": true, "include_scaling": false, "tags": { @@ -86,9 +86,9 @@ kosli list environments --output=json "name": "aws-prod", "type": "ECS", "description": "The ECS cluster for production cyber-dojo", - "last_modified_at": 1781173678.7227857, - "last_reported_at": 1781173678.7227857, - "last_changed_at": 1781167678.669744, + "last_modified_at": 1781604298.5932145, + "last_reported_at": 1781604298.5932145, + "last_changed_at": 1781596438.4966626, "state": true, "include_scaling": false, "tags": { @@ -108,9 +108,9 @@ kosli list environments --output=json "name": "production", "type": "logical", "description": "Production environments for cyber-dojo", - "last_modified_at": 1781167678.669744, + "last_modified_at": 1781596438.4966626, "last_reported_at": null, - "last_changed_at": 1781167678.669744, + "last_changed_at": 1781596438.4966626, "state": true, "include_scaling": false, "tags": {}, diff --git a/client_reference/kosli_list_flows.md b/client_reference/kosli_list_flows.md index 1d77106..3d27505 100644 --- a/client_reference/kosli_list_flows.md +++ b/client_reference/kosli_list_flows.md @@ -152,6 +152,42 @@ kosli list flows --output=json "env": "aws-beta" } }, + { + "name": "monorepo-co-deployment", + "description": "Bind shared commit deployments", + "visibility": "private", + "org": "cyber-dojo", + "template": "version: 1", + "repo_url": "https://github.com/cyber-dojo/monorepo", + "tags": {} + }, + { + "name": "monorepo-creator", + "description": "UX for Group/Kata creation", + "visibility": "public", + "org": "cyber-dojo", + "template": "\nversion: 1\ntrail:\n attestations:\n - { name: pull-request, type: pull_request }\n artifacts:\n - name: creator\n attestations:\n - { name: unit-test, type: junit }\n", + "repo_url": "https://github.com/cyber-dojo/monorepo", + "tags": {} + }, + { + "name": "monorepo-dashboard", + "description": "UX for a group practice dashboard", + "visibility": "public", + "org": "cyber-dojo", + "template": "\nversion: 1\ntrail:\n attestations:\n - { name: pull-request, type: pull_request }\n artifacts:\n - name: dashboard\n attestations:\n - { name: rubocop, type: junit }\n - { name: snyk-container-scan, type: generic }\n", + "repo_url": "https://github.com/cyber-dojo/monorepo", + "tags": {} + }, + { + "name": "monorepo-web", + "description": "UX for practicing TDD", + "visibility": "public", + "org": "cyber-dojo", + "template": "\nversion: 1\ntrail:\n attestations:\n - { name: pull-request, type: pull_request }\n artifacts:\n - name: web\n attestations:\n - { name: lint, type: generic }\n - { name: unit-test, type: junit }\n", + "repo_url": "https://github.com/cyber-dojo/monorepo", + "tags": {} + }, { "name": "nginx-ci", "description": "Reverse proxy", @@ -253,9 +289,9 @@ kosli list flows --output=json "repo_url": "", "tags": { "ci": "github", + "env": "aws-beta", "kind": "run", - "workflow_url": "https://github.com/cyber-dojo/snyk-scanning/blob/main/.github/workflows/artifact_snyk_test.yml", - "env": "aws-beta" + "workflow_url": "https://github.com/cyber-dojo/snyk-scanning/blob/main/.github/workflows/artifact_snyk_test.yml" } }, { @@ -281,9 +317,9 @@ kosli list flows --output=json "repo_url": "", "tags": { "ci": "github", + "env": "aws-prod", "kind": "run", - "workflow_url": "https://github.com/cyber-dojo/snyk-scanning/blob/main/.github/workflows/artifact_snyk_test.yml", - "env": "aws-prod" + "workflow_url": "https://github.com/cyber-dojo/snyk-scanning/blob/main/.github/workflows/artifact_snyk_test.yml" } }, { diff --git a/client_reference/kosli_list_snapshots.md b/client_reference/kosli_list_snapshots.md index 914e418..68f78e1 100644 --- a/client_reference/kosli_list_snapshots.md +++ b/client_reference/kosli_list_snapshots.md @@ -66,109 +66,109 @@ kosli list snapshots aws-prod --output=json ```json [ { - "index": 4749, - "from": 1781167678.669744, + "index": 4781, + "from": 1781596438.4966626, "to": 0.0, "compliant": true, - "duration": 6018.875128746033 + "duration": 7872.4069356918335 }, { - "index": 4748, - "from": 1781159278.7947195, - "to": 1781167678.669744, + "index": 4780, + "from": 1781596378.6927845, + "to": 1781596438.4966626, "compliant": true, - "duration": 8399.875024557114 + "duration": 59.80387806892395 }, { - "index": 4747, - "from": 1781159218.5704055, - "to": 1781159278.7947195, + "index": 4779, + "from": 1781596318.7251499, + "to": 1781596378.6927845, "compliant": true, - "duration": 60.22431397438049 + "duration": 59.96763467788696 }, { - "index": 4746, - "from": 1781071618.6346955, - "to": 1781159218.5704055, + "index": 4778, + "from": 1781596198.6164858, + "to": 1781596318.7251499, "compliant": true, - "duration": 87599.93570995331 + "duration": 120.10866403579712 }, { - "index": 4745, - "from": 1781071558.3442817, - "to": 1781071618.6346955, + "index": 4777, + "from": 1781596138.474564, + "to": 1781596198.6164858, "compliant": true, - "duration": 60.29041385650635 + "duration": 60.14192175865173 }, { - "index": 4744, - "from": 1780984438.437869, - "to": 1781071558.3442817, + "index": 4776, + "from": 1781596078.5283337, + "to": 1781596138.474564, "compliant": true, - "duration": 87119.90641260147 + "duration": 59.94623041152954 }, { - "index": 4743, - "from": 1780984378.7307086, - "to": 1780984438.437869, + "index": 4775, + "from": 1781595178.5604763, + "to": 1781596078.5283337, "compliant": true, - "duration": 59.70716047286987 + "duration": 899.9678573608398 }, { - "index": 4742, - "from": 1780984318.462322, - "to": 1780984378.7307086, + "index": 4774, + "from": 1781593978.426208, + "to": 1781595178.5604763, "compliant": true, - "duration": 60.26838660240173 + "duration": 1200.134268283844 }, { - "index": 4741, - "from": 1780934518.864066, - "to": 1780984318.462322, + "index": 4773, + "from": 1781593799.0334685, + "to": 1781593978.426208, "compliant": true, - "duration": 49799.598256111145 + "duration": 179.39273953437805 }, { - "index": 4740, - "from": 1780934458.6713858, - "to": 1780934518.864066, + "index": 4772, + "from": 1781593738.5721767, + "to": 1781593799.0334685, "compliant": true, - "duration": 60.19268012046814 + "duration": 60.461291790008545 }, { - "index": 4739, - "from": 1780934398.9164453, - "to": 1780934458.6713858, + "index": 4771, + "from": 1781592238.465858, + "to": 1781593738.5721767, "compliant": true, - "duration": 59.75494050979614 + "duration": 1500.1063187122345 }, { - "index": 4738, - "from": 1780933918.5023239, - "to": 1780934398.9164453, + "index": 4770, + "from": 1781592178.6246305, + "to": 1781592238.465858, "compliant": true, - "duration": 480.41412138938904 + "duration": 59.841227531433105 }, { - "index": 4737, - "from": 1780899838.5880492, - "to": 1780933918.5023239, + "index": 4769, + "from": 1781590498.431212, + "to": 1781592178.6246305, "compliant": true, - "duration": 34079.914274692535 + "duration": 1680.1934185028076 }, { - "index": 4736, - "from": 1780898638.4568684, - "to": 1780899838.5880492, - "compliant": true, - "duration": 1200.1311807632446 + "index": 4768, + "from": 1781590138.5979598, + "to": 1781590498.431212, + "compliant": false, + "duration": 359.8332521915436 }, { - "index": 4735, - "from": 1780898578.8734438, - "to": 1780898638.4568684, + "index": 4767, + "from": 1781535898.6708055, + "to": 1781590138.5979598, "compliant": true, - "duration": 59.58342456817627 + "duration": 54239.9271543026 } ] ``` diff --git a/client_reference/kosli_log_environment.md b/client_reference/kosli_log_environment.md index 660df34..57b476c 100644 --- a/client_reference/kosli_log_environment.md +++ b/client_reference/kosli_log_environment.md @@ -74,16 +74,16 @@ kosli log environment aws-prod --output=json [ { "environment_name": "aws-prod", - "snapshot_index": 4749, - "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/languages-start-points:9513e77@sha256:31af583cc43761df4e53ffaabeafb6fa378af6af45f92d9cd12d76e48d4ceb02", - "sha256": "31af583cc43761df4e53ffaabeafb6fa378af6af45f92d9cd12d76e48d4ceb02", - "description": "1 instance changed", - "reported_at": 1781167678.669744, - "pipeline": "languages-start-points-ci", + "snapshot_index": 4781, + "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:9cc2a80@sha256:414a07a72fbd04444ba4d2e19b6c7102095d5aeb469211f99166538626c08d06", + "sha256": "414a07a72fbd04444ba4d2e19b6c7102095d5aeb469211f99166538626c08d06", + "description": "3 instances changed", + "reported_at": 1781596438.4966626, + "pipeline": "runner-ci", "deployments": [], "flows": [ { - "flow_name": "languages-start-points-ci", + "flow_name": "runner-ci", "deployments": null }, { @@ -101,39 +101,39 @@ 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/16d155bdd120fe5a926504069dd18a98b8275fa8...9513e77858d775950f22173d0afd0634b2ac20b9", + "type": "updated-provenance", + "code_diff": "https://github.com/cyber-dojo/runner/compare/bc5fbc14361ce7a6281b6110049d90a03f69d786...9cc2a80e1306376b88039715dfdcfc161a0e3904", "_links": { "artifact": { - "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/languages-start-points-ci/fingerprint/31af583cc43761df4e53ffaabeafb6fa378af6af45f92d9cd12d76e48d4ceb02", - "html": "https://app.kosli.com/cyber-dojo/flows/languages-start-points-ci/artifacts/31af583cc43761df4e53ffaabeafb6fa378af6af45f92d9cd12d76e48d4ceb02?artifact_id=ed68d54a-2549-4822-9dc5-96dad6c1" + "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/runner-ci/fingerprint/414a07a72fbd04444ba4d2e19b6c7102095d5aeb469211f99166538626c08d06", + "html": "https://app.kosli.com/cyber-dojo/flows/runner-ci/artifacts/414a07a72fbd04444ba4d2e19b6c7102095d5aeb469211f99166538626c08d06?artifact_id=73a8e588-a383-4eb5-a88c-a1db6160" }, "snapshot": { - "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/4749", - "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/4749" + "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/4781", + "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/4781" } } }, { "environment_name": "aws-prod", - "snapshot_index": 4749, - "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/differ:43d2a72@sha256:d2c30df1412005c8746cef54c3e3a88ddea23fdc0d96085a8ea66d91c61ac6d9", - "sha256": "d2c30df1412005c8746cef54c3e3a88ddea23fdc0d96085a8ea66d91c61ac6d9", + "snapshot_index": 4781, + "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/custom-start-points:6b5c159@sha256:b4448ca68a0926e4a7a800f5b101b63e9c2f38e1caaebb7e929d992763570928", + "sha256": "b4448ca68a0926e4a7a800f5b101b63e9c2f38e1caaebb7e929d992763570928", "description": "1 instance changed", - "reported_at": 1781167678.669744, - "pipeline": "differ-ci", + "reported_at": 1781596438.4966626, + "pipeline": "custom-start-points-ci", "deployments": [], "flows": [ { - "flow_name": "differ-ci", + "flow_name": "custom-start-points-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 }, { @@ -143,41 +143,37 @@ kosli log environment aws-prod --output=json ], "artifact_compliance": true, "snapshot_compliance": true, - "type": "changed", - "code_diff": "https://github.com/cyber-dojo/differ/compare/f2e8fa718ca3b72527625bd182beb2950bea3a77...43d2a72431124e9fcf47bf866621ba3fd8e7f618", + "type": "updated-provenance", + "code_diff": "https://github.com/cyber-dojo/custom-start-points/compare/d3e5850912655f2b18a68129f5f3a6480fe305ef...6b5c1598cc13c388a0fec71852e6b03bf0696e0b", "_links": { "artifact": { - "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/differ-ci/fingerprint/d2c30df1412005c8746cef54c3e3a88ddea23fdc0d96085a8ea66d91c61ac6d9", - "html": "https://app.kosli.com/cyber-dojo/flows/differ-ci/artifacts/d2c30df1412005c8746cef54c3e3a88ddea23fdc0d96085a8ea66d91c61ac6d9?artifact_id=66b5c45a-22d2-4f37-8688-beeeb449" + "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/custom-start-points-ci/fingerprint/b4448ca68a0926e4a7a800f5b101b63e9c2f38e1caaebb7e929d992763570928", + "html": "https://app.kosli.com/cyber-dojo/flows/custom-start-points-ci/artifacts/b4448ca68a0926e4a7a800f5b101b63e9c2f38e1caaebb7e929d992763570928?artifact_id=954d759d-077a-4359-b51f-54c7f182" }, "snapshot": { - "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/4749", - "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/4749" + "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/4781", + "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/4781" } } }, { "environment_name": "aws-prod", - "snapshot_index": 4749, - "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:68d791f@sha256:5ee9f19010bb3ae0bbd97098f83c9f652254eda1d1a488a057adedf02af9fbc9", - "sha256": "5ee9f19010bb3ae0bbd97098f83c9f652254eda1d1a488a057adedf02af9fbc9", - "description": "1 instance changed", - "reported_at": 1781167678.669744, - "pipeline": "saver-ci", + "snapshot_index": 4780, + "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:f66cc5c@sha256:29c69c2f30f261a26fff4793fd8ae44b9081def1d4bcaaa27b0fef0501d949e4", + "sha256": "29c69c2f30f261a26fff4793fd8ae44b9081def1d4bcaaa27b0fef0501d949e4", + "description": "3 instances changed", + "reported_at": 1781596378.6927845, + "pipeline": "web-ci", "deployments": [], "flows": [ { - "flow_name": "saver-ci", + "flow_name": "web-ci", "deployments": null }, { "flow_name": "production-promotion", "deployments": null }, - { - "flow_name": "snyk-aws-beta-per-artifact", - "deployments": null - }, { "flow_name": "snyk-aws-prod-per-artifact", "deployments": null @@ -185,39 +181,39 @@ kosli log environment aws-prod --output=json ], "artifact_compliance": true, "snapshot_compliance": true, - "type": "changed", - "code_diff": "https://github.com/cyber-dojo/saver/compare/a11b7588b2d2333e1346f1a2bb100395f11f42d2...68d791f93dc161fd8dba63e49b7fe9f909cbe758", + "type": "updated-provenance", + "code_diff": "https://github.com/cyber-dojo/web/compare/8863c10c2c93d3539672e0bf75bd9925f8778564...f66cc5c51fcc19b04b36e0542b36b6cc52515d3c", "_links": { "artifact": { - "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/saver-ci/fingerprint/5ee9f19010bb3ae0bbd97098f83c9f652254eda1d1a488a057adedf02af9fbc9", - "html": "https://app.kosli.com/cyber-dojo/flows/saver-ci/artifacts/5ee9f19010bb3ae0bbd97098f83c9f652254eda1d1a488a057adedf02af9fbc9?artifact_id=174dfb75-db2f-40b0-901a-8a02499c" + "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/web-ci/fingerprint/29c69c2f30f261a26fff4793fd8ae44b9081def1d4bcaaa27b0fef0501d949e4", + "html": "https://app.kosli.com/cyber-dojo/flows/web-ci/artifacts/29c69c2f30f261a26fff4793fd8ae44b9081def1d4bcaaa27b0fef0501d949e4?artifact_id=ed664433-201f-41ac-938b-5931b5f4" }, "snapshot": { - "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/4749", - "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/4749" + "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/4780", + "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/4780" } } }, { "environment_name": "aws-prod", - "snapshot_index": 4749, - "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:8863c10@sha256:443fe71ccfa84a1b7eb1ebe4cf8931c43371843201f540e5f6a8c55154fdb735", - "sha256": "443fe71ccfa84a1b7eb1ebe4cf8931c43371843201f540e5f6a8c55154fdb735", - "description": "3 instances changed", - "reported_at": 1781167678.669744, - "pipeline": "web-ci", + "snapshot_index": 4780, + "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:87f560f@sha256:45513c642ba191052bde056d56eeba8b06b0346eb444ec0008bd59bc0581bb8c", + "sha256": "45513c642ba191052bde056d56eeba8b06b0346eb444ec0008bd59bc0581bb8c", + "description": "1 instance changed", + "reported_at": 1781596378.6927845, + "pipeline": "dashboard-ci", "deployments": [], "flows": [ { - "flow_name": "web-ci", + "flow_name": "dashboard-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 }, { @@ -227,26 +223,26 @@ kosli log environment aws-prod --output=json ], "artifact_compliance": true, "snapshot_compliance": true, - "type": "changed", - "code_diff": "https://github.com/cyber-dojo/web/compare/517657b9dec6ac7ff431ca5d9b2de72fded5c295...8863c10c2c93d3539672e0bf75bd9925f8778564", + "type": "updated-provenance", + "code_diff": "https://github.com/cyber-dojo/dashboard/compare/f3c679170776733c60dc485e076b7cb515caa7a4...87f560f87fb2bc242ee5c58d74d0e209d71cd338", "_links": { "artifact": { - "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/web-ci/fingerprint/443fe71ccfa84a1b7eb1ebe4cf8931c43371843201f540e5f6a8c55154fdb735", - "html": "https://app.kosli.com/cyber-dojo/flows/web-ci/artifacts/443fe71ccfa84a1b7eb1ebe4cf8931c43371843201f540e5f6a8c55154fdb735?artifact_id=65fd4674-3e05-441a-8bd3-71492624" + "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/dashboard-ci/fingerprint/45513c642ba191052bde056d56eeba8b06b0346eb444ec0008bd59bc0581bb8c", + "html": "https://app.kosli.com/cyber-dojo/flows/dashboard-ci/artifacts/45513c642ba191052bde056d56eeba8b06b0346eb444ec0008bd59bc0581bb8c?artifact_id=bd23bb89-f867-46b2-9139-1f7fc8b3" }, "snapshot": { - "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/4749", - "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/4749" + "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/4780", + "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/4780" } } }, { "environment_name": "aws-prod", - "snapshot_index": 4749, - "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:7635511@sha256:12c8c3b837fc9fef8c25c7c0fc905f8537877f674a93ebd18cf4ff804594a3bc", - "sha256": "12c8c3b837fc9fef8c25c7c0fc905f8537877f674a93ebd18cf4ff804594a3bc", + "snapshot_index": 4780, + "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:b8e5cbf@sha256:f00aa234bebafb1980dced29626750f84a6fe6c9c50f6a90167e4d8e6511a8a8", + "sha256": "f00aa234bebafb1980dced29626750f84a6fe6c9c50f6a90167e4d8e6511a8a8", "description": "1 instance changed", - "reported_at": 1781167678.669744, + "reported_at": 1781596378.6927845, "pipeline": "exercises-start-points-ci", "deployments": [], "flows": [ @@ -255,11 +251,11 @@ kosli log environment aws-prod --output=json "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 }, { @@ -269,39 +265,39 @@ 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/545cccbc91f4030fb4004421e1076bd7c2abbc93...76355112651c4ee66d6ee47f67e35459616f0dae", + "type": "updated-provenance", + "code_diff": "https://github.com/cyber-dojo/exercises-start-points/compare/76355112651c4ee66d6ee47f67e35459616f0dae...b8e5cbf56e7fc03becdeee6a1d493c0231fa2d0d", "_links": { "artifact": { - "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/exercises-start-points-ci/fingerprint/12c8c3b837fc9fef8c25c7c0fc905f8537877f674a93ebd18cf4ff804594a3bc", - "html": "https://app.kosli.com/cyber-dojo/flows/exercises-start-points-ci/artifacts/12c8c3b837fc9fef8c25c7c0fc905f8537877f674a93ebd18cf4ff804594a3bc?artifact_id=f94caaee-8681-4ead-acb2-8ea7c803" + "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/exercises-start-points-ci/fingerprint/f00aa234bebafb1980dced29626750f84a6fe6c9c50f6a90167e4d8e6511a8a8", + "html": "https://app.kosli.com/cyber-dojo/flows/exercises-start-points-ci/artifacts/f00aa234bebafb1980dced29626750f84a6fe6c9c50f6a90167e4d8e6511a8a8?artifact_id=4d62c06d-f9a2-4bfb-a8aa-a8d36ab8" }, "snapshot": { - "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/4749", - "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/4749" + "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/4780", + "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/4780" } } }, { "environment_name": "aws-prod", - "snapshot_index": 4749, - "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:bc5fbc1@sha256:bdc8eb7fd4717d25b74f5bae58316e66c24283f17a03ce0256ea04fe7eee72b1", - "sha256": "bdc8eb7fd4717d25b74f5bae58316e66c24283f17a03ce0256ea04fe7eee72b1", - "description": "3 instances changed", - "reported_at": 1781167678.669744, - "pipeline": "runner-ci", + "snapshot_index": 4780, + "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/languages-start-points:7e86fed@sha256:b2f51324efc1528e4dda57d235bdbc68d966e1ea23722d5d296f98eefbfc2676", + "sha256": "b2f51324efc1528e4dda57d235bdbc68d966e1ea23722d5d296f98eefbfc2676", + "description": "1 instance changed", + "reported_at": 1781596378.6927845, + "pipeline": "languages-start-points-ci", "deployments": [], "flows": [ { - "flow_name": "runner-ci", + "flow_name": "languages-start-points-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 }, { @@ -311,41 +307,37 @@ kosli log environment aws-prod --output=json ], "artifact_compliance": true, "snapshot_compliance": true, - "type": "changed", - "code_diff": "https://github.com/cyber-dojo/runner/compare/bc8fb51346a42e17a4d3669f3ea11908782a43d1...bc5fbc14361ce7a6281b6110049d90a03f69d786", + "type": "updated-provenance", + "code_diff": "https://github.com/cyber-dojo/languages-start-points/compare/9513e77858d775950f22173d0afd0634b2ac20b9...7e86fede3e42d573de92fed483559b8317ce2dda", "_links": { "artifact": { - "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/runner-ci/fingerprint/bdc8eb7fd4717d25b74f5bae58316e66c24283f17a03ce0256ea04fe7eee72b1", - "html": "https://app.kosli.com/cyber-dojo/flows/runner-ci/artifacts/bdc8eb7fd4717d25b74f5bae58316e66c24283f17a03ce0256ea04fe7eee72b1?artifact_id=665ba644-8f04-4330-a5e7-7a9c03ba" + "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/languages-start-points-ci/fingerprint/b2f51324efc1528e4dda57d235bdbc68d966e1ea23722d5d296f98eefbfc2676", + "html": "https://app.kosli.com/cyber-dojo/flows/languages-start-points-ci/artifacts/b2f51324efc1528e4dda57d235bdbc68d966e1ea23722d5d296f98eefbfc2676?artifact_id=8f51b5c2-8561-491c-a91e-248d6452" }, "snapshot": { - "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/4749", - "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/4749" + "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/4780", + "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/4780" } } }, { "environment_name": "aws-prod", - "snapshot_index": 4749, - "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:cdaac80@sha256:da15b4868e6a3d31647edb8be04f3ef47878315068bd5f15ea78c8da09eba2b4", - "sha256": "da15b4868e6a3d31647edb8be04f3ef47878315068bd5f15ea78c8da09eba2b4", + "snapshot_index": 4779, + "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/differ:981dcfc@sha256:902ec7af03407049ac6e5ef713146d518bbffd9d99cd28715fa0df973e809b7b", + "sha256": "902ec7af03407049ac6e5ef713146d518bbffd9d99cd28715fa0df973e809b7b", "description": "1 instance changed", - "reported_at": 1781167678.669744, - "pipeline": "nginx-ci", + "reported_at": 1781596318.7251499, + "pipeline": "differ-ci", "deployments": [], "flows": [ { - "flow_name": "nginx-ci", + "flow_name": "differ-ci", "deployments": null }, { "flow_name": "production-promotion", "deployments": null }, - { - "flow_name": "snyk-aws-beta-per-artifact", - "deployments": null - }, { "flow_name": "snyk-aws-prod-per-artifact", "deployments": null @@ -353,39 +345,39 @@ kosli log environment aws-prod --output=json ], "artifact_compliance": true, "snapshot_compliance": true, - "type": "changed", - "code_diff": "https://github.com/cyber-dojo/nginx/compare/ebf104fc1c073c7462a6ec381af70f639e4b8ba0...cdaac807f3282bd0bba056d906d5536074297a04", + "type": "updated-provenance", + "code_diff": "https://github.com/cyber-dojo/differ/compare/43d2a72431124e9fcf47bf866621ba3fd8e7f618...981dcfc34f584d46afb46b217b47ce68f2f14a08", "_links": { "artifact": { - "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/nginx-ci/fingerprint/da15b4868e6a3d31647edb8be04f3ef47878315068bd5f15ea78c8da09eba2b4", - "html": "https://app.kosli.com/cyber-dojo/flows/nginx-ci/artifacts/da15b4868e6a3d31647edb8be04f3ef47878315068bd5f15ea78c8da09eba2b4?artifact_id=daaf8e44-a0d4-46df-af10-a134861d" + "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/differ-ci/fingerprint/902ec7af03407049ac6e5ef713146d518bbffd9d99cd28715fa0df973e809b7b", + "html": "https://app.kosli.com/cyber-dojo/flows/differ-ci/artifacts/902ec7af03407049ac6e5ef713146d518bbffd9d99cd28715fa0df973e809b7b?artifact_id=03312679-db2a-4f55-a323-7cdb2c89" }, "snapshot": { - "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/4749", - "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/4749" + "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/4779", + "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/4779" } } }, { "environment_name": "aws-prod", - "snapshot_index": 4749, - "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/custom-start-points:d3e5850@sha256:9452c2f85c1d539974227f7e201f734934dce7b7dcbd2e056fcf9678454895e6", - "sha256": "9452c2f85c1d539974227f7e201f734934dce7b7dcbd2e056fcf9678454895e6", + "snapshot_index": 4778, + "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:8c84fac@sha256:f5909cc8dd53b2105953d1a72cd5d6181367d3588964aa01a04c056205a5d419", + "sha256": "f5909cc8dd53b2105953d1a72cd5d6181367d3588964aa01a04c056205a5d419", "description": "1 instance changed", - "reported_at": 1781167678.669744, - "pipeline": "custom-start-points-ci", + "reported_at": 1781596198.6164858, + "pipeline": "saver-ci", "deployments": [], "flows": [ { - "flow_name": "custom-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 }, { @@ -395,26 +387,26 @@ 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/a300e4c15cff321ef952a60bbc3a4729772a2419...d3e5850912655f2b18a68129f5f3a6480fe305ef", + "type": "updated-provenance", + "code_diff": "https://github.com/cyber-dojo/saver/compare/68d791f93dc161fd8dba63e49b7fe9f909cbe758...8c84facc7fd6a663fe7d40a6b4aff8f13a94d600", "_links": { "artifact": { - "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/custom-start-points-ci/fingerprint/9452c2f85c1d539974227f7e201f734934dce7b7dcbd2e056fcf9678454895e6", - "html": "https://app.kosli.com/cyber-dojo/flows/custom-start-points-ci/artifacts/9452c2f85c1d539974227f7e201f734934dce7b7dcbd2e056fcf9678454895e6?artifact_id=7c413c73-ba1e-4707-b6d3-ced83312" + "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/saver-ci/fingerprint/f5909cc8dd53b2105953d1a72cd5d6181367d3588964aa01a04c056205a5d419", + "html": "https://app.kosli.com/cyber-dojo/flows/saver-ci/artifacts/f5909cc8dd53b2105953d1a72cd5d6181367d3588964aa01a04c056205a5d419?artifact_id=bf5cf82a-8413-437c-97b0-1977ba2c" }, "snapshot": { - "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/4749", - "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/4749" + "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/4778", + "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/4778" } } }, { "environment_name": "aws-prod", - "snapshot_index": 4749, - "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/creator:2036886@sha256:e433c4e99e5191290a2b36c72acdf86806a960381309e11dab902e4db8bfb035", - "sha256": "e433c4e99e5191290a2b36c72acdf86806a960381309e11dab902e4db8bfb035", + "snapshot_index": 4778, + "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/creator:34f14b6@sha256:f221996be414b7698b15bfe68d143c90896dc70431099bd42ecc594127087c43", + "sha256": "f221996be414b7698b15bfe68d143c90896dc70431099bd42ecc594127087c43", "description": "1 instance changed", - "reported_at": 1781167678.669744, + "reported_at": 1781596198.6164858, "pipeline": "creator-ci", "deployments": [], "flows": [ @@ -437,31 +429,31 @@ kosli log environment aws-prod --output=json ], "artifact_compliance": true, "snapshot_compliance": true, - "type": "changed", - "code_diff": "https://gitlab.com/cyber-dojo/creator/-/compare/3a066186b7fbbcec0130419518c5bb81b50e71db...20368865b1ba0532f99f69641bbb96e6334cb545", + "type": "updated-provenance", + "code_diff": "https://github.com/cyber-dojo/creator/compare/a288de54e3751244517d5e04fc73622e5363257d...34f14b6fc5d87ff95426046716ec8a09141c13a7", "_links": { "artifact": { - "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/creator-ci/fingerprint/e433c4e99e5191290a2b36c72acdf86806a960381309e11dab902e4db8bfb035", - "html": "https://app.kosli.com/cyber-dojo/flows/creator-ci/artifacts/e433c4e99e5191290a2b36c72acdf86806a960381309e11dab902e4db8bfb035?artifact_id=d5d4dc83-f3c0-4a50-b5cb-fdc4f610" + "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/creator-ci/fingerprint/f221996be414b7698b15bfe68d143c90896dc70431099bd42ecc594127087c43", + "html": "https://app.kosli.com/cyber-dojo/flows/creator-ci/artifacts/f221996be414b7698b15bfe68d143c90896dc70431099bd42ecc594127087c43?artifact_id=bafbb0d0-e794-4acf-bdf5-81262268" }, "snapshot": { - "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/4749", - "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/4749" + "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/4778", + "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/4778" } } }, { "environment_name": "aws-prod", - "snapshot_index": 4749, - "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:f3c6791@sha256:9aa8b29c6163d8d454fdc63f896d1d0d8dec8f74ad364004e47727db3c1d3349", - "sha256": "9aa8b29c6163d8d454fdc63f896d1d0d8dec8f74ad364004e47727db3c1d3349", + "snapshot_index": 4778, + "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:7065268@sha256:b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8", + "sha256": "b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8", "description": "1 instance changed", - "reported_at": 1781167678.669744, - "pipeline": "dashboard-ci", + "reported_at": 1781596198.6164858, + "pipeline": "nginx-ci", "deployments": [], "flows": [ { - "flow_name": "dashboard-ci", + "flow_name": "nginx-ci", "deployments": null }, { @@ -479,31 +471,31 @@ kosli log environment aws-prod --output=json ], "artifact_compliance": true, "snapshot_compliance": true, - "type": "changed", - "code_diff": "https://github.com/cyber-dojo/dashboard/compare/0a839a472d41bf860d1d6dc3ded45ff63144018d...f3c679170776733c60dc485e076b7cb515caa7a4", + "type": "updated-provenance", + "code_diff": "https://github.com/cyber-dojo/nginx/compare/cdaac807f3282bd0bba056d906d5536074297a04...706526874659341458da5bb21903a6423c0a5a29", "_links": { "artifact": { - "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/dashboard-ci/fingerprint/9aa8b29c6163d8d454fdc63f896d1d0d8dec8f74ad364004e47727db3c1d3349", - "html": "https://app.kosli.com/cyber-dojo/flows/dashboard-ci/artifacts/9aa8b29c6163d8d454fdc63f896d1d0d8dec8f74ad364004e47727db3c1d3349?artifact_id=a92f3bf6-3316-405e-aee8-51af645c" + "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/nginx-ci/fingerprint/b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8", + "html": "https://app.kosli.com/cyber-dojo/flows/nginx-ci/artifacts/b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8?artifact_id=0438395b-a9b0-4ee5-9b30-8cd146d9" }, "snapshot": { - "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/4749", - "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/4749" + "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/4778", + "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/4778" } } }, { "environment_name": "aws-prod", - "snapshot_index": 4748, - "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:f3c6791@sha256:9aa8b29c6163d8d454fdc63f896d1d0d8dec8f74ad364004e47727db3c1d3349", - "sha256": "9aa8b29c6163d8d454fdc63f896d1d0d8dec8f74ad364004e47727db3c1d3349", + "snapshot_index": 4777, + "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:7065268@sha256:b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8", + "sha256": "b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8", "description": "1 instance changed", - "reported_at": 1781159278.7947195, - "pipeline": "dashboard-ci", + "reported_at": 1781596138.474564, + "pipeline": "nginx-ci", "deployments": [], "flows": [ { - "flow_name": "dashboard-ci", + "flow_name": "nginx-ci", "deployments": null }, { @@ -511,41 +503,41 @@ kosli log environment aws-prod --output=json "deployments": null }, { - "flow_name": "snyk-aws-beta-per-artifact", + "flow_name": "snyk-aws-prod-per-artifact", "deployments": null }, { - "flow_name": "snyk-aws-prod-per-artifact", + "flow_name": "snyk-aws-beta-per-artifact", "deployments": null } ], "artifact_compliance": true, "snapshot_compliance": true, "type": "changed", - "code_diff": "https://github.com/cyber-dojo/dashboard/compare/0a839a472d41bf860d1d6dc3ded45ff63144018d...f3c679170776733c60dc485e076b7cb515caa7a4", + "code_diff": "https://github.com/cyber-dojo/nginx/compare/cdaac807f3282bd0bba056d906d5536074297a04...706526874659341458da5bb21903a6423c0a5a29", "_links": { "artifact": { - "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/dashboard-ci/fingerprint/9aa8b29c6163d8d454fdc63f896d1d0d8dec8f74ad364004e47727db3c1d3349", - "html": "https://app.kosli.com/cyber-dojo/flows/dashboard-ci/artifacts/9aa8b29c6163d8d454fdc63f896d1d0d8dec8f74ad364004e47727db3c1d3349?artifact_id=a92f3bf6-3316-405e-aee8-51af645c" + "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/nginx-ci/fingerprint/b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8", + "html": "https://app.kosli.com/cyber-dojo/flows/nginx-ci/artifacts/b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8?artifact_id=0438395b-a9b0-4ee5-9b30-8cd146d9" }, "snapshot": { - "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/4748", - "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/4748" + "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/4777", + "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/4777" } } }, { "environment_name": "aws-prod", - "snapshot_index": 4748, - "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:8863c10@sha256:443fe71ccfa84a1b7eb1ebe4cf8931c43371843201f540e5f6a8c55154fdb735", - "sha256": "443fe71ccfa84a1b7eb1ebe4cf8931c43371843201f540e5f6a8c55154fdb735", - "description": "3 instances changed", - "reported_at": 1781159278.7947195, - "pipeline": "web-ci", + "snapshot_index": 4776, + "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/creator:34f14b6@sha256:f221996be414b7698b15bfe68d143c90896dc70431099bd42ecc594127087c43", + "sha256": "f221996be414b7698b15bfe68d143c90896dc70431099bd42ecc594127087c43", + "description": "1 instance changed", + "reported_at": 1781596078.5283337, + "pipeline": "creator-ci", "deployments": [], "flows": [ { - "flow_name": "web-ci", + "flow_name": "creator-ci", "deployments": null }, { @@ -553,41 +545,41 @@ kosli log environment aws-prod --output=json "deployments": null }, { - "flow_name": "snyk-aws-beta-per-artifact", + "flow_name": "snyk-aws-prod-per-artifact", "deployments": null }, { - "flow_name": "snyk-aws-prod-per-artifact", + "flow_name": "snyk-aws-beta-per-artifact", "deployments": null } ], "artifact_compliance": true, "snapshot_compliance": true, "type": "changed", - "code_diff": "https://github.com/cyber-dojo/web/compare/517657b9dec6ac7ff431ca5d9b2de72fded5c295...8863c10c2c93d3539672e0bf75bd9925f8778564", + "code_diff": "https://github.com/cyber-dojo/creator/compare/a288de54e3751244517d5e04fc73622e5363257d...34f14b6fc5d87ff95426046716ec8a09141c13a7", "_links": { "artifact": { - "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/web-ci/fingerprint/443fe71ccfa84a1b7eb1ebe4cf8931c43371843201f540e5f6a8c55154fdb735", - "html": "https://app.kosli.com/cyber-dojo/flows/web-ci/artifacts/443fe71ccfa84a1b7eb1ebe4cf8931c43371843201f540e5f6a8c55154fdb735?artifact_id=65fd4674-3e05-441a-8bd3-71492624" + "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/creator-ci/fingerprint/f221996be414b7698b15bfe68d143c90896dc70431099bd42ecc594127087c43", + "html": "https://app.kosli.com/cyber-dojo/flows/creator-ci/artifacts/f221996be414b7698b15bfe68d143c90896dc70431099bd42ecc594127087c43?artifact_id=bafbb0d0-e794-4acf-bdf5-81262268" }, "snapshot": { - "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/4748", - "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/4748" + "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/4776", + "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/4776" } } }, { "environment_name": "aws-prod", - "snapshot_index": 4748, - "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/creator:2036886@sha256:e433c4e99e5191290a2b36c72acdf86806a960381309e11dab902e4db8bfb035", - "sha256": "e433c4e99e5191290a2b36c72acdf86806a960381309e11dab902e4db8bfb035", + "snapshot_index": 4775, + "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:7065268@sha256:b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8", + "sha256": "b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8", "description": "1 instance changed", - "reported_at": 1781159278.7947195, - "pipeline": "creator-ci", + "reported_at": 1781595178.5604763, + "pipeline": "nginx-ci", "deployments": [], "flows": [ { - "flow_name": "creator-ci", + "flow_name": "nginx-ci", "deployments": null }, { @@ -595,41 +587,41 @@ kosli log environment aws-prod --output=json "deployments": null }, { - "flow_name": "snyk-aws-beta-per-artifact", + "flow_name": "snyk-aws-prod-per-artifact", "deployments": null }, { - "flow_name": "snyk-aws-prod-per-artifact", + "flow_name": "snyk-aws-beta-per-artifact", "deployments": null } ], "artifact_compliance": true, "snapshot_compliance": true, - "type": "changed", - "code_diff": "https://gitlab.com/cyber-dojo/creator/-/compare/3a066186b7fbbcec0130419518c5bb81b50e71db...20368865b1ba0532f99f69641bbb96e6334cb545", + "type": "updated-provenance", + "code_diff": "https://github.com/cyber-dojo/nginx/compare/cdaac807f3282bd0bba056d906d5536074297a04...706526874659341458da5bb21903a6423c0a5a29", "_links": { "artifact": { - "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/creator-ci/fingerprint/e433c4e99e5191290a2b36c72acdf86806a960381309e11dab902e4db8bfb035", - "html": "https://app.kosli.com/cyber-dojo/flows/creator-ci/artifacts/e433c4e99e5191290a2b36c72acdf86806a960381309e11dab902e4db8bfb035?artifact_id=d5d4dc83-f3c0-4a50-b5cb-fdc4f610" + "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/nginx-ci/fingerprint/b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8", + "html": "https://app.kosli.com/cyber-dojo/flows/nginx-ci/artifacts/b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8?artifact_id=0438395b-a9b0-4ee5-9b30-8cd146d9" }, "snapshot": { - "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/4748", - "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/4748" + "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/4775", + "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/4775" } } }, { "environment_name": "aws-prod", - "snapshot_index": 4748, - "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:bc5fbc1@sha256:bdc8eb7fd4717d25b74f5bae58316e66c24283f17a03ce0256ea04fe7eee72b1", - "sha256": "bdc8eb7fd4717d25b74f5bae58316e66c24283f17a03ce0256ea04fe7eee72b1", - "description": "3 instances changed", - "reported_at": 1781159278.7947195, - "pipeline": "runner-ci", + "snapshot_index": 4775, + "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/creator:34f14b6@sha256:f221996be414b7698b15bfe68d143c90896dc70431099bd42ecc594127087c43", + "sha256": "f221996be414b7698b15bfe68d143c90896dc70431099bd42ecc594127087c43", + "description": "1 instance changed", + "reported_at": 1781595178.5604763, + "pipeline": "creator-ci", "deployments": [], "flows": [ { - "flow_name": "runner-ci", + "flow_name": "creator-ci", "deployments": null }, { @@ -637,51 +629,47 @@ kosli log environment aws-prod --output=json "deployments": null }, { - "flow_name": "snyk-aws-beta-per-artifact", + "flow_name": "snyk-aws-prod-per-artifact", "deployments": null }, { - "flow_name": "snyk-aws-prod-per-artifact", + "flow_name": "snyk-aws-beta-per-artifact", "deployments": null } ], "artifact_compliance": true, "snapshot_compliance": true, - "type": "changed", - "code_diff": "https://github.com/cyber-dojo/runner/compare/bc8fb51346a42e17a4d3669f3ea11908782a43d1...bc5fbc14361ce7a6281b6110049d90a03f69d786", + "type": "updated-provenance", + "code_diff": "https://github.com/cyber-dojo/creator/compare/a288de54e3751244517d5e04fc73622e5363257d...34f14b6fc5d87ff95426046716ec8a09141c13a7", "_links": { "artifact": { - "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/runner-ci/fingerprint/bdc8eb7fd4717d25b74f5bae58316e66c24283f17a03ce0256ea04fe7eee72b1", - "html": "https://app.kosli.com/cyber-dojo/flows/runner-ci/artifacts/bdc8eb7fd4717d25b74f5bae58316e66c24283f17a03ce0256ea04fe7eee72b1?artifact_id=665ba644-8f04-4330-a5e7-7a9c03ba" + "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/creator-ci/fingerprint/f221996be414b7698b15bfe68d143c90896dc70431099bd42ecc594127087c43", + "html": "https://app.kosli.com/cyber-dojo/flows/creator-ci/artifacts/f221996be414b7698b15bfe68d143c90896dc70431099bd42ecc594127087c43?artifact_id=bafbb0d0-e794-4acf-bdf5-81262268" }, "snapshot": { - "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/4748", - "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/4748" + "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/4775", + "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/4775" } } }, { "environment_name": "aws-prod", - "snapshot_index": 4748, - "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:cdaac80@sha256:da15b4868e6a3d31647edb8be04f3ef47878315068bd5f15ea78c8da09eba2b4", - "sha256": "da15b4868e6a3d31647edb8be04f3ef47878315068bd5f15ea78c8da09eba2b4", - "description": "1 instance changed", - "reported_at": 1781159278.7947195, - "pipeline": "nginx-ci", + "snapshot_index": 4774, + "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:f66cc5c@sha256:29c69c2f30f261a26fff4793fd8ae44b9081def1d4bcaaa27b0fef0501d949e4", + "sha256": "29c69c2f30f261a26fff4793fd8ae44b9081def1d4bcaaa27b0fef0501d949e4", + "description": "3 instances changed", + "reported_at": 1781593978.426208, + "pipeline": "web-ci", "deployments": [], "flows": [ { - "flow_name": "nginx-ci", + "flow_name": "web-ci", "deployments": null }, { "flow_name": "production-promotion", "deployments": null }, - { - "flow_name": "snyk-aws-beta-per-artifact", - "deployments": null - }, { "flow_name": "snyk-aws-prod-per-artifact", "deployments": null @@ -689,16 +677,16 @@ kosli log environment aws-prod --output=json ], "artifact_compliance": true, "snapshot_compliance": true, - "type": "changed", - "code_diff": "https://github.com/cyber-dojo/nginx/compare/ebf104fc1c073c7462a6ec381af70f639e4b8ba0...cdaac807f3282bd0bba056d906d5536074297a04", + "type": "updated-provenance", + "code_diff": "https://github.com/cyber-dojo/web/compare/8863c10c2c93d3539672e0bf75bd9925f8778564...f66cc5c51fcc19b04b36e0542b36b6cc52515d3c", "_links": { "artifact": { - "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/nginx-ci/fingerprint/da15b4868e6a3d31647edb8be04f3ef47878315068bd5f15ea78c8da09eba2b4", - "html": "https://app.kosli.com/cyber-dojo/flows/nginx-ci/artifacts/da15b4868e6a3d31647edb8be04f3ef47878315068bd5f15ea78c8da09eba2b4?artifact_id=daaf8e44-a0d4-46df-af10-a134861d" + "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/web-ci/fingerprint/29c69c2f30f261a26fff4793fd8ae44b9081def1d4bcaaa27b0fef0501d949e4", + "html": "https://app.kosli.com/cyber-dojo/flows/web-ci/artifacts/29c69c2f30f261a26fff4793fd8ae44b9081def1d4bcaaa27b0fef0501d949e4?artifact_id=ed664433-201f-41ac-938b-5931b5f4" }, "snapshot": { - "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/4748", - "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/4748" + "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/4774", + "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/4774" } } } diff --git a/client_reference/kosli_tag.md b/client_reference/kosli_tag.md index 5e6de9b..92d9aa6 100644 --- a/client_reference/kosli_tag.md +++ b/client_reference/kosli_tag.md @@ -43,7 +43,7 @@ use --set to add or update tags, and --unset to remove tags. View an example of the `kosli tag` command in GitHub. - In [this YAML file](https://github.com/cyber-dojo/aws-prod-co-promotion/blob/b8cebb868c7b188ca28222ca21a4678524eca206/.github/workflows/promote_one.yml#L73) + In [this YAML file](https://github.com/cyber-dojo/aws-prod-co-promotion/blob/01dd4c6406d6655898ef2236875ec9f67091c792/.github/workflows/promote_one.yml#L73) View an example of the `kosli tag` command in GitLab. diff --git a/client_reference/overview.md b/client_reference/overview.md index 815e1a0..e5cc562 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.26.0**. + This reference was generated from Kosli CLI **v2.27.0**. The Kosli CLI allows you to interact with Kosli from your terminal and CI/CD pipelines.