diff --git a/client_reference/kosli_attest_artifact.md b/client_reference/kosli_attest_artifact.md index 2e6a95a..9e8c172 100644 --- a/client_reference/kosli_attest_artifact.md +++ b/client_reference/kosli_attest_artifact.md @@ -92,7 +92,7 @@ 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/25f0b797c18403de1c8490a9a71bbe9789c809a9/.github/workflows/secure-docker-build.yml#L210), which created [this Kosli Event](https://app.kosli.com/cyber-dojo/flows/differ-ci/trails/335ddfa139708c37908dd594a0502bc6d88f8615?attestation_id=5f3d2a2e-acdb-4414-a1e7-ebca7c32). + In [this YAML file](https://github.com/cyber-dojo/reusable-actions-workflows/blob/25f0b797c18403de1c8490a9a71bbe9789c809a9/.github/workflows/secure-docker-build.yml#L210), which created [this Kosli Event](https://app.kosli.com/cyber-dojo/flows/differ-ci/trails/1b7ea87a174a1a290600b469dc1029ec4c974320?attestation_id=53b144c7-33a3-4d8a-b416-37aea745). View an example of the `kosli attest artifact` command in GitLab. diff --git a/client_reference/kosli_attest_custom.md b/client_reference/kosli_attest_custom.md index 7239528..cc9c56f 100644 --- a/client_reference/kosli_attest_custom.md +++ b/client_reference/kosli_attest_custom.md @@ -77,7 +77,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/335ddfa139708c37908dd594a0502bc6d88f8615/.github/workflows/main.yml#L168), which created [this Kosli Event](https://app.kosli.com/cyber-dojo/flows/differ-ci/trails/335ddfa139708c37908dd594a0502bc6d88f8615?attestation_id=12b9fd3d-cb9b-4583-b5ac-ceb9d803). + In [this YAML file](https://github.com/cyber-dojo/differ/blob/1b7ea87a174a1a290600b469dc1029ec4c974320/.github/workflows/main.yml#L168), which created [this Kosli Event](https://app.kosli.com/cyber-dojo/flows/differ-ci/trails/1b7ea87a174a1a290600b469dc1029ec4c974320?attestation_id=266c2ffc-078c-41f3-ada6-603b985c). diff --git a/client_reference/kosli_attest_decision.md b/client_reference/kosli_attest_decision.md index 9cd1734..4d66a62 100644 --- a/client_reference/kosli_attest_decision.md +++ b/client_reference/kosli_attest_decision.md @@ -40,7 +40,7 @@ In other CI systems, set them explicitly to capture repository metadata. | `-t`, `--artifact-type` string | The type of the artifact to calculate its SHA256 fingerprint. One of: [oci, docker, file, dir]. Only required if you want Kosli to calculate the fingerprint for you (i.e. when you don't specify '`--fingerprint`' on commands that allow it). | | `--attachments` strings | [optional] The comma-separated list of paths of attachments for the reported attestation. Attachments can be files or directories. All attachments are compressed and uploaded to Kosli's evidence vault. | | `-g`, `--commit` string | [conditional] The git commit for which the attestation is associated to. Becomes required when reporting an attestation for an artifact before reporting it to Kosli. (defaulted in some CIs: [docs](/integrations/ci_cd) ). | -| `-C`, `--compliant` | [defaulted] Whether the attestation is compliant or not. A boolean flag [docs](/faq/#boolean-flags) | +| `-C`, `--compliant` | [defaulted] Whether the attestation is compliant or not. | | `--control` string | The control identifier being evaluated (e.g. RCTL-043). | | `--description` string | [optional] attestation description | | `-D`, `--dry-run` | [optional] Run in dry-run mode. When enabled, no data is sent to Kosli and the CLI exits with 0 exit code regardless of any errors. | diff --git a/client_reference/kosli_attest_generic.md b/client_reference/kosli_attest_generic.md index c293f2f..c330ed7 100644 --- a/client_reference/kosli_attest_generic.md +++ b/client_reference/kosli_attest_generic.md @@ -31,7 +31,7 @@ In other CI systems, set them explicitly to capture repository metadata. | `-t`, `--artifact-type` string | The type of the artifact to calculate its SHA256 fingerprint. One of: [oci, docker, file, dir]. Only required if you want Kosli to calculate the fingerprint for you (i.e. when you don't specify '`--fingerprint`' on commands that allow it). | | `--attachments` strings | [optional] The comma-separated list of paths of attachments for the reported attestation. Attachments can be files or directories. All attachments are compressed and uploaded to Kosli's evidence vault. | | `-g`, `--commit` string | [conditional] The git commit for which the attestation is associated to. Becomes required when reporting an attestation for an artifact before reporting it to Kosli. (defaulted in some CIs: [docs](/integrations/ci_cd) ). | -| `-C`, `--compliant` | [defaulted] Whether the attestation is compliant or not. A boolean flag [docs](/faq/#boolean-flags) (default true) | +| `-C`, `--compliant` | [defaulted] Whether the attestation is compliant or not. (default true) | | `--description` string | [optional] attestation description | | `-D`, `--dry-run` | [optional] Run in dry-run mode. When enabled, no data is sent to Kosli and the CLI exits with 0 exit code regardless of any errors. | | `-x`, `--exclude` strings | [optional] The comma separated list of directories and files to exclude from fingerprinting. Can take glob patterns. Only applicable for `--artifact-type` dir. | @@ -73,7 +73,7 @@ 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/5407827a19ff32c8d0e7ff2e8f18665e86e64f01/.github/workflows/main.yml#L197), which created [this Kosli Event](https://app.kosli.com/cyber-dojo/flows/dashboard-ci/trails/5407827a19ff32c8d0e7ff2e8f18665e86e64f01?attestation_id=97d16b29-608f-4a1c-a1ff-ac1da975). + In [this YAML file](https://github.com/cyber-dojo/dashboard/blob/0fb0be439480821efb926a5079e39ce5941eaa48/.github/workflows/main.yml#L197), which created [this Kosli Event](https://app.kosli.com/cyber-dojo/flows/dashboard-ci/trails/0fb0be439480821efb926a5079e39ce5941eaa48?attestation_id=c12ffdfa-3c59-4d52-ab07-4e6dae54). View an example of the `kosli attest generic` command in GitLab. diff --git a/client_reference/kosli_attest_junit.md b/client_reference/kosli_attest_junit.md index 750610f..46196b1 100644 --- a/client_reference/kosli_attest_junit.md +++ b/client_reference/kosli_attest_junit.md @@ -78,7 +78,7 @@ 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/335ddfa139708c37908dd594a0502bc6d88f8615/.github/workflows/main.yml#L101), which created [this Kosli Event](https://app.kosli.com/cyber-dojo/flows/differ-ci/trails/335ddfa139708c37908dd594a0502bc6d88f8615?attestation_id=1443d8a3-ca80-4d1e-9d7b-44ea1ef4). + In [this YAML file](https://github.com/cyber-dojo/differ/blob/1b7ea87a174a1a290600b469dc1029ec4c974320/.github/workflows/main.yml#L101), which created [this Kosli Event](https://app.kosli.com/cyber-dojo/flows/differ-ci/trails/1b7ea87a174a1a290600b469dc1029ec4c974320?attestation_id=aa692eef-ec0e-4ed1-9d5e-e2c7307d). View an example of the `kosli attest junit` command in GitLab. diff --git a/client_reference/kosli_attest_pullrequest_github.md b/client_reference/kosli_attest_pullrequest_github.md index 9f0d982..0511ff1 100644 --- a/client_reference/kosli_attest_pullrequest_github.md +++ b/client_reference/kosli_attest_pullrequest_github.md @@ -70,7 +70,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/335ddfa139708c37908dd594a0502bc6d88f8615/.github/workflows/main.yml#L81), which created [this Kosli Event](https://app.kosli.com/cyber-dojo/flows/differ-ci/trails/335ddfa139708c37908dd594a0502bc6d88f8615?attestation_id=52c30440-4609-47c8-9110-cd8a0f99). + In [this YAML file](https://github.com/cyber-dojo/differ/blob/1b7ea87a174a1a290600b469dc1029ec4c974320/.github/workflows/main.yml#L81), which created [this Kosli Event](https://app.kosli.com/cyber-dojo/flows/differ-ci/trails/1b7ea87a174a1a290600b469dc1029ec4c974320?attestation_id=fcba8229-28e6-419a-b84e-ceb3ae97). diff --git a/client_reference/kosli_attest_sonar.md b/client_reference/kosli_attest_sonar.md index 9228c71..37d6b56 100644 --- a/client_reference/kosli_attest_sonar.md +++ b/client_reference/kosli_attest_sonar.md @@ -98,7 +98,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/5407827a19ff32c8d0e7ff2e8f18665e86e64f01/.github/workflows/main.yml#L122), which created [this Kosli Event](https://app.kosli.com/cyber-dojo/flows/dashboard-ci/trails/5407827a19ff32c8d0e7ff2e8f18665e86e64f01?attestation_id=0d92e922-decb-44cd-a7ff-4afba4c4). + In [this YAML file](https://github.com/cyber-dojo/dashboard/blob/0fb0be439480821efb926a5079e39ce5941eaa48/.github/workflows/main.yml#L122), which created [this Kosli Event](https://app.kosli.com/cyber-dojo/flows/dashboard-ci/trails/0fb0be439480821efb926a5079e39ce5941eaa48?attestation_id=2ca1e327-ed19-492a-80d3-2ec96963). diff --git a/client_reference/kosli_diff_snapshots.md b/client_reference/kosli_diff_snapshots.md index a1c77ca..1488564 100644 --- a/client_reference/kosli_diff_snapshots.md +++ b/client_reference/kosli_diff_snapshots.md @@ -66,36 +66,70 @@ kosli diff snapshots aws-beta aws-prod --output=json ```json { "snappish1": { - "snapshot_id": "aws-beta#7858", + "snapshot_id": "aws-beta#7866", + "artifacts": [] + }, + "snappish2": { + "snapshot_id": "aws-prod#5126", + "artifacts": [] + }, + "changed": { + "artifacts": [] + }, + "not-changed": { "artifacts": [ - { - "fingerprint": "278a29bc232ce0294ce46cd08bb3f3a28ce53ddc14e588e00f67f6a93173b916", - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:3aaa3a7@sha256:278a29bc232ce0294ce46cd08bb3f3a28ce53ddc14e588e00f67f6a93173b916", - "most_recent_timestamp": 1784445403, - "flow": "web-ci", - "commit_url": "https://github.com/cyber-dojo/web/commit/3aaa3a73514a94581455ff65cbc835501dce1090", - "instance_count": 3 - }, { "fingerprint": "680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:c29db2c@sha256:680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", - "most_recent_timestamp": 1785229556, + "most_recent_timestamp": 1785236539, "flow": "saver-ci", "commit_url": "https://github.com/cyber-dojo/saver/commit/c29db2ce6d16a9ace09a8548b0cc39fd608abd2e", "instance_count": 1 }, + { + "fingerprint": "8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:19f8734@sha256:8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "most_recent_timestamp": 1785138609, + "flow": "runner-ci", + "commit_url": "https://github.com/cyber-dojo/runner/commit/19f873464a01f28ecd588504ffe03529119d6297", + "instance_count": 3 + }, { "fingerprint": "8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/custom-start-points:790d86b@sha256:8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", - "most_recent_timestamp": 1784312340, + "most_recent_timestamp": 1785241244, "flow": "custom-start-points-ci", "commit_url": "https://github.com/cyber-dojo/custom-start-points/commit/790d86b66f4d86ab47f5c521daf5039dc8aeef4d", "instance_count": 1 }, + { + "fingerprint": "a20359795934beb03d992ba5a8f8b95ca637e609284e5a84781bdcbb1b861975", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/spooler:92c624e@sha256:a20359795934beb03d992ba5a8f8b95ca637e609284e5a84781bdcbb1b861975", + "most_recent_timestamp": 1785224823, + "flow": "spooler-ci", + "commit_url": "https://github.com/cyber-dojo/spooler/commit/92c624eabb024729fb2af6cdbe354db11ee3882f", + "instance_count": 1 + }, + { + "fingerprint": "aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/creator:76672a8@sha256:aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", + "most_recent_timestamp": 1784357070, + "flow": "creator-ci", + "commit_url": "https://github.com/cyber-dojo/creator/commit/76672a8b247049c3ce8c3140852e17be8f47d995", + "instance_count": 1 + }, + { + "fingerprint": "af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:2779354@sha256:af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", + "most_recent_timestamp": 1785243412, + "flow": "web-ci", + "commit_url": "https://github.com/cyber-dojo/web/commit/2779354a4fda0eeb90fd43f32211836d99f6bde1", + "instance_count": 3 + }, { "fingerprint": "b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/languages-start-points:6a7f7be@sha256:b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", - "most_recent_timestamp": 1784312582, + "most_recent_timestamp": 1785241263, "flow": "languages-start-points-ci", "commit_url": "https://github.com/cyber-dojo/languages-start-points/commit/6a7f7be81022f7ed3fa8383f016b55af86e2af23", "instance_count": 1 @@ -103,7 +137,7 @@ kosli diff snapshots aws-beta aws-prod --output=json { "fingerprint": "c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:a2e4638@sha256:c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", - "most_recent_timestamp": 1784312525, + "most_recent_timestamp": 1785241259, "flow": "nginx-ci", "commit_url": "https://github.com/cyber-dojo/nginx/commit/a2e4638aaa102446b8a6d1d519c5bc007e24f087", "instance_count": 1 @@ -111,7 +145,7 @@ kosli diff snapshots aws-beta aws-prod --output=json { "fingerprint": "c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/differ:1b7ea87@sha256:c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", - "most_recent_timestamp": 1784312477, + "most_recent_timestamp": 1785241593, "flow": "differ-ci", "commit_url": "https://github.com/cyber-dojo/differ/commit/1b7ea87a174a1a290600b469dc1029ec4c974320", "instance_count": 1 @@ -119,7 +153,7 @@ kosli diff snapshots aws-beta aws-prod --output=json { "fingerprint": "c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:0fb0be4@sha256:c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", - "most_recent_timestamp": 1784713932, + "most_recent_timestamp": 1785241255, "flow": "dashboard-ci", "commit_url": "https://github.com/cyber-dojo/dashboard/commit/0fb0be439480821efb926a5079e39ce5941eaa48", "instance_count": 1 @@ -127,112 +161,12 @@ kosli diff snapshots aws-beta aws-prod --output=json { "fingerprint": "c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:258b6d0@sha256:c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", - "most_recent_timestamp": 1784312473, + "most_recent_timestamp": 1785241255, "flow": "exercises-start-points-ci", "commit_url": "https://github.com/cyber-dojo/exercises-start-points/commit/258b6d07d2b28ad5cb2ce6d29934997f72380f1a", "instance_count": 1 } ] - }, - "snappish2": { - "snapshot_id": "aws-prod#5116", - "artifacts": [ - { - "fingerprint": "0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972", - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:3f0b997@sha256:0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972", - "most_recent_timestamp": 1784352892, - "flow": "web-ci", - "commit_url": "https://github.com/cyber-dojo/web/commit/3f0b9975f96b7f4e4aae0b4409cebda3209be164", - "instance_count": 3 - }, - { - "fingerprint": "1ed61f19b66b82f7f122b7b88522360de73abb3536fab5d0f8eadb9b987f9400", - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/custom-start-points:d37aace@sha256:1ed61f19b66b82f7f122b7b88522360de73abb3536fab5d0f8eadb9b987f9400", - "most_recent_timestamp": 1783618204, - "flow": "custom-start-points-ci", - "commit_url": "https://github.com/cyber-dojo/custom-start-points/commit/d37aace7598ee943ba0bd5e51f224335cbdf0a3e", - "instance_count": 1 - }, - { - "fingerprint": "3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5", - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:7ba8029@sha256:3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5", - "most_recent_timestamp": 1784183551, - "flow": "nginx-ci", - "commit_url": "https://github.com/cyber-dojo/nginx/commit/7ba8029e0cb5d4c8fa51360f59b5cb8714a60d47", - "instance_count": 1 - }, - { - "fingerprint": "a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:804f248@sha256:a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", - "most_recent_timestamp": 1783618126, - "flow": "exercises-start-points-ci", - "commit_url": "https://github.com/cyber-dojo/exercises-start-points/commit/804f248d832dc34e564507b009c246dfb4f0c657", - "instance_count": 1 - }, - { - "fingerprint": "c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f", - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/differ:335ddfa@sha256:c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f", - "most_recent_timestamp": 1784184597, - "flow": "differ-ci", - "commit_url": "https://github.com/cyber-dojo/differ/commit/335ddfa139708c37908dd594a0502bc6d88f8615", - "instance_count": 1 - }, - { - "fingerprint": "d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e", - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:5407827@sha256:d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e", - "most_recent_timestamp": 1784355921, - "flow": "dashboard-ci", - "commit_url": "https://github.com/cyber-dojo/dashboard/commit/5407827a19ff32c8d0e7ff2e8f18665e86e64f01", - "instance_count": 1 - }, - { - "fingerprint": "f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418", - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/languages-start-points:c6db342@sha256:f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418", - "most_recent_timestamp": 1783618209, - "flow": "languages-start-points-ci", - "commit_url": "https://github.com/cyber-dojo/languages-start-points/commit/c6db342472238a7852b6ff31b04f9a6a6099f5cf", - "instance_count": 1 - }, - { - "fingerprint": "fcfc73775b49f8b8414c720e820b38258c6d18cb9d25b7ac76ff2d528a7add97", - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:f4bb341@sha256:fcfc73775b49f8b8414c720e820b38258c6d18cb9d25b7ac76ff2d528a7add97", - "most_recent_timestamp": 1784443888, - "flow": "saver-ci", - "commit_url": "https://github.com/cyber-dojo/saver/commit/f4bb3412725258648a7cf5ce1a776609b4dade72", - "instance_count": 1 - } - ] - }, - "changed": { - "artifacts": [] - }, - "not-changed": { - "artifacts": [ - { - "fingerprint": "8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:19f8734@sha256:8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", - "most_recent_timestamp": 1785138609, - "flow": "runner-ci", - "commit_url": "https://github.com/cyber-dojo/runner/commit/19f873464a01f28ecd588504ffe03529119d6297", - "instance_count": 3 - }, - { - "fingerprint": "a20359795934beb03d992ba5a8f8b95ca637e609284e5a84781bdcbb1b861975", - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/spooler:92c624e@sha256:a20359795934beb03d992ba5a8f8b95ca637e609284e5a84781bdcbb1b861975", - "most_recent_timestamp": 1785224823, - "flow": "spooler-ci", - "commit_url": "https://github.com/cyber-dojo/spooler/commit/92c624eabb024729fb2af6cdbe354db11ee3882f", - "instance_count": 1 - }, - { - "fingerprint": "aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/creator:76672a8@sha256:aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", - "most_recent_timestamp": 1784357070, - "flow": "creator-ci", - "commit_url": "https://github.com/cyber-dojo/creator/commit/76672a8b247049c3ce8c3140852e17be8f47d995", - "instance_count": 1 - } - ] } } ``` diff --git a/client_reference/kosli_get_environment.md b/client_reference/kosli_get_environment.md index 79893a4..7ef3252 100644 --- a/client_reference/kosli_get_environment.md +++ b/client_reference/kosli_get_environment.md @@ -50,9 +50,9 @@ kosli get environment aws-prod --output=json "name": "aws-prod", "type": "ECS", "description": "The ECS cluster for production cyber-dojo", - "last_modified_at": 1785233578.5153272, - "last_reported_at": 1785233578.5153272, - "last_changed_at": 1785224878.4373872, + "last_modified_at": 1785257278.4557931, + "last_reported_at": 1785257278.4557931, + "last_changed_at": 1785243478.598589, "state": true, "include_scaling": false, "tags": { diff --git a/client_reference/kosli_get_snapshot.md b/client_reference/kosli_get_snapshot.md index d528c77..1d413ec 100644 --- a/client_reference/kosli_get_snapshot.md +++ b/client_reference/kosli_get_snapshot.md @@ -64,7 +64,7 @@ kosli get snapshot aws-prod --output=json ```json { - "index": 5116, + "index": 5126, "is_latest": true, "next_snapshot_timestamp": null, "artifact_compliance_count": { @@ -72,13 +72,13 @@ kosli get snapshot aws-prod --output=json "false": 0, "null": 0 }, - "timestamp": 1785224878.4373872, + "timestamp": 1785243478.598589, "type": "ECS", "compliant": true, - "html_url": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5116", + "html_url": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5126", "artifacts": [ { - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/spooler:92c624e@sha256:a20359795934beb03d992ba5a8f8b95ca637e609284e5a84781bdcbb1b861975", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:2779354@sha256:af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", "compliant": true, "deployments": [], "policy_decisions": [ @@ -100,8 +100,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "spooler-ci", - "trail_name": "92c624eabb024729fb2af6cdbe354db11ee3882f", + "flow_name": "web-ci", + "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1", "artifact_status": null } }, @@ -109,7 +109,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-140", + "trail_name": "promotion-one-143", "artifact_status": null } } @@ -129,8 +129,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "spooler-ci", - "trail_name": "92c624eabb024729fb2af6cdbe354db11ee3882f", + "flow_name": "web-ci", + "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1", "artifact_status": "COMPLIANT" } }, @@ -138,7 +138,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-140", + "trail_name": "promotion-one-143", "artifact_status": "COMPLIANT" } } @@ -157,14 +157,14 @@ kosli get snapshot aws-prod --output=json "for_control": null } }, - "satisfied": null, - "ignored": true, + "satisfied": true, + "ignored": false, "resolutions": [ { - "type": "rule_not_applicable", + "type": "rule_satisfied", "context": { - "flow_name": "spooler-ci", - "trail_name": "92c624eabb024729fb2af6cdbe354db11ee3882f", + "flow_name": "web-ci", + "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1", "artifact_status": null } }, @@ -172,7 +172,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-140", + "trail_name": "promotion-one-143", "artifact_status": null } } @@ -199,8 +199,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "spooler-ci", - "trail_name": "92c624eabb024729fb2af6cdbe354db11ee3882f", + "flow_name": "web-ci", + "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1", "artifact_status": null } }, @@ -208,7 +208,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-140", + "trail_name": "promotion-one-143", "artifact_status": null } } @@ -228,8 +228,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "spooler-ci", - "trail_name": "92c624eabb024729fb2af6cdbe354db11ee3882f", + "flow_name": "web-ci", + "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1", "artifact_status": "COMPLIANT" } }, @@ -237,7 +237,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-140", + "trail_name": "promotion-one-143", "artifact_status": "COMPLIANT" } } @@ -256,14 +256,14 @@ kosli get snapshot aws-prod --output=json "for_control": "SDLC-CTRL-0002" } }, - "satisfied": null, - "ignored": true, + "satisfied": true, + "ignored": false, "resolutions": [ { - "type": "rule_not_applicable", + "type": "rule_satisfied", "context": { - "flow_name": "spooler-ci", - "trail_name": "92c624eabb024729fb2af6cdbe354db11ee3882f", + "flow_name": "web-ci", + "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -272,7 +272,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-140", + "trail_name": "promotion-one-143", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -300,8 +300,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "spooler-ci", - "trail_name": "92c624eabb024729fb2af6cdbe354db11ee3882f", + "flow_name": "web-ci", + "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1", "artifact_status": null } }, @@ -309,7 +309,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-140", + "trail_name": "promotion-one-143", "artifact_status": null } } @@ -329,8 +329,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "spooler-ci", - "trail_name": "92c624eabb024729fb2af6cdbe354db11ee3882f", + "flow_name": "web-ci", + "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1", "artifact_status": "COMPLIANT" } }, @@ -338,7 +338,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-140", + "trail_name": "promotion-one-143", "artifact_status": "COMPLIANT" } } @@ -363,8 +363,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "spooler-ci", - "trail_name": "92c624eabb024729fb2af6cdbe354db11ee3882f", + "flow_name": "web-ci", + "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -373,7 +373,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-140", + "trail_name": "promotion-one-143", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -401,8 +401,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "spooler-ci", - "trail_name": "92c624eabb024729fb2af6cdbe354db11ee3882f", + "flow_name": "web-ci", + "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1", "artifact_status": null } }, @@ -410,7 +410,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-140", + "trail_name": "promotion-one-143", "artifact_status": null } } @@ -430,8 +430,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "spooler-ci", - "trail_name": "92c624eabb024729fb2af6cdbe354db11ee3882f", + "flow_name": "web-ci", + "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1", "artifact_status": "COMPLIANT" } }, @@ -439,7 +439,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-140", + "trail_name": "promotion-one-143", "artifact_status": "COMPLIANT" } } @@ -464,8 +464,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "spooler-ci", - "trail_name": "92c624eabb024729fb2af6cdbe354db11ee3882f", + "flow_name": "web-ci", + "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1", "artifact_status": null } }, @@ -473,7 +473,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-140", + "trail_name": "promotion-one-143", "artifact_status": null } } @@ -500,8 +500,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "spooler-ci", - "trail_name": "92c624eabb024729fb2af6cdbe354db11ee3882f", + "flow_name": "web-ci", + "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1", "artifact_status": null } }, @@ -509,7 +509,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-140", + "trail_name": "promotion-one-143", "artifact_status": null } } @@ -535,8 +535,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "spooler-ci", - "trail_name": "92c624eabb024729fb2af6cdbe354db11ee3882f", + "flow_name": "web-ci", + "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1", "artifact_status": "COMPLIANT" } }, @@ -544,7 +544,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-140", + "trail_name": "promotion-one-143", "artifact_status": "COMPLIANT" } } @@ -555,69 +555,71 @@ kosli get snapshot aws-prod --output=json } ], "reasons_for_incompliance": [], - "fingerprint": "a20359795934beb03d992ba5a8f8b95ca637e609284e5a84781bdcbb1b861975", + "fingerprint": "af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", "creationTimestamp": [ - 1785224823 + 1785243407, + 1785243408, + 1785243412 ], "pods": null, "annotation": { - "type": "started-compliant", - "was": 0, - "now": 1 + "type": "unchanged", + "was": 3, + "now": 3 }, - "flow_name": "spooler-ci", - "git_commit": "92c624eabb024729fb2af6cdbe354db11ee3882f", - "commit_url": "https://github.com/cyber-dojo/spooler/commit/92c624eabb024729fb2af6cdbe354db11ee3882f", - "html_url": "https://app.kosli.com/cyber-dojo/flows/spooler-ci/artifacts/a20359795934beb03d992ba5a8f8b95ca637e609284e5a84781bdcbb1b861975?artifact_id=42025c9c-2608-4ef0-b140-84548282", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/spooler-ci", + "flow_name": "web-ci", + "git_commit": "2779354a4fda0eeb90fd43f32211836d99f6bde1", + "commit_url": "https://github.com/cyber-dojo/web/commit/2779354a4fda0eeb90fd43f32211836d99f6bde1", + "html_url": "https://app.kosli.com/cyber-dojo/flows/web-ci/artifacts/af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e?artifact_id=dc864446-cc9f-43e9-bf70-db7dc03b", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/web-ci", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/spooler/compare/b592c3af03e9530c1d224686a1745e4a12e1df00...92c624eabb024729fb2af6cdbe354db11ee3882f", - "previous_git_commit": "b592c3af03e9530c1d224686a1745e4a12e1df00", - "previous_fingerprint": "5cd2a591370f45e0156411a484182215a0c403992b9aef2cfaacbeadb3ac2b3e", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/spooler:b592c3a@sha256:5cd2a591370f45e0156411a484182215a0c403992b9aef2cfaacbeadb3ac2b3e", + "diff_url": "https://github.com/cyber-dojo/web/compare/aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f...2779354a4fda0eeb90fd43f32211836d99f6bde1", + "previous_git_commit": "aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f", + "previous_fingerprint": "30658abf51aa2b17e4edfa8636cc14aa9725432c2665ed3fcb2ee99ecae03889", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:aaf06ae@sha256:30658abf51aa2b17e4edfa8636cc14aa9725432c2665ed3fcb2ee99ecae03889", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/spooler/commit/b592c3af03e9530c1d224686a1745e4a12e1df00", - "previous_trail_name": "b592c3af03e9530c1d224686a1745e4a12e1df00", - "previous_template_reference_name": "spooler" + "previous_git_commit_url": "https://github.com/cyber-dojo/web/commit/aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f", + "previous_trail_name": "aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f", + "previous_template_reference_name": "web" }, - "commit_lead_time": 1217.0, + "commit_lead_time": 856.0, "flows": [ { - "flow_name": "spooler-ci", - "trail_name": "92c624eabb024729fb2af6cdbe354db11ee3882f", - "template_reference_name": "spooler", - "git_commit": "92c624eabb024729fb2af6cdbe354db11ee3882f", - "commit_url": "https://github.com/cyber-dojo/spooler/commit/92c624eabb024729fb2af6cdbe354db11ee3882f", + "flow_name": "web-ci", + "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1", + "template_reference_name": "web", + "git_commit": "2779354a4fda0eeb90fd43f32211836d99f6bde1", + "commit_url": "https://github.com/cyber-dojo/web/commit/2779354a4fda0eeb90fd43f32211836d99f6bde1", "git_commit_info": { - "sha1": "92c624eabb024729fb2af6cdbe354db11ee3882f", - "message": "Merge pull request #11 from cyber-dojo/run-ci-workflow-3\n\nRun ci workflow to check deployment", + "sha1": "2779354a4fda0eeb90fd43f32211836d99f6bde1", + "message": "Add spooler env-vars for deployment (#389)", "author": "Jon Jagger ", "branch": "", - "timestamp": 1785223606.0, - "url": "https://github.com/cyber-dojo/spooler/commit/92c624eabb024729fb2af6cdbe354db11ee3882f" + "timestamp": 1785242551.0, + "url": "https://github.com/cyber-dojo/web/commit/2779354a4fda0eeb90fd43f32211836d99f6bde1" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/spooler-ci/artifacts/a20359795934beb03d992ba5a8f8b95ca637e609284e5a84781bdcbb1b861975?artifact_id=42025c9c-2608-4ef0-b140-84548282", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/spooler-ci", + "html_url": "https://app.kosli.com/cyber-dojo/flows/web-ci/artifacts/af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e?artifact_id=dc864446-cc9f-43e9-bf70-db7dc03b", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/web-ci", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/spooler/compare/b592c3af03e9530c1d224686a1745e4a12e1df00...92c624eabb024729fb2af6cdbe354db11ee3882f", - "previous_git_commit": "b592c3af03e9530c1d224686a1745e4a12e1df00", - "previous_fingerprint": "5cd2a591370f45e0156411a484182215a0c403992b9aef2cfaacbeadb3ac2b3e", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/spooler:b592c3a@sha256:5cd2a591370f45e0156411a484182215a0c403992b9aef2cfaacbeadb3ac2b3e", + "diff_url": "https://github.com/cyber-dojo/web/compare/aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f...2779354a4fda0eeb90fd43f32211836d99f6bde1", + "previous_git_commit": "aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f", + "previous_fingerprint": "30658abf51aa2b17e4edfa8636cc14aa9725432c2665ed3fcb2ee99ecae03889", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:aaf06ae@sha256:30658abf51aa2b17e4edfa8636cc14aa9725432c2665ed3fcb2ee99ecae03889", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/spooler/commit/b592c3af03e9530c1d224686a1745e4a12e1df00", - "previous_trail_name": "b592c3af03e9530c1d224686a1745e4a12e1df00", - "previous_template_reference_name": "spooler" + "previous_git_commit_url": "https://github.com/cyber-dojo/web/commit/aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f", + "previous_trail_name": "aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f", + "previous_template_reference_name": "web" }, - "commit_lead_time": 1217.0, + "commit_lead_time": 856.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "production-promotion", - "trail_name": "promotion-one-140", - "template_reference_name": "spooler", + "trail_name": "promotion-one-143", + "template_reference_name": "web", "git_commit": "81c216a55b2cb1787645e699ceaceca868cad253", "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253", "git_commit_info": { @@ -628,32 +630,32 @@ kosli get snapshot aws-prod --output=json "timestamp": 1785143054.0, "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/a20359795934beb03d992ba5a8f8b95ca637e609284e5a84781bdcbb1b861975?artifact_id=fcfeda3a-8a41-444b-af27-4d97a807", + "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e?artifact_id=11f2828c-83b9-4e8c-bd6a-be37eb17", "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion", "deployment_diff": { "diff_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/compare/81c216a55b2cb1787645e699ceaceca868cad253...81c216a55b2cb1787645e699ceaceca868cad253", "previous_git_commit": "81c216a55b2cb1787645e699ceaceca868cad253", - "previous_fingerprint": "5cd2a591370f45e0156411a484182215a0c403992b9aef2cfaacbeadb3ac2b3e", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/spooler:b592c3a@sha256:5cd2a591370f45e0156411a484182215a0c403992b9aef2cfaacbeadb3ac2b3e", + "previous_fingerprint": "30658abf51aa2b17e4edfa8636cc14aa9725432c2665ed3fcb2ee99ecae03889", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:aaf06ae@sha256:30658abf51aa2b17e4edfa8636cc14aa9725432c2665ed3fcb2ee99ecae03889", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253", - "previous_trail_name": "promotion-one-139", - "previous_template_reference_name": "spooler" + "previous_trail_name": "promotion-one-142", + "previous_template_reference_name": "web" }, - "commit_lead_time": 81769.0, + "commit_lead_time": 100353.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] } ], "ecs_context": { - "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/ca0246c31f1e4a9d9819a606b9cd6715", + "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/4984e4ce7a34424585623c1a67da8c6d", "cluster_name": null, "service_name": null } }, { - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:19f8734@sha256:8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/differ:1b7ea87@sha256:c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", "compliant": true, "deployments": [], "policy_decisions": [ @@ -675,32 +677,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "runner-ci", - "trail_name": "19f873464a01f28ecd588504ffe03529119d6297", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-137", + "flow_name": "differ-ci", + "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": null } } @@ -720,32 +714,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "runner-ci", - "trail_name": "19f873464a01f28ecd588504ffe03529119d6297", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-137", + "flow_name": "differ-ci", + "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": "COMPLIANT" } } @@ -770,32 +756,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "runner-ci", - "trail_name": "19f873464a01f28ecd588504ffe03529119d6297", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-137", + "flow_name": "differ-ci", + "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": null } } @@ -822,32 +800,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "runner-ci", - "trail_name": "19f873464a01f28ecd588504ffe03529119d6297", - "artifact_status": null - } - }, - { - "type": "rule_satisfied", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-137", + "flow_name": "differ-ci", + "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320", "artifact_status": null } }, { "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", "artifact_status": null } }, { "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": null } } @@ -867,32 +837,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "runner-ci", - "trail_name": "19f873464a01f28ecd588504ffe03529119d6297", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-137", + "flow_name": "differ-ci", + "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": "COMPLIANT" } } @@ -917,17 +879,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "runner-ci", - "trail_name": "19f873464a01f28ecd588504ffe03529119d6297", - "artifact_status": null, - "for_control": "SDLC-CTRL-0002" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-137", + "flow_name": "differ-ci", + "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -935,8 +888,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -944,8 +897,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -973,32 +926,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "runner-ci", - "trail_name": "19f873464a01f28ecd588504ffe03529119d6297", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-137", + "flow_name": "differ-ci", + "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": null } } @@ -1018,32 +963,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "runner-ci", - "trail_name": "19f873464a01f28ecd588504ffe03529119d6297", + "flow_name": "differ-ci", + "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-137", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": "COMPLIANT" } } @@ -1062,14 +999,14 @@ kosli get snapshot aws-prod --output=json "for_control": "SDLC-CTRL-0022" } }, - "satisfied": true, - "ignored": false, + "satisfied": null, + "ignored": true, "resolutions": [ { "type": "rule_not_applicable", "context": { - "flow_name": "runner-ci", - "trail_name": "19f873464a01f28ecd588504ffe03529119d6297", + "flow_name": "differ-ci", + "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -1077,17 +1014,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-137", - "artifact_status": null, - "for_control": "SDLC-CTRL-0022" - } - }, - { - "type": "rule_satisfied", - "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -1095,8 +1023,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -1124,32 +1052,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "runner-ci", - "trail_name": "19f873464a01f28ecd588504ffe03529119d6297", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-137", + "flow_name": "differ-ci", + "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": null } } @@ -1169,32 +1089,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "runner-ci", - "trail_name": "19f873464a01f28ecd588504ffe03529119d6297", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-137", + "flow_name": "differ-ci", + "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": "COMPLIANT" } } @@ -1219,32 +1131,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "runner-ci", - "trail_name": "19f873464a01f28ecd588504ffe03529119d6297", - "artifact_status": null - } - }, - { - "type": "rule_satisfied", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-137", + "flow_name": "differ-ci", + "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", "artifact_status": null } }, { - "type": "rule_not_applicable", + "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": null } } @@ -1271,32 +1175,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "runner-ci", - "trail_name": "19f873464a01f28ecd588504ffe03529119d6297", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-137", + "flow_name": "differ-ci", + "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": null } } @@ -1322,32 +1218,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "runner-ci", - "trail_name": "19f873464a01f28ecd588504ffe03529119d6297", + "flow_name": "differ-ci", + "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320", "artifact_status": "COMPLIANT" } }, { - "type": "rule_satisfied", + "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-137", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", "artifact_status": "COMPLIANT" } }, { "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": "COMPLIANT" } } @@ -1358,102 +1246,69 @@ kosli get snapshot aws-prod --output=json } ], "reasons_for_incompliance": [], - "fingerprint": "8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "fingerprint": "c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", "creationTimestamp": [ - 1785138608, - 1785138608, - 1785138609 + 1785241593 ], "pods": null, "annotation": { "type": "unchanged", - "was": 3, - "now": 3 + "was": 1, + "now": 1 }, - "flow_name": "runner-ci", - "git_commit": "19f873464a01f28ecd588504ffe03529119d6297", - "commit_url": "https://github.com/cyber-dojo/runner/commit/19f873464a01f28ecd588504ffe03529119d6297", - "html_url": "https://app.kosli.com/cyber-dojo/flows/runner-ci/artifacts/8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67?artifact_id=046fc54c-c295-45b3-bac0-81d40282", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/runner-ci", + "flow_name": "differ-ci", + "git_commit": "1b7ea87a174a1a290600b469dc1029ec4c974320", + "commit_url": "https://github.com/cyber-dojo/differ/commit/1b7ea87a174a1a290600b469dc1029ec4c974320", + "html_url": "https://app.kosli.com/cyber-dojo/flows/differ-ci/artifacts/c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12?artifact_id=53b144c7-33a3-4d8a-b416-37aea745", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/differ-ci", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/runner/compare/6dac3ae5d85ee8e6040d8badd5c2eede44bc8a6b...19f873464a01f28ecd588504ffe03529119d6297", - "previous_git_commit": "6dac3ae5d85ee8e6040d8badd5c2eede44bc8a6b", - "previous_fingerprint": "d7c56f15abf30e1424444c9de9beb4884f72dd400183da58fa9d8d1092309e7b", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:6dac3ae@sha256:d7c56f15abf30e1424444c9de9beb4884f72dd400183da58fa9d8d1092309e7b", + "diff_url": "https://github.com/cyber-dojo/differ/compare/335ddfa139708c37908dd594a0502bc6d88f8615...1b7ea87a174a1a290600b469dc1029ec4c974320", + "previous_git_commit": "335ddfa139708c37908dd594a0502bc6d88f8615", + "previous_fingerprint": "c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/differ:335ddfa@sha256:c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/runner/commit/6dac3ae5d85ee8e6040d8badd5c2eede44bc8a6b", - "previous_trail_name": "6dac3ae5d85ee8e6040d8badd5c2eede44bc8a6b", - "previous_template_reference_name": "runner" + "previous_git_commit_url": "https://github.com/cyber-dojo/differ/commit/335ddfa139708c37908dd594a0502bc6d88f8615", + "previous_trail_name": "335ddfa139708c37908dd594a0502bc6d88f8615", + "previous_template_reference_name": "differ" }, - "commit_lead_time": 85840.0, + "commit_lead_time": 929480.0, "flows": [ { - "flow_name": "runner-ci", - "trail_name": "19f873464a01f28ecd588504ffe03529119d6297", - "template_reference_name": "runner", - "git_commit": "19f873464a01f28ecd588504ffe03529119d6297", - "commit_url": "https://github.com/cyber-dojo/runner/commit/19f873464a01f28ecd588504ffe03529119d6297", + "flow_name": "differ-ci", + "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320", + "template_reference_name": "differ", + "git_commit": "1b7ea87a174a1a290600b469dc1029ec4c974320", + "commit_url": "https://github.com/cyber-dojo/differ/commit/1b7ea87a174a1a290600b469dc1029ec4c974320", "git_commit_info": { - "sha1": "19f873464a01f28ecd588504ffe03529119d6297", - "message": "Merge pull request #275 from cyber-dojo/extend-snyk-ignore-expiry-to-2026-08-26\n\nExtend .snyk ignore expiry to 2026-08-26", - "author": "Jon Jagger ", + "sha1": "1b7ea87a174a1a290600b469dc1029ec4c974320", + "message": "Read deployed image for drift-detection plan (#435)\n\nThe Detect Drift workflow runs a terraform plan with no build behind it,\nbut the ECS deployment requires a container image (TF_VAR_TAGGED_IMAGE).\nThe variable has no default and the task definition tracks it directly,\nso a drift plan either fails with \"no value for required variable\" or, if\ngiven a placeholder, reports permanent false drift on the task definition.\n\nBefore planning, each environment reads the image that is currently\ndeployed straight from its ECS task definition and passes it to the\nreusable drift workflow as TF_VAR_TAGGED_IMAGE. The image lookup is done\nexplicitly in this repository rather than in the shared kosli-dev/tf\nworkflow, so Kosli's own drift detection is unaffected.\n\nThe logic lives in a local reusable workflow, detect-drift-env.yml, which\nis parameterized by AWS account and environment. detect-drift.yml holds\nonly the schedule and a beta/prod matrix that calls it, so there is no\nduplication between environments and adding another is a two-line change.", + "author": "Graham Savage ", "branch": "", - "timestamp": 1785052768.0, - "url": "https://github.com/cyber-dojo/runner/commit/19f873464a01f28ecd588504ffe03529119d6297" - }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/runner-ci/artifacts/8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67?artifact_id=046fc54c-c295-45b3-bac0-81d40282", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/runner-ci", - "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/runner/compare/6dac3ae5d85ee8e6040d8badd5c2eede44bc8a6b...19f873464a01f28ecd588504ffe03529119d6297", - "previous_git_commit": "6dac3ae5d85ee8e6040d8badd5c2eede44bc8a6b", - "previous_fingerprint": "d7c56f15abf30e1424444c9de9beb4884f72dd400183da58fa9d8d1092309e7b", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:6dac3ae@sha256:d7c56f15abf30e1424444c9de9beb4884f72dd400183da58fa9d8d1092309e7b", - "previous_artifact_compliance_state": "COMPLIANT", - "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/runner/commit/6dac3ae5d85ee8e6040d8badd5c2eede44bc8a6b", - "previous_trail_name": "6dac3ae5d85ee8e6040d8badd5c2eede44bc8a6b", - "previous_template_reference_name": "runner" - }, - "commit_lead_time": 85840.0, - "artifact_compliance_in_flow": true, - "flow_reasons_for_non_compliance": [] - }, - { - "flow_name": "production-promotion", - "trail_name": "promotion-one-137", - "template_reference_name": "runner", - "git_commit": "76325d840dc66e1c84743725e17de05a16616419", - "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/76325d840dc66e1c84743725e17de05a16616419", - "git_commit_info": { - "sha1": "76325d840dc66e1c84743725e17de05a16616419", - "message": "Add emoji prefix to workflow names", - "author": "JonJagger ", - "branch": "main", - "timestamp": 1783852701.0, - "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/76325d840dc66e1c84743725e17de05a16616419" + "timestamp": 1784312113.0, + "url": "https://github.com/cyber-dojo/differ/commit/1b7ea87a174a1a290600b469dc1029ec4c974320" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67?artifact_id=cceaf70c-da3e-4637-a622-d7091e3c", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion", + "html_url": "https://app.kosli.com/cyber-dojo/flows/differ-ci/artifacts/c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12?artifact_id=53b144c7-33a3-4d8a-b416-37aea745", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/differ-ci", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/compare/76325d840dc66e1c84743725e17de05a16616419...76325d840dc66e1c84743725e17de05a16616419", - "previous_git_commit": "76325d840dc66e1c84743725e17de05a16616419", - "previous_fingerprint": "d7c56f15abf30e1424444c9de9beb4884f72dd400183da58fa9d8d1092309e7b", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:6dac3ae@sha256:d7c56f15abf30e1424444c9de9beb4884f72dd400183da58fa9d8d1092309e7b", + "diff_url": "https://github.com/cyber-dojo/differ/compare/335ddfa139708c37908dd594a0502bc6d88f8615...1b7ea87a174a1a290600b469dc1029ec4c974320", + "previous_git_commit": "335ddfa139708c37908dd594a0502bc6d88f8615", + "previous_fingerprint": "c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/differ:335ddfa@sha256:c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/76325d840dc66e1c84743725e17de05a16616419", - "previous_trail_name": "promotion-one-136", - "previous_template_reference_name": "runner" + "previous_git_commit_url": "https://github.com/cyber-dojo/differ/commit/335ddfa139708c37908dd594a0502bc6d88f8615", + "previous_trail_name": "335ddfa139708c37908dd594a0502bc6d88f8615", + "previous_template_reference_name": "differ" }, - "commit_lead_time": 1285907.0, + "commit_lead_time": 929480.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", - "template_reference_name": "runner", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", + "template_reference_name": "differ", "git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", "git_commit_info": { @@ -1464,63 +1319,63 @@ kosli get snapshot aws-prod --output=json "timestamp": 1783850974.0, "url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67?artifact_id=eb363a63-17e1-4ec2-8c13-7cd210d5", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact", + "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12?artifact_id=eee71ae0-2bdd-4d9b-90b0-572bb946", + "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/00c479764cb9eca038fdaaaef108672d0bb0ed26...35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "previous_git_commit": "00c479764cb9eca038fdaaaef108672d0bb0ed26", - "previous_fingerprint": "414a07a72fbd04444ba4d2e19b6c7102095d5aeb469211f99166538626c08d06", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:9cc2a80@sha256:414a07a72fbd04444ba4d2e19b6c7102095d5aeb469211f99166538626c08d06", + "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7...35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", + "previous_git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", + "previous_fingerprint": "c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/differ:335ddfa@sha256:c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/00c479764cb9eca038fdaaaef108672d0bb0ed26", - "previous_trail_name": "runner-414a07a72fbd04444ba4d2e19b6c7102095d5aeb469211f99166538626c08d06", - "previous_template_reference_name": "runner" + "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", + "previous_trail_name": "differ-c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f", + "previous_template_reference_name": "differ" }, - "commit_lead_time": 1287634.0, + "commit_lead_time": 1390619.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", - "template_reference_name": "runner", - "git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", + "template_reference_name": "differ", + "git_commit": "81c216a55b2cb1787645e699ceaceca868cad253", + "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253", "git_commit_info": { - "sha1": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "message": "Add emoji prefixes to workflow names\n\n Match the visual convention already used in the kosli-demo/stochastic-committer\n repo, where the Actions sidebar distinguishes workflow roles at a glance.\n\n The two aws-* files are the top-level entry points, triggered by dispatch and\n schedule, so they get the play emoji. The three reusable workflow_call\n sub-workflows get the package emoji to mark them as callable building blocks.", + "sha1": "81c216a55b2cb1787645e699ceaceca868cad253", + "message": "Add spooler service name to promote_one.yml", "author": "JonJagger ", "branch": "main", - "timestamp": 1783850974.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7" + "timestamp": 1785143054.0, + "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67?artifact_id=e2c38ae9-2d66-41b8-a06f-14c1b5c3", - "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/c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12?artifact_id=43c3d8db-588e-495b-b5ba-097d8eae", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7...35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "previous_git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "previous_fingerprint": "d7c56f15abf30e1424444c9de9beb4884f72dd400183da58fa9d8d1092309e7b", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:6dac3ae@sha256:d7c56f15abf30e1424444c9de9beb4884f72dd400183da58fa9d8d1092309e7b", + "diff_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/compare/76325d840dc66e1c84743725e17de05a16616419...81c216a55b2cb1787645e699ceaceca868cad253", + "previous_git_commit": "76325d840dc66e1c84743725e17de05a16616419", + "previous_fingerprint": "c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/differ:335ddfa@sha256:c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "previous_trail_name": "runner-d7c56f15abf30e1424444c9de9beb4884f72dd400183da58fa9d8d1092309e7b", - "previous_template_reference_name": "runner" + "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/76325d840dc66e1c84743725e17de05a16616419", + "previous_trail_name": "promotion-one-128", + "previous_template_reference_name": "differ" }, - "commit_lead_time": 1287634.0, + "commit_lead_time": 98539.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] } ], "ecs_context": { - "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/ffc316ec94724a67a7775accf9b9232a", + "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/7cbb5625fe464da7851d6c4509ff0e9c", "cluster_name": null, "service_name": null } }, { - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:f4bb341@sha256:fcfc73775b49f8b8414c720e820b38258c6d18cb9d25b7ac76ff2d528a7add97", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/languages-start-points:6a7f7be@sha256:b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", "compliant": true, "deployments": [], "policy_decisions": [ @@ -1542,32 +1397,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "saver-ci", - "trail_name": "f4bb3412725258648a7cf5ce1a776609b4dade72", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-133", + "flow_name": "languages-start-points-ci", + "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "saver-fcfc73775b49f8b8414c720e820b38258c6d18cb9d25b7ac76ff2d528a7add97", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "saver-fcfc73775b49f8b8414c720e820b38258c6d18cb9d25b7ac76ff2d528a7add97", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": null } } @@ -1587,32 +1434,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "saver-ci", - "trail_name": "f4bb3412725258648a7cf5ce1a776609b4dade72", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-133", + "flow_name": "languages-start-points-ci", + "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "saver-fcfc73775b49f8b8414c720e820b38258c6d18cb9d25b7ac76ff2d528a7add97", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "saver-fcfc73775b49f8b8414c720e820b38258c6d18cb9d25b7ac76ff2d528a7add97", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": "COMPLIANT" } } @@ -1637,32 +1476,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "saver-ci", - "trail_name": "f4bb3412725258648a7cf5ce1a776609b4dade72", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-133", + "flow_name": "languages-start-points-ci", + "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "saver-fcfc73775b49f8b8414c720e820b38258c6d18cb9d25b7ac76ff2d528a7add97", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "saver-fcfc73775b49f8b8414c720e820b38258c6d18cb9d25b7ac76ff2d528a7add97", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": null } } @@ -1689,32 +1520,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "saver-ci", - "trail_name": "f4bb3412725258648a7cf5ce1a776609b4dade72", - "artifact_status": null - } - }, - { - "type": "rule_satisfied", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-133", + "flow_name": "languages-start-points-ci", + "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23", "artifact_status": null } }, { "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "saver-fcfc73775b49f8b8414c720e820b38258c6d18cb9d25b7ac76ff2d528a7add97", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", "artifact_status": null } }, { "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "saver-fcfc73775b49f8b8414c720e820b38258c6d18cb9d25b7ac76ff2d528a7add97", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": null } } @@ -1734,32 +1557,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "saver-ci", - "trail_name": "f4bb3412725258648a7cf5ce1a776609b4dade72", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-133", + "flow_name": "languages-start-points-ci", + "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "saver-fcfc73775b49f8b8414c720e820b38258c6d18cb9d25b7ac76ff2d528a7add97", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "saver-fcfc73775b49f8b8414c720e820b38258c6d18cb9d25b7ac76ff2d528a7add97", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": "COMPLIANT" } } @@ -1784,17 +1599,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "saver-ci", - "trail_name": "f4bb3412725258648a7cf5ce1a776609b4dade72", - "artifact_status": null, - "for_control": "SDLC-CTRL-0002" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-133", + "flow_name": "languages-start-points-ci", + "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -1802,8 +1608,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "saver-fcfc73775b49f8b8414c720e820b38258c6d18cb9d25b7ac76ff2d528a7add97", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -1811,8 +1617,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "saver-fcfc73775b49f8b8414c720e820b38258c6d18cb9d25b7ac76ff2d528a7add97", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -1840,32 +1646,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "saver-ci", - "trail_name": "f4bb3412725258648a7cf5ce1a776609b4dade72", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-133", + "flow_name": "languages-start-points-ci", + "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "saver-fcfc73775b49f8b8414c720e820b38258c6d18cb9d25b7ac76ff2d528a7add97", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "saver-fcfc73775b49f8b8414c720e820b38258c6d18cb9d25b7ac76ff2d528a7add97", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": null } } @@ -1885,32 +1683,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "saver-ci", - "trail_name": "f4bb3412725258648a7cf5ce1a776609b4dade72", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-133", + "flow_name": "languages-start-points-ci", + "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "saver-fcfc73775b49f8b8414c720e820b38258c6d18cb9d25b7ac76ff2d528a7add97", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "saver-fcfc73775b49f8b8414c720e820b38258c6d18cb9d25b7ac76ff2d528a7add97", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": "COMPLIANT" } } @@ -1929,14 +1719,14 @@ kosli get snapshot aws-prod --output=json "for_control": "SDLC-CTRL-0022" } }, - "satisfied": true, - "ignored": false, + "satisfied": null, + "ignored": true, "resolutions": [ { "type": "rule_not_applicable", "context": { - "flow_name": "saver-ci", - "trail_name": "f4bb3412725258648a7cf5ce1a776609b4dade72", + "flow_name": "languages-start-points-ci", + "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -1944,17 +1734,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-133", - "artifact_status": null, - "for_control": "SDLC-CTRL-0022" - } - }, - { - "type": "rule_satisfied", - "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "saver-fcfc73775b49f8b8414c720e820b38258c6d18cb9d25b7ac76ff2d528a7add97", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -1962,8 +1743,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "saver-fcfc73775b49f8b8414c720e820b38258c6d18cb9d25b7ac76ff2d528a7add97", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -1991,32 +1772,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "saver-ci", - "trail_name": "f4bb3412725258648a7cf5ce1a776609b4dade72", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-133", + "flow_name": "languages-start-points-ci", + "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "saver-fcfc73775b49f8b8414c720e820b38258c6d18cb9d25b7ac76ff2d528a7add97", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "saver-fcfc73775b49f8b8414c720e820b38258c6d18cb9d25b7ac76ff2d528a7add97", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": null } } @@ -2036,32 +1809,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "saver-ci", - "trail_name": "f4bb3412725258648a7cf5ce1a776609b4dade72", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-133", + "flow_name": "languages-start-points-ci", + "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "saver-fcfc73775b49f8b8414c720e820b38258c6d18cb9d25b7ac76ff2d528a7add97", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "saver-fcfc73775b49f8b8414c720e820b38258c6d18cb9d25b7ac76ff2d528a7add97", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": "COMPLIANT" } } @@ -2086,32 +1851,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "saver-ci", - "trail_name": "f4bb3412725258648a7cf5ce1a776609b4dade72", - "artifact_status": null - } - }, - { - "type": "rule_satisfied", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-133", + "flow_name": "languages-start-points-ci", + "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "saver-fcfc73775b49f8b8414c720e820b38258c6d18cb9d25b7ac76ff2d528a7add97", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", "artifact_status": null } }, { - "type": "rule_not_applicable", + "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "saver-fcfc73775b49f8b8414c720e820b38258c6d18cb9d25b7ac76ff2d528a7add97", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": null } } @@ -2138,32 +1895,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "saver-ci", - "trail_name": "f4bb3412725258648a7cf5ce1a776609b4dade72", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-133", + "flow_name": "languages-start-points-ci", + "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "saver-fcfc73775b49f8b8414c720e820b38258c6d18cb9d25b7ac76ff2d528a7add97", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "saver-fcfc73775b49f8b8414c720e820b38258c6d18cb9d25b7ac76ff2d528a7add97", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": null } } @@ -2189,32 +1938,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "saver-ci", - "trail_name": "f4bb3412725258648a7cf5ce1a776609b4dade72", + "flow_name": "languages-start-points-ci", + "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23", "artifact_status": "COMPLIANT" } }, { - "type": "rule_satisfied", + "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-133", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", "artifact_status": "COMPLIANT" } }, { "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "saver-fcfc73775b49f8b8414c720e820b38258c6d18cb9d25b7ac76ff2d528a7add97", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "saver-fcfc73775b49f8b8414c720e820b38258c6d18cb9d25b7ac76ff2d528a7add97", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": "COMPLIANT" } } @@ -2225,9 +1966,9 @@ kosli get snapshot aws-prod --output=json } ], "reasons_for_incompliance": [], - "fingerprint": "fcfc73775b49f8b8414c720e820b38258c6d18cb9d25b7ac76ff2d528a7add97", + "fingerprint": "b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", "creationTimestamp": [ - 1784443888 + 1785241263 ], "pods": null, "annotation": { @@ -2235,90 +1976,59 @@ kosli get snapshot aws-prod --output=json "was": 1, "now": 1 }, - "flow_name": "saver-ci", - "git_commit": "f4bb3412725258648a7cf5ce1a776609b4dade72", - "commit_url": "https://github.com/cyber-dojo/saver/commit/f4bb3412725258648a7cf5ce1a776609b4dade72", - "html_url": "https://app.kosli.com/cyber-dojo/flows/saver-ci/artifacts/fcfc73775b49f8b8414c720e820b38258c6d18cb9d25b7ac76ff2d528a7add97?artifact_id=e3c009b8-349c-4f4e-8730-f45dfccf", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/saver-ci", + "flow_name": "languages-start-points-ci", + "git_commit": "6a7f7be81022f7ed3fa8383f016b55af86e2af23", + "commit_url": "https://github.com/cyber-dojo/languages-start-points/commit/6a7f7be81022f7ed3fa8383f016b55af86e2af23", + "html_url": "https://app.kosli.com/cyber-dojo/flows/languages-start-points-ci/artifacts/b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b?artifact_id=796c3a9f-ee70-45ca-8a69-4be16335", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/languages-start-points-ci", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/saver/compare/55561dc8a8d25313f5318038f26892cdee5e90f7...f4bb3412725258648a7cf5ce1a776609b4dade72", - "previous_git_commit": "55561dc8a8d25313f5318038f26892cdee5e90f7", - "previous_fingerprint": "b0c07ba3f67f16c2a1b6f0096f1474df6600ed3556e0e82b78d24acabc9b2bab", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:55561dc@sha256:b0c07ba3f67f16c2a1b6f0096f1474df6600ed3556e0e82b78d24acabc9b2bab", + "diff_url": "https://github.com/cyber-dojo/languages-start-points/compare/c6db342472238a7852b6ff31b04f9a6a6099f5cf...6a7f7be81022f7ed3fa8383f016b55af86e2af23", + "previous_git_commit": "c6db342472238a7852b6ff31b04f9a6a6099f5cf", + "previous_fingerprint": "f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/languages-start-points:c6db342@sha256:f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/saver/commit/55561dc8a8d25313f5318038f26892cdee5e90f7", - "previous_trail_name": "55561dc8a8d25313f5318038f26892cdee5e90f7", - "previous_template_reference_name": "saver" + "previous_git_commit_url": "https://github.com/cyber-dojo/languages-start-points/commit/c6db342472238a7852b6ff31b04f9a6a6099f5cf", + "previous_trail_name": "c6db342472238a7852b6ff31b04f9a6a6099f5cf", + "previous_template_reference_name": "languages-start-points" }, - "commit_lead_time": 3678.0, + "commit_lead_time": 929088.0, "flows": [ { - "flow_name": "saver-ci", - "trail_name": "f4bb3412725258648a7cf5ce1a776609b4dade72", - "template_reference_name": "saver", - "git_commit": "f4bb3412725258648a7cf5ce1a776609b4dade72", - "commit_url": "https://github.com/cyber-dojo/saver/commit/f4bb3412725258648a7cf5ce1a776609b4dade72", + "flow_name": "languages-start-points-ci", + "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23", + "template_reference_name": "languages-start-points", + "git_commit": "6a7f7be81022f7ed3fa8383f016b55af86e2af23", + "commit_url": "https://github.com/cyber-dojo/languages-start-points/commit/6a7f7be81022f7ed3fa8383f016b55af86e2af23", "git_commit_info": { - "sha1": "f4bb3412725258648a7cf5ce1a776609b4dade72", - "message": "Docs api tab seq and restructure (#435)\n\n* Document tab_seq and restructure the API reference\n\n The saver now dedups kata writes on (laptop_id, tab_seq), so tab_seq\n needs documenting alongside laptop_id on the nine write methods, and\n the read-event examples need it shown on committed events.\n\n While there, make the API reference easier to scan and navigate:\n - headings and links use bare method names (params moved below)\n - each section lists its methods in a Verb/Method/Description table\n - Cluster/Group/Kata/ID/Diff/Probe each gain a one-line blurb\n - each method leads with a description item; parameters become a\n Name/Type/Description table\n - kata_events/kata_event examples refreshed to the v2 event shape\n\n Co-Authored-By: Claude Opus 4.8 (1M context) \n\n* Add client-side tab_seq to the kata write methods\n\n The saver dedups kata writes on (laptop_id, tab_seq), but the client\n library only forwarded laptop_id and had no tab_seq coverage, so a\n redelivered write could not be exercised end-to-end from the client.\n\n Make tab_seq a required arg on the five client write methods (forwarded\n in the POST body like laptop_id), have the test-base forwarders default\n it via a per-test next_tab_seq counter, and add kata_tab_seq_test:\n tab_seq is stored and read back, a redelivered (laptop_id, tab_seq) is a\n no-op, and distinct tab_seqs both commit. Same-laptop concurrent writes\n now pass a distinct tab_seq per racing thread so they are not deduped.\n\n Co-Authored-By: Claude Opus 4.8 (1M context) ", + "sha1": "6a7f7be81022f7ed3fa8383f016b55af86e2af23", + "message": "Merge pull request #243 from cyber-dojo/add-drift-detection\n\nAdd periodic drift-detection workflow", "author": "Jon Jagger ", "branch": "", - "timestamp": 1784440210.0, - "url": "https://github.com/cyber-dojo/saver/commit/f4bb3412725258648a7cf5ce1a776609b4dade72" - }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/saver-ci/artifacts/fcfc73775b49f8b8414c720e820b38258c6d18cb9d25b7ac76ff2d528a7add97?artifact_id=e3c009b8-349c-4f4e-8730-f45dfccf", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/saver-ci", - "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/saver/compare/55561dc8a8d25313f5318038f26892cdee5e90f7...f4bb3412725258648a7cf5ce1a776609b4dade72", - "previous_git_commit": "55561dc8a8d25313f5318038f26892cdee5e90f7", - "previous_fingerprint": "b0c07ba3f67f16c2a1b6f0096f1474df6600ed3556e0e82b78d24acabc9b2bab", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:55561dc@sha256:b0c07ba3f67f16c2a1b6f0096f1474df6600ed3556e0e82b78d24acabc9b2bab", - "previous_artifact_compliance_state": "COMPLIANT", - "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/saver/commit/55561dc8a8d25313f5318038f26892cdee5e90f7", - "previous_trail_name": "55561dc8a8d25313f5318038f26892cdee5e90f7", - "previous_template_reference_name": "saver" - }, - "commit_lead_time": 3678.0, - "artifact_compliance_in_flow": true, - "flow_reasons_for_non_compliance": [] - }, - { - "flow_name": "production-promotion", - "trail_name": "promotion-one-133", - "template_reference_name": "saver", - "git_commit": "76325d840dc66e1c84743725e17de05a16616419", - "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/76325d840dc66e1c84743725e17de05a16616419", - "git_commit_info": { - "sha1": "76325d840dc66e1c84743725e17de05a16616419", - "message": "Add emoji prefix to workflow names", - "author": "JonJagger ", - "branch": "main", - "timestamp": 1783852701.0, - "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/76325d840dc66e1c84743725e17de05a16616419" + "timestamp": 1784312175.0, + "url": "https://github.com/cyber-dojo/languages-start-points/commit/6a7f7be81022f7ed3fa8383f016b55af86e2af23" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/fcfc73775b49f8b8414c720e820b38258c6d18cb9d25b7ac76ff2d528a7add97?artifact_id=4863df5d-e4e4-4239-ba51-0c76d3e8", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion", + "html_url": "https://app.kosli.com/cyber-dojo/flows/languages-start-points-ci/artifacts/b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b?artifact_id=796c3a9f-ee70-45ca-8a69-4be16335", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/languages-start-points-ci", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/compare/76325d840dc66e1c84743725e17de05a16616419...76325d840dc66e1c84743725e17de05a16616419", - "previous_git_commit": "76325d840dc66e1c84743725e17de05a16616419", - "previous_fingerprint": "b0c07ba3f67f16c2a1b6f0096f1474df6600ed3556e0e82b78d24acabc9b2bab", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:55561dc@sha256:b0c07ba3f67f16c2a1b6f0096f1474df6600ed3556e0e82b78d24acabc9b2bab", + "diff_url": "https://github.com/cyber-dojo/languages-start-points/compare/c6db342472238a7852b6ff31b04f9a6a6099f5cf...6a7f7be81022f7ed3fa8383f016b55af86e2af23", + "previous_git_commit": "c6db342472238a7852b6ff31b04f9a6a6099f5cf", + "previous_fingerprint": "f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/languages-start-points:c6db342@sha256:f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/76325d840dc66e1c84743725e17de05a16616419", - "previous_trail_name": "promotion-one-129", - "previous_template_reference_name": "saver" + "previous_git_commit_url": "https://github.com/cyber-dojo/languages-start-points/commit/c6db342472238a7852b6ff31b04f9a6a6099f5cf", + "previous_trail_name": "c6db342472238a7852b6ff31b04f9a6a6099f5cf", + "previous_template_reference_name": "languages-start-points" }, - "commit_lead_time": 591187.0, + "commit_lead_time": 929088.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "saver-fcfc73775b49f8b8414c720e820b38258c6d18cb9d25b7ac76ff2d528a7add97", - "template_reference_name": "saver", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", + "template_reference_name": "languages-start-points", "git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", "git_commit_info": { @@ -2329,63 +2039,63 @@ kosli get snapshot aws-prod --output=json "timestamp": 1783850974.0, "url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/fcfc73775b49f8b8414c720e820b38258c6d18cb9d25b7ac76ff2d528a7add97?artifact_id=5ec7bbf9-39b1-4e23-b016-29f20382", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact", + "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b?artifact_id=e1aab4c4-4a40-4b9f-948e-43ba5489", + "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/00c479764cb9eca038fdaaaef108672d0bb0ed26...35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "previous_git_commit": "00c479764cb9eca038fdaaaef108672d0bb0ed26", - "previous_fingerprint": "f5909cc8dd53b2105953d1a72cd5d6181367d3588964aa01a04c056205a5d419", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:8c84fac@sha256:f5909cc8dd53b2105953d1a72cd5d6181367d3588964aa01a04c056205a5d419", + "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7...35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", + "previous_git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", + "previous_fingerprint": "f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/languages-start-points:c6db342@sha256:f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/00c479764cb9eca038fdaaaef108672d0bb0ed26", - "previous_trail_name": "saver-f5909cc8dd53b2105953d1a72cd5d6181367d3588964aa01a04c056205a5d419", - "previous_template_reference_name": "saver" + "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", + "previous_trail_name": "languages-start-points-f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418", + "previous_template_reference_name": "languages-start-points" }, - "commit_lead_time": 592914.0, + "commit_lead_time": 1390289.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "saver-fcfc73775b49f8b8414c720e820b38258c6d18cb9d25b7ac76ff2d528a7add97", - "template_reference_name": "saver", - "git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", + "template_reference_name": "languages-start-points", + "git_commit": "81c216a55b2cb1787645e699ceaceca868cad253", + "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253", "git_commit_info": { - "sha1": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "message": "Add emoji prefixes to workflow names\n\n Match the visual convention already used in the kosli-demo/stochastic-committer\n repo, where the Actions sidebar distinguishes workflow roles at a glance.\n\n The two aws-* files are the top-level entry points, triggered by dispatch and\n schedule, so they get the play emoji. The three reusable workflow_call\n sub-workflows get the package emoji to mark them as callable building blocks.", + "sha1": "81c216a55b2cb1787645e699ceaceca868cad253", + "message": "Add spooler service name to promote_one.yml", "author": "JonJagger ", "branch": "main", - "timestamp": 1783850974.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7" + "timestamp": 1785143054.0, + "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/fcfc73775b49f8b8414c720e820b38258c6d18cb9d25b7ac76ff2d528a7add97?artifact_id=482bfc49-53be-4268-bc5e-99cdec4f", - "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/b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b?artifact_id=a1ab8675-9b0a-485b-be6a-c153fd4e", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7...35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "previous_git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "previous_fingerprint": "b0c07ba3f67f16c2a1b6f0096f1474df6600ed3556e0e82b78d24acabc9b2bab", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:55561dc@sha256:b0c07ba3f67f16c2a1b6f0096f1474df6600ed3556e0e82b78d24acabc9b2bab", + "diff_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/compare/d7e31ce0207b766140ae689f38625da4374acf87...81c216a55b2cb1787645e699ceaceca868cad253", + "previous_git_commit": "d7e31ce0207b766140ae689f38625da4374acf87", + "previous_fingerprint": "f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/languages-start-points:c6db342@sha256:f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "previous_trail_name": "saver-b0c07ba3f67f16c2a1b6f0096f1474df6600ed3556e0e82b78d24acabc9b2bab", - "previous_template_reference_name": "saver" + "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/d7e31ce0207b766140ae689f38625da4374acf87", + "previous_trail_name": "promote-all-30", + "previous_template_reference_name": "languages-start-points" }, - "commit_lead_time": 592914.0, + "commit_lead_time": 98209.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] } ], "ecs_context": { - "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/a63d8644d8fc4fa8b527fabd8e6cec3a", + "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/42e358b2bd144b99b7f4b93382dddc90", "cluster_name": null, "service_name": null } }, { - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/creator:76672a8@sha256:aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:a2e4638@sha256:c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", "compliant": true, "deployments": [], "policy_decisions": [ @@ -2407,32 +2117,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "creator-ci", - "trail_name": "76672a8b247049c3ce8c3140852e17be8f47d995", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-132", + "flow_name": "nginx-ci", + "trail_name": "a2e4638aaa102446b8a6d1d519c5bc007e24f087", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "creator-aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "creator-aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": null } } @@ -2452,32 +2154,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "creator-ci", - "trail_name": "76672a8b247049c3ce8c3140852e17be8f47d995", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-132", + "flow_name": "nginx-ci", + "trail_name": "a2e4638aaa102446b8a6d1d519c5bc007e24f087", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "creator-aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "creator-aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": "COMPLIANT" } } @@ -2502,32 +2196,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "creator-ci", - "trail_name": "76672a8b247049c3ce8c3140852e17be8f47d995", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-132", + "flow_name": "nginx-ci", + "trail_name": "a2e4638aaa102446b8a6d1d519c5bc007e24f087", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "creator-aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "creator-aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": null } } @@ -2554,32 +2240,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "creator-ci", - "trail_name": "76672a8b247049c3ce8c3140852e17be8f47d995", - "artifact_status": null - } - }, - { - "type": "rule_satisfied", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-132", + "flow_name": "nginx-ci", + "trail_name": "a2e4638aaa102446b8a6d1d519c5bc007e24f087", "artifact_status": null } }, { "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "creator-aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", "artifact_status": null } }, { "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "creator-aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": null } } @@ -2599,32 +2277,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "creator-ci", - "trail_name": "76672a8b247049c3ce8c3140852e17be8f47d995", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-132", + "flow_name": "nginx-ci", + "trail_name": "a2e4638aaa102446b8a6d1d519c5bc007e24f087", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "creator-aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "creator-aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": "COMPLIANT" } } @@ -2649,17 +2319,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "creator-ci", - "trail_name": "76672a8b247049c3ce8c3140852e17be8f47d995", - "artifact_status": null, - "for_control": "SDLC-CTRL-0002" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-132", + "flow_name": "nginx-ci", + "trail_name": "a2e4638aaa102446b8a6d1d519c5bc007e24f087", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -2667,8 +2328,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "creator-aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -2676,8 +2337,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "creator-aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -2705,32 +2366,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "creator-ci", - "trail_name": "76672a8b247049c3ce8c3140852e17be8f47d995", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-132", + "flow_name": "nginx-ci", + "trail_name": "a2e4638aaa102446b8a6d1d519c5bc007e24f087", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "creator-aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "creator-aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": null } } @@ -2750,32 +2403,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "creator-ci", - "trail_name": "76672a8b247049c3ce8c3140852e17be8f47d995", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-132", + "flow_name": "nginx-ci", + "trail_name": "a2e4638aaa102446b8a6d1d519c5bc007e24f087", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "creator-aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "creator-aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": "COMPLIANT" } } @@ -2794,14 +2439,14 @@ kosli get snapshot aws-prod --output=json "for_control": "SDLC-CTRL-0022" } }, - "satisfied": true, - "ignored": false, + "satisfied": null, + "ignored": true, "resolutions": [ { "type": "rule_not_applicable", "context": { - "flow_name": "creator-ci", - "trail_name": "76672a8b247049c3ce8c3140852e17be8f47d995", + "flow_name": "nginx-ci", + "trail_name": "a2e4638aaa102446b8a6d1d519c5bc007e24f087", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -2809,17 +2454,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-132", - "artifact_status": null, - "for_control": "SDLC-CTRL-0022" - } - }, - { - "type": "rule_satisfied", - "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "creator-aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -2827,8 +2463,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "creator-aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -2856,32 +2492,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "creator-ci", - "trail_name": "76672a8b247049c3ce8c3140852e17be8f47d995", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-132", + "flow_name": "nginx-ci", + "trail_name": "a2e4638aaa102446b8a6d1d519c5bc007e24f087", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "creator-aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "creator-aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": null } } @@ -2901,32 +2529,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "creator-ci", - "trail_name": "76672a8b247049c3ce8c3140852e17be8f47d995", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-132", + "flow_name": "nginx-ci", + "trail_name": "a2e4638aaa102446b8a6d1d519c5bc007e24f087", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "creator-aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "creator-aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": "COMPLIANT" } } @@ -2951,32 +2571,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "creator-ci", - "trail_name": "76672a8b247049c3ce8c3140852e17be8f47d995", - "artifact_status": null - } - }, - { - "type": "rule_satisfied", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-132", + "flow_name": "nginx-ci", + "trail_name": "a2e4638aaa102446b8a6d1d519c5bc007e24f087", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "creator-aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", "artifact_status": null } }, { - "type": "rule_not_applicable", + "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "creator-aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": null } } @@ -3003,32 +2615,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "creator-ci", - "trail_name": "76672a8b247049c3ce8c3140852e17be8f47d995", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-132", + "flow_name": "nginx-ci", + "trail_name": "a2e4638aaa102446b8a6d1d519c5bc007e24f087", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "creator-aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "creator-aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": null } } @@ -3054,32 +2658,24 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "creator-ci", - "trail_name": "76672a8b247049c3ce8c3140852e17be8f47d995", + "flow_name": "nginx-ci", + "trail_name": "a2e4638aaa102446b8a6d1d519c5bc007e24f087", "artifact_status": "COMPLIANT" } }, { - "type": "rule_satisfied", + "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-132", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", "artifact_status": "COMPLIANT" } }, { "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "creator-aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "creator-aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": "COMPLIANT" } } @@ -3090,100 +2686,69 @@ kosli get snapshot aws-prod --output=json } ], "reasons_for_incompliance": [], - "fingerprint": "aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", + "fingerprint": "c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", "creationTimestamp": [ - 1784357070 + 1785241259 ], "pods": null, - "annotation": { - "type": "unchanged", - "was": 1, - "now": 1 - }, - "flow_name": "creator-ci", - "git_commit": "76672a8b247049c3ce8c3140852e17be8f47d995", - "commit_url": "https://github.com/cyber-dojo/creator/commit/76672a8b247049c3ce8c3140852e17be8f47d995", - "html_url": "https://app.kosli.com/cyber-dojo/flows/creator-ci/artifacts/aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6?artifact_id=3cb9c270-d59b-4b28-b16a-b23d89d2", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/creator-ci", - "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/creator/compare/7e00b70f8911edf1c480ba9a8b9c2a280260cb08...76672a8b247049c3ce8c3140852e17be8f47d995", - "previous_git_commit": "7e00b70f8911edf1c480ba9a8b9c2a280260cb08", - "previous_fingerprint": "0744a611723cb72a3f24b33c2d56fcbb1bfbedf0637a962f259fada8e3dbbe50", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/creator:7e00b70@sha256:0744a611723cb72a3f24b33c2d56fcbb1bfbedf0637a962f259fada8e3dbbe50", - "previous_artifact_compliance_state": "COMPLIANT", - "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/creator/commit/7e00b70f8911edf1c480ba9a8b9c2a280260cb08", - "previous_trail_name": "7e00b70f8911edf1c480ba9a8b9c2a280260cb08", - "previous_template_reference_name": "creator" - }, - "commit_lead_time": 45219.0, - "flows": [ - { - "flow_name": "creator-ci", - "trail_name": "76672a8b247049c3ce8c3140852e17be8f47d995", - "template_reference_name": "creator", - "git_commit": "76672a8b247049c3ce8c3140852e17be8f47d995", - "commit_url": "https://github.com/cyber-dojo/creator/commit/76672a8b247049c3ce8c3140852e17be8f47d995", - "git_commit_info": { - "sha1": "76672a8b247049c3ce8c3140852e17be8f47d995", - "message": "Read deployed image for drift-detection plan (#43)\n\nThe Detect Drift workflow runs a terraform plan with no build behind it,\nbut the ECS deployment requires a container image (TF_VAR_TAGGED_IMAGE).\nThe variable has no default and the task definition tracks it directly,\nso a drift plan either fails with \"no value for required variable\" or, if\ngiven a placeholder, reports permanent false drift on the task definition.\n\nBefore planning, each environment reads the image that is currently\ndeployed straight from its ECS task definition and passes it to the\nreusable drift workflow as TF_VAR_TAGGED_IMAGE. The image lookup is done\nexplicitly in this repository rather than in the shared kosli-dev/tf\nworkflow, so Kosli's own drift detection is unaffected.\n\nThe logic lives in a local reusable workflow, detect-drift-env.yml, which\nis parameterized by AWS account and environment. detect-drift.yml holds\nonly the schedule and a beta/prod matrix that calls it, so there is no\nduplication between environments and adding another is a two-line change.", - "author": "Graham Savage ", - "branch": "", - "timestamp": 1784311851.0, - "url": "https://github.com/cyber-dojo/creator/commit/76672a8b247049c3ce8c3140852e17be8f47d995" - }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/creator-ci/artifacts/aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6?artifact_id=3cb9c270-d59b-4b28-b16a-b23d89d2", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/creator-ci", - "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/creator/compare/7e00b70f8911edf1c480ba9a8b9c2a280260cb08...76672a8b247049c3ce8c3140852e17be8f47d995", - "previous_git_commit": "7e00b70f8911edf1c480ba9a8b9c2a280260cb08", - "previous_fingerprint": "0744a611723cb72a3f24b33c2d56fcbb1bfbedf0637a962f259fada8e3dbbe50", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/creator:7e00b70@sha256:0744a611723cb72a3f24b33c2d56fcbb1bfbedf0637a962f259fada8e3dbbe50", - "previous_artifact_compliance_state": "COMPLIANT", - "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/creator/commit/7e00b70f8911edf1c480ba9a8b9c2a280260cb08", - "previous_trail_name": "7e00b70f8911edf1c480ba9a8b9c2a280260cb08", - "previous_template_reference_name": "creator" - }, - "commit_lead_time": 45219.0, - "artifact_compliance_in_flow": true, - "flow_reasons_for_non_compliance": [] - }, + "annotation": { + "type": "unchanged", + "was": 1, + "now": 1 + }, + "flow_name": "nginx-ci", + "git_commit": "a2e4638aaa102446b8a6d1d519c5bc007e24f087", + "commit_url": "https://github.com/cyber-dojo/nginx/commit/a2e4638aaa102446b8a6d1d519c5bc007e24f087", + "html_url": "https://app.kosli.com/cyber-dojo/flows/nginx-ci/artifacts/c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053?artifact_id=c8c04d1b-0457-497c-a969-4d9c0b72", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/nginx-ci", + "deployment_diff": { + "diff_url": "https://github.com/cyber-dojo/nginx/compare/7ba8029e0cb5d4c8fa51360f59b5cb8714a60d47...a2e4638aaa102446b8a6d1d519c5bc007e24f087", + "previous_git_commit": "7ba8029e0cb5d4c8fa51360f59b5cb8714a60d47", + "previous_fingerprint": "3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:7ba8029@sha256:3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5", + "previous_artifact_compliance_state": "COMPLIANT", + "previous_running": false, + "previous_git_commit_url": "https://github.com/cyber-dojo/nginx/commit/7ba8029e0cb5d4c8fa51360f59b5cb8714a60d47", + "previous_trail_name": "7ba8029e0cb5d4c8fa51360f59b5cb8714a60d47", + "previous_template_reference_name": "nginx" + }, + "commit_lead_time": 929056.0, + "flows": [ { - "flow_name": "production-promotion", - "trail_name": "promotion-one-132", - "template_reference_name": "creator", - "git_commit": "76325d840dc66e1c84743725e17de05a16616419", - "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/76325d840dc66e1c84743725e17de05a16616419", + "flow_name": "nginx-ci", + "trail_name": "a2e4638aaa102446b8a6d1d519c5bc007e24f087", + "template_reference_name": "nginx", + "git_commit": "a2e4638aaa102446b8a6d1d519c5bc007e24f087", + "commit_url": "https://github.com/cyber-dojo/nginx/commit/a2e4638aaa102446b8a6d1d519c5bc007e24f087", "git_commit_info": { - "sha1": "76325d840dc66e1c84743725e17de05a16616419", - "message": "Add emoji prefix to workflow names", - "author": "JonJagger ", - "branch": "main", - "timestamp": 1783852701.0, - "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/76325d840dc66e1c84743725e17de05a16616419" + "sha1": "a2e4638aaa102446b8a6d1d519c5bc007e24f087", + "message": "Merge pull request #160 from cyber-dojo/add-drift-detection\n\nAdd periodic drift-detection workflow", + "author": "Jon Jagger ", + "branch": "", + "timestamp": 1784312203.0, + "url": "https://github.com/cyber-dojo/nginx/commit/a2e4638aaa102446b8a6d1d519c5bc007e24f087" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6?artifact_id=ebfdade0-510f-44f8-9b9f-2d4c7d0d", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion", + "html_url": "https://app.kosli.com/cyber-dojo/flows/nginx-ci/artifacts/c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053?artifact_id=c8c04d1b-0457-497c-a969-4d9c0b72", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/nginx-ci", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/compare/d7e31ce0207b766140ae689f38625da4374acf87...76325d840dc66e1c84743725e17de05a16616419", - "previous_git_commit": "d7e31ce0207b766140ae689f38625da4374acf87", - "previous_fingerprint": "0744a611723cb72a3f24b33c2d56fcbb1bfbedf0637a962f259fada8e3dbbe50", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/creator:7e00b70@sha256:0744a611723cb72a3f24b33c2d56fcbb1bfbedf0637a962f259fada8e3dbbe50", + "diff_url": "https://github.com/cyber-dojo/nginx/compare/7ba8029e0cb5d4c8fa51360f59b5cb8714a60d47...a2e4638aaa102446b8a6d1d519c5bc007e24f087", + "previous_git_commit": "7ba8029e0cb5d4c8fa51360f59b5cb8714a60d47", + "previous_fingerprint": "3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:7ba8029@sha256:3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/d7e31ce0207b766140ae689f38625da4374acf87", - "previous_trail_name": "promote-all-30", - "previous_template_reference_name": "creator" + "previous_git_commit_url": "https://github.com/cyber-dojo/nginx/commit/7ba8029e0cb5d4c8fa51360f59b5cb8714a60d47", + "previous_trail_name": "7ba8029e0cb5d4c8fa51360f59b5cb8714a60d47", + "previous_template_reference_name": "nginx" }, - "commit_lead_time": 504369.0, + "commit_lead_time": 929056.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "creator-aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", - "template_reference_name": "creator", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", + "template_reference_name": "nginx", "git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", "git_commit_info": { @@ -3194,63 +2759,63 @@ kosli get snapshot aws-prod --output=json "timestamp": 1783850974.0, "url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6?artifact_id=fb202b8b-8f7b-4759-b011-db542952", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact", + "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053?artifact_id=3290f392-c29b-4eda-a459-c588f680", + "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/7172cc22125f480a9f12127edb481a4d84aabea3...35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "previous_git_commit": "7172cc22125f480a9f12127edb481a4d84aabea3", - "previous_fingerprint": "e8b5e25c5550658cdbd2b8339684b18bce86aaf6538611124ff62f2582c2e5b6", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/creator:a288de5@sha256:e8b5e25c5550658cdbd2b8339684b18bce86aaf6538611124ff62f2582c2e5b6", + "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7...35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", + "previous_git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", + "previous_fingerprint": "3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:7ba8029@sha256:3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/7172cc22125f480a9f12127edb481a4d84aabea3", - "previous_trail_name": "creator-e8b5e25c5550658cdbd2b8339684b18bce86aaf6538611124ff62f2582c2e5b6", - "previous_template_reference_name": "creator" + "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", + "previous_trail_name": "nginx-3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5", + "previous_template_reference_name": "nginx" }, - "commit_lead_time": 506096.0, + "commit_lead_time": 1390285.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "creator-aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", - "template_reference_name": "creator", - "git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", + "template_reference_name": "nginx", + "git_commit": "81c216a55b2cb1787645e699ceaceca868cad253", + "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253", "git_commit_info": { - "sha1": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "message": "Add emoji prefixes to workflow names\n\n Match the visual convention already used in the kosli-demo/stochastic-committer\n repo, where the Actions sidebar distinguishes workflow roles at a glance.\n\n The two aws-* files are the top-level entry points, triggered by dispatch and\n schedule, so they get the play emoji. The three reusable workflow_call\n sub-workflows get the package emoji to mark them as callable building blocks.", + "sha1": "81c216a55b2cb1787645e699ceaceca868cad253", + "message": "Add spooler service name to promote_one.yml", "author": "JonJagger ", "branch": "main", - "timestamp": 1783850974.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7" + "timestamp": 1785143054.0, + "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6?artifact_id=1a969b49-ddc3-4eda-becf-1fb6c837", - "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/c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053?artifact_id=97e8ce65-bdc4-4dbe-895b-bc45fe65", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/a517304f4e9013e2e9ea67e90c7342f7e56653f0...35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "previous_git_commit": "a517304f4e9013e2e9ea67e90c7342f7e56653f0", - "previous_fingerprint": "0744a611723cb72a3f24b33c2d56fcbb1bfbedf0637a962f259fada8e3dbbe50", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/creator:7e00b70@sha256:0744a611723cb72a3f24b33c2d56fcbb1bfbedf0637a962f259fada8e3dbbe50", + "diff_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/compare/76325d840dc66e1c84743725e17de05a16616419...81c216a55b2cb1787645e699ceaceca868cad253", + "previous_git_commit": "76325d840dc66e1c84743725e17de05a16616419", + "previous_fingerprint": "3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:7ba8029@sha256:3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/a517304f4e9013e2e9ea67e90c7342f7e56653f0", - "previous_trail_name": "creator-0744a611723cb72a3f24b33c2d56fcbb1bfbedf0637a962f259fada8e3dbbe50", - "previous_template_reference_name": "creator" + "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/76325d840dc66e1c84743725e17de05a16616419", + "previous_trail_name": "promotion-one-127", + "previous_template_reference_name": "nginx" }, - "commit_lead_time": 506096.0, + "commit_lead_time": 98205.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] } ], "ecs_context": { - "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/2730a627a7a3472b810cacada52f3935", + "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/06bf724dfec9470fa778682d4fdfab94", "cluster_name": null, "service_name": null } }, { - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:5407827@sha256:d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:0fb0be4@sha256:c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", "compliant": true, "deployments": [], "policy_decisions": [ @@ -3273,15 +2838,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "dashboard-ci", - "trail_name": "5407827a19ff32c8d0e7ff2e8f18665e86e64f01", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-131", + "trail_name": "0fb0be439480821efb926a5079e39ce5941eaa48", "artifact_status": null } }, @@ -3289,15 +2846,15 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "dashboard-d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e", + "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "dashboard-d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": null } } @@ -3318,15 +2875,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "dashboard-ci", - "trail_name": "5407827a19ff32c8d0e7ff2e8f18665e86e64f01", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-131", + "trail_name": "0fb0be439480821efb926a5079e39ce5941eaa48", "artifact_status": "COMPLIANT" } }, @@ -3334,15 +2883,15 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "dashboard-d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e", + "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "dashboard-d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": "COMPLIANT" } } @@ -3368,15 +2917,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "dashboard-ci", - "trail_name": "5407827a19ff32c8d0e7ff2e8f18665e86e64f01", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-131", + "trail_name": "0fb0be439480821efb926a5079e39ce5941eaa48", "artifact_status": null } }, @@ -3384,15 +2925,15 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "dashboard-d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e", + "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "dashboard-d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": null } } @@ -3420,15 +2961,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "dashboard-ci", - "trail_name": "5407827a19ff32c8d0e7ff2e8f18665e86e64f01", - "artifact_status": null - } - }, - { - "type": "rule_satisfied", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-131", + "trail_name": "0fb0be439480821efb926a5079e39ce5941eaa48", "artifact_status": null } }, @@ -3436,15 +2969,15 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "dashboard-d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e", + "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", "artifact_status": null } }, { "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "dashboard-d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": null } } @@ -3465,15 +2998,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "dashboard-ci", - "trail_name": "5407827a19ff32c8d0e7ff2e8f18665e86e64f01", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-131", + "trail_name": "0fb0be439480821efb926a5079e39ce5941eaa48", "artifact_status": "COMPLIANT" } }, @@ -3481,15 +3006,15 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "dashboard-d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e", + "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "dashboard-d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": "COMPLIANT" } } @@ -3515,16 +3040,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "dashboard-ci", - "trail_name": "5407827a19ff32c8d0e7ff2e8f18665e86e64f01", - "artifact_status": null, - "for_control": "SDLC-CTRL-0002" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-131", + "trail_name": "0fb0be439480821efb926a5079e39ce5941eaa48", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -3533,7 +3049,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "dashboard-d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e", + "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -3541,8 +3057,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "dashboard-d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -3571,15 +3087,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "dashboard-ci", - "trail_name": "5407827a19ff32c8d0e7ff2e8f18665e86e64f01", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-131", + "trail_name": "0fb0be439480821efb926a5079e39ce5941eaa48", "artifact_status": null } }, @@ -3587,15 +3095,15 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "dashboard-d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e", + "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "dashboard-d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": null } } @@ -3616,15 +3124,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "dashboard-ci", - "trail_name": "5407827a19ff32c8d0e7ff2e8f18665e86e64f01", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-131", + "trail_name": "0fb0be439480821efb926a5079e39ce5941eaa48", "artifact_status": "COMPLIANT" } }, @@ -3632,15 +3132,15 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "dashboard-d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e", + "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "dashboard-d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": "COMPLIANT" } } @@ -3659,23 +3159,14 @@ kosli get snapshot aws-prod --output=json "for_control": "SDLC-CTRL-0022" } }, - "satisfied": true, - "ignored": false, + "satisfied": null, + "ignored": true, "resolutions": [ { "type": "rule_not_applicable", "context": { "flow_name": "dashboard-ci", - "trail_name": "5407827a19ff32c8d0e7ff2e8f18665e86e64f01", - "artifact_status": null, - "for_control": "SDLC-CTRL-0022" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-131", + "trail_name": "0fb0be439480821efb926a5079e39ce5941eaa48", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -3684,16 +3175,16 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "dashboard-d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e", + "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } }, { - "type": "rule_satisfied", + "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "dashboard-d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -3722,15 +3213,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "dashboard-ci", - "trail_name": "5407827a19ff32c8d0e7ff2e8f18665e86e64f01", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-131", + "trail_name": "0fb0be439480821efb926a5079e39ce5941eaa48", "artifact_status": null } }, @@ -3738,15 +3221,15 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "dashboard-d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e", + "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "dashboard-d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": null } } @@ -3767,15 +3250,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "dashboard-ci", - "trail_name": "5407827a19ff32c8d0e7ff2e8f18665e86e64f01", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-131", + "trail_name": "0fb0be439480821efb926a5079e39ce5941eaa48", "artifact_status": "COMPLIANT" } }, @@ -3783,15 +3258,15 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "dashboard-d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e", + "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "dashboard-d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": "COMPLIANT" } } @@ -3817,15 +3292,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "dashboard-ci", - "trail_name": "5407827a19ff32c8d0e7ff2e8f18665e86e64f01", - "artifact_status": null - } - }, - { - "type": "rule_satisfied", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-131", + "trail_name": "0fb0be439480821efb926a5079e39ce5941eaa48", "artifact_status": null } }, @@ -3833,15 +3300,15 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "dashboard-d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e", + "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", "artifact_status": null } }, { - "type": "rule_not_applicable", + "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "dashboard-d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": null } } @@ -3869,15 +3336,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "dashboard-ci", - "trail_name": "5407827a19ff32c8d0e7ff2e8f18665e86e64f01", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-131", + "trail_name": "0fb0be439480821efb926a5079e39ce5941eaa48", "artifact_status": null } }, @@ -3885,15 +3344,15 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "dashboard-d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e", + "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "dashboard-d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": null } } @@ -3920,15 +3379,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "dashboard-ci", - "trail_name": "5407827a19ff32c8d0e7ff2e8f18665e86e64f01", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_satisfied", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-131", + "trail_name": "0fb0be439480821efb926a5079e39ce5941eaa48", "artifact_status": "COMPLIANT" } }, @@ -3936,15 +3387,15 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "dashboard-d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e", + "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", "artifact_status": "COMPLIANT" } }, { "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "dashboard-d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": "COMPLIANT" } } @@ -3955,9 +3406,9 @@ kosli get snapshot aws-prod --output=json } ], "reasons_for_incompliance": [], - "fingerprint": "d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e", + "fingerprint": "c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", "creationTimestamp": [ - 1784355921 + 1785241255 ], "pods": null, "annotation": { @@ -3966,88 +3417,57 @@ kosli get snapshot aws-prod --output=json "now": 1 }, "flow_name": "dashboard-ci", - "git_commit": "5407827a19ff32c8d0e7ff2e8f18665e86e64f01", - "commit_url": "https://github.com/cyber-dojo/dashboard/commit/5407827a19ff32c8d0e7ff2e8f18665e86e64f01", - "html_url": "https://app.kosli.com/cyber-dojo/flows/dashboard-ci/artifacts/d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e?artifact_id=53e5b750-6f87-43db-a8a3-e1f5b1db", + "git_commit": "0fb0be439480821efb926a5079e39ce5941eaa48", + "commit_url": "https://github.com/cyber-dojo/dashboard/commit/0fb0be439480821efb926a5079e39ce5941eaa48", + "html_url": "https://app.kosli.com/cyber-dojo/flows/dashboard-ci/artifacts/c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98?artifact_id=e55cba1f-ce06-49ff-9701-62eb823d", "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/dashboard-ci", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/dashboard/compare/e4757683b74df7033c95aa544a7824b395c2f8bb...5407827a19ff32c8d0e7ff2e8f18665e86e64f01", - "previous_git_commit": "e4757683b74df7033c95aa544a7824b395c2f8bb", - "previous_fingerprint": "54f6da185cd0f0ef001a0b33c099565fa736546562e0411f706832e72dca47bb", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:e475768@sha256:54f6da185cd0f0ef001a0b33c099565fa736546562e0411f706832e72dca47bb", + "diff_url": "https://github.com/cyber-dojo/dashboard/compare/5407827a19ff32c8d0e7ff2e8f18665e86e64f01...0fb0be439480821efb926a5079e39ce5941eaa48", + "previous_git_commit": "5407827a19ff32c8d0e7ff2e8f18665e86e64f01", + "previous_fingerprint": "d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:5407827@sha256:d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/dashboard/commit/e4757683b74df7033c95aa544a7824b395c2f8bb", - "previous_trail_name": "e4757683b74df7033c95aa544a7824b395c2f8bb", + "previous_git_commit_url": "https://github.com/cyber-dojo/dashboard/commit/5407827a19ff32c8d0e7ff2e8f18665e86e64f01", + "previous_trail_name": "5407827a19ff32c8d0e7ff2e8f18665e86e64f01", "previous_template_reference_name": "dashboard" }, - "commit_lead_time": 43879.0, + "commit_lead_time": 527719.0, "flows": [ { "flow_name": "dashboard-ci", - "trail_name": "5407827a19ff32c8d0e7ff2e8f18665e86e64f01", + "trail_name": "0fb0be439480821efb926a5079e39ce5941eaa48", "template_reference_name": "dashboard", - "git_commit": "5407827a19ff32c8d0e7ff2e8f18665e86e64f01", - "commit_url": "https://github.com/cyber-dojo/dashboard/commit/5407827a19ff32c8d0e7ff2e8f18665e86e64f01", + "git_commit": "0fb0be439480821efb926a5079e39ce5941eaa48", + "commit_url": "https://github.com/cyber-dojo/dashboard/commit/0fb0be439480821efb926a5079e39ce5941eaa48", "git_commit_info": { - "sha1": "5407827a19ff32c8d0e7ff2e8f18665e86e64f01", - "message": "Read deployed image for drift-detection plan (#417)\n\nThe Detect Drift workflow runs a terraform plan with no build behind it,\nbut the ECS deployment requires a container image (TF_VAR_TAGGED_IMAGE).\nThe variable has no default and the task definition tracks it directly,\nso a drift plan either fails with \"no value for required variable\" or, if\ngiven a placeholder, reports permanent false drift on the task definition.\n\nBefore planning, each environment reads the image that is currently\ndeployed straight from its ECS task definition and passes it to the\nreusable drift workflow as TF_VAR_TAGGED_IMAGE. The image lookup is done\nexplicitly in this repository rather than in the shared kosli-dev/tf\nworkflow, so Kosli's own drift detection is unaffected.\n\nThe logic lives in a local reusable workflow, detect-drift-env.yml, which\nis parameterized by AWS account and environment. detect-drift.yml holds\nonly the schedule and a beta/prod matrix that calls it, so there is no\nduplication between environments and adding another is a two-line change.", - "author": "Graham Savage ", + "sha1": "0fb0be439480821efb926a5079e39ce5941eaa48", + "message": "Carry (laptop_id, tab_seq) on all dashboard saver writes (#418)\n\nThe saver is about to drop the nil defaults on laptop_id/tab_seq for its\n kata-write endpoints, and no longer accepts the old index arg on writes.\n Every dashboard code path that writes to the saver relied on those\n defaults, so each would raise ArgumentError once they are removed.\n\n Update all of them to send the writer's (laptop_id, tab_seq) idempotency\n key and stop sending index:\n - bin/create_cluster_kata.rb, bin/create_group_kata.rb: each avatar is one\n writer, modelled by a small Writer (a fixed laptop_id plus a monotonic\n tab_seq). The monotonic tab_seq matters here because an avatar makes many\n writes on one kata, and the saver dedups on (laptop_id, tab_seq, colour) -\n a reused seq would silently drop same-colour lights.\n - test/scripts/external_saver.rb + create_v2_dashboard.rb: bring the old\n client to the current write API (kata_file_switch -> kata_file_edit).\n\n Rebake test/data/saver_cluster.v2.tgz through the fixed seeder and re-point\n the hardcoded cluster/child ids in cluster_tabs_test.rb and\n active_groups_test.rb (eyxahp -> vntRcc) to match.\n\n Co-Authored-By: Claude Opus 4.8 (1M context) ", + "author": "Jon Jagger ", "branch": "", - "timestamp": 1784312042.0, - "url": "https://github.com/cyber-dojo/dashboard/commit/5407827a19ff32c8d0e7ff2e8f18665e86e64f01" + "timestamp": 1784713536.0, + "url": "https://github.com/cyber-dojo/dashboard/commit/0fb0be439480821efb926a5079e39ce5941eaa48" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/dashboard-ci/artifacts/d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e?artifact_id=53e5b750-6f87-43db-a8a3-e1f5b1db", + "html_url": "https://app.kosli.com/cyber-dojo/flows/dashboard-ci/artifacts/c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98?artifact_id=e55cba1f-ce06-49ff-9701-62eb823d", "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/dashboard-ci", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/dashboard/compare/e4757683b74df7033c95aa544a7824b395c2f8bb...5407827a19ff32c8d0e7ff2e8f18665e86e64f01", - "previous_git_commit": "e4757683b74df7033c95aa544a7824b395c2f8bb", - "previous_fingerprint": "54f6da185cd0f0ef001a0b33c099565fa736546562e0411f706832e72dca47bb", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:e475768@sha256:54f6da185cd0f0ef001a0b33c099565fa736546562e0411f706832e72dca47bb", - "previous_artifact_compliance_state": "COMPLIANT", - "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/dashboard/commit/e4757683b74df7033c95aa544a7824b395c2f8bb", - "previous_trail_name": "e4757683b74df7033c95aa544a7824b395c2f8bb", - "previous_template_reference_name": "dashboard" - }, - "commit_lead_time": 43879.0, - "artifact_compliance_in_flow": true, - "flow_reasons_for_non_compliance": [] - }, - { - "flow_name": "production-promotion", - "trail_name": "promotion-one-131", - "template_reference_name": "dashboard", - "git_commit": "76325d840dc66e1c84743725e17de05a16616419", - "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/76325d840dc66e1c84743725e17de05a16616419", - "git_commit_info": { - "sha1": "76325d840dc66e1c84743725e17de05a16616419", - "message": "Add emoji prefix to workflow names", - "author": "JonJagger ", - "branch": "main", - "timestamp": 1783852701.0, - "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/76325d840dc66e1c84743725e17de05a16616419" - }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e?artifact_id=4485997e-f05e-4e02-a192-8e7ccff7", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion", - "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/compare/d7e31ce0207b766140ae689f38625da4374acf87...76325d840dc66e1c84743725e17de05a16616419", - "previous_git_commit": "d7e31ce0207b766140ae689f38625da4374acf87", - "previous_fingerprint": "54f6da185cd0f0ef001a0b33c099565fa736546562e0411f706832e72dca47bb", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:e475768@sha256:54f6da185cd0f0ef001a0b33c099565fa736546562e0411f706832e72dca47bb", + "diff_url": "https://github.com/cyber-dojo/dashboard/compare/5407827a19ff32c8d0e7ff2e8f18665e86e64f01...0fb0be439480821efb926a5079e39ce5941eaa48", + "previous_git_commit": "5407827a19ff32c8d0e7ff2e8f18665e86e64f01", + "previous_fingerprint": "d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:5407827@sha256:d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/d7e31ce0207b766140ae689f38625da4374acf87", - "previous_trail_name": "promote-all-30", + "previous_git_commit_url": "https://github.com/cyber-dojo/dashboard/commit/5407827a19ff32c8d0e7ff2e8f18665e86e64f01", + "previous_trail_name": "5407827a19ff32c8d0e7ff2e8f18665e86e64f01", "previous_template_reference_name": "dashboard" }, - "commit_lead_time": 503220.0, + "commit_lead_time": 527719.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "dashboard-d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e", + "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", "template_reference_name": "dashboard", "git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", @@ -4059,63 +3479,63 @@ kosli get snapshot aws-prod --output=json "timestamp": 1783850974.0, "url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e?artifact_id=0562cdd9-17c8-47ae-84ab-86991475", + "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98?artifact_id=8b47f45d-e66d-4b83-b593-ffb56e5a", "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/a517304f4e9013e2e9ea67e90c7342f7e56653f0...35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "previous_git_commit": "a517304f4e9013e2e9ea67e90c7342f7e56653f0", - "previous_fingerprint": "54f6da185cd0f0ef001a0b33c099565fa736546562e0411f706832e72dca47bb", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:e475768@sha256:54f6da185cd0f0ef001a0b33c099565fa736546562e0411f706832e72dca47bb", + "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7...35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", + "previous_git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", + "previous_fingerprint": "d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:5407827@sha256:d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/a517304f4e9013e2e9ea67e90c7342f7e56653f0", - "previous_trail_name": "dashboard-54f6da185cd0f0ef001a0b33c099565fa736546562e0411f706832e72dca47bb", + "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", + "previous_trail_name": "dashboard-d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e", "previous_template_reference_name": "dashboard" }, - "commit_lead_time": 504947.0, + "commit_lead_time": 1390281.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "dashboard-d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "template_reference_name": "dashboard", - "git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", + "git_commit": "81c216a55b2cb1787645e699ceaceca868cad253", + "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253", "git_commit_info": { - "sha1": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "message": "Add emoji prefixes to workflow names\n\n Match the visual convention already used in the kosli-demo/stochastic-committer\n repo, where the Actions sidebar distinguishes workflow roles at a glance.\n\n The two aws-* files are the top-level entry points, triggered by dispatch and\n schedule, so they get the play emoji. The three reusable workflow_call\n sub-workflows get the package emoji to mark them as callable building blocks.", + "sha1": "81c216a55b2cb1787645e699ceaceca868cad253", + "message": "Add spooler service name to promote_one.yml", "author": "JonJagger ", "branch": "main", - "timestamp": 1783850974.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7" + "timestamp": 1785143054.0, + "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e?artifact_id=dcc1a16c-b583-494e-a456-d5251a39", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact", + "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98?artifact_id=6f9db8f1-d02e-42f1-a564-1da7f708", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/00c479764cb9eca038fdaaaef108672d0bb0ed26...35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "previous_git_commit": "00c479764cb9eca038fdaaaef108672d0bb0ed26", - "previous_fingerprint": "45513c642ba191052bde056d56eeba8b06b0346eb444ec0008bd59bc0581bb8c", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:87f560f@sha256:45513c642ba191052bde056d56eeba8b06b0346eb444ec0008bd59bc0581bb8c", + "diff_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/compare/76325d840dc66e1c84743725e17de05a16616419...81c216a55b2cb1787645e699ceaceca868cad253", + "previous_git_commit": "76325d840dc66e1c84743725e17de05a16616419", + "previous_fingerprint": "d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:5407827@sha256:d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/00c479764cb9eca038fdaaaef108672d0bb0ed26", - "previous_trail_name": "dashboard-45513c642ba191052bde056d56eeba8b06b0346eb444ec0008bd59bc0581bb8c", + "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/76325d840dc66e1c84743725e17de05a16616419", + "previous_trail_name": "promotion-one-131", "previous_template_reference_name": "dashboard" }, - "commit_lead_time": 504947.0, + "commit_lead_time": 98201.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] } ], "ecs_context": { - "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/fb1ca8ead3c2436e83ca34d72d275313", + "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/c454b3320b2144ec988e1926eb8538b2", "cluster_name": null, "service_name": null } }, { - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:3f0b997@sha256:0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:258b6d0@sha256:c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "compliant": true, "deployments": [], "policy_decisions": [ @@ -4137,8 +3557,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "web-ci", - "trail_name": "3f0b9975f96b7f4e4aae0b4409cebda3209be164", + "flow_name": "exercises-start-points-ci", + "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", "artifact_status": null } }, @@ -4146,7 +3566,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "web-0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": null } }, @@ -4154,15 +3574,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-130", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "web-0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972", + "trail_name": "promote-all-31", "artifact_status": null } } @@ -4182,8 +3594,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "web-ci", - "trail_name": "3f0b9975f96b7f4e4aae0b4409cebda3209be164", + "flow_name": "exercises-start-points-ci", + "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", "artifact_status": "COMPLIANT" } }, @@ -4191,7 +3603,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "web-0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": "COMPLIANT" } }, @@ -4199,15 +3611,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-130", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "web-0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972", + "trail_name": "promote-all-31", "artifact_status": "COMPLIANT" } } @@ -4232,8 +3636,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "web-ci", - "trail_name": "3f0b9975f96b7f4e4aae0b4409cebda3209be164", + "flow_name": "exercises-start-points-ci", + "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", "artifact_status": null } }, @@ -4241,7 +3645,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "web-0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": null } }, @@ -4249,15 +3653,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-130", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "web-0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972", + "trail_name": "promote-all-31", "artifact_status": null } } @@ -4284,8 +3680,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "web-ci", - "trail_name": "3f0b9975f96b7f4e4aae0b4409cebda3209be164", + "flow_name": "exercises-start-points-ci", + "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", "artifact_status": null } }, @@ -4293,7 +3689,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "web-0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": null } }, @@ -4301,15 +3697,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-130", - "artifact_status": null - } - }, - { - "type": "rule_satisfied", - "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "web-0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972", + "trail_name": "promote-all-31", "artifact_status": null } } @@ -4329,8 +3717,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "web-ci", - "trail_name": "3f0b9975f96b7f4e4aae0b4409cebda3209be164", + "flow_name": "exercises-start-points-ci", + "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", "artifact_status": "COMPLIANT" } }, @@ -4338,7 +3726,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "web-0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": "COMPLIANT" } }, @@ -4346,15 +3734,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-130", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "web-0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972", + "trail_name": "promote-all-31", "artifact_status": "COMPLIANT" } } @@ -4379,8 +3759,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "web-ci", - "trail_name": "3f0b9975f96b7f4e4aae0b4409cebda3209be164", + "flow_name": "exercises-start-points-ci", + "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -4389,7 +3769,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "web-0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -4398,16 +3778,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-130", - "artifact_status": null, - "for_control": "SDLC-CTRL-0002" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "web-0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972", + "trail_name": "promote-all-31", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -4435,8 +3806,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "web-ci", - "trail_name": "3f0b9975f96b7f4e4aae0b4409cebda3209be164", + "flow_name": "exercises-start-points-ci", + "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", "artifact_status": null } }, @@ -4444,7 +3815,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "web-0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": null } }, @@ -4452,15 +3823,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-130", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "web-0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972", + "trail_name": "promote-all-31", "artifact_status": null } } @@ -4480,8 +3843,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "web-ci", - "trail_name": "3f0b9975f96b7f4e4aae0b4409cebda3209be164", + "flow_name": "exercises-start-points-ci", + "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", "artifact_status": "COMPLIANT" } }, @@ -4489,7 +3852,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "web-0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": "COMPLIANT" } }, @@ -4497,15 +3860,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-130", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "web-0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972", + "trail_name": "promote-all-31", "artifact_status": "COMPLIANT" } } @@ -4524,14 +3879,14 @@ kosli get snapshot aws-prod --output=json "for_control": "SDLC-CTRL-0022" } }, - "satisfied": true, - "ignored": false, + "satisfied": null, + "ignored": true, "resolutions": [ { "type": "rule_not_applicable", "context": { - "flow_name": "web-ci", - "trail_name": "3f0b9975f96b7f4e4aae0b4409cebda3209be164", + "flow_name": "exercises-start-points-ci", + "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -4540,7 +3895,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "web-0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -4549,16 +3904,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-130", - "artifact_status": null, - "for_control": "SDLC-CTRL-0022" - } - }, - { - "type": "rule_satisfied", - "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "web-0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972", + "trail_name": "promote-all-31", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -4586,8 +3932,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "web-ci", - "trail_name": "3f0b9975f96b7f4e4aae0b4409cebda3209be164", + "flow_name": "exercises-start-points-ci", + "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", "artifact_status": null } }, @@ -4595,7 +3941,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "web-0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": null } }, @@ -4603,15 +3949,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-130", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "web-0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972", + "trail_name": "promote-all-31", "artifact_status": null } } @@ -4631,8 +3969,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "web-ci", - "trail_name": "3f0b9975f96b7f4e4aae0b4409cebda3209be164", + "flow_name": "exercises-start-points-ci", + "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", "artifact_status": "COMPLIANT" } }, @@ -4640,7 +3978,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "web-0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": "COMPLIANT" } }, @@ -4648,15 +3986,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-130", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "web-0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972", + "trail_name": "promote-all-31", "artifact_status": "COMPLIANT" } } @@ -4681,8 +4011,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "web-ci", - "trail_name": "3f0b9975f96b7f4e4aae0b4409cebda3209be164", + "flow_name": "exercises-start-points-ci", + "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", "artifact_status": null } }, @@ -4690,7 +4020,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "web-0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": null } }, @@ -4698,15 +4028,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-130", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "web-0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972", + "trail_name": "promote-all-31", "artifact_status": null } } @@ -4733,8 +4055,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "web-ci", - "trail_name": "3f0b9975f96b7f4e4aae0b4409cebda3209be164", + "flow_name": "exercises-start-points-ci", + "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", "artifact_status": null } }, @@ -4742,7 +4064,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "web-0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": null } }, @@ -4750,15 +4072,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-130", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "web-0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972", + "trail_name": "promote-all-31", "artifact_status": null } } @@ -4784,8 +4098,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "web-ci", - "trail_name": "3f0b9975f96b7f4e4aae0b4409cebda3209be164", + "flow_name": "exercises-start-points-ci", + "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", "artifact_status": "COMPLIANT" } }, @@ -4793,7 +4107,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "web-0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": "COMPLIANT" } }, @@ -4801,15 +4115,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-130", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_satisfied", - "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "web-0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972", + "trail_name": "promote-all-31", "artifact_status": "COMPLIANT" } } @@ -4820,71 +4126,69 @@ kosli get snapshot aws-prod --output=json } ], "reasons_for_incompliance": [], - "fingerprint": "0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972", + "fingerprint": "c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "creationTimestamp": [ - 1784352887, - 1784352892, - 1784352892 + 1785241255 ], "pods": null, "annotation": { "type": "unchanged", - "was": 3, - "now": 3 + "was": 1, + "now": 1 }, - "flow_name": "web-ci", - "git_commit": "3f0b9975f96b7f4e4aae0b4409cebda3209be164", - "commit_url": "https://github.com/cyber-dojo/web/commit/3f0b9975f96b7f4e4aae0b4409cebda3209be164", - "html_url": "https://app.kosli.com/cyber-dojo/flows/web-ci/artifacts/0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972?artifact_id=0f00c8a9-1489-416c-b64f-5819890f", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/web-ci", + "flow_name": "exercises-start-points-ci", + "git_commit": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", + "commit_url": "https://github.com/cyber-dojo/exercises-start-points/commit/258b6d07d2b28ad5cb2ce6d29934997f72380f1a", + "html_url": "https://app.kosli.com/cyber-dojo/flows/exercises-start-points-ci/artifacts/c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea?artifact_id=ffb671be-6388-4f6a-ae64-8ba95d82", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/exercises-start-points-ci", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/web/compare/bdf01beca687a34db9689499bd805cfc752a1747...3f0b9975f96b7f4e4aae0b4409cebda3209be164", - "previous_git_commit": "bdf01beca687a34db9689499bd805cfc752a1747", - "previous_fingerprint": "64c1342f34dfbf19a5da21b0b027ac20abdbc1be6e1c763ff90a83ae207f9920", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:bdf01be@sha256:64c1342f34dfbf19a5da21b0b027ac20abdbc1be6e1c763ff90a83ae207f9920", + "diff_url": "https://github.com/cyber-dojo/exercises-start-points/compare/804f248d832dc34e564507b009c246dfb4f0c657...258b6d07d2b28ad5cb2ce6d29934997f72380f1a", + "previous_git_commit": "804f248d832dc34e564507b009c246dfb4f0c657", + "previous_fingerprint": "a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:804f248@sha256:a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/web/commit/bdf01beca687a34db9689499bd805cfc752a1747", - "previous_trail_name": "bdf01beca687a34db9689499bd805cfc752a1747", - "previous_template_reference_name": "web" + "previous_git_commit_url": "https://github.com/cyber-dojo/exercises-start-points/commit/804f248d832dc34e564507b009c246dfb4f0c657", + "previous_trail_name": "804f248d832dc34e564507b009c246dfb4f0c657", + "previous_template_reference_name": "exercises-start-points" }, - "commit_lead_time": 56258.0, + "commit_lead_time": 929108.0, "flows": [ { - "flow_name": "web-ci", - "trail_name": "3f0b9975f96b7f4e4aae0b4409cebda3209be164", - "template_reference_name": "web", - "git_commit": "3f0b9975f96b7f4e4aae0b4409cebda3209be164", - "commit_url": "https://github.com/cyber-dojo/web/commit/3f0b9975f96b7f4e4aae0b4409cebda3209be164", + "flow_name": "exercises-start-points-ci", + "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", + "template_reference_name": "exercises-start-points", + "git_commit": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", + "commit_url": "https://github.com/cyber-dojo/exercises-start-points/commit/258b6d07d2b28ad5cb2ce6d29934997f72380f1a", "git_commit_info": { - "sha1": "3f0b9975f96b7f4e4aae0b4409cebda3209be164", - "message": "Merge pull request #385 from cyber-dojo/add-drift-detection\n\nRead deployed image for drift-detection plan", - "author": "Graham Savage ", + "sha1": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", + "message": "Merge pull request #146 from cyber-dojo/add-drift-detection\n\nAdd periodic drift-detection workflow", + "author": "Jon Jagger ", "branch": "", - "timestamp": 1784296629.0, - "url": "https://github.com/cyber-dojo/web/commit/3f0b9975f96b7f4e4aae0b4409cebda3209be164" + "timestamp": 1784312147.0, + "url": "https://github.com/cyber-dojo/exercises-start-points/commit/258b6d07d2b28ad5cb2ce6d29934997f72380f1a" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/web-ci/artifacts/0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972?artifact_id=0f00c8a9-1489-416c-b64f-5819890f", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/web-ci", + "html_url": "https://app.kosli.com/cyber-dojo/flows/exercises-start-points-ci/artifacts/c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea?artifact_id=ffb671be-6388-4f6a-ae64-8ba95d82", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/exercises-start-points-ci", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/web/compare/bdf01beca687a34db9689499bd805cfc752a1747...3f0b9975f96b7f4e4aae0b4409cebda3209be164", - "previous_git_commit": "bdf01beca687a34db9689499bd805cfc752a1747", - "previous_fingerprint": "64c1342f34dfbf19a5da21b0b027ac20abdbc1be6e1c763ff90a83ae207f9920", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:bdf01be@sha256:64c1342f34dfbf19a5da21b0b027ac20abdbc1be6e1c763ff90a83ae207f9920", + "diff_url": "https://github.com/cyber-dojo/exercises-start-points/compare/804f248d832dc34e564507b009c246dfb4f0c657...258b6d07d2b28ad5cb2ce6d29934997f72380f1a", + "previous_git_commit": "804f248d832dc34e564507b009c246dfb4f0c657", + "previous_fingerprint": "a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:804f248@sha256:a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/web/commit/bdf01beca687a34db9689499bd805cfc752a1747", - "previous_trail_name": "bdf01beca687a34db9689499bd805cfc752a1747", - "previous_template_reference_name": "web" + "previous_git_commit_url": "https://github.com/cyber-dojo/exercises-start-points/commit/804f248d832dc34e564507b009c246dfb4f0c657", + "previous_trail_name": "804f248d832dc34e564507b009c246dfb4f0c657", + "previous_template_reference_name": "exercises-start-points" }, - "commit_lead_time": 56258.0, + "commit_lead_time": 929108.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "web-0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972", - "template_reference_name": "web", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "template_reference_name": "exercises-start-points", "git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", "git_commit_info": { @@ -4895,94 +4199,63 @@ kosli get snapshot aws-prod --output=json "timestamp": 1783850974.0, "url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972?artifact_id=7a70a8fa-ae6d-40c2-9aea-532dfae2", + "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea?artifact_id=09bcaf35-ebb8-437f-bb7d-16f994e4", "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/a517304f4e9013e2e9ea67e90c7342f7e56653f0...35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "previous_git_commit": "a517304f4e9013e2e9ea67e90c7342f7e56653f0", - "previous_fingerprint": "929748bb88b31863da9cd8d62a5039c274ff3c669f2ef05bc025e6989d2c1eab", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:97ebee5@sha256:929748bb88b31863da9cd8d62a5039c274ff3c669f2ef05bc025e6989d2c1eab", + "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7...35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", + "previous_git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", + "previous_fingerprint": "a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:804f248@sha256:a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/a517304f4e9013e2e9ea67e90c7342f7e56653f0", - "previous_trail_name": "web-929748bb88b31863da9cd8d62a5039c274ff3c669f2ef05bc025e6989d2c1eab", - "previous_template_reference_name": "web" + "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", + "previous_trail_name": "exercises-start-points-a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", + "previous_template_reference_name": "exercises-start-points" }, - "commit_lead_time": 501913.0, + "commit_lead_time": 1390281.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "production-promotion", - "trail_name": "promotion-one-130", - "template_reference_name": "web", - "git_commit": "76325d840dc66e1c84743725e17de05a16616419", - "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/76325d840dc66e1c84743725e17de05a16616419", + "trail_name": "promote-all-31", + "template_reference_name": "exercises-start-points", + "git_commit": "81c216a55b2cb1787645e699ceaceca868cad253", + "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253", "git_commit_info": { - "sha1": "76325d840dc66e1c84743725e17de05a16616419", - "message": "Add emoji prefix to workflow names", + "sha1": "81c216a55b2cb1787645e699ceaceca868cad253", + "message": "Add spooler service name to promote_one.yml", "author": "JonJagger ", "branch": "main", - "timestamp": 1783852701.0, - "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/76325d840dc66e1c84743725e17de05a16616419" + "timestamp": 1785143054.0, + "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972?artifact_id=ef4ad7ac-354a-4541-beb1-9d1e1ac7", + "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea?artifact_id=b17578fc-3dc0-42c5-98a7-216ebe8a", "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/compare/76325d840dc66e1c84743725e17de05a16616419...76325d840dc66e1c84743725e17de05a16616419", - "previous_git_commit": "76325d840dc66e1c84743725e17de05a16616419", - "previous_fingerprint": "64c1342f34dfbf19a5da21b0b027ac20abdbc1be6e1c763ff90a83ae207f9920", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:bdf01be@sha256:64c1342f34dfbf19a5da21b0b027ac20abdbc1be6e1c763ff90a83ae207f9920", - "previous_artifact_compliance_state": "COMPLIANT", - "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/76325d840dc66e1c84743725e17de05a16616419", - "previous_trail_name": "promotion-one-125", - "previous_template_reference_name": "web" - }, - "commit_lead_time": 500186.0, - "artifact_compliance_in_flow": true, - "flow_reasons_for_non_compliance": [] - }, - { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "web-0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972", - "template_reference_name": "web", - "git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "git_commit_info": { - "sha1": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "message": "Add emoji prefixes to workflow names\n\n Match the visual convention already used in the kosli-demo/stochastic-committer\n repo, where the Actions sidebar distinguishes workflow roles at a glance.\n\n The two aws-* files are the top-level entry points, triggered by dispatch and\n schedule, so they get the play emoji. The three reusable workflow_call\n sub-workflows get the package emoji to mark them as callable building blocks.", - "author": "JonJagger ", - "branch": "main", - "timestamp": 1783850974.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7" - }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972?artifact_id=85a65b0d-3833-45a7-a32a-02d06597", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact", - "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/00c479764cb9eca038fdaaaef108672d0bb0ed26...35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "previous_git_commit": "00c479764cb9eca038fdaaaef108672d0bb0ed26", - "previous_fingerprint": "29c69c2f30f261a26fff4793fd8ae44b9081def1d4bcaaa27b0fef0501d949e4", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:f66cc5c@sha256:29c69c2f30f261a26fff4793fd8ae44b9081def1d4bcaaa27b0fef0501d949e4", + "diff_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/compare/d7e31ce0207b766140ae689f38625da4374acf87...81c216a55b2cb1787645e699ceaceca868cad253", + "previous_git_commit": "d7e31ce0207b766140ae689f38625da4374acf87", + "previous_fingerprint": "a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:804f248@sha256:a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/00c479764cb9eca038fdaaaef108672d0bb0ed26", - "previous_trail_name": "web-29c69c2f30f261a26fff4793fd8ae44b9081def1d4bcaaa27b0fef0501d949e4", - "previous_template_reference_name": "web" + "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/d7e31ce0207b766140ae689f38625da4374acf87", + "previous_trail_name": "promote-all-30", + "previous_template_reference_name": "exercises-start-points" }, - "commit_lead_time": 501913.0, + "commit_lead_time": 98201.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] } ], "ecs_context": { - "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/ef2471a4418645c1ae25de259e1ac91f", + "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/f248719ae7814027825075c5ea81acff", "cluster_name": null, "service_name": null } }, { - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/differ:335ddfa@sha256:c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/custom-start-points:790d86b@sha256:8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", "compliant": true, "deployments": [], "policy_decisions": [ @@ -5004,16 +4277,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "differ-ci", - "trail_name": "335ddfa139708c37908dd594a0502bc6d88f8615", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-128", + "flow_name": "custom-start-points-ci", + "trail_name": "790d86b66f4d86ab47f5c521daf5039dc8aeef4d", "artifact_status": null } }, @@ -5021,15 +4286,15 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "differ-c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f", + "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "differ-c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": null } } @@ -5049,16 +4314,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "differ-ci", - "trail_name": "335ddfa139708c37908dd594a0502bc6d88f8615", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-128", + "flow_name": "custom-start-points-ci", + "trail_name": "790d86b66f4d86ab47f5c521daf5039dc8aeef4d", "artifact_status": "COMPLIANT" } }, @@ -5066,15 +4323,15 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "differ-c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f", + "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "differ-c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": "COMPLIANT" } } @@ -5099,16 +4356,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "differ-ci", - "trail_name": "335ddfa139708c37908dd594a0502bc6d88f8615", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-128", + "flow_name": "custom-start-points-ci", + "trail_name": "790d86b66f4d86ab47f5c521daf5039dc8aeef4d", "artifact_status": null } }, @@ -5116,15 +4365,15 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "differ-c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f", + "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "differ-c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": null } } @@ -5151,16 +4400,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "differ-ci", - "trail_name": "335ddfa139708c37908dd594a0502bc6d88f8615", - "artifact_status": null - } - }, - { - "type": "rule_satisfied", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-128", + "flow_name": "custom-start-points-ci", + "trail_name": "790d86b66f4d86ab47f5c521daf5039dc8aeef4d", "artifact_status": null } }, @@ -5168,15 +4409,15 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "differ-c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f", + "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", "artifact_status": null } }, { "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "differ-c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": null } } @@ -5196,16 +4437,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "differ-ci", - "trail_name": "335ddfa139708c37908dd594a0502bc6d88f8615", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-128", + "flow_name": "custom-start-points-ci", + "trail_name": "790d86b66f4d86ab47f5c521daf5039dc8aeef4d", "artifact_status": "COMPLIANT" } }, @@ -5213,15 +4446,15 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "differ-c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f", + "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "differ-c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": "COMPLIANT" } } @@ -5246,17 +4479,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "differ-ci", - "trail_name": "335ddfa139708c37908dd594a0502bc6d88f8615", - "artifact_status": null, - "for_control": "SDLC-CTRL-0002" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-128", + "flow_name": "custom-start-points-ci", + "trail_name": "790d86b66f4d86ab47f5c521daf5039dc8aeef4d", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -5265,7 +4489,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "differ-c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f", + "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -5273,8 +4497,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "differ-c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -5302,16 +4526,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "differ-ci", - "trail_name": "335ddfa139708c37908dd594a0502bc6d88f8615", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-128", + "flow_name": "custom-start-points-ci", + "trail_name": "790d86b66f4d86ab47f5c521daf5039dc8aeef4d", "artifact_status": null } }, @@ -5319,15 +4535,15 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "differ-c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f", + "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "differ-c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": null } } @@ -5347,16 +4563,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "differ-ci", - "trail_name": "335ddfa139708c37908dd594a0502bc6d88f8615", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-128", + "flow_name": "custom-start-points-ci", + "trail_name": "790d86b66f4d86ab47f5c521daf5039dc8aeef4d", "artifact_status": "COMPLIANT" } }, @@ -5364,15 +4572,15 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "differ-c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f", + "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "differ-c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": "COMPLIANT" } } @@ -5391,23 +4599,14 @@ kosli get snapshot aws-prod --output=json "for_control": "SDLC-CTRL-0022" } }, - "satisfied": true, - "ignored": false, + "satisfied": null, + "ignored": true, "resolutions": [ { "type": "rule_not_applicable", "context": { - "flow_name": "differ-ci", - "trail_name": "335ddfa139708c37908dd594a0502bc6d88f8615", - "artifact_status": null, - "for_control": "SDLC-CTRL-0022" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-128", + "flow_name": "custom-start-points-ci", + "trail_name": "790d86b66f4d86ab47f5c521daf5039dc8aeef4d", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -5416,16 +4615,16 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "differ-c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f", + "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } }, { - "type": "rule_satisfied", + "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "differ-c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -5453,16 +4652,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "differ-ci", - "trail_name": "335ddfa139708c37908dd594a0502bc6d88f8615", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-128", + "flow_name": "custom-start-points-ci", + "trail_name": "790d86b66f4d86ab47f5c521daf5039dc8aeef4d", "artifact_status": null } }, @@ -5470,15 +4661,15 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "differ-c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f", + "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "differ-c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": null } } @@ -5498,16 +4689,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "differ-ci", - "trail_name": "335ddfa139708c37908dd594a0502bc6d88f8615", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-128", + "flow_name": "custom-start-points-ci", + "trail_name": "790d86b66f4d86ab47f5c521daf5039dc8aeef4d", "artifact_status": "COMPLIANT" } }, @@ -5515,15 +4698,15 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "differ-c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f", + "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "differ-c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": "COMPLIANT" } } @@ -5548,16 +4731,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "differ-ci", - "trail_name": "335ddfa139708c37908dd594a0502bc6d88f8615", - "artifact_status": null - } - }, - { - "type": "rule_satisfied", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-128", + "flow_name": "custom-start-points-ci", + "trail_name": "790d86b66f4d86ab47f5c521daf5039dc8aeef4d", "artifact_status": null } }, @@ -5565,15 +4740,15 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "differ-c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f", + "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", "artifact_status": null } }, { - "type": "rule_not_applicable", + "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "differ-c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": null } } @@ -5600,16 +4775,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "differ-ci", - "trail_name": "335ddfa139708c37908dd594a0502bc6d88f8615", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-128", + "flow_name": "custom-start-points-ci", + "trail_name": "790d86b66f4d86ab47f5c521daf5039dc8aeef4d", "artifact_status": null } }, @@ -5617,15 +4784,15 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "differ-c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f", + "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "differ-c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": null } } @@ -5651,16 +4818,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "differ-ci", - "trail_name": "335ddfa139708c37908dd594a0502bc6d88f8615", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_satisfied", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-128", + "flow_name": "custom-start-points-ci", + "trail_name": "790d86b66f4d86ab47f5c521daf5039dc8aeef4d", "artifact_status": "COMPLIANT" } }, @@ -5668,15 +4827,15 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "differ-c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f", + "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", "artifact_status": "COMPLIANT" } }, { "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "differ-c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", "artifact_status": "COMPLIANT" } } @@ -5687,9 +4846,9 @@ kosli get snapshot aws-prod --output=json } ], "reasons_for_incompliance": [], - "fingerprint": "c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f", + "fingerprint": "8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", "creationTimestamp": [ - 1784184597 + 1785241244 ], "pods": null, "annotation": { @@ -5697,90 +4856,59 @@ kosli get snapshot aws-prod --output=json "was": 1, "now": 1 }, - "flow_name": "differ-ci", - "git_commit": "335ddfa139708c37908dd594a0502bc6d88f8615", - "commit_url": "https://github.com/cyber-dojo/differ/commit/335ddfa139708c37908dd594a0502bc6d88f8615", - "html_url": "https://app.kosli.com/cyber-dojo/flows/differ-ci/artifacts/c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f?artifact_id=5f3d2a2e-acdb-4414-a1e7-ebca7c32", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/differ-ci", + "flow_name": "custom-start-points-ci", + "git_commit": "790d86b66f4d86ab47f5c521daf5039dc8aeef4d", + "commit_url": "https://github.com/cyber-dojo/custom-start-points/commit/790d86b66f4d86ab47f5c521daf5039dc8aeef4d", + "html_url": "https://app.kosli.com/cyber-dojo/flows/custom-start-points-ci/artifacts/8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81?artifact_id=653e13a5-2f2a-4a23-be4e-1693fc77", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/custom-start-points-ci", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/differ/compare/8beff9901ac67acb7afcab3408106208571a1124...335ddfa139708c37908dd594a0502bc6d88f8615", - "previous_git_commit": "8beff9901ac67acb7afcab3408106208571a1124", - "previous_fingerprint": "7e2d411aedcf779dc4be7da47957f698696df954a7f557688d0052e9a18218fc", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/differ:8beff99@sha256:7e2d411aedcf779dc4be7da47957f698696df954a7f557688d0052e9a18218fc", + "diff_url": "https://github.com/cyber-dojo/custom-start-points/compare/d37aace7598ee943ba0bd5e51f224335cbdf0a3e...790d86b66f4d86ab47f5c521daf5039dc8aeef4d", + "previous_git_commit": "d37aace7598ee943ba0bd5e51f224335cbdf0a3e", + "previous_fingerprint": "1ed61f19b66b82f7f122b7b88522360de73abb3536fab5d0f8eadb9b987f9400", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/custom-start-points:d37aace@sha256:1ed61f19b66b82f7f122b7b88522360de73abb3536fab5d0f8eadb9b987f9400", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/differ/commit/8beff9901ac67acb7afcab3408106208571a1124", - "previous_trail_name": "8beff9901ac67acb7afcab3408106208571a1124", - "previous_template_reference_name": "differ" + "previous_git_commit_url": "https://github.com/cyber-dojo/custom-start-points/commit/d37aace7598ee943ba0bd5e51f224335cbdf0a3e", + "previous_trail_name": "d37aace7598ee943ba0bd5e51f224335cbdf0a3e", + "previous_template_reference_name": "custom-start-points" }, - "commit_lead_time": 423508.0, + "commit_lead_time": 929228.0, "flows": [ { - "flow_name": "differ-ci", - "trail_name": "335ddfa139708c37908dd594a0502bc6d88f8615", - "template_reference_name": "differ", - "git_commit": "335ddfa139708c37908dd594a0502bc6d88f8615", - "commit_url": "https://github.com/cyber-dojo/differ/commit/335ddfa139708c37908dd594a0502bc6d88f8615", + "flow_name": "custom-start-points-ci", + "trail_name": "790d86b66f4d86ab47f5c521daf5039dc8aeef4d", + "template_reference_name": "custom-start-points", + "git_commit": "790d86b66f4d86ab47f5c521daf5039dc8aeef4d", + "commit_url": "https://github.com/cyber-dojo/custom-start-points/commit/790d86b66f4d86ab47f5c521daf5039dc8aeef4d", "git_commit_info": { - "sha1": "335ddfa139708c37908dd594a0502bc6d88f8615", - "message": "Run workflow so image has updated git to fix new cares snyk vuln (#431)", + "sha1": "790d86b66f4d86ab47f5c521daf5039dc8aeef4d", + "message": "Merge pull request #140 from cyber-dojo/add-drift-detection\n\nAdd periodic drift-detection workflow", "author": "Jon Jagger ", "branch": "", - "timestamp": 1783761089.0, - "url": "https://github.com/cyber-dojo/differ/commit/335ddfa139708c37908dd594a0502bc6d88f8615" - }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/differ-ci/artifacts/c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f?artifact_id=5f3d2a2e-acdb-4414-a1e7-ebca7c32", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/differ-ci", - "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/differ/compare/8beff9901ac67acb7afcab3408106208571a1124...335ddfa139708c37908dd594a0502bc6d88f8615", - "previous_git_commit": "8beff9901ac67acb7afcab3408106208571a1124", - "previous_fingerprint": "7e2d411aedcf779dc4be7da47957f698696df954a7f557688d0052e9a18218fc", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/differ:8beff99@sha256:7e2d411aedcf779dc4be7da47957f698696df954a7f557688d0052e9a18218fc", - "previous_artifact_compliance_state": "COMPLIANT", - "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/differ/commit/8beff9901ac67acb7afcab3408106208571a1124", - "previous_trail_name": "8beff9901ac67acb7afcab3408106208571a1124", - "previous_template_reference_name": "differ" + "timestamp": 1784312016.0, + "url": "https://github.com/cyber-dojo/custom-start-points/commit/790d86b66f4d86ab47f5c521daf5039dc8aeef4d" }, - "commit_lead_time": 423508.0, - "artifact_compliance_in_flow": true, - "flow_reasons_for_non_compliance": [] - }, - { - "flow_name": "production-promotion", - "trail_name": "promotion-one-128", - "template_reference_name": "differ", - "git_commit": "76325d840dc66e1c84743725e17de05a16616419", - "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/76325d840dc66e1c84743725e17de05a16616419", - "git_commit_info": { - "sha1": "76325d840dc66e1c84743725e17de05a16616419", - "message": "Add emoji prefix to workflow names", - "author": "JonJagger ", - "branch": "main", - "timestamp": 1783852701.0, - "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/76325d840dc66e1c84743725e17de05a16616419" - }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f?artifact_id=c445f15d-1957-4d94-9123-d67ad0b8", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion", + "html_url": "https://app.kosli.com/cyber-dojo/flows/custom-start-points-ci/artifacts/8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81?artifact_id=653e13a5-2f2a-4a23-be4e-1693fc77", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/custom-start-points-ci", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/compare/d7e31ce0207b766140ae689f38625da4374acf87...76325d840dc66e1c84743725e17de05a16616419", - "previous_git_commit": "d7e31ce0207b766140ae689f38625da4374acf87", - "previous_fingerprint": "7e2d411aedcf779dc4be7da47957f698696df954a7f557688d0052e9a18218fc", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/differ:8beff99@sha256:7e2d411aedcf779dc4be7da47957f698696df954a7f557688d0052e9a18218fc", + "diff_url": "https://github.com/cyber-dojo/custom-start-points/compare/d37aace7598ee943ba0bd5e51f224335cbdf0a3e...790d86b66f4d86ab47f5c521daf5039dc8aeef4d", + "previous_git_commit": "d37aace7598ee943ba0bd5e51f224335cbdf0a3e", + "previous_fingerprint": "1ed61f19b66b82f7f122b7b88522360de73abb3536fab5d0f8eadb9b987f9400", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/custom-start-points:d37aace@sha256:1ed61f19b66b82f7f122b7b88522360de73abb3536fab5d0f8eadb9b987f9400", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/d7e31ce0207b766140ae689f38625da4374acf87", - "previous_trail_name": "promote-all-30", - "previous_template_reference_name": "differ" + "previous_git_commit_url": "https://github.com/cyber-dojo/custom-start-points/commit/d37aace7598ee943ba0bd5e51f224335cbdf0a3e", + "previous_trail_name": "d37aace7598ee943ba0bd5e51f224335cbdf0a3e", + "previous_template_reference_name": "custom-start-points" }, - "commit_lead_time": 331896.0, + "commit_lead_time": 929228.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "differ-c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f", - "template_reference_name": "differ", + "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", + "template_reference_name": "custom-start-points", "git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", "git_commit_info": { @@ -5791,63 +4919,63 @@ kosli get snapshot aws-prod --output=json "timestamp": 1783850974.0, "url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f?artifact_id=dd1d108b-6d0a-47fb-8d6e-046c2862", + "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81?artifact_id=ca358cf6-f605-4ae6-8d93-1296ece8", "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/a517304f4e9013e2e9ea67e90c7342f7e56653f0...35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "previous_git_commit": "a517304f4e9013e2e9ea67e90c7342f7e56653f0", - "previous_fingerprint": "7e2d411aedcf779dc4be7da47957f698696df954a7f557688d0052e9a18218fc", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/differ:8beff99@sha256:7e2d411aedcf779dc4be7da47957f698696df954a7f557688d0052e9a18218fc", + "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/c17bb3ed8862de03c1a491dfe790fd8734fc7071...35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", + "previous_git_commit": "c17bb3ed8862de03c1a491dfe790fd8734fc7071", + "previous_fingerprint": "311da8e95c74716bf3953de67a6dc3fe514c88d805a08a55ab17c677d75cf797", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/custom-start-points:514f79a@sha256:311da8e95c74716bf3953de67a6dc3fe514c88d805a08a55ab17c677d75cf797", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/a517304f4e9013e2e9ea67e90c7342f7e56653f0", - "previous_trail_name": "differ-7e2d411aedcf779dc4be7da47957f698696df954a7f557688d0052e9a18218fc", - "previous_template_reference_name": "differ" + "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/c17bb3ed8862de03c1a491dfe790fd8734fc7071", + "previous_trail_name": "custom-start-points-311da8e95c74716bf3953de67a6dc3fe514c88d805a08a55ab17c677d75cf797", + "previous_template_reference_name": "custom-start-points" }, - "commit_lead_time": 333623.0, + "commit_lead_time": 1390270.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "differ-c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f", - "template_reference_name": "differ", - "git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", + "flow_name": "production-promotion", + "trail_name": "promote-all-31", + "template_reference_name": "custom-start-points", + "git_commit": "81c216a55b2cb1787645e699ceaceca868cad253", + "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253", "git_commit_info": { - "sha1": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "message": "Add emoji prefixes to workflow names\n\n Match the visual convention already used in the kosli-demo/stochastic-committer\n repo, where the Actions sidebar distinguishes workflow roles at a glance.\n\n The two aws-* files are the top-level entry points, triggered by dispatch and\n schedule, so they get the play emoji. The three reusable workflow_call\n sub-workflows get the package emoji to mark them as callable building blocks.", + "sha1": "81c216a55b2cb1787645e699ceaceca868cad253", + "message": "Add spooler service name to promote_one.yml", "author": "JonJagger ", "branch": "main", - "timestamp": 1783850974.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7" + "timestamp": 1785143054.0, + "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f?artifact_id=15a60915-d2ed-4d30-b616-a4de4e7e", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact", + "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81?artifact_id=48b388e8-ce61-4668-a0dd-eb163cd4", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/00c479764cb9eca038fdaaaef108672d0bb0ed26...35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "previous_git_commit": "00c479764cb9eca038fdaaaef108672d0bb0ed26", - "previous_fingerprint": "902ec7af03407049ac6e5ef713146d518bbffd9d99cd28715fa0df973e809b7b", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/differ:981dcfc@sha256:902ec7af03407049ac6e5ef713146d518bbffd9d99cd28715fa0df973e809b7b", + "diff_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/compare/d7e31ce0207b766140ae689f38625da4374acf87...81c216a55b2cb1787645e699ceaceca868cad253", + "previous_git_commit": "d7e31ce0207b766140ae689f38625da4374acf87", + "previous_fingerprint": "1ed61f19b66b82f7f122b7b88522360de73abb3536fab5d0f8eadb9b987f9400", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/custom-start-points:d37aace@sha256:1ed61f19b66b82f7f122b7b88522360de73abb3536fab5d0f8eadb9b987f9400", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/00c479764cb9eca038fdaaaef108672d0bb0ed26", - "previous_trail_name": "differ-902ec7af03407049ac6e5ef713146d518bbffd9d99cd28715fa0df973e809b7b", - "previous_template_reference_name": "differ" + "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/d7e31ce0207b766140ae689f38625da4374acf87", + "previous_trail_name": "promote-all-30", + "previous_template_reference_name": "custom-start-points" }, - "commit_lead_time": 333623.0, + "commit_lead_time": 98190.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] } ], "ecs_context": { - "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/28557ef6830842138dd4db99a13c5d4a", + "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/6bf799c87c194e17be0f99fcd811abb6", "cluster_name": null, "service_name": null } }, { - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:7ba8029@sha256:3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:c29db2c@sha256:680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", "compliant": true, "deployments": [], "policy_decisions": [ @@ -5869,8 +4997,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "nginx-ci", - "trail_name": "7ba8029e0cb5d4c8fa51360f59b5cb8714a60d47", + "flow_name": "saver-ci", + "trail_name": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e", "artifact_status": null } }, @@ -5878,23 +5006,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-127", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "nginx-3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "nginx-3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5", + "trail_name": "promotion-one-141", "artifact_status": null } } @@ -5914,32 +5026,16 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "nginx-ci", - "trail_name": "7ba8029e0cb5d4c8fa51360f59b5cb8714a60d47", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-127", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "nginx-3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5", + "flow_name": "saver-ci", + "trail_name": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "nginx-3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5", + "flow_name": "production-promotion", + "trail_name": "promotion-one-141", "artifact_status": "COMPLIANT" } } @@ -5964,8 +5060,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "nginx-ci", - "trail_name": "7ba8029e0cb5d4c8fa51360f59b5cb8714a60d47", + "flow_name": "saver-ci", + "trail_name": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e", "artifact_status": null } }, @@ -5973,23 +5069,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-127", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "nginx-3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "nginx-3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5", + "trail_name": "promotion-one-141", "artifact_status": null } } @@ -6016,8 +5096,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "nginx-ci", - "trail_name": "7ba8029e0cb5d4c8fa51360f59b5cb8714a60d47", + "flow_name": "saver-ci", + "trail_name": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e", "artifact_status": null } }, @@ -6025,23 +5105,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-127", - "artifact_status": null - } - }, - { - "type": "rule_satisfied", - "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "nginx-3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5", - "artifact_status": null - } - }, - { - "type": "rule_satisfied", - "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "nginx-3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5", + "trail_name": "promotion-one-141", "artifact_status": null } } @@ -6061,8 +5125,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "nginx-ci", - "trail_name": "7ba8029e0cb5d4c8fa51360f59b5cb8714a60d47", + "flow_name": "saver-ci", + "trail_name": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e", "artifact_status": "COMPLIANT" } }, @@ -6070,23 +5134,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-127", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "nginx-3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "nginx-3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5", + "trail_name": "promotion-one-141", "artifact_status": "COMPLIANT" } } @@ -6111,8 +5159,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "nginx-ci", - "trail_name": "7ba8029e0cb5d4c8fa51360f59b5cb8714a60d47", + "flow_name": "saver-ci", + "trail_name": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -6121,25 +5169,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-127", - "artifact_status": null, - "for_control": "SDLC-CTRL-0002" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "nginx-3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5", - "artifact_status": null, - "for_control": "SDLC-CTRL-0002" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "nginx-3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5", + "trail_name": "promotion-one-141", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -6167,8 +5197,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "nginx-ci", - "trail_name": "7ba8029e0cb5d4c8fa51360f59b5cb8714a60d47", + "flow_name": "saver-ci", + "trail_name": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e", "artifact_status": null } }, @@ -6176,23 +5206,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-127", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "nginx-3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "nginx-3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5", + "trail_name": "promotion-one-141", "artifact_status": null } } @@ -6212,8 +5226,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "nginx-ci", - "trail_name": "7ba8029e0cb5d4c8fa51360f59b5cb8714a60d47", + "flow_name": "saver-ci", + "trail_name": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e", "artifact_status": "COMPLIANT" } }, @@ -6221,23 +5235,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-127", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "nginx-3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "nginx-3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5", + "trail_name": "promotion-one-141", "artifact_status": "COMPLIANT" } } @@ -6256,14 +5254,14 @@ kosli get snapshot aws-prod --output=json "for_control": "SDLC-CTRL-0022" } }, - "satisfied": true, - "ignored": false, + "satisfied": null, + "ignored": true, "resolutions": [ { "type": "rule_not_applicable", "context": { - "flow_name": "nginx-ci", - "trail_name": "7ba8029e0cb5d4c8fa51360f59b5cb8714a60d47", + "flow_name": "saver-ci", + "trail_name": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -6272,25 +5270,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-127", - "artifact_status": null, - "for_control": "SDLC-CTRL-0022" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "nginx-3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5", - "artifact_status": null, - "for_control": "SDLC-CTRL-0022" - } - }, - { - "type": "rule_satisfied", - "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "nginx-3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5", + "trail_name": "promotion-one-141", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -6318,8 +5298,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "nginx-ci", - "trail_name": "7ba8029e0cb5d4c8fa51360f59b5cb8714a60d47", + "flow_name": "saver-ci", + "trail_name": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e", "artifact_status": null } }, @@ -6327,23 +5307,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-127", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "nginx-3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "nginx-3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5", + "trail_name": "promotion-one-141", "artifact_status": null } } @@ -6363,8 +5327,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "nginx-ci", - "trail_name": "7ba8029e0cb5d4c8fa51360f59b5cb8714a60d47", + "flow_name": "saver-ci", + "trail_name": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e", "artifact_status": "COMPLIANT" } }, @@ -6372,23 +5336,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-127", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "nginx-3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "nginx-3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5", + "trail_name": "promotion-one-141", "artifact_status": "COMPLIANT" } } @@ -6413,8 +5361,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "nginx-ci", - "trail_name": "7ba8029e0cb5d4c8fa51360f59b5cb8714a60d47", + "flow_name": "saver-ci", + "trail_name": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e", "artifact_status": null } }, @@ -6422,23 +5370,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-127", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "nginx-3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "nginx-3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5", + "trail_name": "promotion-one-141", "artifact_status": null } } @@ -6465,8 +5397,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "nginx-ci", - "trail_name": "7ba8029e0cb5d4c8fa51360f59b5cb8714a60d47", + "flow_name": "saver-ci", + "trail_name": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e", "artifact_status": null } }, @@ -6474,23 +5406,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-127", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "nginx-3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "nginx-3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5", + "trail_name": "promotion-one-141", "artifact_status": null } } @@ -6516,8 +5432,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "nginx-ci", - "trail_name": "7ba8029e0cb5d4c8fa51360f59b5cb8714a60d47", + "flow_name": "saver-ci", + "trail_name": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e", "artifact_status": "COMPLIANT" } }, @@ -6525,23 +5441,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-127", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "nginx-3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_satisfied", - "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "nginx-3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5", + "trail_name": "promotion-one-141", "artifact_status": "COMPLIANT" } } @@ -6552,167 +5452,105 @@ kosli get snapshot aws-prod --output=json } ], "reasons_for_incompliance": [], - "fingerprint": "3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5", + "fingerprint": "680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", "creationTimestamp": [ - 1784183551 + 1785236539 ], "pods": null, - "annotation": { - "type": "unchanged", - "was": 1, - "now": 1 - }, - "flow_name": "nginx-ci", - "git_commit": "7ba8029e0cb5d4c8fa51360f59b5cb8714a60d47", - "commit_url": "https://github.com/cyber-dojo/nginx/commit/7ba8029e0cb5d4c8fa51360f59b5cb8714a60d47", - "html_url": "https://app.kosli.com/cyber-dojo/flows/nginx-ci/artifacts/3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5?artifact_id=5c293d3e-84a1-42dd-8215-6abd8d8d", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/nginx-ci", - "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/nginx/compare/9b711df71c76a1f293c2525ace65778036591baf...7ba8029e0cb5d4c8fa51360f59b5cb8714a60d47", - "previous_git_commit": "9b711df71c76a1f293c2525ace65778036591baf", - "previous_fingerprint": "0a858af40ca7a862ac1ba6a895e75c9030097f5890e9cc37c828e4adc55940e7", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:9b711df@sha256:0a858af40ca7a862ac1ba6a895e75c9030097f5890e9cc37c828e4adc55940e7", - "previous_artifact_compliance_state": "COMPLIANT", - "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/nginx/commit/9b711df71c76a1f293c2525ace65778036591baf", - "previous_trail_name": "9b711df71c76a1f293c2525ace65778036591baf", - "previous_template_reference_name": "nginx" - }, - "commit_lead_time": 1377.0, - "flows": [ - { - "flow_name": "nginx-ci", - "trail_name": "7ba8029e0cb5d4c8fa51360f59b5cb8714a60d47", - "template_reference_name": "nginx", - "git_commit": "7ba8029e0cb5d4c8fa51360f59b5cb8714a60d47", - "commit_url": "https://github.com/cyber-dojo/nginx/commit/7ba8029e0cb5d4c8fa51360f59b5cb8714a60d47", - "git_commit_info": { - "sha1": "7ba8029e0cb5d4c8fa51360f59b5cb8714a60d47", - "message": "Merge pull request #159 from cyber-dojo/remove-curl-fix-snyk-alpine323-curl-17970543\n\nRemove curl to clear recurring Alpine libcurl CVEs", - "author": "Jon Jagger ", - "branch": "", - "timestamp": 1784182174.0, - "url": "https://github.com/cyber-dojo/nginx/commit/7ba8029e0cb5d4c8fa51360f59b5cb8714a60d47" - }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/nginx-ci/artifacts/3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5?artifact_id=5c293d3e-84a1-42dd-8215-6abd8d8d", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/nginx-ci", - "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/nginx/compare/9b711df71c76a1f293c2525ace65778036591baf...7ba8029e0cb5d4c8fa51360f59b5cb8714a60d47", - "previous_git_commit": "9b711df71c76a1f293c2525ace65778036591baf", - "previous_fingerprint": "0a858af40ca7a862ac1ba6a895e75c9030097f5890e9cc37c828e4adc55940e7", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:9b711df@sha256:0a858af40ca7a862ac1ba6a895e75c9030097f5890e9cc37c828e4adc55940e7", - "previous_artifact_compliance_state": "COMPLIANT", - "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/nginx/commit/9b711df71c76a1f293c2525ace65778036591baf", - "previous_trail_name": "9b711df71c76a1f293c2525ace65778036591baf", - "previous_template_reference_name": "nginx" - }, - "commit_lead_time": 1377.0, - "artifact_compliance_in_flow": true, - "flow_reasons_for_non_compliance": [] - }, - { - "flow_name": "production-promotion", - "trail_name": "promotion-one-127", - "template_reference_name": "nginx", - "git_commit": "76325d840dc66e1c84743725e17de05a16616419", - "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/76325d840dc66e1c84743725e17de05a16616419", - "git_commit_info": { - "sha1": "76325d840dc66e1c84743725e17de05a16616419", - "message": "Add emoji prefix to workflow names", - "author": "JonJagger ", - "branch": "main", - "timestamp": 1783852701.0, - "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/76325d840dc66e1c84743725e17de05a16616419" - }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5?artifact_id=70dad200-6f93-430c-a06d-e1479d48", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion", - "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/compare/d7e31ce0207b766140ae689f38625da4374acf87...76325d840dc66e1c84743725e17de05a16616419", - "previous_git_commit": "d7e31ce0207b766140ae689f38625da4374acf87", - "previous_fingerprint": "0a858af40ca7a862ac1ba6a895e75c9030097f5890e9cc37c828e4adc55940e7", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:9b711df@sha256:0a858af40ca7a862ac1ba6a895e75c9030097f5890e9cc37c828e4adc55940e7", - "previous_artifact_compliance_state": "COMPLIANT", - "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/d7e31ce0207b766140ae689f38625da4374acf87", - "previous_trail_name": "promote-all-30", - "previous_template_reference_name": "nginx" - }, - "commit_lead_time": 330850.0, - "artifact_compliance_in_flow": true, - "flow_reasons_for_non_compliance": [] - }, + "annotation": { + "type": "unchanged", + "was": 1, + "now": 1 + }, + "flow_name": "saver-ci", + "git_commit": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e", + "commit_url": "https://github.com/cyber-dojo/saver/commit/c29db2ce6d16a9ace09a8548b0cc39fd608abd2e", + "html_url": "https://app.kosli.com/cyber-dojo/flows/saver-ci/artifacts/680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4?artifact_id=1fb48da0-c9b7-4627-8597-827ecccf", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/saver-ci", + "deployment_diff": { + "diff_url": "https://github.com/cyber-dojo/saver/compare/f4bb3412725258648a7cf5ce1a776609b4dade72...c29db2ce6d16a9ace09a8548b0cc39fd608abd2e", + "previous_git_commit": "f4bb3412725258648a7cf5ce1a776609b4dade72", + "previous_fingerprint": "fcfc73775b49f8b8414c720e820b38258c6d18cb9d25b7ac76ff2d528a7add97", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:f4bb341@sha256:fcfc73775b49f8b8414c720e820b38258c6d18cb9d25b7ac76ff2d528a7add97", + "previous_artifact_compliance_state": "COMPLIANT", + "previous_running": false, + "previous_git_commit_url": "https://github.com/cyber-dojo/saver/commit/f4bb3412725258648a7cf5ce1a776609b4dade72", + "previous_trail_name": "f4bb3412725258648a7cf5ce1a776609b4dade72", + "previous_template_reference_name": "saver" + }, + "commit_lead_time": 7420.0, + "flows": [ { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "nginx-3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5", - "template_reference_name": "nginx", - "git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", + "flow_name": "saver-ci", + "trail_name": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e", + "template_reference_name": "saver", + "git_commit": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e", + "commit_url": "https://github.com/cyber-dojo/saver/commit/c29db2ce6d16a9ace09a8548b0cc39fd608abd2e", "git_commit_info": { - "sha1": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "message": "Add emoji prefixes to workflow names\n\n Match the visual convention already used in the kosli-demo/stochastic-committer\n repo, where the Actions sidebar distinguishes workflow roles at a glance.\n\n The two aws-* files are the top-level entry points, triggered by dispatch and\n schedule, so they get the play emoji. The three reusable workflow_call\n sub-workflows get the package emoji to mark them as callable building blocks.", - "author": "JonJagger ", - "branch": "main", - "timestamp": 1783850974.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7" + "sha1": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e", + "message": "Spike saver idempotent append (#436)\n\n* Reduce saver's event write to an idempotent append\n\n Now that the spooler is the single ordered writer per kata (ADR B4,\n spooler docs/adr-async-writes-via-spooler.md), writes for one kata reach\n saver one at a time in tab_seq order. The concurrent-write machinery in\n commit_event therefore has nothing left to resolve, so remove it:\n\n - the update-ref compare-and-swap retry loop (and COMMIT_EVENT_MAX_RETRIES\n and the attempts parameter),\n - the self-lag re-append of a test-family loser,\n - the loser-rescue that dropped a file-event loser as \"Out of order\".\n\n file_edit_before_test_event only existed to swallow that \"Out of order\"\n drop, so it is gone; ran_tests/predicted_right/predicted_wrong now call\n file_edit directly to capture any pending edit before the test event.\n\n Kept: the A8 dedup guard (a redelivered (laptop_id, tab_seq, colour) is a\n no-op), and the update-ref itself with its base_oid precondition - now a\n cheap integrity guard against the blue-green overlap rather than loser\n detection. option_set's CAS stays too: options are a non-event write that\n does not go through the spooler and can still be written concurrently.\n\n Spike: tests not updated.\n\n* Drop the dead position return from saver's event writes\n\n The spooler is now the only writer and its drainer forwards by checking\n only the response status - it never reads the body. Web reads positions\n from the committed stream itself (A4/A5). So the {next_index, major_index,\n minor_index} the write methods computed and returned is dead: nothing reads\n it. Stop computing and returning it.\n\n - The nine event writes return nothing (an ack): file_create/delete/rename\n drop result['next_index']; file_edit's no-edit path returns bare; the\n test-family writes call commit_event directly.\n - git_commit_tag_sss had nothing left to do but call commit_event with the\n same args, so it is removed; git_commit_tag (which fills empty\n stdout/stderr/status for file events) calls commit_event directly.\n - The top-level major_index helper is now unused (only the write return used\n it) and is removed. The read side is untouched: events()/kata_events still\n carry index (stored) and major_index/minor_index (polyfilled per read by\n poly_filler).\n - commit_event: the A8 dedup path returns bare, all_events is inlined into\n the commit block, and the method ends with nil.\n\n* Update saver tests for idempotent-append writes\n\n The write methods now return nothing (an ack) and B4 removed the CAS\n retry / self-lag / loser-rescue, so tests that asserted on a returned\n position or exercised that machinery no longer hold. Re-express them\n against the committed event stream (kata_events), which still carries\n index / major_index / minor_index (poly_filler, read side).\n\n - Drop next_index = write(...), result['next_index'] and\n response[m]['next_index'] assertions; assert on kata_events(id) instead\n (size == head+1, events[i]['index'], and the light's colour + major/minor).\n Covers kata_file_* (+ client mirrors), kata_ran_tests, kata_reverted,\n kata_checked_out, kata_torn_read, kata_write_index_ignored,\n kata_write_accepts_{tab_seq,laptop_id}, kata_diff, differ,\n kata_ran_tests_with_edit, kata_predicted_{right,wrong},\n kata_ran_tests_with_outage.\n - Delete tests of removed behavior: kata_ran_tests.rb Sp4DkR/S/T/H plus the\n racing_git / assert_test_survives_raced_internal_file_edit helpers, and\n client/kata_concurrent_saves_test.rb (concurrent same-kata CAS-loser retry -\n the spooler is now the single ordered writer). Refresh the stale\n Sp4DkC / Sp4DkJ comments (the error propagates now; no rescue).\n - The *_metrics_limits.rb files (server + client) were regenerated by the\n test runner to match the new test counts and coverage.\n\n* Update api.md: writes no longer return an index, kata_events documents it\n\n The event-write methods stopped returning a position (they are an idempotent\n append now), so their docs were stale.\n\n - kata_events: its `returns` now describes the three positional indexes each\n event carries - index (absolute position), major_index (count of traffic-\n lights, created=0, a light sits at major.0), minor_index (0 on a light,\n incremented per inter-test file event since the last light) - and notes they\n are computed on read, not returned by the writes.\n - kata_file_create/delete/rename/edit: drop the \"returns the next event index\"\n text and the { \"kata_file_*\": N } response examples, and strip the now-\n pointless `| jq .` from their request examples (a write returns nothing\n meaningful - a 200 ack; the event is read back via kata_events).\n - kata_file_edit: its description no longer claims the next index is returned\n unchanged when nothing was edited.\n\n* Stamp laptop_id/tab_seq in the differ/kata_diff test helpers\n\n These two convenience helpers (kata_ran_tests(id, files)) called the\n model directly without laptop_id/tab_seq, riding the model's nil\n defaults. Those defaults are being removed, after which the bare calls\n would raise ArgumentError (missing keyword). Pass default_laptop_id and\n next_tab_seq (the same convention as test/server/helpers/model.rb) so\n these helpers survive the removal.\n\n Co-Authored-By: Claude Opus 4.8 (1M context) \n\n* Add ADR on proposed timestamp changes", + "author": "Jon Jagger ", + "branch": "", + "timestamp": 1785229119.0, + "url": "https://github.com/cyber-dojo/saver/commit/c29db2ce6d16a9ace09a8548b0cc39fd608abd2e" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5?artifact_id=39abaccd-2adc-48e5-992d-8804e957", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact", + "html_url": "https://app.kosli.com/cyber-dojo/flows/saver-ci/artifacts/680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4?artifact_id=1fb48da0-c9b7-4627-8597-827ecccf", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/saver-ci", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/d07d841723e4e524e4ea4d7dc8a7e60f0fc3349e...35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "previous_git_commit": "d07d841723e4e524e4ea4d7dc8a7e60f0fc3349e", - "previous_fingerprint": "8bc44a90894de99aa76cd931ea42e2544b0727c5e3842ea57e4f08cace175ca9", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:66c0766@sha256:8bc44a90894de99aa76cd931ea42e2544b0727c5e3842ea57e4f08cace175ca9", + "diff_url": "https://github.com/cyber-dojo/saver/compare/f4bb3412725258648a7cf5ce1a776609b4dade72...c29db2ce6d16a9ace09a8548b0cc39fd608abd2e", + "previous_git_commit": "f4bb3412725258648a7cf5ce1a776609b4dade72", + "previous_fingerprint": "fcfc73775b49f8b8414c720e820b38258c6d18cb9d25b7ac76ff2d528a7add97", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:f4bb341@sha256:fcfc73775b49f8b8414c720e820b38258c6d18cb9d25b7ac76ff2d528a7add97", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/d07d841723e4e524e4ea4d7dc8a7e60f0fc3349e", - "previous_trail_name": "nginx-8bc44a90894de99aa76cd931ea42e2544b0727c5e3842ea57e4f08cace175ca9", - "previous_template_reference_name": "nginx" + "previous_git_commit_url": "https://github.com/cyber-dojo/saver/commit/f4bb3412725258648a7cf5ce1a776609b4dade72", + "previous_trail_name": "f4bb3412725258648a7cf5ce1a776609b4dade72", + "previous_template_reference_name": "saver" }, - "commit_lead_time": 332577.0, + "commit_lead_time": 7420.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "nginx-3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5", - "template_reference_name": "nginx", - "git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", + "flow_name": "production-promotion", + "trail_name": "promotion-one-141", + "template_reference_name": "saver", + "git_commit": "81c216a55b2cb1787645e699ceaceca868cad253", + "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253", "git_commit_info": { - "sha1": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "message": "Add emoji prefixes to workflow names\n\n Match the visual convention already used in the kosli-demo/stochastic-committer\n repo, where the Actions sidebar distinguishes workflow roles at a glance.\n\n The two aws-* files are the top-level entry points, triggered by dispatch and\n schedule, so they get the play emoji. The three reusable workflow_call\n sub-workflows get the package emoji to mark them as callable building blocks.", + "sha1": "81c216a55b2cb1787645e699ceaceca868cad253", + "message": "Add spooler service name to promote_one.yml", "author": "JonJagger ", "branch": "main", - "timestamp": 1783850974.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7" + "timestamp": 1785143054.0, + "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5?artifact_id=57821227-e474-4f04-98f4-ecd342fe", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact", + "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4?artifact_id=0db443cc-b53c-4780-b759-7a8a1bf8", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/00c479764cb9eca038fdaaaef108672d0bb0ed26...35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "previous_git_commit": "00c479764cb9eca038fdaaaef108672d0bb0ed26", - "previous_fingerprint": "b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:7065268@sha256:b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8", + "diff_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/compare/76325d840dc66e1c84743725e17de05a16616419...81c216a55b2cb1787645e699ceaceca868cad253", + "previous_git_commit": "76325d840dc66e1c84743725e17de05a16616419", + "previous_fingerprint": "fcfc73775b49f8b8414c720e820b38258c6d18cb9d25b7ac76ff2d528a7add97", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:f4bb341@sha256:fcfc73775b49f8b8414c720e820b38258c6d18cb9d25b7ac76ff2d528a7add97", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/00c479764cb9eca038fdaaaef108672d0bb0ed26", - "previous_trail_name": "nginx-b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8", - "previous_template_reference_name": "nginx" + "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/76325d840dc66e1c84743725e17de05a16616419", + "previous_trail_name": "promotion-one-133", + "previous_template_reference_name": "saver" }, - "commit_lead_time": 332577.0, + "commit_lead_time": 93485.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] } ], "ecs_context": { - "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/950b7815820f45dd82a7dec0a382128a", + "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/77b4502f86ca4337a17e8ddfe0e8177b", "cluster_name": null, "service_name": null } }, { - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/languages-start-points:c6db342@sha256:f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/spooler:92c624e@sha256:a20359795934beb03d992ba5a8f8b95ca637e609284e5a84781bdcbb1b861975", "compliant": true, "deployments": [], "policy_decisions": [ @@ -6734,8 +5572,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "languages-start-points-ci", - "trail_name": "c6db342472238a7852b6ff31b04f9a6a6099f5cf", + "flow_name": "spooler-ci", + "trail_name": "92c624eabb024729fb2af6cdbe354db11ee3882f", "artifact_status": null } }, @@ -6743,23 +5581,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-30", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "languages-start-points-f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "languages-start-points-f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418", + "trail_name": "promotion-one-140", "artifact_status": null } } @@ -6779,8 +5601,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "languages-start-points-ci", - "trail_name": "c6db342472238a7852b6ff31b04f9a6a6099f5cf", + "flow_name": "spooler-ci", + "trail_name": "92c624eabb024729fb2af6cdbe354db11ee3882f", "artifact_status": "COMPLIANT" } }, @@ -6788,23 +5610,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-30", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "languages-start-points-f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "languages-start-points-f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418", + "trail_name": "promotion-one-140", "artifact_status": "COMPLIANT" } } @@ -6823,38 +5629,22 @@ kosli get snapshot aws-prod --output=json "for_control": null } }, - "satisfied": true, - "ignored": false, + "satisfied": null, + "ignored": true, "resolutions": [ - { - "type": "rule_satisfied", - "context": { - "flow_name": "languages-start-points-ci", - "trail_name": "c6db342472238a7852b6ff31b04f9a6a6099f5cf", - "artifact_status": null - } - }, { "type": "rule_not_applicable", "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-30", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "languages-start-points-f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418", + "flow_name": "spooler-ci", + "trail_name": "92c624eabb024729fb2af6cdbe354db11ee3882f", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "languages-start-points-f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418", + "flow_name": "production-promotion", + "trail_name": "promotion-one-140", "artifact_status": null } } @@ -6881,8 +5671,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "languages-start-points-ci", - "trail_name": "c6db342472238a7852b6ff31b04f9a6a6099f5cf", + "flow_name": "spooler-ci", + "trail_name": "92c624eabb024729fb2af6cdbe354db11ee3882f", "artifact_status": null } }, @@ -6890,23 +5680,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-30", - "artifact_status": null - } - }, - { - "type": "rule_satisfied", - "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "languages-start-points-f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418", - "artifact_status": null - } - }, - { - "type": "rule_satisfied", - "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "languages-start-points-f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418", + "trail_name": "promotion-one-140", "artifact_status": null } } @@ -6926,8 +5700,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "languages-start-points-ci", - "trail_name": "c6db342472238a7852b6ff31b04f9a6a6099f5cf", + "flow_name": "spooler-ci", + "trail_name": "92c624eabb024729fb2af6cdbe354db11ee3882f", "artifact_status": "COMPLIANT" } }, @@ -6935,23 +5709,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-30", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "languages-start-points-f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "languages-start-points-f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418", + "trail_name": "promotion-one-140", "artifact_status": "COMPLIANT" } } @@ -6970,32 +5728,14 @@ kosli get snapshot aws-prod --output=json "for_control": "SDLC-CTRL-0002" } }, - "satisfied": true, - "ignored": false, + "satisfied": null, + "ignored": true, "resolutions": [ - { - "type": "rule_satisfied", - "context": { - "flow_name": "languages-start-points-ci", - "trail_name": "c6db342472238a7852b6ff31b04f9a6a6099f5cf", - "artifact_status": null, - "for_control": "SDLC-CTRL-0002" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promote-all-30", - "artifact_status": null, - "for_control": "SDLC-CTRL-0002" - } - }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "languages-start-points-f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418", + "flow_name": "spooler-ci", + "trail_name": "92c624eabb024729fb2af6cdbe354db11ee3882f", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -7003,8 +5743,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "languages-start-points-f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418", + "flow_name": "production-promotion", + "trail_name": "promotion-one-140", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -7032,8 +5772,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "languages-start-points-ci", - "trail_name": "c6db342472238a7852b6ff31b04f9a6a6099f5cf", + "flow_name": "spooler-ci", + "trail_name": "92c624eabb024729fb2af6cdbe354db11ee3882f", "artifact_status": null } }, @@ -7041,23 +5781,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-30", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "languages-start-points-f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "languages-start-points-f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418", + "trail_name": "promotion-one-140", "artifact_status": null } } @@ -7077,8 +5801,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "languages-start-points-ci", - "trail_name": "c6db342472238a7852b6ff31b04f9a6a6099f5cf", + "flow_name": "spooler-ci", + "trail_name": "92c624eabb024729fb2af6cdbe354db11ee3882f", "artifact_status": "COMPLIANT" } }, @@ -7086,23 +5810,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-30", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "languages-start-points-f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "languages-start-points-f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418", + "trail_name": "promotion-one-140", "artifact_status": "COMPLIANT" } } @@ -7121,14 +5829,14 @@ kosli get snapshot aws-prod --output=json "for_control": "SDLC-CTRL-0022" } }, - "satisfied": true, - "ignored": false, + "satisfied": null, + "ignored": true, "resolutions": [ { "type": "rule_not_applicable", "context": { - "flow_name": "languages-start-points-ci", - "trail_name": "c6db342472238a7852b6ff31b04f9a6a6099f5cf", + "flow_name": "spooler-ci", + "trail_name": "92c624eabb024729fb2af6cdbe354db11ee3882f", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -7137,25 +5845,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-30", - "artifact_status": null, - "for_control": "SDLC-CTRL-0022" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "languages-start-points-f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418", - "artifact_status": null, - "for_control": "SDLC-CTRL-0022" - } - }, - { - "type": "rule_satisfied", - "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "languages-start-points-f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418", + "trail_name": "promotion-one-140", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -7183,8 +5873,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "languages-start-points-ci", - "trail_name": "c6db342472238a7852b6ff31b04f9a6a6099f5cf", + "flow_name": "spooler-ci", + "trail_name": "92c624eabb024729fb2af6cdbe354db11ee3882f", "artifact_status": null } }, @@ -7192,23 +5882,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-30", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "languages-start-points-f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "languages-start-points-f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418", + "trail_name": "promotion-one-140", "artifact_status": null } } @@ -7228,8 +5902,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "languages-start-points-ci", - "trail_name": "c6db342472238a7852b6ff31b04f9a6a6099f5cf", + "flow_name": "spooler-ci", + "trail_name": "92c624eabb024729fb2af6cdbe354db11ee3882f", "artifact_status": "COMPLIANT" } }, @@ -7237,23 +5911,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-30", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "languages-start-points-f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "languages-start-points-f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418", + "trail_name": "promotion-one-140", "artifact_status": "COMPLIANT" } } @@ -7278,8 +5936,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "languages-start-points-ci", - "trail_name": "c6db342472238a7852b6ff31b04f9a6a6099f5cf", + "flow_name": "spooler-ci", + "trail_name": "92c624eabb024729fb2af6cdbe354db11ee3882f", "artifact_status": null } }, @@ -7287,23 +5945,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-30", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "languages-start-points-f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "languages-start-points-f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418", + "trail_name": "promotion-one-140", "artifact_status": null } } @@ -7330,8 +5972,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "languages-start-points-ci", - "trail_name": "c6db342472238a7852b6ff31b04f9a6a6099f5cf", + "flow_name": "spooler-ci", + "trail_name": "92c624eabb024729fb2af6cdbe354db11ee3882f", "artifact_status": null } }, @@ -7339,23 +5981,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-30", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "languages-start-points-f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "languages-start-points-f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418", + "trail_name": "promotion-one-140", "artifact_status": null } } @@ -7381,8 +6007,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "languages-start-points-ci", - "trail_name": "c6db342472238a7852b6ff31b04f9a6a6099f5cf", + "flow_name": "spooler-ci", + "trail_name": "92c624eabb024729fb2af6cdbe354db11ee3882f", "artifact_status": "COMPLIANT" } }, @@ -7390,23 +6016,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-30", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "languages-start-points-f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_satisfied", - "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "languages-start-points-f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418", + "trail_name": "promotion-one-140", "artifact_status": "COMPLIANT" } } @@ -7417,9 +6027,9 @@ kosli get snapshot aws-prod --output=json } ], "reasons_for_incompliance": [], - "fingerprint": "f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418", + "fingerprint": "a20359795934beb03d992ba5a8f8b95ca637e609284e5a84781bdcbb1b861975", "creationTimestamp": [ - 1783618209 + 1785224823 ], "pods": null, "annotation": { @@ -7427,157 +6037,95 @@ kosli get snapshot aws-prod --output=json "was": 1, "now": 1 }, - "flow_name": "languages-start-points-ci", - "git_commit": "c6db342472238a7852b6ff31b04f9a6a6099f5cf", - "commit_url": "https://github.com/cyber-dojo/languages-start-points/commit/c6db342472238a7852b6ff31b04f9a6a6099f5cf", - "html_url": "https://app.kosli.com/cyber-dojo/flows/languages-start-points-ci/artifacts/f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418?artifact_id=ed104a44-8358-4883-beeb-ac3c8bb7", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/languages-start-points-ci", + "flow_name": "spooler-ci", + "git_commit": "92c624eabb024729fb2af6cdbe354db11ee3882f", + "commit_url": "https://github.com/cyber-dojo/spooler/commit/92c624eabb024729fb2af6cdbe354db11ee3882f", + "html_url": "https://app.kosli.com/cyber-dojo/flows/spooler-ci/artifacts/a20359795934beb03d992ba5a8f8b95ca637e609284e5a84781bdcbb1b861975?artifact_id=42025c9c-2608-4ef0-b140-84548282", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/spooler-ci", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/languages-start-points/compare/04e0e14bb8874ab521d35c97d6040133f0d2143a...c6db342472238a7852b6ff31b04f9a6a6099f5cf", - "previous_git_commit": "04e0e14bb8874ab521d35c97d6040133f0d2143a", - "previous_fingerprint": "a89642efb4e686ea38d597e20c2c3f256649d8bca02e2d923767844a6897667c", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/languages-start-points:04e0e14@sha256:a89642efb4e686ea38d597e20c2c3f256649d8bca02e2d923767844a6897667c", + "diff_url": "https://github.com/cyber-dojo/spooler/compare/b592c3af03e9530c1d224686a1745e4a12e1df00...92c624eabb024729fb2af6cdbe354db11ee3882f", + "previous_git_commit": "b592c3af03e9530c1d224686a1745e4a12e1df00", + "previous_fingerprint": "5cd2a591370f45e0156411a484182215a0c403992b9aef2cfaacbeadb3ac2b3e", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/spooler:b592c3a@sha256:5cd2a591370f45e0156411a484182215a0c403992b9aef2cfaacbeadb3ac2b3e", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/languages-start-points/commit/04e0e14bb8874ab521d35c97d6040133f0d2143a", - "previous_trail_name": "04e0e14bb8874ab521d35c97d6040133f0d2143a", - "previous_template_reference_name": "languages-start-points" + "previous_git_commit_url": "https://github.com/cyber-dojo/spooler/commit/b592c3af03e9530c1d224686a1745e4a12e1df00", + "previous_trail_name": "b592c3af03e9530c1d224686a1745e4a12e1df00", + "previous_template_reference_name": "spooler" }, - "commit_lead_time": 81654.0, + "commit_lead_time": 1217.0, "flows": [ { - "flow_name": "languages-start-points-ci", - "trail_name": "c6db342472238a7852b6ff31b04f9a6a6099f5cf", - "template_reference_name": "languages-start-points", - "git_commit": "c6db342472238a7852b6ff31b04f9a6a6099f5cf", - "commit_url": "https://github.com/cyber-dojo/languages-start-points/commit/c6db342472238a7852b6ff31b04f9a6a6099f5cf", + "flow_name": "spooler-ci", + "trail_name": "92c624eabb024729fb2af6cdbe354db11ee3882f", + "template_reference_name": "spooler", + "git_commit": "92c624eabb024729fb2af6cdbe354db11ee3882f", + "commit_url": "https://github.com/cyber-dojo/spooler/commit/92c624eabb024729fb2af6cdbe354db11ee3882f", "git_commit_info": { - "sha1": "c6db342472238a7852b6ff31b04f9a6a6099f5cf", - "message": "Merge pull request #242 from cyber-dojo/declare-sbom-and-provenance-facts-attestations\n\nDeclare sbom and provenance facts+decision attestations in the trail \u2026", + "sha1": "92c624eabb024729fb2af6cdbe354db11ee3882f", + "message": "Merge pull request #11 from cyber-dojo/run-ci-workflow-3\n\nRun ci workflow to check deployment", "author": "Jon Jagger ", "branch": "", - "timestamp": 1783536555.0, - "url": "https://github.com/cyber-dojo/languages-start-points/commit/c6db342472238a7852b6ff31b04f9a6a6099f5cf" + "timestamp": 1785223606.0, + "url": "https://github.com/cyber-dojo/spooler/commit/92c624eabb024729fb2af6cdbe354db11ee3882f" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/languages-start-points-ci/artifacts/f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418?artifact_id=ed104a44-8358-4883-beeb-ac3c8bb7", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/languages-start-points-ci", + "html_url": "https://app.kosli.com/cyber-dojo/flows/spooler-ci/artifacts/a20359795934beb03d992ba5a8f8b95ca637e609284e5a84781bdcbb1b861975?artifact_id=42025c9c-2608-4ef0-b140-84548282", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/spooler-ci", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/languages-start-points/compare/04e0e14bb8874ab521d35c97d6040133f0d2143a...c6db342472238a7852b6ff31b04f9a6a6099f5cf", - "previous_git_commit": "04e0e14bb8874ab521d35c97d6040133f0d2143a", - "previous_fingerprint": "a89642efb4e686ea38d597e20c2c3f256649d8bca02e2d923767844a6897667c", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/languages-start-points:04e0e14@sha256:a89642efb4e686ea38d597e20c2c3f256649d8bca02e2d923767844a6897667c", + "diff_url": "https://github.com/cyber-dojo/spooler/compare/b592c3af03e9530c1d224686a1745e4a12e1df00...92c624eabb024729fb2af6cdbe354db11ee3882f", + "previous_git_commit": "b592c3af03e9530c1d224686a1745e4a12e1df00", + "previous_fingerprint": "5cd2a591370f45e0156411a484182215a0c403992b9aef2cfaacbeadb3ac2b3e", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/spooler:b592c3a@sha256:5cd2a591370f45e0156411a484182215a0c403992b9aef2cfaacbeadb3ac2b3e", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/languages-start-points/commit/04e0e14bb8874ab521d35c97d6040133f0d2143a", - "previous_trail_name": "04e0e14bb8874ab521d35c97d6040133f0d2143a", - "previous_template_reference_name": "languages-start-points" + "previous_git_commit_url": "https://github.com/cyber-dojo/spooler/commit/b592c3af03e9530c1d224686a1745e4a12e1df00", + "previous_trail_name": "b592c3af03e9530c1d224686a1745e4a12e1df00", + "previous_template_reference_name": "spooler" }, - "commit_lead_time": 81654.0, + "commit_lead_time": 1217.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "production-promotion", - "trail_name": "promote-all-30", - "template_reference_name": "languages-start-points", - "git_commit": "d7e31ce0207b766140ae689f38625da4374acf87", - "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/d7e31ce0207b766140ae689f38625da4374acf87", - "git_commit_info": { - "sha1": "d7e31ce0207b766140ae689f38625da4374acf87", - "message": "Merge pull request #15 from cyber-dojo/delete-dead-comments\n\nDelete dead comments", - "author": "Jon Jagger ", - "branch": "main", - "timestamp": 1782907108.0, - "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/d7e31ce0207b766140ae689f38625da4374acf87" - }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418?artifact_id=a9535090-47a2-4ea2-8827-c368a63e", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion", - "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/compare/d7e31ce0207b766140ae689f38625da4374acf87...d7e31ce0207b766140ae689f38625da4374acf87", - "previous_git_commit": "d7e31ce0207b766140ae689f38625da4374acf87", - "previous_fingerprint": "a89642efb4e686ea38d597e20c2c3f256649d8bca02e2d923767844a6897667c", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/languages-start-points:04e0e14@sha256:a89642efb4e686ea38d597e20c2c3f256649d8bca02e2d923767844a6897667c", - "previous_artifact_compliance_state": "COMPLIANT", - "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/d7e31ce0207b766140ae689f38625da4374acf87", - "previous_trail_name": "promote-all-29", - "previous_template_reference_name": "languages-start-points" - }, - "commit_lead_time": 711101.0, - "artifact_compliance_in_flow": true, - "flow_reasons_for_non_compliance": [] - }, - { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "languages-start-points-f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418", - "template_reference_name": "languages-start-points", - "git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "git_commit_info": { - "sha1": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "message": "Add emoji prefixes to workflow names\n\n Match the visual convention already used in the kosli-demo/stochastic-committer\n repo, where the Actions sidebar distinguishes workflow roles at a glance.\n\n The two aws-* files are the top-level entry points, triggered by dispatch and\n schedule, so they get the play emoji. The three reusable workflow_call\n sub-workflows get the package emoji to mark them as callable building blocks.", - "author": "JonJagger ", - "branch": "main", - "timestamp": 1783850974.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7" - }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418?artifact_id=b08301eb-028d-4fa4-8256-d1be128c", - "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/c17bb3ed8862de03c1a491dfe790fd8734fc7071...35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "previous_git_commit": "c17bb3ed8862de03c1a491dfe790fd8734fc7071", - "previous_fingerprint": "5bc686a6794d6a180f3a70f815348627578982e951f16e7462b1b6f533a97f38", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/languages-start-points:bb8a712@sha256:5bc686a6794d6a180f3a70f815348627578982e951f16e7462b1b6f533a97f38", - "previous_artifact_compliance_state": "COMPLIANT", - "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/c17bb3ed8862de03c1a491dfe790fd8734fc7071", - "previous_trail_name": "languages-start-points-5bc686a6794d6a180f3a70f815348627578982e951f16e7462b1b6f533a97f38", - "previous_template_reference_name": "languages-start-points" - }, - "commit_lead_time": -232765.0, - "artifact_compliance_in_flow": true, - "flow_reasons_for_non_compliance": [] - }, - { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "languages-start-points-f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418", - "template_reference_name": "languages-start-points", - "git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", + "trail_name": "promotion-one-140", + "template_reference_name": "spooler", + "git_commit": "81c216a55b2cb1787645e699ceaceca868cad253", + "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253", "git_commit_info": { - "sha1": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "message": "Add emoji prefixes to workflow names\n\n Match the visual convention already used in the kosli-demo/stochastic-committer\n repo, where the Actions sidebar distinguishes workflow roles at a glance.\n\n The two aws-* files are the top-level entry points, triggered by dispatch and\n schedule, so they get the play emoji. The three reusable workflow_call\n sub-workflows get the package emoji to mark them as callable building blocks.", + "sha1": "81c216a55b2cb1787645e699ceaceca868cad253", + "message": "Add spooler service name to promote_one.yml", "author": "JonJagger ", "branch": "main", - "timestamp": 1783850974.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7" + "timestamp": 1785143054.0, + "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418?artifact_id=cd7d673e-4e9a-4775-be60-2bb42b56", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact", + "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/a20359795934beb03d992ba5a8f8b95ca637e609284e5a84781bdcbb1b861975?artifact_id=fcfeda3a-8a41-444b-af27-4d97a807", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/00c479764cb9eca038fdaaaef108672d0bb0ed26...35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "previous_git_commit": "00c479764cb9eca038fdaaaef108672d0bb0ed26", - "previous_fingerprint": "b2f51324efc1528e4dda57d235bdbc68d966e1ea23722d5d296f98eefbfc2676", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/languages-start-points:7e86fed@sha256:b2f51324efc1528e4dda57d235bdbc68d966e1ea23722d5d296f98eefbfc2676", + "diff_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/compare/81c216a55b2cb1787645e699ceaceca868cad253...81c216a55b2cb1787645e699ceaceca868cad253", + "previous_git_commit": "81c216a55b2cb1787645e699ceaceca868cad253", + "previous_fingerprint": "5cd2a591370f45e0156411a484182215a0c403992b9aef2cfaacbeadb3ac2b3e", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/spooler:b592c3a@sha256:5cd2a591370f45e0156411a484182215a0c403992b9aef2cfaacbeadb3ac2b3e", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/00c479764cb9eca038fdaaaef108672d0bb0ed26", - "previous_trail_name": "languages-start-points-b2f51324efc1528e4dda57d235bdbc68d966e1ea23722d5d296f98eefbfc2676", - "previous_template_reference_name": "languages-start-points" + "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253", + "previous_trail_name": "promotion-one-139", + "previous_template_reference_name": "spooler" }, - "commit_lead_time": -232765.0, + "commit_lead_time": 81769.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] } ], "ecs_context": { - "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/e0989e55de644314bd7c0db5f877729c", + "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/ca0246c31f1e4a9d9819a606b9cd6715", "cluster_name": null, "service_name": null } }, { - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/custom-start-points:d37aace@sha256:1ed61f19b66b82f7f122b7b88522360de73abb3536fab5d0f8eadb9b987f9400", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:19f8734@sha256:8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", "compliant": true, "deployments": [], "policy_decisions": [ @@ -7599,8 +6147,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "custom-start-points-ci", - "trail_name": "d37aace7598ee943ba0bd5e51f224335cbdf0a3e", + "flow_name": "runner-ci", + "trail_name": "19f873464a01f28ecd588504ffe03529119d6297", "artifact_status": null } }, @@ -7608,23 +6156,23 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-30", + "trail_name": "promotion-one-137", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "custom-start-points-1ed61f19b66b82f7f122b7b88522360de73abb3536fab5d0f8eadb9b987f9400", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "custom-start-points-1ed61f19b66b82f7f122b7b88522360de73abb3536fab5d0f8eadb9b987f9400", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", "artifact_status": null } } @@ -7644,8 +6192,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "custom-start-points-ci", - "trail_name": "d37aace7598ee943ba0bd5e51f224335cbdf0a3e", + "flow_name": "runner-ci", + "trail_name": "19f873464a01f28ecd588504ffe03529119d6297", "artifact_status": "COMPLIANT" } }, @@ -7653,23 +6201,23 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-30", + "trail_name": "promotion-one-137", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "custom-start-points-1ed61f19b66b82f7f122b7b88522360de73abb3536fab5d0f8eadb9b987f9400", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "custom-start-points-1ed61f19b66b82f7f122b7b88522360de73abb3536fab5d0f8eadb9b987f9400", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", "artifact_status": "COMPLIANT" } } @@ -7694,8 +6242,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "custom-start-points-ci", - "trail_name": "d37aace7598ee943ba0bd5e51f224335cbdf0a3e", + "flow_name": "runner-ci", + "trail_name": "19f873464a01f28ecd588504ffe03529119d6297", "artifact_status": null } }, @@ -7703,23 +6251,23 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-30", + "trail_name": "promotion-one-137", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "custom-start-points-1ed61f19b66b82f7f122b7b88522360de73abb3536fab5d0f8eadb9b987f9400", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "custom-start-points-1ed61f19b66b82f7f122b7b88522360de73abb3536fab5d0f8eadb9b987f9400", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", "artifact_status": null } } @@ -7746,8 +6294,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "custom-start-points-ci", - "trail_name": "d37aace7598ee943ba0bd5e51f224335cbdf0a3e", + "flow_name": "runner-ci", + "trail_name": "19f873464a01f28ecd588504ffe03529119d6297", "artifact_status": null } }, @@ -7755,23 +6303,23 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-30", + "trail_name": "promotion-one-137", "artifact_status": null } }, { "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "custom-start-points-1ed61f19b66b82f7f122b7b88522360de73abb3536fab5d0f8eadb9b987f9400", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", "artifact_status": null } }, { "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "custom-start-points-1ed61f19b66b82f7f122b7b88522360de73abb3536fab5d0f8eadb9b987f9400", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", "artifact_status": null } } @@ -7791,8 +6339,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "custom-start-points-ci", - "trail_name": "d37aace7598ee943ba0bd5e51f224335cbdf0a3e", + "flow_name": "runner-ci", + "trail_name": "19f873464a01f28ecd588504ffe03529119d6297", "artifact_status": "COMPLIANT" } }, @@ -7800,23 +6348,23 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-30", + "trail_name": "promotion-one-137", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "custom-start-points-1ed61f19b66b82f7f122b7b88522360de73abb3536fab5d0f8eadb9b987f9400", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "custom-start-points-1ed61f19b66b82f7f122b7b88522360de73abb3536fab5d0f8eadb9b987f9400", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", "artifact_status": "COMPLIANT" } } @@ -7841,8 +6389,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "custom-start-points-ci", - "trail_name": "d37aace7598ee943ba0bd5e51f224335cbdf0a3e", + "flow_name": "runner-ci", + "trail_name": "19f873464a01f28ecd588504ffe03529119d6297", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -7851,7 +6399,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-30", + "trail_name": "promotion-one-137", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -7859,8 +6407,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "custom-start-points-1ed61f19b66b82f7f122b7b88522360de73abb3536fab5d0f8eadb9b987f9400", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -7868,8 +6416,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "custom-start-points-1ed61f19b66b82f7f122b7b88522360de73abb3536fab5d0f8eadb9b987f9400", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -7897,8 +6445,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "custom-start-points-ci", - "trail_name": "d37aace7598ee943ba0bd5e51f224335cbdf0a3e", + "flow_name": "runner-ci", + "trail_name": "19f873464a01f28ecd588504ffe03529119d6297", "artifact_status": null } }, @@ -7906,23 +6454,23 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-30", + "trail_name": "promotion-one-137", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "custom-start-points-1ed61f19b66b82f7f122b7b88522360de73abb3536fab5d0f8eadb9b987f9400", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "custom-start-points-1ed61f19b66b82f7f122b7b88522360de73abb3536fab5d0f8eadb9b987f9400", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", "artifact_status": null } } @@ -7942,8 +6490,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "custom-start-points-ci", - "trail_name": "d37aace7598ee943ba0bd5e51f224335cbdf0a3e", + "flow_name": "runner-ci", + "trail_name": "19f873464a01f28ecd588504ffe03529119d6297", "artifact_status": "COMPLIANT" } }, @@ -7951,23 +6499,23 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-30", + "trail_name": "promotion-one-137", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "custom-start-points-1ed61f19b66b82f7f122b7b88522360de73abb3536fab5d0f8eadb9b987f9400", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "custom-start-points-1ed61f19b66b82f7f122b7b88522360de73abb3536fab5d0f8eadb9b987f9400", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", "artifact_status": "COMPLIANT" } } @@ -7992,8 +6540,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "custom-start-points-ci", - "trail_name": "d37aace7598ee943ba0bd5e51f224335cbdf0a3e", + "flow_name": "runner-ci", + "trail_name": "19f873464a01f28ecd588504ffe03529119d6297", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -8002,25 +6550,25 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-30", + "trail_name": "promotion-one-137", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } }, { - "type": "rule_not_applicable", + "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "custom-start-points-1ed61f19b66b82f7f122b7b88522360de73abb3536fab5d0f8eadb9b987f9400", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } }, { - "type": "rule_satisfied", + "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "custom-start-points-1ed61f19b66b82f7f122b7b88522360de73abb3536fab5d0f8eadb9b987f9400", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -8048,8 +6596,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "custom-start-points-ci", - "trail_name": "d37aace7598ee943ba0bd5e51f224335cbdf0a3e", + "flow_name": "runner-ci", + "trail_name": "19f873464a01f28ecd588504ffe03529119d6297", "artifact_status": null } }, @@ -8057,23 +6605,23 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-30", + "trail_name": "promotion-one-137", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "custom-start-points-1ed61f19b66b82f7f122b7b88522360de73abb3536fab5d0f8eadb9b987f9400", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "custom-start-points-1ed61f19b66b82f7f122b7b88522360de73abb3536fab5d0f8eadb9b987f9400", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", "artifact_status": null } } @@ -8093,8 +6641,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "custom-start-points-ci", - "trail_name": "d37aace7598ee943ba0bd5e51f224335cbdf0a3e", + "flow_name": "runner-ci", + "trail_name": "19f873464a01f28ecd588504ffe03529119d6297", "artifact_status": "COMPLIANT" } }, @@ -8102,23 +6650,23 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-30", + "trail_name": "promotion-one-137", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "custom-start-points-1ed61f19b66b82f7f122b7b88522360de73abb3536fab5d0f8eadb9b987f9400", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "custom-start-points-1ed61f19b66b82f7f122b7b88522360de73abb3536fab5d0f8eadb9b987f9400", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", "artifact_status": "COMPLIANT" } } @@ -8143,8 +6691,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "custom-start-points-ci", - "trail_name": "d37aace7598ee943ba0bd5e51f224335cbdf0a3e", + "flow_name": "runner-ci", + "trail_name": "19f873464a01f28ecd588504ffe03529119d6297", "artifact_status": null } }, @@ -8152,23 +6700,23 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-30", + "trail_name": "promotion-one-137", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "custom-start-points-1ed61f19b66b82f7f122b7b88522360de73abb3536fab5d0f8eadb9b987f9400", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "custom-start-points-1ed61f19b66b82f7f122b7b88522360de73abb3536fab5d0f8eadb9b987f9400", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", "artifact_status": null } } @@ -8195,8 +6743,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "custom-start-points-ci", - "trail_name": "d37aace7598ee943ba0bd5e51f224335cbdf0a3e", + "flow_name": "runner-ci", + "trail_name": "19f873464a01f28ecd588504ffe03529119d6297", "artifact_status": null } }, @@ -8204,23 +6752,23 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-30", + "trail_name": "promotion-one-137", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "custom-start-points-1ed61f19b66b82f7f122b7b88522360de73abb3536fab5d0f8eadb9b987f9400", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "custom-start-points-1ed61f19b66b82f7f122b7b88522360de73abb3536fab5d0f8eadb9b987f9400", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", "artifact_status": null } } @@ -8246,8 +6794,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "custom-start-points-ci", - "trail_name": "d37aace7598ee943ba0bd5e51f224335cbdf0a3e", + "flow_name": "runner-ci", + "trail_name": "19f873464a01f28ecd588504ffe03529119d6297", "artifact_status": "COMPLIANT" } }, @@ -8255,23 +6803,23 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-30", + "trail_name": "promotion-one-137", "artifact_status": "COMPLIANT" } }, { - "type": "rule_not_applicable", + "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "custom-start-points-1ed61f19b66b82f7f122b7b88522360de73abb3536fab5d0f8eadb9b987f9400", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", "artifact_status": "COMPLIANT" } }, { - "type": "rule_satisfied", + "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "custom-start-points-1ed61f19b66b82f7f122b7b88522360de73abb3536fab5d0f8eadb9b987f9400", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", "artifact_status": "COMPLIANT" } } @@ -8282,100 +6830,102 @@ kosli get snapshot aws-prod --output=json } ], "reasons_for_incompliance": [], - "fingerprint": "1ed61f19b66b82f7f122b7b88522360de73abb3536fab5d0f8eadb9b987f9400", + "fingerprint": "8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", "creationTimestamp": [ - 1783618204 + 1785138608, + 1785138608, + 1785138609 ], "pods": null, "annotation": { "type": "unchanged", - "was": 1, - "now": 1 + "was": 3, + "now": 3 }, - "flow_name": "custom-start-points-ci", - "git_commit": "d37aace7598ee943ba0bd5e51f224335cbdf0a3e", - "commit_url": "https://github.com/cyber-dojo/custom-start-points/commit/d37aace7598ee943ba0bd5e51f224335cbdf0a3e", - "html_url": "https://app.kosli.com/cyber-dojo/flows/custom-start-points-ci/artifacts/1ed61f19b66b82f7f122b7b88522360de73abb3536fab5d0f8eadb9b987f9400?artifact_id=e434f9eb-be9c-4851-ab99-187f1a26", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/custom-start-points-ci", + "flow_name": "runner-ci", + "git_commit": "19f873464a01f28ecd588504ffe03529119d6297", + "commit_url": "https://github.com/cyber-dojo/runner/commit/19f873464a01f28ecd588504ffe03529119d6297", + "html_url": "https://app.kosli.com/cyber-dojo/flows/runner-ci/artifacts/8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67?artifact_id=046fc54c-c295-45b3-bac0-81d40282", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/runner-ci", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/custom-start-points/compare/fc6b09be0518fbf8ab76815cb85b1745631e3659...d37aace7598ee943ba0bd5e51f224335cbdf0a3e", - "previous_git_commit": "fc6b09be0518fbf8ab76815cb85b1745631e3659", - "previous_fingerprint": "1dbac604d2f08378e085032c135be4f4910559a7d7723c26372724d6fb8010d1", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/custom-start-points:fc6b09b@sha256:1dbac604d2f08378e085032c135be4f4910559a7d7723c26372724d6fb8010d1", + "diff_url": "https://github.com/cyber-dojo/runner/compare/6dac3ae5d85ee8e6040d8badd5c2eede44bc8a6b...19f873464a01f28ecd588504ffe03529119d6297", + "previous_git_commit": "6dac3ae5d85ee8e6040d8badd5c2eede44bc8a6b", + "previous_fingerprint": "d7c56f15abf30e1424444c9de9beb4884f72dd400183da58fa9d8d1092309e7b", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:6dac3ae@sha256:d7c56f15abf30e1424444c9de9beb4884f72dd400183da58fa9d8d1092309e7b", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/custom-start-points/commit/fc6b09be0518fbf8ab76815cb85b1745631e3659", - "previous_trail_name": "fc6b09be0518fbf8ab76815cb85b1745631e3659", - "previous_template_reference_name": "custom-start-points" + "previous_git_commit_url": "https://github.com/cyber-dojo/runner/commit/6dac3ae5d85ee8e6040d8badd5c2eede44bc8a6b", + "previous_trail_name": "6dac3ae5d85ee8e6040d8badd5c2eede44bc8a6b", + "previous_template_reference_name": "runner" }, - "commit_lead_time": 4272.0, + "commit_lead_time": 85840.0, "flows": [ { - "flow_name": "custom-start-points-ci", - "trail_name": "d37aace7598ee943ba0bd5e51f224335cbdf0a3e", - "template_reference_name": "custom-start-points", - "git_commit": "d37aace7598ee943ba0bd5e51f224335cbdf0a3e", - "commit_url": "https://github.com/cyber-dojo/custom-start-points/commit/d37aace7598ee943ba0bd5e51f224335cbdf0a3e", + "flow_name": "runner-ci", + "trail_name": "19f873464a01f28ecd588504ffe03529119d6297", + "template_reference_name": "runner", + "git_commit": "19f873464a01f28ecd588504ffe03529119d6297", + "commit_url": "https://github.com/cyber-dojo/runner/commit/19f873464a01f28ecd588504ffe03529119d6297", "git_commit_info": { - "sha1": "d37aace7598ee943ba0bd5e51f224335cbdf0a3e", - "message": "Merge pull request #139 from cyber-dojo/run-workflow-171\n\nRun main workflow to check updates to secure-build sub workflow", + "sha1": "19f873464a01f28ecd588504ffe03529119d6297", + "message": "Merge pull request #275 from cyber-dojo/extend-snyk-ignore-expiry-to-2026-08-26\n\nExtend .snyk ignore expiry to 2026-08-26", "author": "Jon Jagger ", "branch": "", - "timestamp": 1783613932.0, - "url": "https://github.com/cyber-dojo/custom-start-points/commit/d37aace7598ee943ba0bd5e51f224335cbdf0a3e" + "timestamp": 1785052768.0, + "url": "https://github.com/cyber-dojo/runner/commit/19f873464a01f28ecd588504ffe03529119d6297" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/custom-start-points-ci/artifacts/1ed61f19b66b82f7f122b7b88522360de73abb3536fab5d0f8eadb9b987f9400?artifact_id=e434f9eb-be9c-4851-ab99-187f1a26", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/custom-start-points-ci", + "html_url": "https://app.kosli.com/cyber-dojo/flows/runner-ci/artifacts/8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67?artifact_id=046fc54c-c295-45b3-bac0-81d40282", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/runner-ci", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/custom-start-points/compare/fc6b09be0518fbf8ab76815cb85b1745631e3659...d37aace7598ee943ba0bd5e51f224335cbdf0a3e", - "previous_git_commit": "fc6b09be0518fbf8ab76815cb85b1745631e3659", - "previous_fingerprint": "1dbac604d2f08378e085032c135be4f4910559a7d7723c26372724d6fb8010d1", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/custom-start-points:fc6b09b@sha256:1dbac604d2f08378e085032c135be4f4910559a7d7723c26372724d6fb8010d1", + "diff_url": "https://github.com/cyber-dojo/runner/compare/6dac3ae5d85ee8e6040d8badd5c2eede44bc8a6b...19f873464a01f28ecd588504ffe03529119d6297", + "previous_git_commit": "6dac3ae5d85ee8e6040d8badd5c2eede44bc8a6b", + "previous_fingerprint": "d7c56f15abf30e1424444c9de9beb4884f72dd400183da58fa9d8d1092309e7b", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:6dac3ae@sha256:d7c56f15abf30e1424444c9de9beb4884f72dd400183da58fa9d8d1092309e7b", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/custom-start-points/commit/fc6b09be0518fbf8ab76815cb85b1745631e3659", - "previous_trail_name": "fc6b09be0518fbf8ab76815cb85b1745631e3659", - "previous_template_reference_name": "custom-start-points" + "previous_git_commit_url": "https://github.com/cyber-dojo/runner/commit/6dac3ae5d85ee8e6040d8badd5c2eede44bc8a6b", + "previous_trail_name": "6dac3ae5d85ee8e6040d8badd5c2eede44bc8a6b", + "previous_template_reference_name": "runner" }, - "commit_lead_time": 4272.0, + "commit_lead_time": 85840.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "production-promotion", - "trail_name": "promote-all-30", - "template_reference_name": "custom-start-points", - "git_commit": "d7e31ce0207b766140ae689f38625da4374acf87", - "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/d7e31ce0207b766140ae689f38625da4374acf87", + "trail_name": "promotion-one-137", + "template_reference_name": "runner", + "git_commit": "76325d840dc66e1c84743725e17de05a16616419", + "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/76325d840dc66e1c84743725e17de05a16616419", "git_commit_info": { - "sha1": "d7e31ce0207b766140ae689f38625da4374acf87", - "message": "Merge pull request #15 from cyber-dojo/delete-dead-comments\n\nDelete dead comments", - "author": "Jon Jagger ", + "sha1": "76325d840dc66e1c84743725e17de05a16616419", + "message": "Add emoji prefix to workflow names", + "author": "JonJagger ", "branch": "main", - "timestamp": 1782907108.0, - "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/d7e31ce0207b766140ae689f38625da4374acf87" + "timestamp": 1783852701.0, + "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/76325d840dc66e1c84743725e17de05a16616419" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/1ed61f19b66b82f7f122b7b88522360de73abb3536fab5d0f8eadb9b987f9400?artifact_id=f63f0700-2e41-44a7-ab00-31da5193", + "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67?artifact_id=cceaf70c-da3e-4637-a622-d7091e3c", "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/compare/d7e31ce0207b766140ae689f38625da4374acf87...d7e31ce0207b766140ae689f38625da4374acf87", - "previous_git_commit": "d7e31ce0207b766140ae689f38625da4374acf87", - "previous_fingerprint": "1dbac604d2f08378e085032c135be4f4910559a7d7723c26372724d6fb8010d1", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/custom-start-points:fc6b09b@sha256:1dbac604d2f08378e085032c135be4f4910559a7d7723c26372724d6fb8010d1", + "diff_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/compare/76325d840dc66e1c84743725e17de05a16616419...76325d840dc66e1c84743725e17de05a16616419", + "previous_git_commit": "76325d840dc66e1c84743725e17de05a16616419", + "previous_fingerprint": "d7c56f15abf30e1424444c9de9beb4884f72dd400183da58fa9d8d1092309e7b", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:6dac3ae@sha256:d7c56f15abf30e1424444c9de9beb4884f72dd400183da58fa9d8d1092309e7b", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/d7e31ce0207b766140ae689f38625da4374acf87", - "previous_trail_name": "promote-all-29", - "previous_template_reference_name": "custom-start-points" + "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/76325d840dc66e1c84743725e17de05a16616419", + "previous_trail_name": "promotion-one-136", + "previous_template_reference_name": "runner" }, - "commit_lead_time": 711096.0, + "commit_lead_time": 1285907.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "custom-start-points-1ed61f19b66b82f7f122b7b88522360de73abb3536fab5d0f8eadb9b987f9400", - "template_reference_name": "custom-start-points", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "template_reference_name": "runner", "git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", "git_commit_info": { @@ -8386,27 +6936,27 @@ kosli get snapshot aws-prod --output=json "timestamp": 1783850974.0, "url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/1ed61f19b66b82f7f122b7b88522360de73abb3536fab5d0f8eadb9b987f9400?artifact_id=947aceb0-d3d2-4dc6-857f-48489d35", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact", + "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67?artifact_id=eb363a63-17e1-4ec2-8c13-7cd210d5", + "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/c17bb3ed8862de03c1a491dfe790fd8734fc7071...35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "previous_git_commit": "c17bb3ed8862de03c1a491dfe790fd8734fc7071", - "previous_fingerprint": "311da8e95c74716bf3953de67a6dc3fe514c88d805a08a55ab17c677d75cf797", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/custom-start-points:514f79a@sha256:311da8e95c74716bf3953de67a6dc3fe514c88d805a08a55ab17c677d75cf797", + "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/00c479764cb9eca038fdaaaef108672d0bb0ed26...35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", + "previous_git_commit": "00c479764cb9eca038fdaaaef108672d0bb0ed26", + "previous_fingerprint": "414a07a72fbd04444ba4d2e19b6c7102095d5aeb469211f99166538626c08d06", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:9cc2a80@sha256:414a07a72fbd04444ba4d2e19b6c7102095d5aeb469211f99166538626c08d06", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/c17bb3ed8862de03c1a491dfe790fd8734fc7071", - "previous_trail_name": "custom-start-points-311da8e95c74716bf3953de67a6dc3fe514c88d805a08a55ab17c677d75cf797", - "previous_template_reference_name": "custom-start-points" + "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/00c479764cb9eca038fdaaaef108672d0bb0ed26", + "previous_trail_name": "runner-414a07a72fbd04444ba4d2e19b6c7102095d5aeb469211f99166538626c08d06", + "previous_template_reference_name": "runner" }, - "commit_lead_time": -232770.0, + "commit_lead_time": 1287634.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "custom-start-points-1ed61f19b66b82f7f122b7b88522360de73abb3536fab5d0f8eadb9b987f9400", - "template_reference_name": "custom-start-points", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "template_reference_name": "runner", "git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", "git_commit_info": { @@ -8417,32 +6967,32 @@ kosli get snapshot aws-prod --output=json "timestamp": 1783850974.0, "url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/1ed61f19b66b82f7f122b7b88522360de73abb3536fab5d0f8eadb9b987f9400?artifact_id=d8e2a3cf-2aff-4fa0-903b-fee0b73b", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact", + "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67?artifact_id=e2c38ae9-2d66-41b8-a06f-14c1b5c3", + "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/00c479764cb9eca038fdaaaef108672d0bb0ed26...35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "previous_git_commit": "00c479764cb9eca038fdaaaef108672d0bb0ed26", - "previous_fingerprint": "b4448ca68a0926e4a7a800f5b101b63e9c2f38e1caaebb7e929d992763570928", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/custom-start-points:6b5c159@sha256:b4448ca68a0926e4a7a800f5b101b63e9c2f38e1caaebb7e929d992763570928", + "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7...35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", + "previous_git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", + "previous_fingerprint": "d7c56f15abf30e1424444c9de9beb4884f72dd400183da58fa9d8d1092309e7b", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:6dac3ae@sha256:d7c56f15abf30e1424444c9de9beb4884f72dd400183da58fa9d8d1092309e7b", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/00c479764cb9eca038fdaaaef108672d0bb0ed26", - "previous_trail_name": "custom-start-points-b4448ca68a0926e4a7a800f5b101b63e9c2f38e1caaebb7e929d992763570928", - "previous_template_reference_name": "custom-start-points" + "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", + "previous_trail_name": "runner-d7c56f15abf30e1424444c9de9beb4884f72dd400183da58fa9d8d1092309e7b", + "previous_template_reference_name": "runner" }, - "commit_lead_time": -232770.0, + "commit_lead_time": 1287634.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] } ], "ecs_context": { - "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/5333f9f522e74ab797a3893465e348d9", + "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/ffc316ec94724a67a7775accf9b9232a", "cluster_name": null, "service_name": null } }, { - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:804f248@sha256:a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/creator:76672a8@sha256:aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", "compliant": true, "deployments": [], "policy_decisions": [ @@ -8464,8 +7014,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "exercises-start-points-ci", - "trail_name": "804f248d832dc34e564507b009c246dfb4f0c657", + "flow_name": "creator-ci", + "trail_name": "76672a8b247049c3ce8c3140852e17be8f47d995", "artifact_status": null } }, @@ -8473,23 +7023,23 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-30", + "trail_name": "promotion-one-132", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "exercises-start-points-a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "creator-aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "exercises-start-points-a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "creator-aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", "artifact_status": null } } @@ -8509,8 +7059,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "exercises-start-points-ci", - "trail_name": "804f248d832dc34e564507b009c246dfb4f0c657", + "flow_name": "creator-ci", + "trail_name": "76672a8b247049c3ce8c3140852e17be8f47d995", "artifact_status": "COMPLIANT" } }, @@ -8518,23 +7068,23 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-30", + "trail_name": "promotion-one-132", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "exercises-start-points-a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "creator-aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "exercises-start-points-a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "creator-aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", "artifact_status": "COMPLIANT" } } @@ -8559,8 +7109,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "exercises-start-points-ci", - "trail_name": "804f248d832dc34e564507b009c246dfb4f0c657", + "flow_name": "creator-ci", + "trail_name": "76672a8b247049c3ce8c3140852e17be8f47d995", "artifact_status": null } }, @@ -8568,23 +7118,23 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-30", + "trail_name": "promotion-one-132", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "exercises-start-points-a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "creator-aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "exercises-start-points-a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "creator-aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", "artifact_status": null } } @@ -8611,8 +7161,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "exercises-start-points-ci", - "trail_name": "804f248d832dc34e564507b009c246dfb4f0c657", + "flow_name": "creator-ci", + "trail_name": "76672a8b247049c3ce8c3140852e17be8f47d995", "artifact_status": null } }, @@ -8620,23 +7170,23 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-30", + "trail_name": "promotion-one-132", "artifact_status": null } }, { "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "exercises-start-points-a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "creator-aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", "artifact_status": null } }, { "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "exercises-start-points-a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "creator-aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", "artifact_status": null } } @@ -8656,8 +7206,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "exercises-start-points-ci", - "trail_name": "804f248d832dc34e564507b009c246dfb4f0c657", + "flow_name": "creator-ci", + "trail_name": "76672a8b247049c3ce8c3140852e17be8f47d995", "artifact_status": "COMPLIANT" } }, @@ -8665,23 +7215,23 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-30", + "trail_name": "promotion-one-132", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "exercises-start-points-a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "creator-aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "exercises-start-points-a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "creator-aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", "artifact_status": "COMPLIANT" } } @@ -8706,8 +7256,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "exercises-start-points-ci", - "trail_name": "804f248d832dc34e564507b009c246dfb4f0c657", + "flow_name": "creator-ci", + "trail_name": "76672a8b247049c3ce8c3140852e17be8f47d995", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -8716,7 +7266,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-30", + "trail_name": "promotion-one-132", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -8724,8 +7274,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "exercises-start-points-a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "creator-aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -8733,8 +7283,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "exercises-start-points-a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "creator-aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -8762,8 +7312,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "exercises-start-points-ci", - "trail_name": "804f248d832dc34e564507b009c246dfb4f0c657", + "flow_name": "creator-ci", + "trail_name": "76672a8b247049c3ce8c3140852e17be8f47d995", "artifact_status": null } }, @@ -8771,23 +7321,23 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-30", + "trail_name": "promotion-one-132", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "exercises-start-points-a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "creator-aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "exercises-start-points-a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "creator-aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", "artifact_status": null } } @@ -8807,8 +7357,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "exercises-start-points-ci", - "trail_name": "804f248d832dc34e564507b009c246dfb4f0c657", + "flow_name": "creator-ci", + "trail_name": "76672a8b247049c3ce8c3140852e17be8f47d995", "artifact_status": "COMPLIANT" } }, @@ -8816,23 +7366,23 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-30", + "trail_name": "promotion-one-132", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "exercises-start-points-a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "creator-aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "exercises-start-points-a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "creator-aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", "artifact_status": "COMPLIANT" } } @@ -8857,8 +7407,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "exercises-start-points-ci", - "trail_name": "804f248d832dc34e564507b009c246dfb4f0c657", + "flow_name": "creator-ci", + "trail_name": "76672a8b247049c3ce8c3140852e17be8f47d995", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -8867,25 +7417,25 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-30", + "trail_name": "promotion-one-132", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } }, { - "type": "rule_not_applicable", + "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "exercises-start-points-a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "creator-aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } }, { - "type": "rule_satisfied", + "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "exercises-start-points-a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "creator-aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -8913,8 +7463,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "exercises-start-points-ci", - "trail_name": "804f248d832dc34e564507b009c246dfb4f0c657", + "flow_name": "creator-ci", + "trail_name": "76672a8b247049c3ce8c3140852e17be8f47d995", "artifact_status": null } }, @@ -8922,23 +7472,23 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-30", + "trail_name": "promotion-one-132", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "exercises-start-points-a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "creator-aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "exercises-start-points-a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "creator-aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", "artifact_status": null } } @@ -8958,8 +7508,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "exercises-start-points-ci", - "trail_name": "804f248d832dc34e564507b009c246dfb4f0c657", + "flow_name": "creator-ci", + "trail_name": "76672a8b247049c3ce8c3140852e17be8f47d995", "artifact_status": "COMPLIANT" } }, @@ -8967,23 +7517,23 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-30", + "trail_name": "promotion-one-132", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "exercises-start-points-a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "creator-aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "exercises-start-points-a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "creator-aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", "artifact_status": "COMPLIANT" } } @@ -9008,8 +7558,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "exercises-start-points-ci", - "trail_name": "804f248d832dc34e564507b009c246dfb4f0c657", + "flow_name": "creator-ci", + "trail_name": "76672a8b247049c3ce8c3140852e17be8f47d995", "artifact_status": null } }, @@ -9017,23 +7567,23 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-30", + "trail_name": "promotion-one-132", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "exercises-start-points-a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "creator-aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "exercises-start-points-a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "creator-aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", "artifact_status": null } } @@ -9060,8 +7610,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "exercises-start-points-ci", - "trail_name": "804f248d832dc34e564507b009c246dfb4f0c657", + "flow_name": "creator-ci", + "trail_name": "76672a8b247049c3ce8c3140852e17be8f47d995", "artifact_status": null } }, @@ -9069,23 +7619,23 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-30", + "trail_name": "promotion-one-132", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "exercises-start-points-a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "creator-aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "exercises-start-points-a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "creator-aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", "artifact_status": null } } @@ -9111,8 +7661,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "exercises-start-points-ci", - "trail_name": "804f248d832dc34e564507b009c246dfb4f0c657", + "flow_name": "creator-ci", + "trail_name": "76672a8b247049c3ce8c3140852e17be8f47d995", "artifact_status": "COMPLIANT" } }, @@ -9120,23 +7670,23 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-30", + "trail_name": "promotion-one-132", "artifact_status": "COMPLIANT" } }, { - "type": "rule_not_applicable", + "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "exercises-start-points-a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "creator-aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", "artifact_status": "COMPLIANT" } }, { - "type": "rule_satisfied", + "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "exercises-start-points-a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "creator-aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", "artifact_status": "COMPLIANT" } } @@ -9147,9 +7697,9 @@ kosli get snapshot aws-prod --output=json } ], "reasons_for_incompliance": [], - "fingerprint": "a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", + "fingerprint": "aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", "creationTimestamp": [ - 1783618126 + 1784357070 ], "pods": null, "annotation": { @@ -9157,90 +7707,90 @@ kosli get snapshot aws-prod --output=json "was": 1, "now": 1 }, - "flow_name": "exercises-start-points-ci", - "git_commit": "804f248d832dc34e564507b009c246dfb4f0c657", - "commit_url": "https://github.com/cyber-dojo/exercises-start-points/commit/804f248d832dc34e564507b009c246dfb4f0c657", - "html_url": "https://app.kosli.com/cyber-dojo/flows/exercises-start-points-ci/artifacts/a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613?artifact_id=0e55e1be-fab1-475b-8aaa-b45ca6e2", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/exercises-start-points-ci", + "flow_name": "creator-ci", + "git_commit": "76672a8b247049c3ce8c3140852e17be8f47d995", + "commit_url": "https://github.com/cyber-dojo/creator/commit/76672a8b247049c3ce8c3140852e17be8f47d995", + "html_url": "https://app.kosli.com/cyber-dojo/flows/creator-ci/artifacts/aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6?artifact_id=3cb9c270-d59b-4b28-b16a-b23d89d2", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/creator-ci", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/exercises-start-points/compare/80b913e9f88902428a3567f75165d8b9d73b561a...804f248d832dc34e564507b009c246dfb4f0c657", - "previous_git_commit": "80b913e9f88902428a3567f75165d8b9d73b561a", - "previous_fingerprint": "748c413e0f6e45c3652fa4ee47ff2d7371da0bade41c027711296216b53db39b", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:80b913e@sha256:748c413e0f6e45c3652fa4ee47ff2d7371da0bade41c027711296216b53db39b", + "diff_url": "https://github.com/cyber-dojo/creator/compare/7e00b70f8911edf1c480ba9a8b9c2a280260cb08...76672a8b247049c3ce8c3140852e17be8f47d995", + "previous_git_commit": "7e00b70f8911edf1c480ba9a8b9c2a280260cb08", + "previous_fingerprint": "0744a611723cb72a3f24b33c2d56fcbb1bfbedf0637a962f259fada8e3dbbe50", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/creator:7e00b70@sha256:0744a611723cb72a3f24b33c2d56fcbb1bfbedf0637a962f259fada8e3dbbe50", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/exercises-start-points/commit/80b913e9f88902428a3567f75165d8b9d73b561a", - "previous_trail_name": "80b913e9f88902428a3567f75165d8b9d73b561a", - "previous_template_reference_name": "exercises-start-points" + "previous_git_commit_url": "https://github.com/cyber-dojo/creator/commit/7e00b70f8911edf1c480ba9a8b9c2a280260cb08", + "previous_trail_name": "7e00b70f8911edf1c480ba9a8b9c2a280260cb08", + "previous_template_reference_name": "creator" }, - "commit_lead_time": 81944.0, + "commit_lead_time": 45219.0, "flows": [ { - "flow_name": "exercises-start-points-ci", - "trail_name": "804f248d832dc34e564507b009c246dfb4f0c657", - "template_reference_name": "exercises-start-points", - "git_commit": "804f248d832dc34e564507b009c246dfb4f0c657", - "commit_url": "https://github.com/cyber-dojo/exercises-start-points/commit/804f248d832dc34e564507b009c246dfb4f0c657", + "flow_name": "creator-ci", + "trail_name": "76672a8b247049c3ce8c3140852e17be8f47d995", + "template_reference_name": "creator", + "git_commit": "76672a8b247049c3ce8c3140852e17be8f47d995", + "commit_url": "https://github.com/cyber-dojo/creator/commit/76672a8b247049c3ce8c3140852e17be8f47d995", "git_commit_info": { - "sha1": "804f248d832dc34e564507b009c246dfb4f0c657", - "message": "Merge pull request #145 from cyber-dojo/declare-sbom-and-provenance-facts-attestations\n\nDeclare sbom and provenance facts+decision attestations in the trail \u2026", - "author": "Jon Jagger ", + "sha1": "76672a8b247049c3ce8c3140852e17be8f47d995", + "message": "Read deployed image for drift-detection plan (#43)\n\nThe Detect Drift workflow runs a terraform plan with no build behind it,\nbut the ECS deployment requires a container image (TF_VAR_TAGGED_IMAGE).\nThe variable has no default and the task definition tracks it directly,\nso a drift plan either fails with \"no value for required variable\" or, if\ngiven a placeholder, reports permanent false drift on the task definition.\n\nBefore planning, each environment reads the image that is currently\ndeployed straight from its ECS task definition and passes it to the\nreusable drift workflow as TF_VAR_TAGGED_IMAGE. The image lookup is done\nexplicitly in this repository rather than in the shared kosli-dev/tf\nworkflow, so Kosli's own drift detection is unaffected.\n\nThe logic lives in a local reusable workflow, detect-drift-env.yml, which\nis parameterized by AWS account and environment. detect-drift.yml holds\nonly the schedule and a beta/prod matrix that calls it, so there is no\nduplication between environments and adding another is a two-line change.", + "author": "Graham Savage ", "branch": "", - "timestamp": 1783536182.0, - "url": "https://github.com/cyber-dojo/exercises-start-points/commit/804f248d832dc34e564507b009c246dfb4f0c657" + "timestamp": 1784311851.0, + "url": "https://github.com/cyber-dojo/creator/commit/76672a8b247049c3ce8c3140852e17be8f47d995" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/exercises-start-points-ci/artifacts/a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613?artifact_id=0e55e1be-fab1-475b-8aaa-b45ca6e2", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/exercises-start-points-ci", + "html_url": "https://app.kosli.com/cyber-dojo/flows/creator-ci/artifacts/aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6?artifact_id=3cb9c270-d59b-4b28-b16a-b23d89d2", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/creator-ci", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/exercises-start-points/compare/80b913e9f88902428a3567f75165d8b9d73b561a...804f248d832dc34e564507b009c246dfb4f0c657", - "previous_git_commit": "80b913e9f88902428a3567f75165d8b9d73b561a", - "previous_fingerprint": "748c413e0f6e45c3652fa4ee47ff2d7371da0bade41c027711296216b53db39b", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:80b913e@sha256:748c413e0f6e45c3652fa4ee47ff2d7371da0bade41c027711296216b53db39b", + "diff_url": "https://github.com/cyber-dojo/creator/compare/7e00b70f8911edf1c480ba9a8b9c2a280260cb08...76672a8b247049c3ce8c3140852e17be8f47d995", + "previous_git_commit": "7e00b70f8911edf1c480ba9a8b9c2a280260cb08", + "previous_fingerprint": "0744a611723cb72a3f24b33c2d56fcbb1bfbedf0637a962f259fada8e3dbbe50", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/creator:7e00b70@sha256:0744a611723cb72a3f24b33c2d56fcbb1bfbedf0637a962f259fada8e3dbbe50", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/exercises-start-points/commit/80b913e9f88902428a3567f75165d8b9d73b561a", - "previous_trail_name": "80b913e9f88902428a3567f75165d8b9d73b561a", - "previous_template_reference_name": "exercises-start-points" + "previous_git_commit_url": "https://github.com/cyber-dojo/creator/commit/7e00b70f8911edf1c480ba9a8b9c2a280260cb08", + "previous_trail_name": "7e00b70f8911edf1c480ba9a8b9c2a280260cb08", + "previous_template_reference_name": "creator" }, - "commit_lead_time": 81944.0, + "commit_lead_time": 45219.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "production-promotion", - "trail_name": "promote-all-30", - "template_reference_name": "exercises-start-points", - "git_commit": "d7e31ce0207b766140ae689f38625da4374acf87", - "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/d7e31ce0207b766140ae689f38625da4374acf87", + "trail_name": "promotion-one-132", + "template_reference_name": "creator", + "git_commit": "76325d840dc66e1c84743725e17de05a16616419", + "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/76325d840dc66e1c84743725e17de05a16616419", "git_commit_info": { - "sha1": "d7e31ce0207b766140ae689f38625da4374acf87", - "message": "Merge pull request #15 from cyber-dojo/delete-dead-comments\n\nDelete dead comments", - "author": "Jon Jagger ", + "sha1": "76325d840dc66e1c84743725e17de05a16616419", + "message": "Add emoji prefix to workflow names", + "author": "JonJagger ", "branch": "main", - "timestamp": 1782907108.0, - "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/d7e31ce0207b766140ae689f38625da4374acf87" + "timestamp": 1783852701.0, + "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/76325d840dc66e1c84743725e17de05a16616419" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613?artifact_id=729eea0c-e715-4d68-8a0a-b25a7202", + "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6?artifact_id=ebfdade0-510f-44f8-9b9f-2d4c7d0d", "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/compare/d7e31ce0207b766140ae689f38625da4374acf87...d7e31ce0207b766140ae689f38625da4374acf87", + "diff_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/compare/d7e31ce0207b766140ae689f38625da4374acf87...76325d840dc66e1c84743725e17de05a16616419", "previous_git_commit": "d7e31ce0207b766140ae689f38625da4374acf87", - "previous_fingerprint": "748c413e0f6e45c3652fa4ee47ff2d7371da0bade41c027711296216b53db39b", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:80b913e@sha256:748c413e0f6e45c3652fa4ee47ff2d7371da0bade41c027711296216b53db39b", + "previous_fingerprint": "0744a611723cb72a3f24b33c2d56fcbb1bfbedf0637a962f259fada8e3dbbe50", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/creator:7e00b70@sha256:0744a611723cb72a3f24b33c2d56fcbb1bfbedf0637a962f259fada8e3dbbe50", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/d7e31ce0207b766140ae689f38625da4374acf87", - "previous_trail_name": "promote-all-29", - "previous_template_reference_name": "exercises-start-points" + "previous_trail_name": "promote-all-30", + "previous_template_reference_name": "creator" }, - "commit_lead_time": 711018.0, + "commit_lead_time": 504369.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "exercises-start-points-a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", - "template_reference_name": "exercises-start-points", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "creator-aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", + "template_reference_name": "creator", "git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", "git_commit_info": { @@ -9251,27 +7801,27 @@ kosli get snapshot aws-prod --output=json "timestamp": 1783850974.0, "url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613?artifact_id=d2f09480-2fe9-4995-9f0b-5b24b3b8", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact", + "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6?artifact_id=fb202b8b-8f7b-4759-b011-db542952", + "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/c17bb3ed8862de03c1a491dfe790fd8734fc7071...35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "previous_git_commit": "c17bb3ed8862de03c1a491dfe790fd8734fc7071", - "previous_fingerprint": "fe536dd19b159d9cb43aaa09236d26c916906bd915c648991aa824fb2f69af58", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:75485ee@sha256:fe536dd19b159d9cb43aaa09236d26c916906bd915c648991aa824fb2f69af58", + "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/7172cc22125f480a9f12127edb481a4d84aabea3...35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", + "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/c17bb3ed8862de03c1a491dfe790fd8734fc7071", - "previous_trail_name": "exercises-start-points-fe536dd19b159d9cb43aaa09236d26c916906bd915c648991aa824fb2f69af58", - "previous_template_reference_name": "exercises-start-points" + "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": -232848.0, + "commit_lead_time": 506096.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "exercises-start-points-a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", - "template_reference_name": "exercises-start-points", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "creator-aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", + "template_reference_name": "creator", "git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", "git_commit_info": { @@ -9282,32 +7832,32 @@ kosli get snapshot aws-prod --output=json "timestamp": 1783850974.0, "url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613?artifact_id=d14c9c84-17ce-4c97-a9ac-93e3666d", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact", + "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6?artifact_id=1a969b49-ddc3-4eda-becf-1fb6c837", + "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/00c479764cb9eca038fdaaaef108672d0bb0ed26...35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "previous_git_commit": "00c479764cb9eca038fdaaaef108672d0bb0ed26", - "previous_fingerprint": "f00aa234bebafb1980dced29626750f84a6fe6c9c50f6a90167e4d8e6511a8a8", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:b8e5cbf@sha256:f00aa234bebafb1980dced29626750f84a6fe6c9c50f6a90167e4d8e6511a8a8", + "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/a517304f4e9013e2e9ea67e90c7342f7e56653f0...35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", + "previous_git_commit": "a517304f4e9013e2e9ea67e90c7342f7e56653f0", + "previous_fingerprint": "0744a611723cb72a3f24b33c2d56fcbb1bfbedf0637a962f259fada8e3dbbe50", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/creator:7e00b70@sha256:0744a611723cb72a3f24b33c2d56fcbb1bfbedf0637a962f259fada8e3dbbe50", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/00c479764cb9eca038fdaaaef108672d0bb0ed26", - "previous_trail_name": "exercises-start-points-f00aa234bebafb1980dced29626750f84a6fe6c9c50f6a90167e4d8e6511a8a8", - "previous_template_reference_name": "exercises-start-points" + "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/a517304f4e9013e2e9ea67e90c7342f7e56653f0", + "previous_trail_name": "creator-0744a611723cb72a3f24b33c2d56fcbb1bfbedf0637a962f259fada8e3dbbe50", + "previous_template_reference_name": "creator" }, - "commit_lead_time": -232848.0, + "commit_lead_time": 506096.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] } ], "ecs_context": { - "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/c2a918fa550f40d6a4f2b35f023d40f1", + "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/2730a627a7a3472b810cacada52f3935", "cluster_name": null, "service_name": null } }, { - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/spooler:b592c3a@sha256:5cd2a591370f45e0156411a484182215a0c403992b9aef2cfaacbeadb3ac2b3e", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:aaf06ae@sha256:30658abf51aa2b17e4edfa8636cc14aa9725432c2665ed3fcb2ee99ecae03889", "compliant": true, "deployments": [], "policy_decisions": [ @@ -9329,8 +7879,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "spooler-ci", - "trail_name": "b592c3af03e9530c1d224686a1745e4a12e1df00", + "flow_name": "web-ci", + "trail_name": "aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f", "artifact_status": null } }, @@ -9338,7 +7888,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-139", + "trail_name": "promotion-one-142", "artifact_status": null } } @@ -9358,8 +7908,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "spooler-ci", - "trail_name": "b592c3af03e9530c1d224686a1745e4a12e1df00", + "flow_name": "web-ci", + "trail_name": "aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f", "artifact_status": "COMPLIANT" } }, @@ -9367,7 +7917,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-139", + "trail_name": "promotion-one-142", "artifact_status": "COMPLIANT" } } @@ -9386,14 +7936,14 @@ kosli get snapshot aws-prod --output=json "for_control": null } }, - "satisfied": null, - "ignored": true, + "satisfied": true, + "ignored": false, "resolutions": [ { - "type": "rule_not_applicable", + "type": "rule_satisfied", "context": { - "flow_name": "spooler-ci", - "trail_name": "b592c3af03e9530c1d224686a1745e4a12e1df00", + "flow_name": "web-ci", + "trail_name": "aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f", "artifact_status": null } }, @@ -9401,7 +7951,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-139", + "trail_name": "promotion-one-142", "artifact_status": null } } @@ -9428,8 +7978,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "spooler-ci", - "trail_name": "b592c3af03e9530c1d224686a1745e4a12e1df00", + "flow_name": "web-ci", + "trail_name": "aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f", "artifact_status": null } }, @@ -9437,7 +7987,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-139", + "trail_name": "promotion-one-142", "artifact_status": null } } @@ -9457,8 +8007,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "spooler-ci", - "trail_name": "b592c3af03e9530c1d224686a1745e4a12e1df00", + "flow_name": "web-ci", + "trail_name": "aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f", "artifact_status": "COMPLIANT" } }, @@ -9466,7 +8016,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-139", + "trail_name": "promotion-one-142", "artifact_status": "COMPLIANT" } } @@ -9485,14 +8035,14 @@ kosli get snapshot aws-prod --output=json "for_control": "SDLC-CTRL-0002" } }, - "satisfied": null, - "ignored": true, + "satisfied": true, + "ignored": false, "resolutions": [ { - "type": "rule_not_applicable", + "type": "rule_satisfied", "context": { - "flow_name": "spooler-ci", - "trail_name": "b592c3af03e9530c1d224686a1745e4a12e1df00", + "flow_name": "web-ci", + "trail_name": "aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -9501,7 +8051,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-139", + "trail_name": "promotion-one-142", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -9529,8 +8079,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "spooler-ci", - "trail_name": "b592c3af03e9530c1d224686a1745e4a12e1df00", + "flow_name": "web-ci", + "trail_name": "aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f", "artifact_status": null } }, @@ -9538,7 +8088,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-139", + "trail_name": "promotion-one-142", "artifact_status": null } } @@ -9558,8 +8108,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "spooler-ci", - "trail_name": "b592c3af03e9530c1d224686a1745e4a12e1df00", + "flow_name": "web-ci", + "trail_name": "aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f", "artifact_status": "COMPLIANT" } }, @@ -9567,7 +8117,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-139", + "trail_name": "promotion-one-142", "artifact_status": "COMPLIANT" } } @@ -9592,8 +8142,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "spooler-ci", - "trail_name": "b592c3af03e9530c1d224686a1745e4a12e1df00", + "flow_name": "web-ci", + "trail_name": "aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -9602,7 +8152,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-139", + "trail_name": "promotion-one-142", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -9630,8 +8180,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "spooler-ci", - "trail_name": "b592c3af03e9530c1d224686a1745e4a12e1df00", + "flow_name": "web-ci", + "trail_name": "aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f", "artifact_status": null } }, @@ -9639,7 +8189,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-139", + "trail_name": "promotion-one-142", "artifact_status": null } } @@ -9659,8 +8209,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "spooler-ci", - "trail_name": "b592c3af03e9530c1d224686a1745e4a12e1df00", + "flow_name": "web-ci", + "trail_name": "aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f", "artifact_status": "COMPLIANT" } }, @@ -9668,7 +8218,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-139", + "trail_name": "promotion-one-142", "artifact_status": "COMPLIANT" } } @@ -9693,8 +8243,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "spooler-ci", - "trail_name": "b592c3af03e9530c1d224686a1745e4a12e1df00", + "flow_name": "web-ci", + "trail_name": "aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f", "artifact_status": null } }, @@ -9702,7 +8252,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-139", + "trail_name": "promotion-one-142", "artifact_status": null } } @@ -9729,8 +8279,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "spooler-ci", - "trail_name": "b592c3af03e9530c1d224686a1745e4a12e1df00", + "flow_name": "web-ci", + "trail_name": "aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f", "artifact_status": null } }, @@ -9738,7 +8288,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-139", + "trail_name": "promotion-one-142", "artifact_status": null } } @@ -9764,8 +8314,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "spooler-ci", - "trail_name": "b592c3af03e9530c1d224686a1745e4a12e1df00", + "flow_name": "web-ci", + "trail_name": "aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f", "artifact_status": "COMPLIANT" } }, @@ -9773,7 +8323,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-139", + "trail_name": "promotion-one-142", "artifact_status": "COMPLIANT" } } @@ -9784,69 +8334,71 @@ kosli get snapshot aws-prod --output=json } ], "reasons_for_incompliance": [], - "fingerprint": "5cd2a591370f45e0156411a484182215a0c403992b9aef2cfaacbeadb3ac2b3e", + "fingerprint": "30658abf51aa2b17e4edfa8636cc14aa9725432c2665ed3fcb2ee99ecae03889", "creationTimestamp": [ - 1785215284 + 1785240630, + 1785240630, + 1785240631 ], "pods": null, "annotation": { "type": "exited", - "was": 1, + "was": 3, "now": 0 }, - "flow_name": "spooler-ci", - "git_commit": "b592c3af03e9530c1d224686a1745e4a12e1df00", - "commit_url": "https://github.com/cyber-dojo/spooler/commit/b592c3af03e9530c1d224686a1745e4a12e1df00", - "html_url": "https://app.kosli.com/cyber-dojo/flows/spooler-ci/artifacts/5cd2a591370f45e0156411a484182215a0c403992b9aef2cfaacbeadb3ac2b3e?artifact_id=60af6a2b-6351-40e9-8c44-6f73abc4", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/spooler-ci", + "flow_name": "web-ci", + "git_commit": "aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f", + "commit_url": "https://github.com/cyber-dojo/web/commit/aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f", + "html_url": "https://app.kosli.com/cyber-dojo/flows/web-ci/artifacts/30658abf51aa2b17e4edfa8636cc14aa9725432c2665ed3fcb2ee99ecae03889?artifact_id=494b49a5-f26f-4602-8fce-8903d99d", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/web-ci", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/spooler/compare/5451dae79163e5e06397eb2fe8792eceb8a17de5...b592c3af03e9530c1d224686a1745e4a12e1df00", - "previous_git_commit": "5451dae79163e5e06397eb2fe8792eceb8a17de5", - "previous_fingerprint": "1b070a24ceafec25a9ed62bca61ac668b7e77381e1d4d8b755d22ceacc400c9f", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/spooler:5451dae@sha256:1b070a24ceafec25a9ed62bca61ac668b7e77381e1d4d8b755d22ceacc400c9f", + "diff_url": "https://github.com/cyber-dojo/web/compare/3f0b9975f96b7f4e4aae0b4409cebda3209be164...aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f", + "previous_git_commit": "3f0b9975f96b7f4e4aae0b4409cebda3209be164", + "previous_fingerprint": "0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:3f0b997@sha256:0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/spooler/commit/5451dae79163e5e06397eb2fe8792eceb8a17de5", - "previous_trail_name": "5451dae79163e5e06397eb2fe8792eceb8a17de5", - "previous_template_reference_name": "spooler" + "previous_git_commit_url": "https://github.com/cyber-dojo/web/commit/3f0b9975f96b7f4e4aae0b4409cebda3209be164", + "previous_trail_name": "3f0b9975f96b7f4e4aae0b4409cebda3209be164", + "previous_template_reference_name": "web" }, - "commit_lead_time": 815.0, + "commit_lead_time": 2124.0, "flows": [ { - "flow_name": "spooler-ci", - "trail_name": "b592c3af03e9530c1d224686a1745e4a12e1df00", - "template_reference_name": "spooler", - "git_commit": "b592c3af03e9530c1d224686a1745e4a12e1df00", - "commit_url": "https://github.com/cyber-dojo/spooler/commit/b592c3af03e9530c1d224686a1745e4a12e1df00", + "flow_name": "web-ci", + "trail_name": "aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f", + "template_reference_name": "web", + "git_commit": "aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f", + "commit_url": "https://github.com/cyber-dojo/web/commit/aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f", "git_commit_info": { - "sha1": "b592c3af03e9530c1d224686a1745e4a12e1df00", - "message": "Merge pull request #10 from cyber-dojo/run-ci-workflow-2\n\nRun workflow to check deploying", + "sha1": "aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f", + "message": "Spike async writes via spooler (#388)\n\n* Route web's nine event writes through the new spooler\n\n Spike of ADR step B1 (docs/adr-async-writes-via-spooler.md): make web's\n writes to saver asynchronous by inserting the spooler as a durable,\n ordered store-and-forward buffer in front of saver. The traffic-light is\n a runner fact and must not be gated on a saver git commit, so the write\n path moves off the browser's critical path.\n\n web now POSTs the nine event writes (kata_file_create .. kata_checked_out)\n to the spooler, which acks immediately and drains to saver asynchronously\n in tab_seq order. Reads and non-event writes (kata_create, forks,\n kata_option_set, group ops, diff) stay direct web->saver.\n\n - SpoolerService: a new write client copying the SaverService construction\n pattern, targeting CYBER_DOJO_SPOOLER_HOSTNAME/PORT.\n - Externals#spooler + CYBER_DOJO_SPOOLER_CLASS in up.sh, mirroring saver.\n - app.rb: the nine callers now use spooler; the run_tests rescue catches\n SpoolerService::Error so the light still shows if the spooler is down.\n - SaverService: the nine event writes removed (they now live in the\n spooler); it keeps reads and non-event writes.\n - docker-compose: a spooler service (own /sqlite volume, forwards to\n saver), web depends_on it, and containers_up starts it.\n\n* Make inter-test-event writes fire-and-forget\n\n Now the spooler orders writes by (tab_id, tab_seq) (ADR B3), the browser no\n longer needs to serialise ITEs or wait on their network round-trip - that\n serialisation only existed to dodge saver's CAS-loser drop before the spooler\n existed. So the inter-test events (file create/delete/rename/edit) become\n fire-and-forget: dispatch and let the UI continue immediately.\n\n - _file_inter_test_events.erb: fireAndForgetITE dispatches and returns; removed\n waitForITE and the _interTestEventInProgress serialisation.\n - Dropped the now-pointless callback parameter from the four ITE senders; their\n callers do their local editor update inline after the call (order preserved -\n the POST body is serialised before the editor mutates).\n - app.rb: the four ITE controllers reply 204 No Content (the browser\n fire-and-forgets the response), and the dead @saved flag / saved: response\n field are removed (the browser never read them).\n\n Also (ancillary):\n - show_events.sh: read events via saver's kata_events API through nginx, as the\n browser does, not the working-tree events.json - saver commits via\n git update-ref with no checkout, so that file is stale (reads-via-git).\n - echo_env_vars.sh: pin saver SHA/TAG for the local demo loop.\n\n* Make web tests drain-aware for the async spooler write path\n\n Writes now go to the spooler and drain to saver asynchronously, so tests\n that write-then-read committed state must wait for the drain, and the\n client index is gone from the write path. Also fixes a real tab_seq bug\n surfaced while doing this.\n\n Production (app.rb):\n - tab_seq is coerced to an integer (it arrives as a form-field string).\n The spooler orders its buffer by tab_seq numerically, so a string breaks\n ordering ('10' < '2'); blank stays nil, not 0 (''.to_i), which is a real\n seq value.\n\n Tests:\n - TestExternalHelpers: seed helpers (kata_ran_tests/kata_revert write via\n the spooler, then wait_until_drained polls saver until the write's light\n lands) + wait_until_committed; run.sh/run_browser.sh export\n CYBER_DOJO_SPOOLER_CLASS.\n - app_controllers: post_json/post_run_tests stamp a caller tab_seq and wait\n for it to drain (run_tests waits for the light's colour, so the\n file_edit+light double-commit is not read half-done).\n - Move the nine write smoke tests to a new spooler_service_test (drain-aware)\n and the forwards_* tests to spooler_service_forwards_*; saver_service_test\n keeps reads and non-event writes.\n - Remove the dead client index: no index in write bodies, no @index tracking\n (forks keep index; checkout keeps src_index).\n - Delete/ retarget removed-behavior tests: drop mobbing_self_lag (index\n self-lag), and the run_tests raises-stub is now a SpoolerService stub.\n - ITE controllers reply 204, so their tests assert successful?, not ok?.\n\n* Drive web's v2-kata demo through the new saver write protocol\n\n The saver's kata-write endpoints now key each write on (laptop_id,\n tab_seq) and no longer take the old index arg. Bring web's demo seeding\n in line so it keeps working once the saver drops the laptop_id/tab_seq\n defaults:\n\n - bin/create_v2_kata.rb, source/script/create_v2_kata.rb: model each\n avatar as one Writer (a fixed laptop_id plus a monotonic tab_seq) and\n send that key on every write, dropping the removed index. The monotonic\n tab_seq is required because an avatar fires many same-colour runs that\n would otherwise collide on the saver's (laptop_id, tab_seq, colour)\n dedup key. demo.sh seeds live, so there is no fixture to rebake.\n - bin/echo_env_vars.sh: pin the saver and spooler images that implement\n the async-write-via-spooler path this demo now exercises.\n\n Co-Authored-By: Claude Opus 4.8 (1M context) \n\n* Adopt spooler write-loss fix, restore coverage, add /status endpoint\n\n D1EQJ6 (kata_checked_out smoke test) failed intermittently because the\n spooler's drainer ran several shard threads that shared one memoized\n Net::HTTP connection. Net::HTTP is not safe for concurrent requests on one\n instance, so two shards forwarding at once crossed their requests and\n responses: a kata_checked_out POST came back tagged kata_ran_tests, the\n write was lost, and wait_until_drained timed out. Fixed in spooler ebc7b92\n (each drainer shard owns its own connection); bump the pinned spooler\n SHA/tag to adopt it.\n\n That investigation also showed app/services had dropped below 100%:\n SpoolerService#ready? and SpoolerService::Error were never exercised. Add a\n ready? smoke test and a not-JSON-maps-to-Error test (mirroring SaverService)\n to restore full coverage.\n\n Separately, add GET /status so the readiness of each dependency (runner,\n saver, spooler) is visible from outside the process, giving their ready?\n client methods a real caller. It probes each dependency (rescuing the\n raising clients so one down service reports false rather than failing the\n whole endpoint), returns 200 when all are ready and 503 otherwise, with a\n body naming each. It is deliberately kept off the load balancer probe:\n coupling that to shared backends would let one downstream blip deschedule\n every web task at once and stall deploys. RunnerStub gains the ready? it was\n missing so it faithfully stands in for RunnerService.\n\n* Explain why /ready is not dependency-coupled\n\n Record the reasoning at the point of temptation: a future reader will\n naturally wonder why /ready is a static true rather than runner.ready? &&\n saver.ready? && spooler.ready?. The comment explains that /ready is the load\n balancer's probe, that the three are shared backends, and that coupling\n readiness to them turns one dependency blip into a fleet-wide 503 and blocks\n deploys. Dependency health belongs in graceful per-action errors and /status,\n not here.\n\n* Remove wip entries in echo_env_vars.sh", "author": "Jon Jagger ", "branch": "", - "timestamp": 1785214469.0, - "url": "https://github.com/cyber-dojo/spooler/commit/b592c3af03e9530c1d224686a1745e4a12e1df00" + "timestamp": 1785238506.0, + "url": "https://github.com/cyber-dojo/web/commit/aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/spooler-ci/artifacts/5cd2a591370f45e0156411a484182215a0c403992b9aef2cfaacbeadb3ac2b3e?artifact_id=60af6a2b-6351-40e9-8c44-6f73abc4", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/spooler-ci", + "html_url": "https://app.kosli.com/cyber-dojo/flows/web-ci/artifacts/30658abf51aa2b17e4edfa8636cc14aa9725432c2665ed3fcb2ee99ecae03889?artifact_id=494b49a5-f26f-4602-8fce-8903d99d", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/web-ci", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/spooler/compare/5451dae79163e5e06397eb2fe8792eceb8a17de5...b592c3af03e9530c1d224686a1745e4a12e1df00", - "previous_git_commit": "5451dae79163e5e06397eb2fe8792eceb8a17de5", - "previous_fingerprint": "1b070a24ceafec25a9ed62bca61ac668b7e77381e1d4d8b755d22ceacc400c9f", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/spooler:5451dae@sha256:1b070a24ceafec25a9ed62bca61ac668b7e77381e1d4d8b755d22ceacc400c9f", + "diff_url": "https://github.com/cyber-dojo/web/compare/3f0b9975f96b7f4e4aae0b4409cebda3209be164...aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f", + "previous_git_commit": "3f0b9975f96b7f4e4aae0b4409cebda3209be164", + "previous_fingerprint": "0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:3f0b997@sha256:0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/spooler/commit/5451dae79163e5e06397eb2fe8792eceb8a17de5", - "previous_trail_name": "5451dae79163e5e06397eb2fe8792eceb8a17de5", - "previous_template_reference_name": "spooler" + "previous_git_commit_url": "https://github.com/cyber-dojo/web/commit/3f0b9975f96b7f4e4aae0b4409cebda3209be164", + "previous_trail_name": "3f0b9975f96b7f4e4aae0b4409cebda3209be164", + "previous_template_reference_name": "web" }, - "commit_lead_time": 815.0, + "commit_lead_time": 2124.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "production-promotion", - "trail_name": "promotion-one-139", - "template_reference_name": "spooler", + "trail_name": "promotion-one-142", + "template_reference_name": "web", "git_commit": "81c216a55b2cb1787645e699ceaceca868cad253", "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253", "git_commit_info": { @@ -9857,26 +8409,26 @@ kosli get snapshot aws-prod --output=json "timestamp": 1785143054.0, "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/5cd2a591370f45e0156411a484182215a0c403992b9aef2cfaacbeadb3ac2b3e?artifact_id=42aefac1-812f-4b32-8884-ad83ef06", + "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/30658abf51aa2b17e4edfa8636cc14aa9725432c2665ed3fcb2ee99ecae03889?artifact_id=49687d93-45f9-492f-a122-a91b7959", "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/compare/81c216a55b2cb1787645e699ceaceca868cad253...81c216a55b2cb1787645e699ceaceca868cad253", - "previous_git_commit": "81c216a55b2cb1787645e699ceaceca868cad253", - "previous_fingerprint": "1b070a24ceafec25a9ed62bca61ac668b7e77381e1d4d8b755d22ceacc400c9f", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/spooler:5451dae@sha256:1b070a24ceafec25a9ed62bca61ac668b7e77381e1d4d8b755d22ceacc400c9f", + "diff_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/compare/76325d840dc66e1c84743725e17de05a16616419...81c216a55b2cb1787645e699ceaceca868cad253", + "previous_git_commit": "76325d840dc66e1c84743725e17de05a16616419", + "previous_fingerprint": "0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:3f0b997@sha256:0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253", - "previous_trail_name": "promotion-one-138", - "previous_template_reference_name": "spooler" + "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/76325d840dc66e1c84743725e17de05a16616419", + "previous_trail_name": "promotion-one-130", + "previous_template_reference_name": "web" }, - "commit_lead_time": 72230.0, + "commit_lead_time": 97576.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] } ], "ecs_context": { - "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/105a0fd5f88143ecbcd6f0391e709420", + "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/7290e7992d1d42b9a23b641bf02cea9a", "cluster_name": null, "service_name": null } diff --git a/client_reference/kosli_list_environments.md b/client_reference/kosli_list_environments.md index 19a6820..1b0f51b 100644 --- a/client_reference/kosli_list_environments.md +++ b/client_reference/kosli_list_environments.md @@ -63,9 +63,9 @@ kosli list environments --output=json "name": "aws-beta", "type": "ECS", "description": "The ECS cluster for staging cyber-dojo", - "last_modified_at": 1785233604.0426843, - "last_reported_at": 1785233604.0426843, - "last_changed_at": 1785229643.9691582, + "last_modified_at": 1785257304.0827382, + "last_reported_at": 1785257304.0827382, + "last_changed_at": 1785243263.9648561, "state": true, "include_scaling": false, "tags": { @@ -84,9 +84,9 @@ kosli list environments --output=json "name": "aws-beta-terraform-drift-detection", "type": "server", "description": "Detection of drift of the Infrastructure-as-code components of aws-beta", - "last_modified_at": 1785233408.8483882, - "last_reported_at": 1785233408.8483882, - "last_changed_at": 1785232808.6739333, + "last_modified_at": 1785257109.0435762, + "last_reported_at": 1785257109.0435762, + "last_changed_at": 1785243308.9429753, "state": true, "include_scaling": false, "tags": {}, @@ -100,9 +100,9 @@ kosli list environments --output=json "name": "aws-prod", "type": "ECS", "description": "The ECS cluster for production cyber-dojo", - "last_modified_at": 1785233578.5153272, - "last_reported_at": 1785233578.5153272, - "last_changed_at": 1785224878.4373872, + "last_modified_at": 1785257278.4557931, + "last_reported_at": 1785257278.4557931, + "last_changed_at": 1785243478.598589, "state": true, "include_scaling": false, "tags": { @@ -122,10 +122,10 @@ kosli list environments --output=json "name": "aws-prod-terraform-drift-detection", "type": "server", "description": "Detection of drift of the Infrastructure-as-code components of aws-prod", - "last_modified_at": 1785233612.3601446, - "last_reported_at": 1785233612.3601446, - "last_changed_at": 1785230312.044038, - "state": false, + "last_modified_at": 1785257011.940645, + "last_reported_at": 1785257011.940645, + "last_changed_at": 1785243812.1531923, + "state": true, "include_scaling": false, "tags": {}, "policies": [ @@ -138,10 +138,10 @@ kosli list environments --output=json "name": "production", "type": "logical", "description": "Production environments for cyber-dojo", - "last_modified_at": 1785230312.044038, + "last_modified_at": 1785243812.1531923, "last_reported_at": null, - "last_changed_at": 1785230312.044038, - "state": false, + "last_changed_at": 1785243812.1531923, + "state": true, "include_scaling": false, "tags": {}, "policies": null, @@ -155,9 +155,9 @@ kosli list environments --output=json "name": "staging", "type": "logical", "description": "Staging environments for cyber-dojo", - "last_modified_at": 1785232808.6739333, + "last_modified_at": 1785243308.9429753, "last_reported_at": null, - "last_changed_at": 1785232808.6739333, + "last_changed_at": 1785243308.9429753, "state": true, "include_scaling": false, "tags": {}, diff --git a/client_reference/kosli_list_flows.md b/client_reference/kosli_list_flows.md index 3026ebb..600e386 100644 --- a/client_reference/kosli_list_flows.md +++ b/client_reference/kosli_list_flows.md @@ -477,7 +477,7 @@ kosli list flows --output=json "visibility": "private", "org": "cyber-dojo", "template": "version: 1\ntrail:\n attestations:\n - name: terraform-plan\n type: generic\n - name: terraform-apply\n type: generic\n artifacts:\n - name: terraform-state\n - name: drift-plan\n", - "repo_url": "https://github.com/cyber-dojo/spooler", + "repo_url": "https://github.com/cyber-dojo/web", "tags": {} }, { diff --git a/client_reference/kosli_list_snapshots.md b/client_reference/kosli_list_snapshots.md index e486019..4c69788 100644 --- a/client_reference/kosli_list_snapshots.md +++ b/client_reference/kosli_list_snapshots.md @@ -64,109 +64,109 @@ kosli list snapshots aws-prod --output=json ```json [ { - "index": 5116, - "from": 1785224878.4373872, + "index": 5126, + "from": 1785243478.598589, "to": 0.0, "compliant": true, - "duration": 8750.01878452301 + "duration": 13834.632454156876 }, { - "index": 5115, - "from": 1785215338.442852, - "to": 1785224878.4373872, + "index": 5125, + "from": 1785243418.5364106, + "to": 1785243478.598589, "compliant": true, - "duration": 9539.994535207748 + "duration": 60.06217837333679 }, { - "index": 5114, - "from": 1785214438.378998, - "to": 1785215338.442852, + "index": 5124, + "from": 1785241678.414592, + "to": 1785243418.5364106, "compliant": true, - "duration": 900.0638539791107 + "duration": 1740.1218185424805 }, { - "index": 5113, - "from": 1785214378.5198987, - "to": 1785214438.378998, + "index": 5123, + "from": 1785241618.6033545, + "to": 1785241678.414592, "compliant": true, - "duration": 59.85909938812256 + "duration": 59.81123757362366 }, { - "index": 5112, - "from": 1785214318.4842489, - "to": 1785214378.5198987, + "index": 5122, + "from": 1785241318.4716694, + "to": 1785241618.6033545, "compliant": true, - "duration": 60.03564977645874 + "duration": 300.13168501853943 }, { - "index": 5111, - "from": 1785214258.6438735, - "to": 1785214318.4842489, + "index": 5121, + "from": 1785241258.6193466, + "to": 1785241318.4716694, "compliant": true, - "duration": 59.8403754234314 + "duration": 59.852322816848755 }, { - "index": 5110, - "from": 1785214198.674762, - "to": 1785214258.6438735, + "index": 5120, + "from": 1785240718.5257201, + "to": 1785241258.6193466, "compliant": true, - "duration": 59.96911144256592 + "duration": 540.093626499176 }, { - "index": 5109, - "from": 1785214139.0560102, - "to": 1785214198.674762, + "index": 5119, + "from": 1785240658.6597328, + "to": 1785240718.5257201, "compliant": true, - "duration": 59.618751764297485 + "duration": 59.8659873008728 }, { - "index": 5108, - "from": 1785165658.472069, - "to": 1785214139.0560102, + "index": 5118, + "from": 1785236638.5786521, + "to": 1785240658.6597328, "compliant": true, - "duration": 48480.58394122124 + "duration": 4020.081080675125 }, { - "index": 5107, - "from": 1785138658.57735, - "to": 1785165658.472069, + "index": 5117, + "from": 1785236578.4785342, + "to": 1785236638.5786521, "compliant": true, - "duration": 26999.89471912384 + "duration": 60.100117921829224 }, { - "index": 5106, - "from": 1785131338.4268208, - "to": 1785138658.57735, + "index": 5116, + "from": 1785224878.4373872, + "to": 1785236578.4785342, "compliant": true, - "duration": 7320.1505291461945 + "duration": 11700.041146993637 }, { - "index": 5105, - "from": 1785131278.4151351, - "to": 1785131338.4268208, + "index": 5115, + "from": 1785215338.442852, + "to": 1785224878.4373872, "compliant": true, - "duration": 60.011685609817505 + "duration": 9539.994535207748 }, { - "index": 5104, - "from": 1785130438.502333, - "to": 1785131278.4151351, + "index": 5114, + "from": 1785214438.378998, + "to": 1785215338.442852, "compliant": true, - "duration": 839.9128022193909 + "duration": 900.0638539791107 }, { - "index": 5103, - "from": 1785130318.4207122, - "to": 1785130438.502333, + "index": 5113, + "from": 1785214378.5198987, + "to": 1785214438.378998, "compliant": true, - "duration": 120.08162069320679 + "duration": 59.85909938812256 }, { - "index": 5102, - "from": 1785042598.396489, - "to": 1785130318.4207122, + "index": 5112, + "from": 1785214318.4842489, + "to": 1785214378.5198987, "compliant": true, - "duration": 87720.02422332764 + "duration": 60.03564977645874 } ] ``` diff --git a/client_reference/kosli_log_environment.md b/client_reference/kosli_log_environment.md index 421d6ff..4c488c8 100644 --- a/client_reference/kosli_log_environment.md +++ b/client_reference/kosli_log_environment.md @@ -72,16 +72,16 @@ kosli log environment aws-prod --output=json [ { "environment_name": "aws-prod", - "snapshot_index": 5116, - "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/spooler:92c624e@sha256:a20359795934beb03d992ba5a8f8b95ca637e609284e5a84781bdcbb1b861975", - "sha256": "a20359795934beb03d992ba5a8f8b95ca637e609284e5a84781bdcbb1b861975", - "description": "1 instance started running (from 0 to 1)", - "reported_at": 1785224878.4373872, - "pipeline": "spooler-ci", + "snapshot_index": 5126, + "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:aaf06ae@sha256:30658abf51aa2b17e4edfa8636cc14aa9725432c2665ed3fcb2ee99ecae03889", + "sha256": "30658abf51aa2b17e4edfa8636cc14aa9725432c2665ed3fcb2ee99ecae03889", + "description": "3 instances stopped running (from 3 to 0)", + "reported_at": 1785243478.598589, + "pipeline": "web-ci", "deployments": [], "flows": [ { - "flow_name": "spooler-ci", + "flow_name": "web-ci", "deployments": null }, { @@ -91,31 +91,31 @@ kosli log environment aws-prod --output=json ], "artifact_compliance": true, "snapshot_compliance": true, - "type": "started-compliant", - "code_diff": "https://github.com/cyber-dojo/spooler/compare/b592c3af03e9530c1d224686a1745e4a12e1df00...92c624eabb024729fb2af6cdbe354db11ee3882f", + "type": "exited", + "code_diff": "https://github.com/cyber-dojo/web/compare/3f0b9975f96b7f4e4aae0b4409cebda3209be164...aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f", "_links": { "artifact": { - "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/spooler-ci/fingerprint/a20359795934beb03d992ba5a8f8b95ca637e609284e5a84781bdcbb1b861975", - "html": "https://app.kosli.com/cyber-dojo/flows/spooler-ci/artifacts/a20359795934beb03d992ba5a8f8b95ca637e609284e5a84781bdcbb1b861975?artifact_id=42025c9c-2608-4ef0-b140-84548282" + "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/web-ci/fingerprint/30658abf51aa2b17e4edfa8636cc14aa9725432c2665ed3fcb2ee99ecae03889", + "html": "https://app.kosli.com/cyber-dojo/flows/web-ci/artifacts/30658abf51aa2b17e4edfa8636cc14aa9725432c2665ed3fcb2ee99ecae03889?artifact_id=494b49a5-f26f-4602-8fce-8903d99d" }, "snapshot": { - "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5116", - "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5116" + "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5126", + "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5126" } } }, { "environment_name": "aws-prod", - "snapshot_index": 5116, - "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/spooler:b592c3a@sha256:5cd2a591370f45e0156411a484182215a0c403992b9aef2cfaacbeadb3ac2b3e", - "sha256": "5cd2a591370f45e0156411a484182215a0c403992b9aef2cfaacbeadb3ac2b3e", - "description": "1 instance stopped running (from 1 to 0)", - "reported_at": 1785224878.4373872, - "pipeline": "spooler-ci", + "snapshot_index": 5125, + "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:2779354@sha256:af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", + "sha256": "af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", + "description": "3 instances started running (from 0 to 3)", + "reported_at": 1785243418.5364106, + "pipeline": "web-ci", "deployments": [], "flows": [ { - "flow_name": "spooler-ci", + "flow_name": "web-ci", "deployments": null }, { @@ -125,149 +125,149 @@ kosli log environment aws-prod --output=json ], "artifact_compliance": true, "snapshot_compliance": true, - "type": "exited", - "code_diff": "https://github.com/cyber-dojo/spooler/compare/5451dae79163e5e06397eb2fe8792eceb8a17de5...b592c3af03e9530c1d224686a1745e4a12e1df00", + "type": "started-compliant", + "code_diff": "https://github.com/cyber-dojo/web/compare/aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f...2779354a4fda0eeb90fd43f32211836d99f6bde1", "_links": { "artifact": { - "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/spooler-ci/fingerprint/5cd2a591370f45e0156411a484182215a0c403992b9aef2cfaacbeadb3ac2b3e", - "html": "https://app.kosli.com/cyber-dojo/flows/spooler-ci/artifacts/5cd2a591370f45e0156411a484182215a0c403992b9aef2cfaacbeadb3ac2b3e?artifact_id=60af6a2b-6351-40e9-8c44-6f73abc4" + "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/web-ci/fingerprint/af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", + "html": "https://app.kosli.com/cyber-dojo/flows/web-ci/artifacts/af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e?artifact_id=dc864446-cc9f-43e9-bf70-db7dc03b" }, "snapshot": { - "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5116", - "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5116" + "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5125", + "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5125" } } }, { "environment_name": "aws-prod", - "snapshot_index": 5115, - "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/spooler:b592c3a@sha256:5cd2a591370f45e0156411a484182215a0c403992b9aef2cfaacbeadb3ac2b3e", - "sha256": "5cd2a591370f45e0156411a484182215a0c403992b9aef2cfaacbeadb3ac2b3e", - "description": "1 instance started running (from 0 to 1)", - "reported_at": 1785215338.442852, - "pipeline": "spooler-ci", + "snapshot_index": 5124, + "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/differ:335ddfa@sha256:c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f", + "sha256": "c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f", + "description": "1 instance stopped running (from 1 to 0)", + "reported_at": 1785241678.414592, + "pipeline": "differ-ci", "deployments": [], "flows": [ { - "flow_name": "spooler-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 } ], "artifact_compliance": true, "snapshot_compliance": true, - "type": "started-compliant", - "code_diff": "https://github.com/cyber-dojo/spooler/compare/5451dae79163e5e06397eb2fe8792eceb8a17de5...b592c3af03e9530c1d224686a1745e4a12e1df00", + "type": "exited", + "code_diff": "https://github.com/cyber-dojo/differ/compare/8beff9901ac67acb7afcab3408106208571a1124...335ddfa139708c37908dd594a0502bc6d88f8615", "_links": { "artifact": { - "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/spooler-ci/fingerprint/5cd2a591370f45e0156411a484182215a0c403992b9aef2cfaacbeadb3ac2b3e", - "html": "https://app.kosli.com/cyber-dojo/flows/spooler-ci/artifacts/5cd2a591370f45e0156411a484182215a0c403992b9aef2cfaacbeadb3ac2b3e?artifact_id=60af6a2b-6351-40e9-8c44-6f73abc4" + "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/differ-ci/fingerprint/c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f", + "html": "https://app.kosli.com/cyber-dojo/flows/differ-ci/artifacts/c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f?artifact_id=5f3d2a2e-acdb-4414-a1e7-ebca7c32" }, "snapshot": { - "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5115", - "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5115" + "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5124", + "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5124" } } }, { "environment_name": "aws-prod", - "snapshot_index": 5115, - "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/spooler:5451dae@sha256:1b070a24ceafec25a9ed62bca61ac668b7e77381e1d4d8b755d22ceacc400c9f", - "sha256": "1b070a24ceafec25a9ed62bca61ac668b7e77381e1d4d8b755d22ceacc400c9f", - "description": "1 instance stopped running (from 1 to 0)", - "reported_at": 1785215338.442852, - "pipeline": "spooler-ci", + "snapshot_index": 5123, + "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/differ:1b7ea87@sha256:c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", + "sha256": "c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", + "description": "1 instance started running (from 0 to 1)", + "reported_at": 1785241618.6033545, + "pipeline": "differ-ci", "deployments": [], "flows": [ { - "flow_name": "spooler-ci", - "deployments": null - }, - { - "flow_name": "production-promotion", + "flow_name": "differ-ci", "deployments": null }, { - "flow_name": "snyk-aws-prod-per-artifact", + "flow_name": "snyk-aws-beta-per-artifact", "deployments": null }, { - "flow_name": "snyk-aws-beta-per-artifact", + "flow_name": "production-promotion", "deployments": null } ], "artifact_compliance": true, "snapshot_compliance": true, - "type": "exited", - "code_diff": null, + "type": "started-compliant", + "code_diff": "https://github.com/cyber-dojo/differ/compare/335ddfa139708c37908dd594a0502bc6d88f8615...1b7ea87a174a1a290600b469dc1029ec4c974320", "_links": { "artifact": { - "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/spooler-ci/fingerprint/1b070a24ceafec25a9ed62bca61ac668b7e77381e1d4d8b755d22ceacc400c9f", - "html": "https://app.kosli.com/cyber-dojo/flows/spooler-ci/artifacts/1b070a24ceafec25a9ed62bca61ac668b7e77381e1d4d8b755d22ceacc400c9f?artifact_id=0d8ff1d2-a707-4bc0-9ce1-e37af354" + "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/differ-ci/fingerprint/c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", + "html": "https://app.kosli.com/cyber-dojo/flows/differ-ci/artifacts/c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12?artifact_id=53b144c7-33a3-4d8a-b416-37aea745" }, "snapshot": { - "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5115", - "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5115" + "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5123", + "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5123" } } }, { "environment_name": "aws-prod", - "snapshot_index": 5114, - "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:19f8734@sha256:8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", - "sha256": "8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", - "description": "3 instances changed", - "reported_at": 1785214438.378998, - "pipeline": "runner-ci", + "snapshot_index": 5122, + "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:a2e4638@sha256:c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", + "sha256": "c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", + "description": "1 instance started running (from 0 to 1)", + "reported_at": 1785241318.4716694, + "pipeline": "nginx-ci", "deployments": [], "flows": [ { - "flow_name": "runner-ci", - "deployments": null - }, - { - "flow_name": "production-promotion", + "flow_name": "nginx-ci", "deployments": null }, { - "flow_name": "snyk-aws-prod-per-artifact", + "flow_name": "snyk-aws-beta-per-artifact", "deployments": null }, { - "flow_name": "snyk-aws-beta-per-artifact", + "flow_name": "production-promotion", "deployments": null } ], "artifact_compliance": true, "snapshot_compliance": true, - "type": "updated-provenance", - "code_diff": "https://github.com/cyber-dojo/runner/compare/6dac3ae5d85ee8e6040d8badd5c2eede44bc8a6b...19f873464a01f28ecd588504ffe03529119d6297", + "type": "started-compliant", + "code_diff": "https://github.com/cyber-dojo/nginx/compare/7ba8029e0cb5d4c8fa51360f59b5cb8714a60d47...a2e4638aaa102446b8a6d1d519c5bc007e24f087", "_links": { "artifact": { - "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/runner-ci/fingerprint/8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", - "html": "https://app.kosli.com/cyber-dojo/flows/runner-ci/artifacts/8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67?artifact_id=046fc54c-c295-45b3-bac0-81d40282" + "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/nginx-ci/fingerprint/c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", + "html": "https://app.kosli.com/cyber-dojo/flows/nginx-ci/artifacts/c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053?artifact_id=c8c04d1b-0457-497c-a969-4d9c0b72" }, "snapshot": { - "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5114", - "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5114" + "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5122", + "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5122" } } }, { "environment_name": "aws-prod", - "snapshot_index": 5113, - "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:19f8734@sha256:8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", - "sha256": "8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", - "description": "3 instances changed", - "reported_at": 1785214378.5198987, - "pipeline": "runner-ci", + "snapshot_index": 5122, + "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/languages-start-points:6a7f7be@sha256:b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", + "sha256": "b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", + "description": "1 instance started running (from 0 to 1)", + "reported_at": 1785241318.4716694, + "pipeline": "languages-start-points-ci", "deployments": [], "flows": [ { - "flow_name": "runner-ci", + "flow_name": "languages-start-points-ci", "deployments": null }, { @@ -277,39 +277,35 @@ kosli log environment aws-prod --output=json { "flow_name": "production-promotion", "deployments": null - }, - { - "flow_name": "snyk-aws-prod-per-artifact", - "deployments": null } ], "artifact_compliance": true, "snapshot_compliance": true, - "type": "updated-provenance", - "code_diff": "https://github.com/cyber-dojo/runner/compare/6dac3ae5d85ee8e6040d8badd5c2eede44bc8a6b...19f873464a01f28ecd588504ffe03529119d6297", + "type": "started-compliant", + "code_diff": "https://github.com/cyber-dojo/languages-start-points/compare/c6db342472238a7852b6ff31b04f9a6a6099f5cf...6a7f7be81022f7ed3fa8383f016b55af86e2af23", "_links": { "artifact": { - "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/runner-ci/fingerprint/8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", - "html": "https://app.kosli.com/cyber-dojo/flows/runner-ci/artifacts/8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67?artifact_id=046fc54c-c295-45b3-bac0-81d40282" + "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/languages-start-points-ci/fingerprint/b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", + "html": "https://app.kosli.com/cyber-dojo/flows/languages-start-points-ci/artifacts/b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b?artifact_id=796c3a9f-ee70-45ca-8a69-4be16335" }, "snapshot": { - "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5113", - "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5113" + "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5122", + "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5122" } } }, { "environment_name": "aws-prod", - "snapshot_index": 5113, - "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:f4bb341@sha256:fcfc73775b49f8b8414c720e820b38258c6d18cb9d25b7ac76ff2d528a7add97", - "sha256": "fcfc73775b49f8b8414c720e820b38258c6d18cb9d25b7ac76ff2d528a7add97", - "description": "1 instance changed", - "reported_at": 1785214378.5198987, - "pipeline": "saver-ci", + "snapshot_index": 5122, + "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/custom-start-points:d37aace@sha256:1ed61f19b66b82f7f122b7b88522360de73abb3536fab5d0f8eadb9b987f9400", + "sha256": "1ed61f19b66b82f7f122b7b88522360de73abb3536fab5d0f8eadb9b987f9400", + "description": "1 instance stopped running (from 1 to 0)", + "reported_at": 1785241318.4716694, + "pipeline": "custom-start-points-ci", "deployments": [], "flows": [ { - "flow_name": "saver-ci", + "flow_name": "custom-start-points-ci", "deployments": null }, { @@ -317,41 +313,41 @@ kosli log environment aws-prod --output=json "deployments": null }, { - "flow_name": "snyk-aws-prod-per-artifact", + "flow_name": "snyk-aws-beta-per-artifact", "deployments": null }, { - "flow_name": "snyk-aws-beta-per-artifact", + "flow_name": "snyk-aws-prod-per-artifact", "deployments": null } ], "artifact_compliance": true, "snapshot_compliance": true, - "type": "updated-provenance", - "code_diff": "https://github.com/cyber-dojo/saver/compare/55561dc8a8d25313f5318038f26892cdee5e90f7...f4bb3412725258648a7cf5ce1a776609b4dade72", + "type": "exited", + "code_diff": "https://github.com/cyber-dojo/custom-start-points/compare/fc6b09be0518fbf8ab76815cb85b1745631e3659...d37aace7598ee943ba0bd5e51f224335cbdf0a3e", "_links": { "artifact": { - "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/saver-ci/fingerprint/fcfc73775b49f8b8414c720e820b38258c6d18cb9d25b7ac76ff2d528a7add97", - "html": "https://app.kosli.com/cyber-dojo/flows/saver-ci/artifacts/fcfc73775b49f8b8414c720e820b38258c6d18cb9d25b7ac76ff2d528a7add97?artifact_id=e3c009b8-349c-4f4e-8730-f45dfccf" + "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/custom-start-points-ci/fingerprint/1ed61f19b66b82f7f122b7b88522360de73abb3536fab5d0f8eadb9b987f9400", + "html": "https://app.kosli.com/cyber-dojo/flows/custom-start-points-ci/artifacts/1ed61f19b66b82f7f122b7b88522360de73abb3536fab5d0f8eadb9b987f9400?artifact_id=e434f9eb-be9c-4851-ab99-187f1a26" }, "snapshot": { - "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5113", - "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5113" + "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5122", + "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5122" } } }, { "environment_name": "aws-prod", - "snapshot_index": 5112, - "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/spooler:5451dae@sha256:1b070a24ceafec25a9ed62bca61ac668b7e77381e1d4d8b755d22ceacc400c9f", - "sha256": "1b070a24ceafec25a9ed62bca61ac668b7e77381e1d4d8b755d22ceacc400c9f", - "description": "1 instance changed", - "reported_at": 1785214318.4842489, - "pipeline": "spooler-ci", + "snapshot_index": 5122, + "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:7ba8029@sha256:3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5", + "sha256": "3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5", + "description": "1 instance stopped running (from 1 to 0)", + "reported_at": 1785241318.4716694, + "pipeline": "nginx-ci", "deployments": [], "flows": [ { - "flow_name": "spooler-ci", + "flow_name": "nginx-ci", "deployments": null }, { @@ -359,47 +355,51 @@ kosli log environment aws-prod --output=json "deployments": null }, { - "flow_name": "snyk-aws-prod-per-artifact", + "flow_name": "snyk-aws-beta-per-artifact", "deployments": null }, { - "flow_name": "snyk-aws-beta-per-artifact", + "flow_name": "snyk-aws-prod-per-artifact", "deployments": null } ], "artifact_compliance": true, "snapshot_compliance": true, - "type": "updated-provenance", - "code_diff": null, + "type": "exited", + "code_diff": "https://github.com/cyber-dojo/nginx/compare/9b711df71c76a1f293c2525ace65778036591baf...7ba8029e0cb5d4c8fa51360f59b5cb8714a60d47", "_links": { "artifact": { - "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/spooler-ci/fingerprint/1b070a24ceafec25a9ed62bca61ac668b7e77381e1d4d8b755d22ceacc400c9f", - "html": "https://app.kosli.com/cyber-dojo/flows/spooler-ci/artifacts/1b070a24ceafec25a9ed62bca61ac668b7e77381e1d4d8b755d22ceacc400c9f?artifact_id=0d8ff1d2-a707-4bc0-9ce1-e37af354" + "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/nginx-ci/fingerprint/3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5", + "html": "https://app.kosli.com/cyber-dojo/flows/nginx-ci/artifacts/3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5?artifact_id=5c293d3e-84a1-42dd-8215-6abd8d8d" }, "snapshot": { - "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5112", - "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5112" + "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5122", + "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5122" } } }, { "environment_name": "aws-prod", - "snapshot_index": 5111, - "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/spooler:5451dae@sha256:1b070a24ceafec25a9ed62bca61ac668b7e77381e1d4d8b755d22ceacc400c9f", - "sha256": "1b070a24ceafec25a9ed62bca61ac668b7e77381e1d4d8b755d22ceacc400c9f", - "description": "1 instance changed", - "reported_at": 1785214258.6438735, - "pipeline": "spooler-ci", + "snapshot_index": 5122, + "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:804f248@sha256:a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", + "sha256": "a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", + "description": "1 instance stopped running (from 1 to 0)", + "reported_at": 1785241318.4716694, + "pipeline": "exercises-start-points-ci", "deployments": [], "flows": [ { - "flow_name": "spooler-ci", + "flow_name": "exercises-start-points-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 @@ -407,31 +407,31 @@ kosli log environment aws-prod --output=json ], "artifact_compliance": true, "snapshot_compliance": true, - "type": "updated-provenance", - "code_diff": null, + "type": "exited", + "code_diff": "https://github.com/cyber-dojo/exercises-start-points/compare/80b913e9f88902428a3567f75165d8b9d73b561a...804f248d832dc34e564507b009c246dfb4f0c657", "_links": { "artifact": { - "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/spooler-ci/fingerprint/1b070a24ceafec25a9ed62bca61ac668b7e77381e1d4d8b755d22ceacc400c9f", - "html": "https://app.kosli.com/cyber-dojo/flows/spooler-ci/artifacts/1b070a24ceafec25a9ed62bca61ac668b7e77381e1d4d8b755d22ceacc400c9f?artifact_id=0d8ff1d2-a707-4bc0-9ce1-e37af354" + "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/exercises-start-points-ci/fingerprint/a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", + "html": "https://app.kosli.com/cyber-dojo/flows/exercises-start-points-ci/artifacts/a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613?artifact_id=0e55e1be-fab1-475b-8aaa-b45ca6e2" }, "snapshot": { - "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5111", - "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5111" + "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5122", + "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5122" } } }, { "environment_name": "aws-prod", - "snapshot_index": 5111, - "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:7ba8029@sha256:3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5", - "sha256": "3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5", - "description": "1 instance changed", - "reported_at": 1785214258.6438735, - "pipeline": "nginx-ci", + "snapshot_index": 5122, + "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:5407827@sha256:d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e", + "sha256": "d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e", + "description": "1 instance stopped running (from 1 to 0)", + "reported_at": 1785241318.4716694, + "pipeline": "dashboard-ci", "deployments": [], "flows": [ { - "flow_name": "nginx-ci", + "flow_name": "dashboard-ci", "deployments": null }, { @@ -449,31 +449,31 @@ kosli log environment aws-prod --output=json ], "artifact_compliance": true, "snapshot_compliance": true, - "type": "changed", - "code_diff": "https://github.com/cyber-dojo/nginx/compare/9b711df71c76a1f293c2525ace65778036591baf...7ba8029e0cb5d4c8fa51360f59b5cb8714a60d47", + "type": "exited", + "code_diff": "https://github.com/cyber-dojo/dashboard/compare/e4757683b74df7033c95aa544a7824b395c2f8bb...5407827a19ff32c8d0e7ff2e8f18665e86e64f01", "_links": { "artifact": { - "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/nginx-ci/fingerprint/3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5", - "html": "https://app.kosli.com/cyber-dojo/flows/nginx-ci/artifacts/3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5?artifact_id=5c293d3e-84a1-42dd-8215-6abd8d8d" + "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/dashboard-ci/fingerprint/d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e", + "html": "https://app.kosli.com/cyber-dojo/flows/dashboard-ci/artifacts/d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e?artifact_id=53e5b750-6f87-43db-a8a3-e1f5b1db" }, "snapshot": { - "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5111", - "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5111" + "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5122", + "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5122" } } }, { "environment_name": "aws-prod", - "snapshot_index": 5111, - "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:804f248@sha256:a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", - "sha256": "a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", - "description": "1 instance changed", - "reported_at": 1785214258.6438735, - "pipeline": "exercises-start-points-ci", + "snapshot_index": 5122, + "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/languages-start-points:c6db342@sha256:f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418", + "sha256": "f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418", + "description": "1 instance stopped running (from 1 to 0)", + "reported_at": 1785241318.4716694, + "pipeline": "languages-start-points-ci", "deployments": [], "flows": [ { - "flow_name": "exercises-start-points-ci", + "flow_name": "languages-start-points-ci", "deployments": null }, { @@ -491,68 +491,64 @@ 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/80b913e9f88902428a3567f75165d8b9d73b561a...804f248d832dc34e564507b009c246dfb4f0c657", + "type": "exited", + "code_diff": "https://github.com/cyber-dojo/languages-start-points/compare/04e0e14bb8874ab521d35c97d6040133f0d2143a...c6db342472238a7852b6ff31b04f9a6a6099f5cf", "_links": { "artifact": { - "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/exercises-start-points-ci/fingerprint/a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", - "html": "https://app.kosli.com/cyber-dojo/flows/exercises-start-points-ci/artifacts/a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613?artifact_id=0e55e1be-fab1-475b-8aaa-b45ca6e2" + "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/languages-start-points-ci/fingerprint/f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418", + "html": "https://app.kosli.com/cyber-dojo/flows/languages-start-points-ci/artifacts/f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418?artifact_id=ed104a44-8358-4883-beeb-ac3c8bb7" }, "snapshot": { - "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5111", - "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5111" + "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5122", + "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5122" } } }, { "environment_name": "aws-prod", - "snapshot_index": 5111, - "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/creator:76672a8@sha256:aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", - "sha256": "aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", - "description": "1 instance changed", - "reported_at": 1785214258.6438735, - "pipeline": "creator-ci", + "snapshot_index": 5121, + "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/custom-start-points:790d86b@sha256:8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", + "sha256": "8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", + "description": "1 instance started running (from 0 to 1)", + "reported_at": 1785241258.6193466, + "pipeline": "custom-start-points-ci", "deployments": [], "flows": [ { - "flow_name": "creator-ci", + "flow_name": "custom-start-points-ci", "deployments": null }, { - "flow_name": "production-promotion", - "deployments": null - }, - { - "flow_name": "snyk-aws-prod-per-artifact", + "flow_name": "snyk-aws-beta-per-artifact", "deployments": null }, { - "flow_name": "snyk-aws-beta-per-artifact", + "flow_name": "production-promotion", "deployments": null } ], "artifact_compliance": true, "snapshot_compliance": true, - "type": "updated-provenance", - "code_diff": "https://github.com/cyber-dojo/creator/compare/7e00b70f8911edf1c480ba9a8b9c2a280260cb08...76672a8b247049c3ce8c3140852e17be8f47d995", + "type": "started-compliant", + "code_diff": "https://github.com/cyber-dojo/custom-start-points/compare/d37aace7598ee943ba0bd5e51f224335cbdf0a3e...790d86b66f4d86ab47f5c521daf5039dc8aeef4d", "_links": { "artifact": { - "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/creator-ci/fingerprint/aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", - "html": "https://app.kosli.com/cyber-dojo/flows/creator-ci/artifacts/aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6?artifact_id=3cb9c270-d59b-4b28-b16a-b23d89d2" + "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/custom-start-points-ci/fingerprint/8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", + "html": "https://app.kosli.com/cyber-dojo/flows/custom-start-points-ci/artifacts/8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81?artifact_id=653e13a5-2f2a-4a23-be4e-1693fc77" }, "snapshot": { - "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5111", - "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5111" + "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5121", + "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5121" } } }, { "environment_name": "aws-prod", - "snapshot_index": 5111, - "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:5407827@sha256:d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e", - "sha256": "d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e", - "description": "1 instance changed", - "reported_at": 1785214258.6438735, + "snapshot_index": 5121, + "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:0fb0be4@sha256:c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", + "sha256": "c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", + "description": "1 instance started running (from 0 to 1)", + "reported_at": 1785241258.6193466, "pipeline": "dashboard-ci", "deployments": [], "flows": [ @@ -560,50 +556,42 @@ kosli log environment aws-prod --output=json "flow_name": "dashboard-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", + "flow_name": "production-promotion", "deployments": null } ], "artifact_compliance": true, "snapshot_compliance": true, - "type": "changed", - "code_diff": "https://github.com/cyber-dojo/dashboard/compare/e4757683b74df7033c95aa544a7824b395c2f8bb...5407827a19ff32c8d0e7ff2e8f18665e86e64f01", + "type": "started-compliant", + "code_diff": "https://github.com/cyber-dojo/dashboard/compare/5407827a19ff32c8d0e7ff2e8f18665e86e64f01...0fb0be439480821efb926a5079e39ce5941eaa48", "_links": { "artifact": { - "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/dashboard-ci/fingerprint/d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e", - "html": "https://app.kosli.com/cyber-dojo/flows/dashboard-ci/artifacts/d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e?artifact_id=53e5b750-6f87-43db-a8a3-e1f5b1db" + "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/dashboard-ci/fingerprint/c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", + "html": "https://app.kosli.com/cyber-dojo/flows/dashboard-ci/artifacts/c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98?artifact_id=e55cba1f-ce06-49ff-9701-62eb823d" }, "snapshot": { - "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5111", - "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5111" + "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5121", + "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5121" } } }, { "environment_name": "aws-prod", - "snapshot_index": 5111, - "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:f4bb341@sha256:fcfc73775b49f8b8414c720e820b38258c6d18cb9d25b7ac76ff2d528a7add97", - "sha256": "fcfc73775b49f8b8414c720e820b38258c6d18cb9d25b7ac76ff2d528a7add97", - "description": "1 instance changed", - "reported_at": 1785214258.6438735, - "pipeline": "saver-ci", + "snapshot_index": 5121, + "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:258b6d0@sha256:c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "sha256": "c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "description": "1 instance started running (from 0 to 1)", + "reported_at": 1785241258.6193466, + "pipeline": "exercises-start-points-ci", "deployments": [], "flows": [ { - "flow_name": "saver-ci", - "deployments": null - }, - { - "flow_name": "production-promotion", + "flow_name": "exercises-start-points-ci", "deployments": null }, { @@ -611,32 +599,32 @@ kosli log environment aws-prod --output=json "deployments": null }, { - "flow_name": "snyk-aws-prod-per-artifact", + "flow_name": "production-promotion", "deployments": null } ], "artifact_compliance": true, "snapshot_compliance": true, - "type": "changed", - "code_diff": "https://github.com/cyber-dojo/saver/compare/55561dc8a8d25313f5318038f26892cdee5e90f7...f4bb3412725258648a7cf5ce1a776609b4dade72", + "type": "started-compliant", + "code_diff": "https://github.com/cyber-dojo/exercises-start-points/compare/804f248d832dc34e564507b009c246dfb4f0c657...258b6d07d2b28ad5cb2ce6d29934997f72380f1a", "_links": { "artifact": { - "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/saver-ci/fingerprint/fcfc73775b49f8b8414c720e820b38258c6d18cb9d25b7ac76ff2d528a7add97", - "html": "https://app.kosli.com/cyber-dojo/flows/saver-ci/artifacts/fcfc73775b49f8b8414c720e820b38258c6d18cb9d25b7ac76ff2d528a7add97?artifact_id=e3c009b8-349c-4f4e-8730-f45dfccf" + "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/exercises-start-points-ci/fingerprint/c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "html": "https://app.kosli.com/cyber-dojo/flows/exercises-start-points-ci/artifacts/c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea?artifact_id=ffb671be-6388-4f6a-ae64-8ba95d82" }, "snapshot": { - "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5111", - "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5111" + "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5121", + "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5121" } } }, { "environment_name": "aws-prod", - "snapshot_index": 5110, + "snapshot_index": 5120, "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:3f0b997@sha256:0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972", "sha256": "0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972", - "description": "3 instances changed", - "reported_at": 1785214198.674762, + "description": "3 instances stopped running (from 3 to 0)", + "reported_at": 1785240718.5257201, "pipeline": "web-ci", "deployments": [], "flows": [ @@ -659,7 +647,7 @@ kosli log environment aws-prod --output=json ], "artifact_compliance": true, "snapshot_compliance": true, - "type": "changed", + "type": "exited", "code_diff": "https://github.com/cyber-dojo/web/compare/bdf01beca687a34db9689499bd805cfc752a1747...3f0b9975f96b7f4e4aae0b4409cebda3209be164", "_links": { "artifact": { @@ -667,8 +655,8 @@ kosli log environment aws-prod --output=json "html": "https://app.kosli.com/cyber-dojo/flows/web-ci/artifacts/0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972?artifact_id=0f00c8a9-1489-416c-b64f-5819890f" }, "snapshot": { - "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5110", - "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5110" + "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5120", + "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5120" } } } diff --git a/client_reference/overview.md b/client_reference/overview.md index 0ad2f7d..d3073bb 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.35.0**. + This reference was generated from Kosli CLI **v2.36.0**. The Kosli CLI allows you to interact with Kosli from your terminal and CI/CD pipelines. diff --git a/helm/k8s_reporter/configuration.mdx b/helm/k8s_reporter/configuration.mdx index 31eb2b1..8b6f749 100644 --- a/helm/k8s_reporter/configuration.mdx +++ b/helm/k8s_reporter/configuration.mdx @@ -89,7 +89,7 @@ description: All values.yaml options for the Kosli k8s-reporter Helm chart. The http proxy url. - + Whether to record scaling (replica count) changes for every environment auto-created in this run. Leave unset to use the Kosli server default; set to `true` to pass `--include-scaling` or `false` to pass `--exclude-scaling`. Only used when `autoEnvironment` is true; existing environments are never modified.