diff --git a/client_reference/kosli_create_environment.md b/client_reference/kosli_create_environment.md index f24c266..9f4aad1 100644 --- a/client_reference/kosli_create_environment.md +++ b/client_reference/kosli_create_environment.md @@ -22,12 +22,6 @@ The following types are supported: - server - Generic type - logical - Logical grouping of real environments -By default, kosli will not make new snapshots for scaling events (change in number of instances running). -For large clusters the scaling events will often outnumber the actual change of SW. - -It is possible to enable new snapshots for scaling events with the --include-scaling flag, or turn -it off again with the --exclude-scaling. - Logical environments are used for grouping of physical environments. For instance **prod-aws** and **prod-s3** can be grouped into logical environment **prod**. Logical environments are view-only, you can not report snapshots to them. @@ -40,9 +34,7 @@ to them. | :--- | :--- | | `-d`, `--description` string | [optional] The environment 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. | -| `--exclude-scaling` | [optional] Exclude scaling events for snapshots. Snapshots with scaling changes will not result in new environment records. | | `-h`, `--help` | help for environment | -| `--include-scaling` | [optional] Include scaling events for snapshots. Snapshots with scaling changes will result in new environment records. | | `--included-environments` strings | [optional] Comma separated list of environments to include in logical environment | | `-t`, `--type` string | The type of environment. Valid types are: [K8S, ECS, S3, lambda, server, docker, azure-apps, cloud-run, logical]. | diff --git a/client_reference/kosli_delete_api-key.md b/client_reference/kosli_delete_api-key.md index 47a6fbe..3fd6ffe 100644 --- a/client_reference/kosli_delete_api-key.md +++ b/client_reference/kosli_delete_api-key.md @@ -15,6 +15,9 @@ This permanently deletes the API key(s) identified by KEY-ID. Deletion is immedi cannot be undone. You are asked to confirm before the key is deleted; use `--assume-yes`/`--yes` to skip the confirmation prompt. +When stdin is not interactive (e.g. in CI) the prompt cannot be answered and the +command fails without deleting anything, so pass `--assume-yes` there. + ## Flags | Flag | Description | | :--- | :--- | diff --git a/client_reference/kosli_delete_service-account.md b/client_reference/kosli_delete_service-account.md index f880b2f..c15141b 100644 --- a/client_reference/kosli_delete_service-account.md +++ b/client_reference/kosli_delete_service-account.md @@ -16,6 +16,9 @@ from the organization, along with their API keys. Deletion is immediate and cannot be undone. You are asked to confirm before deletion; use `--assume-yes`/`--yes` to skip the confirmation prompt. +When stdin is not interactive (e.g. in CI) the prompt cannot be answered and the +command fails without deleting anything, so pass `--assume-yes` there. + ## Flags | Flag | Description | | :--- | :--- | diff --git a/client_reference/kosli_diff_snapshots.md b/client_reference/kosli_diff_snapshots.md index 8a3d334..bee6120 100644 --- a/client_reference/kosli_diff_snapshots.md +++ b/client_reference/kosli_diff_snapshots.md @@ -66,17 +66,36 @@ kosli diff snapshots aws-beta aws-prod --output=json ```json { "snappish1": { - "snapshot_id": "aws-beta#7875", - "artifacts": [] + "snapshot_id": "aws-beta#7885", + "artifacts": [ + { + "fingerprint": "26a4c8a14ccf71978ec75fe01edad50d892d7f9054f95fc41d6922fb42995d59", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/creator:07ed087@sha256:26a4c8a14ccf71978ec75fe01edad50d892d7f9054f95fc41d6922fb42995d59", + "most_recent_timestamp": 1785398324, + "flow": "creator-ci", + "commit_url": "https://github.com/cyber-dojo/creator/commit/07ed087071878b405ac1cf7fe77e5d8c70ce3a4b", + "instance_count": 1 + }, + { + "fingerprint": "7b162dcd6aff6c3eab5ca66d9b0bc0115120b7304cabf5c33f6c91af7f9eb756", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:56e831a@sha256:7b162dcd6aff6c3eab5ca66d9b0bc0115120b7304cabf5c33f6c91af7f9eb756", + "most_recent_timestamp": 1785398972, + "flow": "dashboard-ci", + "commit_url": "https://github.com/cyber-dojo/dashboard/commit/56e831abe6a2ec870c0f9d9f214821eb3ebf9c32", + "instance_count": 1 + }, + { + "fingerprint": "a5b224c24732c48daaf6ea495e57345bc4b9fde34b37bf4b7c758b6ee778bee3", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:595e902@sha256:a5b224c24732c48daaf6ea495e57345bc4b9fde34b37bf4b7c758b6ee778bee3", + "most_recent_timestamp": 1785392629, + "flow": "saver-ci", + "commit_url": "https://github.com/cyber-dojo/saver/commit/595e902fa2f5844d9ce0612a5c9295cd8dab5b97", + "instance_count": 1 + } + ] }, "snappish2": { - "snapshot_id": "aws-prod#5134", - "artifacts": [] - }, - "changed": { - "artifacts": [] - }, - "not-changed": { + "snapshot_id": "aws-prod#5138", "artifacts": [ { "fingerprint": "680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", @@ -86,6 +105,29 @@ kosli diff snapshots aws-beta aws-prod --output=json "commit_url": "https://github.com/cyber-dojo/saver/commit/c29db2ce6d16a9ace09a8548b0cc39fd608abd2e", "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": "c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:0fb0be4@sha256:c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", + "most_recent_timestamp": 1785241255, + "flow": "dashboard-ci", + "commit_url": "https://github.com/cyber-dojo/dashboard/commit/0fb0be439480821efb926a5079e39ce5941eaa48", + "instance_count": 1 + } + ] + }, + "changed": { + "artifacts": [] + }, + "not-changed": { + "artifacts": [ { "fingerprint": "6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac", "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/spooler:c81791f@sha256:6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac", @@ -110,14 +152,6 @@ kosli diff snapshots aws-beta aws-prod --output=json "commit_url": "https://github.com/cyber-dojo/custom-start-points/commit/790d86b66f4d86ab47f5c521daf5039dc8aeef4d", "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", @@ -150,14 +184,6 @@ kosli diff snapshots aws-beta aws-prod --output=json "commit_url": "https://github.com/cyber-dojo/differ/commit/1b7ea87a174a1a290600b469dc1029ec4c974320", "instance_count": 1 }, - { - "fingerprint": "c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:0fb0be4@sha256:c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", - "most_recent_timestamp": 1785241255, - "flow": "dashboard-ci", - "commit_url": "https://github.com/cyber-dojo/dashboard/commit/0fb0be439480821efb926a5079e39ce5941eaa48", - "instance_count": 1 - }, { "fingerprint": "c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:258b6d0@sha256:c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", diff --git a/client_reference/kosli_get_environment.md b/client_reference/kosli_get_environment.md index fbbd6fc..8210170 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": 1785324178.5060613, - "last_reported_at": 1785324178.5060613, - "last_changed_at": 1785310558.4611607, + "last_modified_at": 1785405118.3597527, + "last_reported_at": 1785405118.3597527, + "last_changed_at": 1785386758.6525679, "state": true, "include_scaling": false, "tags": { diff --git a/client_reference/kosli_get_snapshot.md b/client_reference/kosli_get_snapshot.md index 5037fd9..6ebd719 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": 5134, + "index": 5138, "is_latest": true, "next_snapshot_timestamp": null, "artifact_compliance_count": { @@ -72,10 +72,10 @@ kosli get snapshot aws-prod --output=json "false": 0, "null": 0 }, - "timestamp": 1785310558.4611607, + "timestamp": 1785386758.6525679, "type": "ECS", "compliant": true, - "html_url": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5134", + "html_url": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5138", "artifacts": [ { "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/spooler:c81791f@sha256:6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac", @@ -112,6 +112,22 @@ kosli get snapshot aws-prod --output=json "trail_name": "promotion-one-145", "artifact_status": null } + }, + { + "type": "rule_not_applicable", + "context": { + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "spooler-6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac", + "artifact_status": null + } + }, + { + "type": "rule_not_applicable", + "context": { + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "spooler-6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac", + "artifact_status": null + } } ] }, @@ -141,6 +157,22 @@ kosli get snapshot aws-prod --output=json "trail_name": "promotion-one-145", "artifact_status": "COMPLIANT" } + }, + { + "type": "rule_not_applicable", + "context": { + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "spooler-6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac", + "artifact_status": "COMPLIANT" + } + }, + { + "type": "rule_not_applicable", + "context": { + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "spooler-6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac", + "artifact_status": "COMPLIANT" + } } ] }, @@ -175,6 +207,22 @@ kosli get snapshot aws-prod --output=json "trail_name": "promotion-one-145", "artifact_status": null } + }, + { + "type": "rule_not_applicable", + "context": { + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "spooler-6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac", + "artifact_status": null + } + }, + { + "type": "rule_not_applicable", + "context": { + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "spooler-6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac", + "artifact_status": null + } } ] } @@ -211,6 +259,22 @@ kosli get snapshot aws-prod --output=json "trail_name": "promotion-one-145", "artifact_status": null } + }, + { + "type": "rule_satisfied", + "context": { + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "spooler-6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac", + "artifact_status": null + } + }, + { + "type": "rule_satisfied", + "context": { + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "spooler-6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac", + "artifact_status": null + } } ] }, @@ -240,6 +304,22 @@ kosli get snapshot aws-prod --output=json "trail_name": "promotion-one-145", "artifact_status": "COMPLIANT" } + }, + { + "type": "rule_not_applicable", + "context": { + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "spooler-6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac", + "artifact_status": "COMPLIANT" + } + }, + { + "type": "rule_not_applicable", + "context": { + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "spooler-6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac", + "artifact_status": "COMPLIANT" + } } ] }, @@ -276,6 +356,24 @@ kosli get snapshot aws-prod --output=json "artifact_status": null, "for_control": "SDLC-CTRL-0002" } + }, + { + "type": "rule_not_applicable", + "context": { + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "spooler-6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac", + "artifact_status": null, + "for_control": "SDLC-CTRL-0002" + } + }, + { + "type": "rule_not_applicable", + "context": { + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "spooler-6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac", + "artifact_status": null, + "for_control": "SDLC-CTRL-0002" + } } ] } @@ -312,6 +410,22 @@ kosli get snapshot aws-prod --output=json "trail_name": "promotion-one-145", "artifact_status": null } + }, + { + "type": "rule_not_applicable", + "context": { + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "spooler-6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac", + "artifact_status": null + } + }, + { + "type": "rule_not_applicable", + "context": { + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "spooler-6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac", + "artifact_status": null + } } ] }, @@ -341,6 +455,22 @@ kosli get snapshot aws-prod --output=json "trail_name": "promotion-one-145", "artifact_status": "COMPLIANT" } + }, + { + "type": "rule_not_applicable", + "context": { + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "spooler-6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac", + "artifact_status": "COMPLIANT" + } + }, + { + "type": "rule_not_applicable", + "context": { + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "spooler-6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac", + "artifact_status": "COMPLIANT" + } } ] }, @@ -357,8 +487,8 @@ kosli get snapshot aws-prod --output=json "for_control": "SDLC-CTRL-0022" } }, - "satisfied": null, - "ignored": true, + "satisfied": true, + "ignored": false, "resolutions": [ { "type": "rule_not_applicable", @@ -377,6 +507,24 @@ kosli get snapshot aws-prod --output=json "artifact_status": null, "for_control": "SDLC-CTRL-0022" } + }, + { + "type": "rule_satisfied", + "context": { + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "spooler-6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac", + "artifact_status": null, + "for_control": "SDLC-CTRL-0022" + } + }, + { + "type": "rule_not_applicable", + "context": { + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "spooler-6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac", + "artifact_status": null, + "for_control": "SDLC-CTRL-0022" + } } ] } @@ -413,6 +561,22 @@ kosli get snapshot aws-prod --output=json "trail_name": "promotion-one-145", "artifact_status": null } + }, + { + "type": "rule_not_applicable", + "context": { + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "spooler-6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac", + "artifact_status": null + } + }, + { + "type": "rule_not_applicable", + "context": { + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "spooler-6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac", + "artifact_status": null + } } ] }, @@ -442,6 +606,22 @@ kosli get snapshot aws-prod --output=json "trail_name": "promotion-one-145", "artifact_status": "COMPLIANT" } + }, + { + "type": "rule_not_applicable", + "context": { + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "spooler-6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac", + "artifact_status": "COMPLIANT" + } + }, + { + "type": "rule_not_applicable", + "context": { + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "spooler-6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac", + "artifact_status": "COMPLIANT" + } } ] }, @@ -476,6 +656,22 @@ kosli get snapshot aws-prod --output=json "trail_name": "promotion-one-145", "artifact_status": null } + }, + { + "type": "rule_not_applicable", + "context": { + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "spooler-6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac", + "artifact_status": null + } + }, + { + "type": "rule_not_applicable", + "context": { + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "spooler-6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac", + "artifact_status": null + } } ] } @@ -512,6 +708,22 @@ kosli get snapshot aws-prod --output=json "trail_name": "promotion-one-145", "artifact_status": null } + }, + { + "type": "rule_not_applicable", + "context": { + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "spooler-6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac", + "artifact_status": null + } + }, + { + "type": "rule_not_applicable", + "context": { + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "spooler-6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac", + "artifact_status": null + } } ] }, @@ -547,6 +759,22 @@ kosli get snapshot aws-prod --output=json "trail_name": "promotion-one-145", "artifact_status": "COMPLIANT" } + }, + { + "type": "rule_satisfied", + "context": { + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "spooler-6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac", + "artifact_status": "COMPLIANT" + } + }, + { + "type": "rule_not_applicable", + "context": { + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "spooler-6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac", + "artifact_status": "COMPLIANT" + } } ] } @@ -561,8 +789,8 @@ kosli get snapshot aws-prod --output=json ], "pods": null, "annotation": { - "type": "started-compliant", - "was": 0, + "type": "updated-provenance", + "was": 1, "now": 1 }, "flow_name": "spooler-ci", @@ -644,6 +872,48 @@ kosli get snapshot aws-prod --output=json "commit_lead_time": 167455.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] + }, + { + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "spooler-6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac", + "template_reference_name": "spooler", + "git_commit": "c0666c020044ac5b5181999ec153db1e7f6cd303", + "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303", + "git_commit_info": { + "sha1": "c0666c020044ac5b5181999ec153db1e7f6cd303", + "message": "Drop lone use of = separator on Kosli CLI boolean flag", + "author": "JonJagger ", + "branch": "main", + "timestamp": 1785316951.0, + "url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303" + }, + "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac?artifact_id=0f8ba851-1d60-4993-b9a7-89690ad3", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact", + "deployment_diff": null, + "commit_lead_time": -6442.0, + "artifact_compliance_in_flow": true, + "flow_reasons_for_non_compliance": [] + }, + { + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "spooler-6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac", + "template_reference_name": "spooler", + "git_commit": "c0666c020044ac5b5181999ec153db1e7f6cd303", + "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303", + "git_commit_info": { + "sha1": "c0666c020044ac5b5181999ec153db1e7f6cd303", + "message": "Drop lone use of = separator on Kosli CLI boolean flag", + "author": "JonJagger ", + "branch": "main", + "timestamp": 1785316951.0, + "url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303" + }, + "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac?artifact_id=a05351bc-0c56-4d25-a9c6-970995d2", + "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact", + "deployment_diff": null, + "commit_lead_time": -6442.0, + "artifact_compliance_in_flow": true, + "flow_reasons_for_non_compliance": [] } ], "ecs_context": { @@ -653,7 +923,7 @@ kosli get snapshot aws-prod --output=json } }, { - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:2779354@sha256:af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/languages-start-points:6a7f7be@sha256:b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", "compliant": true, "deployments": [], "policy_decisions": [ @@ -675,8 +945,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "web-ci", - "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1", + "flow_name": "languages-start-points-ci", + "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23", "artifact_status": null } }, @@ -684,7 +954,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-143", + "trail_name": "promote-all-31", "artifact_status": null } }, @@ -692,7 +962,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", + "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", "artifact_status": null } }, @@ -700,7 +970,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", + "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", "artifact_status": null } } @@ -720,8 +990,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "web-ci", - "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1", + "flow_name": "languages-start-points-ci", + "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23", "artifact_status": "COMPLIANT" } }, @@ -729,7 +999,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-143", + "trail_name": "promote-all-31", "artifact_status": "COMPLIANT" } }, @@ -737,7 +1007,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", + "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", "artifact_status": "COMPLIANT" } }, @@ -745,7 +1015,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", + "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", "artifact_status": "COMPLIANT" } } @@ -770,8 +1040,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "web-ci", - "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1", + "flow_name": "languages-start-points-ci", + "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23", "artifact_status": null } }, @@ -779,7 +1049,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-143", + "trail_name": "promote-all-31", "artifact_status": null } }, @@ -787,7 +1057,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", + "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", "artifact_status": null } }, @@ -795,7 +1065,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", + "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", "artifact_status": null } } @@ -822,8 +1092,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "web-ci", - "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1", + "flow_name": "languages-start-points-ci", + "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23", "artifact_status": null } }, @@ -831,7 +1101,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-143", + "trail_name": "promote-all-31", "artifact_status": null } }, @@ -839,7 +1109,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", + "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", "artifact_status": null } }, @@ -847,7 +1117,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", + "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", "artifact_status": null } } @@ -867,8 +1137,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "web-ci", - "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1", + "flow_name": "languages-start-points-ci", + "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23", "artifact_status": "COMPLIANT" } }, @@ -876,7 +1146,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-143", + "trail_name": "promote-all-31", "artifact_status": "COMPLIANT" } }, @@ -884,7 +1154,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", + "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", "artifact_status": "COMPLIANT" } }, @@ -892,7 +1162,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", + "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", "artifact_status": "COMPLIANT" } } @@ -917,8 +1187,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "web-ci", - "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1", + "flow_name": "languages-start-points-ci", + "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -927,7 +1197,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-143", + "trail_name": "promote-all-31", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -936,7 +1206,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", + "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -945,7 +1215,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", + "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -973,8 +1243,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "web-ci", - "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1", + "flow_name": "languages-start-points-ci", + "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23", "artifact_status": null } }, @@ -982,7 +1252,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-143", + "trail_name": "promote-all-31", "artifact_status": null } }, @@ -990,7 +1260,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", + "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", "artifact_status": null } }, @@ -998,7 +1268,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", + "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", "artifact_status": null } } @@ -1018,8 +1288,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "web-ci", - "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1", + "flow_name": "languages-start-points-ci", + "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23", "artifact_status": "COMPLIANT" } }, @@ -1027,7 +1297,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-143", + "trail_name": "promote-all-31", "artifact_status": "COMPLIANT" } }, @@ -1035,7 +1305,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", + "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", "artifact_status": "COMPLIANT" } }, @@ -1043,7 +1313,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", + "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", "artifact_status": "COMPLIANT" } } @@ -1068,8 +1338,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "web-ci", - "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1", + "flow_name": "languages-start-points-ci", + "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -1078,7 +1348,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-143", + "trail_name": "promote-all-31", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -1087,7 +1357,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", + "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -1096,7 +1366,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", + "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -1124,8 +1394,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "web-ci", - "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1", + "flow_name": "languages-start-points-ci", + "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23", "artifact_status": null } }, @@ -1133,7 +1403,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-143", + "trail_name": "promote-all-31", "artifact_status": null } }, @@ -1141,7 +1411,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", + "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", "artifact_status": null } }, @@ -1149,7 +1419,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", + "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", "artifact_status": null } } @@ -1169,8 +1439,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "web-ci", - "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1", + "flow_name": "languages-start-points-ci", + "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23", "artifact_status": "COMPLIANT" } }, @@ -1178,7 +1448,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-143", + "trail_name": "promote-all-31", "artifact_status": "COMPLIANT" } }, @@ -1186,7 +1456,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", + "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", "artifact_status": "COMPLIANT" } }, @@ -1194,7 +1464,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", + "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", "artifact_status": "COMPLIANT" } } @@ -1219,8 +1489,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "web-ci", - "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1", + "flow_name": "languages-start-points-ci", + "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23", "artifact_status": null } }, @@ -1228,7 +1498,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-143", + "trail_name": "promote-all-31", "artifact_status": null } }, @@ -1236,7 +1506,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", + "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", "artifact_status": null } }, @@ -1244,7 +1514,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", + "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", "artifact_status": null } } @@ -1271,8 +1541,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "web-ci", - "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1", + "flow_name": "languages-start-points-ci", + "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23", "artifact_status": null } }, @@ -1280,7 +1550,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-143", + "trail_name": "promote-all-31", "artifact_status": null } }, @@ -1288,7 +1558,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", + "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", "artifact_status": null } }, @@ -1296,7 +1566,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", + "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", "artifact_status": null } } @@ -1322,8 +1592,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "web-ci", - "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1", + "flow_name": "languages-start-points-ci", + "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23", "artifact_status": "COMPLIANT" } }, @@ -1331,7 +1601,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-143", + "trail_name": "promote-all-31", "artifact_status": "COMPLIANT" } }, @@ -1339,7 +1609,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", + "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", "artifact_status": "COMPLIANT" } }, @@ -1347,7 +1617,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", + "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", "artifact_status": "COMPLIANT" } } @@ -1358,71 +1628,69 @@ kosli get snapshot aws-prod --output=json } ], "reasons_for_incompliance": [], - "fingerprint": "af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", + "fingerprint": "b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", "creationTimestamp": [ - 1785243407, - 1785243408, - 1785243412 + 1785241263 ], "pods": null, "annotation": { - "type": "unchanged", - "was": 3, - "now": 3 + "type": "updated-provenance", + "was": 1, + "now": 1 }, - "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", + "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/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", + "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/web/commit/aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f", - "previous_trail_name": "aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f", - "previous_template_reference_name": "web" + "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": 856.0, + "commit_lead_time": 929088.0, "flows": [ { - "flow_name": "web-ci", - "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1", - "template_reference_name": "web", - "git_commit": "2779354a4fda0eeb90fd43f32211836d99f6bde1", - "commit_url": "https://github.com/cyber-dojo/web/commit/2779354a4fda0eeb90fd43f32211836d99f6bde1", + "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": "2779354a4fda0eeb90fd43f32211836d99f6bde1", - "message": "Add spooler env-vars for deployment (#389)", + "sha1": "6a7f7be81022f7ed3fa8383f016b55af86e2af23", + "message": "Merge pull request #243 from cyber-dojo/add-drift-detection\n\nAdd periodic drift-detection workflow", "author": "Jon Jagger ", "branch": "", - "timestamp": 1785242551.0, - "url": "https://github.com/cyber-dojo/web/commit/2779354a4fda0eeb90fd43f32211836d99f6bde1" + "timestamp": 1784312175.0, + "url": "https://github.com/cyber-dojo/languages-start-points/commit/6a7f7be81022f7ed3fa8383f016b55af86e2af23" }, - "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", + "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/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", + "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/web/commit/aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f", - "previous_trail_name": "aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f", - "previous_template_reference_name": "web" + "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": 856.0, + "commit_lead_time": 929088.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "production-promotion", - "trail_name": "promotion-one-143", - "template_reference_name": "web", + "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": { @@ -1433,94 +1701,94 @@ 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/af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e?artifact_id=11f2828c-83b9-4e8c-bd6a-be37eb17", + "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/aws-prod-co-promotion/compare/81c216a55b2cb1787645e699ceaceca868cad253...81c216a55b2cb1787645e699ceaceca868cad253", - "previous_git_commit": "81c216a55b2cb1787645e699ceaceca868cad253", - "previous_fingerprint": "30658abf51aa2b17e4edfa8636cc14aa9725432c2665ed3fcb2ee99ecae03889", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:aaf06ae@sha256:30658abf51aa2b17e4edfa8636cc14aa9725432c2665ed3fcb2ee99ecae03889", + "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/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253", - "previous_trail_name": "promotion-one-142", - "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": "languages-start-points" }, - "commit_lead_time": 100353.0, + "commit_lead_time": 98209.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", - "template_reference_name": "web", - "git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", + "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", + "template_reference_name": "languages-start-points", + "git_commit": "c0666c020044ac5b5181999ec153db1e7f6cd303", + "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303", "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": "c0666c020044ac5b5181999ec153db1e7f6cd303", + "message": "Drop lone use of = separator on Kosli CLI boolean flag", "author": "JonJagger ", "branch": "main", - "timestamp": 1783850974.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7" + "timestamp": 1785316951.0, + "url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e?artifact_id=83c5644d-1b5c-4f05-992f-49d05fdc", + "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b?artifact_id=87b1ac1b-49ca-4fcf-8c56-e2c3fd03", "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", + "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/00c479764cb9eca038fdaaaef108672d0bb0ed26...c0666c020044ac5b5181999ec153db1e7f6cd303", "previous_git_commit": "00c479764cb9eca038fdaaaef108672d0bb0ed26", - "previous_fingerprint": "29c69c2f30f261a26fff4793fd8ae44b9081def1d4bcaaa27b0fef0501d949e4", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:f66cc5c@sha256:29c69c2f30f261a26fff4793fd8ae44b9081def1d4bcaaa27b0fef0501d949e4", + "previous_fingerprint": "b2f51324efc1528e4dda57d235bdbc68d966e1ea23722d5d296f98eefbfc2676", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/languages-start-points:7e86fed@sha256:b2f51324efc1528e4dda57d235bdbc68d966e1ea23722d5d296f98eefbfc2676", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/00c479764cb9eca038fdaaaef108672d0bb0ed26", - "previous_trail_name": "web-29c69c2f30f261a26fff4793fd8ae44b9081def1d4bcaaa27b0fef0501d949e4", - "previous_template_reference_name": "web" + "previous_trail_name": "languages-start-points-b2f51324efc1528e4dda57d235bdbc68d966e1ea23722d5d296f98eefbfc2676", + "previous_template_reference_name": "languages-start-points" }, - "commit_lead_time": 1392433.0, + "commit_lead_time": -75688.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", - "template_reference_name": "web", - "git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", + "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", + "template_reference_name": "languages-start-points", + "git_commit": "c0666c020044ac5b5181999ec153db1e7f6cd303", + "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303", "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": "c0666c020044ac5b5181999ec153db1e7f6cd303", + "message": "Drop lone use of = separator on Kosli CLI boolean flag", "author": "JonJagger ", "branch": "main", - "timestamp": 1783850974.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7" + "timestamp": 1785316951.0, + "url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e?artifact_id=2839b032-94fd-484c-91fa-37aaecfc", + "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b?artifact_id=2ae63760-e6dc-4062-b27b-2cf67090", "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/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7...35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", + "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7...c0666c020044ac5b5181999ec153db1e7f6cd303", "previous_git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "previous_fingerprint": "0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:3f0b997@sha256:0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972", + "previous_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": "web-0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972", - "previous_template_reference_name": "web" + "previous_trail_name": "languages-start-points-f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418", + "previous_template_reference_name": "languages-start-points" }, - "commit_lead_time": 1392433.0, + "commit_lead_time": -75688.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] } ], "ecs_context": { - "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/4984e4ce7a34424585623c1a67da8c6d", + "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/differ:1b7ea87@sha256:c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:19f8734@sha256:8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", "compliant": true, "deployments": [], "policy_decisions": [ @@ -1542,8 +1810,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "differ-ci", - "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320", + "flow_name": "runner-ci", + "trail_name": "19f873464a01f28ecd588504ffe03529119d6297", "artifact_status": null } }, @@ -1551,23 +1819,23 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-31", + "trail_name": "promotion-one-137", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", "artifact_status": null } } @@ -1587,8 +1855,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "differ-ci", - "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320", + "flow_name": "runner-ci", + "trail_name": "19f873464a01f28ecd588504ffe03529119d6297", "artifact_status": "COMPLIANT" } }, @@ -1596,23 +1864,23 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-31", + "trail_name": "promotion-one-137", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", "artifact_status": "COMPLIANT" } } @@ -1637,8 +1905,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "differ-ci", - "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320", + "flow_name": "runner-ci", + "trail_name": "19f873464a01f28ecd588504ffe03529119d6297", "artifact_status": null } }, @@ -1646,23 +1914,23 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-31", + "trail_name": "promotion-one-137", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", "artifact_status": null } } @@ -1689,8 +1957,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "differ-ci", - "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320", + "flow_name": "runner-ci", + "trail_name": "19f873464a01f28ecd588504ffe03529119d6297", "artifact_status": null } }, @@ -1698,23 +1966,23 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-31", + "trail_name": "promotion-one-137", "artifact_status": null } }, { "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", "artifact_status": null } }, { "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", "artifact_status": null } } @@ -1734,8 +2002,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "differ-ci", - "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320", + "flow_name": "runner-ci", + "trail_name": "19f873464a01f28ecd588504ffe03529119d6297", "artifact_status": "COMPLIANT" } }, @@ -1743,23 +2011,23 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-31", + "trail_name": "promotion-one-137", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", "artifact_status": "COMPLIANT" } } @@ -1784,8 +2052,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "differ-ci", - "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320", + "flow_name": "runner-ci", + "trail_name": "19f873464a01f28ecd588504ffe03529119d6297", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -1794,7 +2062,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-31", + "trail_name": "promotion-one-137", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -1802,8 +2070,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -1811,8 +2079,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -1840,8 +2108,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "differ-ci", - "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320", + "flow_name": "runner-ci", + "trail_name": "19f873464a01f28ecd588504ffe03529119d6297", "artifact_status": null } }, @@ -1849,23 +2117,23 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-31", + "trail_name": "promotion-one-137", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", "artifact_status": null } } @@ -1885,8 +2153,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "differ-ci", - "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320", + "flow_name": "runner-ci", + "trail_name": "19f873464a01f28ecd588504ffe03529119d6297", "artifact_status": "COMPLIANT" } }, @@ -1894,23 +2162,23 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-31", + "trail_name": "promotion-one-137", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", "artifact_status": "COMPLIANT" } } @@ -1935,8 +2203,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "differ-ci", - "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320", + "flow_name": "runner-ci", + "trail_name": "19f873464a01f28ecd588504ffe03529119d6297", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -1945,25 +2213,25 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-31", + "trail_name": "promotion-one-137", "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-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", "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": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -1991,8 +2259,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "differ-ci", - "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320", + "flow_name": "runner-ci", + "trail_name": "19f873464a01f28ecd588504ffe03529119d6297", "artifact_status": null } }, @@ -2000,23 +2268,23 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-31", + "trail_name": "promotion-one-137", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", "artifact_status": null } } @@ -2036,8 +2304,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "differ-ci", - "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320", + "flow_name": "runner-ci", + "trail_name": "19f873464a01f28ecd588504ffe03529119d6297", "artifact_status": "COMPLIANT" } }, @@ -2045,23 +2313,23 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-31", + "trail_name": "promotion-one-137", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", "artifact_status": "COMPLIANT" } } @@ -2086,8 +2354,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "differ-ci", - "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320", + "flow_name": "runner-ci", + "trail_name": "19f873464a01f28ecd588504ffe03529119d6297", "artifact_status": null } }, @@ -2095,23 +2363,23 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-31", + "trail_name": "promotion-one-137", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", "artifact_status": null } } @@ -2138,8 +2406,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "differ-ci", - "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320", + "flow_name": "runner-ci", + "trail_name": "19f873464a01f28ecd588504ffe03529119d6297", "artifact_status": null } }, @@ -2147,23 +2415,23 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-31", + "trail_name": "promotion-one-137", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", "artifact_status": null } } @@ -2189,8 +2457,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "differ-ci", - "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320", + "flow_name": "runner-ci", + "trail_name": "19f873464a01f28ecd588504ffe03529119d6297", "artifact_status": "COMPLIANT" } }, @@ -2198,23 +2466,23 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-31", + "trail_name": "promotion-one-137", "artifact_status": "COMPLIANT" } }, { - "type": "rule_satisfied", + "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", "artifact_status": "COMPLIANT" } }, { - "type": "rule_not_applicable", + "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", "artifact_status": "COMPLIANT" } } @@ -2225,167 +2493,169 @@ kosli get snapshot aws-prod --output=json } ], "reasons_for_incompliance": [], - "fingerprint": "c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", + "fingerprint": "8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", "creationTimestamp": [ - 1785241593 + 1785138608, + 1785138608, + 1785138609 ], "pods": null, "annotation": { - "type": "unchanged", - "was": 1, - "now": 1 + "type": "updated-provenance", + "was": 3, + "now": 3 }, - "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", + "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/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", + "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/differ/commit/335ddfa139708c37908dd594a0502bc6d88f8615", - "previous_trail_name": "335ddfa139708c37908dd594a0502bc6d88f8615", - "previous_template_reference_name": "differ" + "previous_git_commit_url": "https://github.com/cyber-dojo/runner/commit/6dac3ae5d85ee8e6040d8badd5c2eede44bc8a6b", + "previous_trail_name": "6dac3ae5d85ee8e6040d8badd5c2eede44bc8a6b", + "previous_template_reference_name": "runner" }, - "commit_lead_time": 929480.0, + "commit_lead_time": 85840.0, "flows": [ { - "flow_name": "differ-ci", - "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320", - "template_reference_name": "differ", - "git_commit": "1b7ea87a174a1a290600b469dc1029ec4c974320", - "commit_url": "https://github.com/cyber-dojo/differ/commit/1b7ea87a174a1a290600b469dc1029ec4c974320", + "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": "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 ", + "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": 1784312113.0, - "url": "https://github.com/cyber-dojo/differ/commit/1b7ea87a174a1a290600b469dc1029ec4c974320" + "timestamp": 1785052768.0, + "url": "https://github.com/cyber-dojo/runner/commit/19f873464a01f28ecd588504ffe03529119d6297" }, - "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", + "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/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", + "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/differ/commit/335ddfa139708c37908dd594a0502bc6d88f8615", - "previous_trail_name": "335ddfa139708c37908dd594a0502bc6d88f8615", - "previous_template_reference_name": "differ" + "previous_git_commit_url": "https://github.com/cyber-dojo/runner/commit/6dac3ae5d85ee8e6040d8badd5c2eede44bc8a6b", + "previous_trail_name": "6dac3ae5d85ee8e6040d8badd5c2eede44bc8a6b", + "previous_template_reference_name": "runner" }, - "commit_lead_time": 929480.0, + "commit_lead_time": 85840.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "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", + "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": "81c216a55b2cb1787645e699ceaceca868cad253", - "message": "Add spooler service name to promote_one.yml", + "sha1": "76325d840dc66e1c84743725e17de05a16616419", + "message": "Add emoji prefix to workflow names", "author": "JonJagger ", "branch": "main", - "timestamp": 1785143054.0, - "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253" + "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/c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12?artifact_id=43c3d8db-588e-495b-b5ba-097d8eae", + "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/76325d840dc66e1c84743725e17de05a16616419...81c216a55b2cb1787645e699ceaceca868cad253", + "diff_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/compare/76325d840dc66e1c84743725e17de05a16616419...76325d840dc66e1c84743725e17de05a16616419", "previous_git_commit": "76325d840dc66e1c84743725e17de05a16616419", - "previous_fingerprint": "c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/differ:335ddfa@sha256:c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f", + "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/76325d840dc66e1c84743725e17de05a16616419", - "previous_trail_name": "promotion-one-128", - "previous_template_reference_name": "differ" + "previous_trail_name": "promotion-one-136", + "previous_template_reference_name": "runner" }, - "commit_lead_time": 98539.0, + "commit_lead_time": 1285907.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", - "template_reference_name": "differ", - "git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "template_reference_name": "runner", + "git_commit": "c0666c020044ac5b5181999ec153db1e7f6cd303", + "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303", "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": "c0666c020044ac5b5181999ec153db1e7f6cd303", + "message": "Drop lone use of = separator on Kosli CLI boolean flag", "author": "JonJagger ", "branch": "main", - "timestamp": 1783850974.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7" + "timestamp": 1785316951.0, + "url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12?artifact_id=47c9bbdc-a20e-4cbc-9e22-0290f20a", - "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=58e670d1-a803-43fe-88b6-2c46fffc", + "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": "902ec7af03407049ac6e5ef713146d518bbffd9d99cd28715fa0df973e809b7b", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/differ:981dcfc@sha256:902ec7af03407049ac6e5ef713146d518bbffd9d99cd28715fa0df973e809b7b", + "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7...c0666c020044ac5b5181999ec153db1e7f6cd303", + "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": "differ-902ec7af03407049ac6e5ef713146d518bbffd9d99cd28715fa0df973e809b7b", - "previous_template_reference_name": "differ" + "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": 1390619.0, + "commit_lead_time": -178343.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { - "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", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "template_reference_name": "runner", + "git_commit": "c0666c020044ac5b5181999ec153db1e7f6cd303", + "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303", "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": "c0666c020044ac5b5181999ec153db1e7f6cd303", + "message": "Drop lone use of = separator on Kosli CLI boolean flag", "author": "JonJagger ", "branch": "main", - "timestamp": 1783850974.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7" + "timestamp": 1785316951.0, + "url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12?artifact_id=98d3f3c7-50cd-40a9-9735-497bed4c", - "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=5a04d332-d146-4cce-8967-aaa5b043", + "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/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7...35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "previous_git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "previous_fingerprint": "c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/differ:335ddfa@sha256:c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f", + "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/00c479764cb9eca038fdaaaef108672d0bb0ed26...c0666c020044ac5b5181999ec153db1e7f6cd303", + "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/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "previous_trail_name": "differ-c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f", - "previous_template_reference_name": "differ" + "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": 1390619.0, + "commit_lead_time": -178343.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] } ], "ecs_context": { - "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/7cbb5625fe464da7851d6c4509ff0e9c", + "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/languages-start-points:6a7f7be@sha256:b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:2779354@sha256:af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", "compliant": true, "deployments": [], "policy_decisions": [ @@ -2407,8 +2677,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "languages-start-points-ci", - "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23", + "flow_name": "web-ci", + "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1", "artifact_status": null } }, @@ -2416,23 +2686,23 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-31", + "trail_name": "promotion-one-143", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", "artifact_status": null } } @@ -2452,8 +2722,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "languages-start-points-ci", - "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23", + "flow_name": "web-ci", + "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1", "artifact_status": "COMPLIANT" } }, @@ -2461,23 +2731,23 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-31", + "trail_name": "promotion-one-143", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", "artifact_status": "COMPLIANT" } } @@ -2502,8 +2772,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "languages-start-points-ci", - "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23", + "flow_name": "web-ci", + "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1", "artifact_status": null } }, @@ -2511,23 +2781,23 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-31", + "trail_name": "promotion-one-143", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", "artifact_status": null } } @@ -2554,8 +2824,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "languages-start-points-ci", - "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23", + "flow_name": "web-ci", + "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1", "artifact_status": null } }, @@ -2563,23 +2833,23 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-31", + "trail_name": "promotion-one-143", "artifact_status": null } }, { "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", "artifact_status": null } }, { "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", "artifact_status": null } } @@ -2599,8 +2869,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "languages-start-points-ci", - "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23", + "flow_name": "web-ci", + "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1", "artifact_status": "COMPLIANT" } }, @@ -2608,23 +2878,23 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-31", + "trail_name": "promotion-one-143", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", "artifact_status": "COMPLIANT" } } @@ -2649,8 +2919,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "languages-start-points-ci", - "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23", + "flow_name": "web-ci", + "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -2659,7 +2929,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-31", + "trail_name": "promotion-one-143", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -2667,8 +2937,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-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -2676,8 +2946,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -2705,8 +2975,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "languages-start-points-ci", - "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23", + "flow_name": "web-ci", + "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1", "artifact_status": null } }, @@ -2714,23 +2984,23 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-31", + "trail_name": "promotion-one-143", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", "artifact_status": null } } @@ -2750,8 +3020,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "languages-start-points-ci", - "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23", + "flow_name": "web-ci", + "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1", "artifact_status": "COMPLIANT" } }, @@ -2759,23 +3029,23 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-31", + "trail_name": "promotion-one-143", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", "artifact_status": "COMPLIANT" } } @@ -2800,8 +3070,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "languages-start-points-ci", - "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23", + "flow_name": "web-ci", + "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -2810,25 +3080,25 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-31", + "trail_name": "promotion-one-143", "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": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", "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": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -2856,8 +3126,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "languages-start-points-ci", - "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23", + "flow_name": "web-ci", + "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1", "artifact_status": null } }, @@ -2865,23 +3135,23 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-31", + "trail_name": "promotion-one-143", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", "artifact_status": null } } @@ -2901,8 +3171,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "languages-start-points-ci", - "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23", + "flow_name": "web-ci", + "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1", "artifact_status": "COMPLIANT" } }, @@ -2910,23 +3180,23 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-31", + "trail_name": "promotion-one-143", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", "artifact_status": "COMPLIANT" } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", "artifact_status": "COMPLIANT" } } @@ -2951,8 +3221,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "languages-start-points-ci", - "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23", + "flow_name": "web-ci", + "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1", "artifact_status": null } }, @@ -2960,23 +3230,23 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-31", + "trail_name": "promotion-one-143", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", "artifact_status": null } } @@ -3003,32 +3273,32 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "languages-start-points-ci", - "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23", - "artifact_status": null + "flow_name": "web-ci", + "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1", + "artifact_status": null } }, { "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-31", + "trail_name": "promotion-one-143", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", "artifact_status": null } }, { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", "artifact_status": null } } @@ -3054,8 +3324,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "languages-start-points-ci", - "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23", + "flow_name": "web-ci", + "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1", "artifact_status": "COMPLIANT" } }, @@ -3063,23 +3333,23 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "production-promotion", - "trail_name": "promote-all-31", + "trail_name": "promotion-one-143", "artifact_status": "COMPLIANT" } }, { - "type": "rule_satisfied", + "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", "artifact_status": "COMPLIANT" } }, { - "type": "rule_not_applicable", + "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", "artifact_status": "COMPLIANT" } } @@ -3090,69 +3360,71 @@ kosli get snapshot aws-prod --output=json } ], "reasons_for_incompliance": [], - "fingerprint": "b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", + "fingerprint": "af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", "creationTimestamp": [ - 1785241263 + 1785243407, + 1785243408, + 1785243412 ], "pods": null, "annotation": { "type": "unchanged", - "was": 1, - "now": 1 + "was": 3, + "now": 3 }, - "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", + "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/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", + "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/languages-start-points/commit/c6db342472238a7852b6ff31b04f9a6a6099f5cf", - "previous_trail_name": "c6db342472238a7852b6ff31b04f9a6a6099f5cf", - "previous_template_reference_name": "languages-start-points" + "previous_git_commit_url": "https://github.com/cyber-dojo/web/commit/aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f", + "previous_trail_name": "aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f", + "previous_template_reference_name": "web" }, - "commit_lead_time": 929088.0, + "commit_lead_time": 856.0, "flows": [ { - "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", + "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": "6a7f7be81022f7ed3fa8383f016b55af86e2af23", - "message": "Merge pull request #243 from cyber-dojo/add-drift-detection\n\nAdd periodic drift-detection workflow", + "sha1": "2779354a4fda0eeb90fd43f32211836d99f6bde1", + "message": "Add spooler env-vars for deployment (#389)", "author": "Jon Jagger ", "branch": "", - "timestamp": 1784312175.0, - "url": "https://github.com/cyber-dojo/languages-start-points/commit/6a7f7be81022f7ed3fa8383f016b55af86e2af23" + "timestamp": 1785242551.0, + "url": "https://github.com/cyber-dojo/web/commit/2779354a4fda0eeb90fd43f32211836d99f6bde1" }, - "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", + "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/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", + "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/languages-start-points/commit/c6db342472238a7852b6ff31b04f9a6a6099f5cf", - "previous_trail_name": "c6db342472238a7852b6ff31b04f9a6a6099f5cf", - "previous_template_reference_name": "languages-start-points" + "previous_git_commit_url": "https://github.com/cyber-dojo/web/commit/aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f", + "previous_trail_name": "aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f", + "previous_template_reference_name": "web" }, - "commit_lead_time": 929088.0, + "commit_lead_time": 856.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "production-promotion", - "trail_name": "promote-all-31", - "template_reference_name": "languages-start-points", + "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": { @@ -3163,94 +3435,94 @@ 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/b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b?artifact_id=a1ab8675-9b0a-485b-be6a-c153fd4e", + "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/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", + "diff_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/compare/81c216a55b2cb1787645e699ceaceca868cad253...81c216a55b2cb1787645e699ceaceca868cad253", + "previous_git_commit": "81c216a55b2cb1787645e699ceaceca868cad253", + "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/d7e31ce0207b766140ae689f38625da4374acf87", - "previous_trail_name": "promote-all-30", - "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-142", + "previous_template_reference_name": "web" }, - "commit_lead_time": 98209.0, + "commit_lead_time": 100353.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { - "flow_name": "snyk-aws-prod-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", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", + "template_reference_name": "web", + "git_commit": "c0666c020044ac5b5181999ec153db1e7f6cd303", + "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303", "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": "c0666c020044ac5b5181999ec153db1e7f6cd303", + "message": "Drop lone use of = separator on Kosli CLI boolean flag", "author": "JonJagger ", "branch": "main", - "timestamp": 1783850974.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7" + "timestamp": 1785316951.0, + "url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b?artifact_id=a99c6980-a83f-4bbd-84c5-133f25e6", - "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/af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e?artifact_id=50be4d35-101d-40bf-9b50-e737a284", + "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": "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/snyk-scanning/compare/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7...c0666c020044ac5b5181999ec153db1e7f6cd303", + "previous_git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", + "previous_fingerprint": "0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:3f0b997@sha256:0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/00c479764cb9eca038fdaaaef108672d0bb0ed26", - "previous_trail_name": "languages-start-points-b2f51324efc1528e4dda57d235bdbc68d966e1ea23722d5d296f98eefbfc2676", - "previous_template_reference_name": "languages-start-points" + "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", + "previous_trail_name": "web-0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972", + "previous_template_reference_name": "web" }, - "commit_lead_time": 1390289.0, + "commit_lead_time": -73544.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { - "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", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", + "template_reference_name": "web", + "git_commit": "c0666c020044ac5b5181999ec153db1e7f6cd303", + "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303", "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": "c0666c020044ac5b5181999ec153db1e7f6cd303", + "message": "Drop lone use of = separator on Kosli CLI boolean flag", "author": "JonJagger ", "branch": "main", - "timestamp": 1783850974.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7" + "timestamp": 1785316951.0, + "url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b?artifact_id=22ae48bf-b72d-4142-bdd0-46739166", - "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/af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e?artifact_id=dbbe15a4-98b9-4835-9f88-a6aa4da1", + "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/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", + "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/00c479764cb9eca038fdaaaef108672d0bb0ed26...c0666c020044ac5b5181999ec153db1e7f6cd303", + "previous_git_commit": "00c479764cb9eca038fdaaaef108672d0bb0ed26", + "previous_fingerprint": "29c69c2f30f261a26fff4793fd8ae44b9081def1d4bcaaa27b0fef0501d949e4", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:f66cc5c@sha256:29c69c2f30f261a26fff4793fd8ae44b9081def1d4bcaaa27b0fef0501d949e4", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "previous_trail_name": "languages-start-points-f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418", - "previous_template_reference_name": "languages-start-points" + "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/00c479764cb9eca038fdaaaef108672d0bb0ed26", + "previous_trail_name": "web-29c69c2f30f261a26fff4793fd8ae44b9081def1d4bcaaa27b0fef0501d949e4", + "previous_template_reference_name": "web" }, - "commit_lead_time": 1390289.0, + "commit_lead_time": -73544.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] } ], "ecs_context": { - "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/42e358b2bd144b99b7f4b93382dddc90", + "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/nginx:a2e4638@sha256:c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/differ:1b7ea87@sha256:c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", "compliant": true, "deployments": [], "policy_decisions": [ @@ -3272,8 +3544,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "nginx-ci", - "trail_name": "a2e4638aaa102446b8a6d1d519c5bc007e24f087", + "flow_name": "differ-ci", + "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320", "artifact_status": null } }, @@ -3288,16 +3560,16 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", + "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": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", "artifact_status": null } } @@ -3317,8 +3589,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "nginx-ci", - "trail_name": "a2e4638aaa102446b8a6d1d519c5bc007e24f087", + "flow_name": "differ-ci", + "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320", "artifact_status": "COMPLIANT" } }, @@ -3333,16 +3605,16 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", + "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": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", "artifact_status": "COMPLIANT" } } @@ -3367,8 +3639,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "nginx-ci", - "trail_name": "a2e4638aaa102446b8a6d1d519c5bc007e24f087", + "flow_name": "differ-ci", + "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320", "artifact_status": null } }, @@ -3383,16 +3655,16 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", + "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": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", "artifact_status": null } } @@ -3419,8 +3691,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "nginx-ci", - "trail_name": "a2e4638aaa102446b8a6d1d519c5bc007e24f087", + "flow_name": "differ-ci", + "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320", "artifact_status": null } }, @@ -3435,16 +3707,16 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", + "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": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", "artifact_status": null } } @@ -3464,8 +3736,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "nginx-ci", - "trail_name": "a2e4638aaa102446b8a6d1d519c5bc007e24f087", + "flow_name": "differ-ci", + "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320", "artifact_status": "COMPLIANT" } }, @@ -3480,16 +3752,16 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", + "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": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", "artifact_status": "COMPLIANT" } } @@ -3514,8 +3786,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "nginx-ci", - "trail_name": "a2e4638aaa102446b8a6d1d519c5bc007e24f087", + "flow_name": "differ-ci", + "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -3532,8 +3804,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -3541,8 +3813,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -3570,8 +3842,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "nginx-ci", - "trail_name": "a2e4638aaa102446b8a6d1d519c5bc007e24f087", + "flow_name": "differ-ci", + "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320", "artifact_status": null } }, @@ -3586,16 +3858,16 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", + "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": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", "artifact_status": null } } @@ -3615,8 +3887,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "nginx-ci", - "trail_name": "a2e4638aaa102446b8a6d1d519c5bc007e24f087", + "flow_name": "differ-ci", + "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320", "artifact_status": "COMPLIANT" } }, @@ -3631,16 +3903,16 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", + "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": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", "artifact_status": "COMPLIANT" } } @@ -3665,8 +3937,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "nginx-ci", - "trail_name": "a2e4638aaa102446b8a6d1d519c5bc007e24f087", + "flow_name": "differ-ci", + "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -3681,19 +3953,19 @@ kosli get snapshot aws-prod --output=json } }, { - "type": "rule_satisfied", + "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", "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": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -3721,8 +3993,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "nginx-ci", - "trail_name": "a2e4638aaa102446b8a6d1d519c5bc007e24f087", + "flow_name": "differ-ci", + "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320", "artifact_status": null } }, @@ -3737,16 +4009,16 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", + "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": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", "artifact_status": null } } @@ -3766,8 +4038,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "nginx-ci", - "trail_name": "a2e4638aaa102446b8a6d1d519c5bc007e24f087", + "flow_name": "differ-ci", + "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320", "artifact_status": "COMPLIANT" } }, @@ -3782,16 +4054,16 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", + "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": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", "artifact_status": "COMPLIANT" } } @@ -3816,8 +4088,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "nginx-ci", - "trail_name": "a2e4638aaa102446b8a6d1d519c5bc007e24f087", + "flow_name": "differ-ci", + "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320", "artifact_status": null } }, @@ -3832,16 +4104,16 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", + "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": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", "artifact_status": null } } @@ -3868,8 +4140,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "nginx-ci", - "trail_name": "a2e4638aaa102446b8a6d1d519c5bc007e24f087", + "flow_name": "differ-ci", + "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320", "artifact_status": null } }, @@ -3884,16 +4156,16 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", + "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": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", "artifact_status": null } } @@ -3919,8 +4191,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "nginx-ci", - "trail_name": "a2e4638aaa102446b8a6d1d519c5bc007e24f087", + "flow_name": "differ-ci", + "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320", "artifact_status": "COMPLIANT" } }, @@ -3933,18 +4205,18 @@ kosli get snapshot aws-prod --output=json } }, { - "type": "rule_satisfied", + "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", "artifact_status": "COMPLIANT" } }, { - "type": "rule_not_applicable", + "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", "artifact_status": "COMPLIANT" } } @@ -3955,9 +4227,9 @@ kosli get snapshot aws-prod --output=json } ], "reasons_for_incompliance": [], - "fingerprint": "c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", + "fingerprint": "c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", "creationTimestamp": [ - 1785241259 + 1785241593 ], "pods": null, "annotation": { @@ -3965,59 +4237,59 @@ kosli get snapshot aws-prod --output=json "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", + "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/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", + "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/nginx/commit/7ba8029e0cb5d4c8fa51360f59b5cb8714a60d47", - "previous_trail_name": "7ba8029e0cb5d4c8fa51360f59b5cb8714a60d47", - "previous_template_reference_name": "nginx" + "previous_git_commit_url": "https://github.com/cyber-dojo/differ/commit/335ddfa139708c37908dd594a0502bc6d88f8615", + "previous_trail_name": "335ddfa139708c37908dd594a0502bc6d88f8615", + "previous_template_reference_name": "differ" }, - "commit_lead_time": 929056.0, + "commit_lead_time": 929480.0, "flows": [ { - "flow_name": "nginx-ci", - "trail_name": "a2e4638aaa102446b8a6d1d519c5bc007e24f087", - "template_reference_name": "nginx", - "git_commit": "a2e4638aaa102446b8a6d1d519c5bc007e24f087", - "commit_url": "https://github.com/cyber-dojo/nginx/commit/a2e4638aaa102446b8a6d1d519c5bc007e24f087", + "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": "a2e4638aaa102446b8a6d1d519c5bc007e24f087", - "message": "Merge pull request #160 from cyber-dojo/add-drift-detection\n\nAdd periodic drift-detection workflow", - "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": 1784312203.0, - "url": "https://github.com/cyber-dojo/nginx/commit/a2e4638aaa102446b8a6d1d519c5bc007e24f087" + "timestamp": 1784312113.0, + "url": "https://github.com/cyber-dojo/differ/commit/1b7ea87a174a1a290600b469dc1029ec4c974320" }, - "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", + "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/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", + "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/nginx/commit/7ba8029e0cb5d4c8fa51360f59b5cb8714a60d47", - "previous_trail_name": "7ba8029e0cb5d4c8fa51360f59b5cb8714a60d47", - "previous_template_reference_name": "nginx" + "previous_git_commit_url": "https://github.com/cyber-dojo/differ/commit/335ddfa139708c37908dd594a0502bc6d88f8615", + "previous_trail_name": "335ddfa139708c37908dd594a0502bc6d88f8615", + "previous_template_reference_name": "differ" }, - "commit_lead_time": 929056.0, + "commit_lead_time": 929480.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "production-promotion", "trail_name": "promote-all-31", - "template_reference_name": "nginx", + "template_reference_name": "differ", "git_commit": "81c216a55b2cb1787645e699ceaceca868cad253", "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253", "git_commit_info": { @@ -4028,94 +4300,94 @@ 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/c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053?artifact_id=97e8ce65-bdc4-4dbe-895b-bc45fe65", + "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/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_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-127", - "previous_template_reference_name": "nginx" + "previous_trail_name": "promotion-one-128", + "previous_template_reference_name": "differ" }, - "commit_lead_time": 98205.0, + "commit_lead_time": 98539.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", - "template_reference_name": "nginx", - "git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", + "template_reference_name": "differ", + "git_commit": "c0666c020044ac5b5181999ec153db1e7f6cd303", + "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303", "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": "c0666c020044ac5b5181999ec153db1e7f6cd303", + "message": "Drop lone use of = separator on Kosli CLI boolean flag", "author": "JonJagger ", "branch": "main", - "timestamp": 1783850974.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7" + "timestamp": 1785316951.0, + "url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053?artifact_id=e05b691d-e31d-4d54-831f-2e0eaba9", - "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=5526b4ca-0a09-47b2-93f4-989c0ba7", + "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": "b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:7065268@sha256:b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8", + "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7...c0666c020044ac5b5181999ec153db1e7f6cd303", + "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": "nginx-b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8", - "previous_template_reference_name": "nginx" + "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": 1390285.0, + "commit_lead_time": -75358.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { - "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", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", + "template_reference_name": "differ", + "git_commit": "c0666c020044ac5b5181999ec153db1e7f6cd303", + "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303", "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": "c0666c020044ac5b5181999ec153db1e7f6cd303", + "message": "Drop lone use of = separator on Kosli CLI boolean flag", "author": "JonJagger ", "branch": "main", - "timestamp": 1783850974.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7" + "timestamp": 1785316951.0, + "url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053?artifact_id=911766a1-d4e4-4bf5-8576-4407166a", - "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/c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12?artifact_id=b872b4c5-e209-49b6-ade4-49d9e968", + "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/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7...35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "previous_git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "previous_fingerprint": "3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:7ba8029@sha256:3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5", + "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/00c479764cb9eca038fdaaaef108672d0bb0ed26...c0666c020044ac5b5181999ec153db1e7f6cd303", + "previous_git_commit": "00c479764cb9eca038fdaaaef108672d0bb0ed26", + "previous_fingerprint": "902ec7af03407049ac6e5ef713146d518bbffd9d99cd28715fa0df973e809b7b", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/differ:981dcfc@sha256:902ec7af03407049ac6e5ef713146d518bbffd9d99cd28715fa0df973e809b7b", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "previous_trail_name": "nginx-3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5", - "previous_template_reference_name": "nginx" + "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/00c479764cb9eca038fdaaaef108672d0bb0ed26", + "previous_trail_name": "differ-902ec7af03407049ac6e5ef713146d518bbffd9d99cd28715fa0df973e809b7b", + "previous_template_reference_name": "differ" }, - "commit_lead_time": 1390285.0, + "commit_lead_time": -75358.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] } ], "ecs_context": { - "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/06bf724dfec9470fa778682d4fdfab94", + "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/dashboard:0fb0be4@sha256:c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:a2e4638@sha256:c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", "compliant": true, "deployments": [], "policy_decisions": [ @@ -4137,8 +4409,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "dashboard-ci", - "trail_name": "0fb0be439480821efb926a5079e39ce5941eaa48", + "flow_name": "nginx-ci", + "trail_name": "a2e4638aaa102446b8a6d1d519c5bc007e24f087", "artifact_status": null } }, @@ -4153,16 +4425,16 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", + "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": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", "artifact_status": null } } @@ -4182,8 +4454,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "dashboard-ci", - "trail_name": "0fb0be439480821efb926a5079e39ce5941eaa48", + "flow_name": "nginx-ci", + "trail_name": "a2e4638aaa102446b8a6d1d519c5bc007e24f087", "artifact_status": "COMPLIANT" } }, @@ -4198,16 +4470,16 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", + "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": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", "artifact_status": "COMPLIANT" } } @@ -4232,8 +4504,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "dashboard-ci", - "trail_name": "0fb0be439480821efb926a5079e39ce5941eaa48", + "flow_name": "nginx-ci", + "trail_name": "a2e4638aaa102446b8a6d1d519c5bc007e24f087", "artifact_status": null } }, @@ -4248,16 +4520,16 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", + "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": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", "artifact_status": null } } @@ -4284,8 +4556,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "dashboard-ci", - "trail_name": "0fb0be439480821efb926a5079e39ce5941eaa48", + "flow_name": "nginx-ci", + "trail_name": "a2e4638aaa102446b8a6d1d519c5bc007e24f087", "artifact_status": null } }, @@ -4300,16 +4572,16 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", + "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": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", "artifact_status": null } } @@ -4329,8 +4601,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "dashboard-ci", - "trail_name": "0fb0be439480821efb926a5079e39ce5941eaa48", + "flow_name": "nginx-ci", + "trail_name": "a2e4638aaa102446b8a6d1d519c5bc007e24f087", "artifact_status": "COMPLIANT" } }, @@ -4345,16 +4617,16 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", + "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": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", "artifact_status": "COMPLIANT" } } @@ -4379,8 +4651,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "dashboard-ci", - "trail_name": "0fb0be439480821efb926a5079e39ce5941eaa48", + "flow_name": "nginx-ci", + "trail_name": "a2e4638aaa102446b8a6d1d519c5bc007e24f087", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -4397,8 +4669,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -4406,8 +4678,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -4435,8 +4707,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "dashboard-ci", - "trail_name": "0fb0be439480821efb926a5079e39ce5941eaa48", + "flow_name": "nginx-ci", + "trail_name": "a2e4638aaa102446b8a6d1d519c5bc007e24f087", "artifact_status": null } }, @@ -4451,16 +4723,16 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", + "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": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", "artifact_status": null } } @@ -4480,8 +4752,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "dashboard-ci", - "trail_name": "0fb0be439480821efb926a5079e39ce5941eaa48", + "flow_name": "nginx-ci", + "trail_name": "a2e4638aaa102446b8a6d1d519c5bc007e24f087", "artifact_status": "COMPLIANT" } }, @@ -4496,16 +4768,16 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", + "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": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", "artifact_status": "COMPLIANT" } } @@ -4530,8 +4802,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "dashboard-ci", - "trail_name": "0fb0be439480821efb926a5079e39ce5941eaa48", + "flow_name": "nginx-ci", + "trail_name": "a2e4638aaa102446b8a6d1d519c5bc007e24f087", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -4546,19 +4818,19 @@ kosli get snapshot aws-prod --output=json } }, { - "type": "rule_satisfied", + "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", "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": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -4586,8 +4858,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "dashboard-ci", - "trail_name": "0fb0be439480821efb926a5079e39ce5941eaa48", + "flow_name": "nginx-ci", + "trail_name": "a2e4638aaa102446b8a6d1d519c5bc007e24f087", "artifact_status": null } }, @@ -4602,16 +4874,16 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", + "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": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", "artifact_status": null } } @@ -4631,8 +4903,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "dashboard-ci", - "trail_name": "0fb0be439480821efb926a5079e39ce5941eaa48", + "flow_name": "nginx-ci", + "trail_name": "a2e4638aaa102446b8a6d1d519c5bc007e24f087", "artifact_status": "COMPLIANT" } }, @@ -4647,16 +4919,16 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", + "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": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", "artifact_status": "COMPLIANT" } } @@ -4681,8 +4953,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "dashboard-ci", - "trail_name": "0fb0be439480821efb926a5079e39ce5941eaa48", + "flow_name": "nginx-ci", + "trail_name": "a2e4638aaa102446b8a6d1d519c5bc007e24f087", "artifact_status": null } }, @@ -4697,16 +4969,16 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", + "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": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", "artifact_status": null } } @@ -4733,8 +5005,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "dashboard-ci", - "trail_name": "0fb0be439480821efb926a5079e39ce5941eaa48", + "flow_name": "nginx-ci", + "trail_name": "a2e4638aaa102446b8a6d1d519c5bc007e24f087", "artifact_status": null } }, @@ -4749,16 +5021,16 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", + "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": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", "artifact_status": null } } @@ -4784,8 +5056,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "dashboard-ci", - "trail_name": "0fb0be439480821efb926a5079e39ce5941eaa48", + "flow_name": "nginx-ci", + "trail_name": "a2e4638aaa102446b8a6d1d519c5bc007e24f087", "artifact_status": "COMPLIANT" } }, @@ -4798,18 +5070,18 @@ kosli get snapshot aws-prod --output=json } }, { - "type": "rule_satisfied", + "type": "rule_not_applicable", "context": { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", "artifact_status": "COMPLIANT" } }, { - "type": "rule_not_applicable", + "type": "rule_satisfied", "context": { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", "artifact_status": "COMPLIANT" } } @@ -4820,9 +5092,9 @@ kosli get snapshot aws-prod --output=json } ], "reasons_for_incompliance": [], - "fingerprint": "c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", + "fingerprint": "c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", "creationTimestamp": [ - 1785241255 + 1785241259 ], "pods": null, "annotation": { @@ -4830,59 +5102,59 @@ kosli get snapshot aws-prod --output=json "was": 1, "now": 1 }, - "flow_name": "dashboard-ci", - "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", + "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/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", + "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/dashboard/commit/5407827a19ff32c8d0e7ff2e8f18665e86e64f01", - "previous_trail_name": "5407827a19ff32c8d0e7ff2e8f18665e86e64f01", - "previous_template_reference_name": "dashboard" + "previous_git_commit_url": "https://github.com/cyber-dojo/nginx/commit/7ba8029e0cb5d4c8fa51360f59b5cb8714a60d47", + "previous_trail_name": "7ba8029e0cb5d4c8fa51360f59b5cb8714a60d47", + "previous_template_reference_name": "nginx" }, - "commit_lead_time": 527719.0, + "commit_lead_time": 929056.0, "flows": [ { - "flow_name": "dashboard-ci", - "trail_name": "0fb0be439480821efb926a5079e39ce5941eaa48", - "template_reference_name": "dashboard", - "git_commit": "0fb0be439480821efb926a5079e39ce5941eaa48", - "commit_url": "https://github.com/cyber-dojo/dashboard/commit/0fb0be439480821efb926a5079e39ce5941eaa48", + "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": "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) ", + "sha1": "a2e4638aaa102446b8a6d1d519c5bc007e24f087", + "message": "Merge pull request #160 from cyber-dojo/add-drift-detection\n\nAdd periodic drift-detection workflow", "author": "Jon Jagger ", "branch": "", - "timestamp": 1784713536.0, - "url": "https://github.com/cyber-dojo/dashboard/commit/0fb0be439480821efb926a5079e39ce5941eaa48" + "timestamp": 1784312203.0, + "url": "https://github.com/cyber-dojo/nginx/commit/a2e4638aaa102446b8a6d1d519c5bc007e24f087" }, - "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", + "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/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", + "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/dashboard/commit/5407827a19ff32c8d0e7ff2e8f18665e86e64f01", - "previous_trail_name": "5407827a19ff32c8d0e7ff2e8f18665e86e64f01", - "previous_template_reference_name": "dashboard" + "previous_git_commit_url": "https://github.com/cyber-dojo/nginx/commit/7ba8029e0cb5d4c8fa51360f59b5cb8714a60d47", + "previous_trail_name": "7ba8029e0cb5d4c8fa51360f59b5cb8714a60d47", + "previous_template_reference_name": "nginx" }, - "commit_lead_time": 527719.0, + "commit_lead_time": 929056.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "production-promotion", "trail_name": "promote-all-31", - "template_reference_name": "dashboard", + "template_reference_name": "nginx", "git_commit": "81c216a55b2cb1787645e699ceaceca868cad253", "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253", "git_commit_info": { @@ -4893,94 +5165,94 @@ 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/c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98?artifact_id=6f9db8f1-d02e-42f1-a564-1da7f708", + "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/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_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/76325d840dc66e1c84743725e17de05a16616419", - "previous_trail_name": "promotion-one-131", - "previous_template_reference_name": "dashboard" + "previous_trail_name": "promotion-one-127", + "previous_template_reference_name": "nginx" }, - "commit_lead_time": 98201.0, + "commit_lead_time": 98205.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { - "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", - "template_reference_name": "dashboard", - "git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", + "flow_name": "snyk-aws-beta-per-artifact", + "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", + "template_reference_name": "nginx", + "git_commit": "c0666c020044ac5b5181999ec153db1e7f6cd303", + "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303", "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": "c0666c020044ac5b5181999ec153db1e7f6cd303", + "message": "Drop lone use of = separator on Kosli CLI boolean flag", "author": "JonJagger ", "branch": "main", - "timestamp": 1783850974.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7" + "timestamp": 1785316951.0, + "url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98?artifact_id=af7e18b8-ccc2-4807-8ef1-8d572a29", - "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=437edea4-88c8-42dc-b447-67da1b6c", + "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": "45513c642ba191052bde056d56eeba8b06b0346eb444ec0008bd59bc0581bb8c", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:87f560f@sha256:45513c642ba191052bde056d56eeba8b06b0346eb444ec0008bd59bc0581bb8c", + "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7...c0666c020044ac5b5181999ec153db1e7f6cd303", + "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/00c479764cb9eca038fdaaaef108672d0bb0ed26", - "previous_trail_name": "dashboard-45513c642ba191052bde056d56eeba8b06b0346eb444ec0008bd59bc0581bb8c", - "previous_template_reference_name": "dashboard" + "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": 1390281.0, + "commit_lead_time": -75692.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { - "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", - "template_reference_name": "dashboard", - "git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", + "flow_name": "snyk-aws-prod-per-artifact", + "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", + "template_reference_name": "nginx", + "git_commit": "c0666c020044ac5b5181999ec153db1e7f6cd303", + "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303", "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": "c0666c020044ac5b5181999ec153db1e7f6cd303", + "message": "Drop lone use of = separator on Kosli CLI boolean flag", "author": "JonJagger ", "branch": "main", - "timestamp": 1783850974.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7" + "timestamp": 1785316951.0, + "url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98?artifact_id=9ace06e0-2d46-41d9-a908-85b143a1", - "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/c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053?artifact_id=d9d87576-4965-49c4-aa11-f24aff09", + "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/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7...35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "previous_git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "previous_fingerprint": "d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:5407827@sha256:d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e", + "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/00c479764cb9eca038fdaaaef108672d0bb0ed26...c0666c020044ac5b5181999ec153db1e7f6cd303", + "previous_git_commit": "00c479764cb9eca038fdaaaef108672d0bb0ed26", + "previous_fingerprint": "b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:7065268@sha256:b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "previous_trail_name": "dashboard-d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e", - "previous_template_reference_name": "dashboard" + "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/00c479764cb9eca038fdaaaef108672d0bb0ed26", + "previous_trail_name": "nginx-b7ff2cf22c934716a4280f0450ae52fe822cda7fce7fc5488bf62853860cddc8", + "previous_template_reference_name": "nginx" }, - "commit_lead_time": 1390281.0, + "commit_lead_time": -75692.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] } ], "ecs_context": { - "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/c454b3320b2144ec988e1926eb8538b2", + "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/exercises-start-points:258b6d0@sha256:c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:0fb0be4@sha256:c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", "compliant": true, "deployments": [], "policy_decisions": [ @@ -5002,8 +5274,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "exercises-start-points-ci", - "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", + "flow_name": "dashboard-ci", + "trail_name": "0fb0be439480821efb926a5079e39ce5941eaa48", "artifact_status": null } }, @@ -5019,7 +5291,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", "artifact_status": null } }, @@ -5027,7 +5299,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", "artifact_status": null } } @@ -5047,8 +5319,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "exercises-start-points-ci", - "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", + "flow_name": "dashboard-ci", + "trail_name": "0fb0be439480821efb926a5079e39ce5941eaa48", "artifact_status": "COMPLIANT" } }, @@ -5064,7 +5336,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", "artifact_status": "COMPLIANT" } }, @@ -5072,7 +5344,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", "artifact_status": "COMPLIANT" } } @@ -5097,8 +5369,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "exercises-start-points-ci", - "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", + "flow_name": "dashboard-ci", + "trail_name": "0fb0be439480821efb926a5079e39ce5941eaa48", "artifact_status": null } }, @@ -5114,7 +5386,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", "artifact_status": null } }, @@ -5122,7 +5394,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", "artifact_status": null } } @@ -5149,8 +5421,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "exercises-start-points-ci", - "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", + "flow_name": "dashboard-ci", + "trail_name": "0fb0be439480821efb926a5079e39ce5941eaa48", "artifact_status": null } }, @@ -5166,7 +5438,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", "artifact_status": null } }, @@ -5174,7 +5446,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", "artifact_status": null } } @@ -5194,8 +5466,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "exercises-start-points-ci", - "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", + "flow_name": "dashboard-ci", + "trail_name": "0fb0be439480821efb926a5079e39ce5941eaa48", "artifact_status": "COMPLIANT" } }, @@ -5211,7 +5483,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", "artifact_status": "COMPLIANT" } }, @@ -5219,7 +5491,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", "artifact_status": "COMPLIANT" } } @@ -5244,8 +5516,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "exercises-start-points-ci", - "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", + "flow_name": "dashboard-ci", + "trail_name": "0fb0be439480821efb926a5079e39ce5941eaa48", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -5263,7 +5535,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -5272,7 +5544,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -5300,8 +5572,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "exercises-start-points-ci", - "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", + "flow_name": "dashboard-ci", + "trail_name": "0fb0be439480821efb926a5079e39ce5941eaa48", "artifact_status": null } }, @@ -5317,7 +5589,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", "artifact_status": null } }, @@ -5325,7 +5597,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", "artifact_status": null } } @@ -5345,8 +5617,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "exercises-start-points-ci", - "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", + "flow_name": "dashboard-ci", + "trail_name": "0fb0be439480821efb926a5079e39ce5941eaa48", "artifact_status": "COMPLIANT" } }, @@ -5362,7 +5634,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", "artifact_status": "COMPLIANT" } }, @@ -5370,7 +5642,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", "artifact_status": "COMPLIANT" } } @@ -5395,8 +5667,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "exercises-start-points-ci", - "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", + "flow_name": "dashboard-ci", + "trail_name": "0fb0be439480821efb926a5079e39ce5941eaa48", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -5414,7 +5686,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -5423,7 +5695,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -5451,8 +5723,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "exercises-start-points-ci", - "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", + "flow_name": "dashboard-ci", + "trail_name": "0fb0be439480821efb926a5079e39ce5941eaa48", "artifact_status": null } }, @@ -5468,7 +5740,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", "artifact_status": null } }, @@ -5476,7 +5748,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", "artifact_status": null } } @@ -5496,8 +5768,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "exercises-start-points-ci", - "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", + "flow_name": "dashboard-ci", + "trail_name": "0fb0be439480821efb926a5079e39ce5941eaa48", "artifact_status": "COMPLIANT" } }, @@ -5513,7 +5785,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", "artifact_status": "COMPLIANT" } }, @@ -5521,7 +5793,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", "artifact_status": "COMPLIANT" } } @@ -5546,8 +5818,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "exercises-start-points-ci", - "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", + "flow_name": "dashboard-ci", + "trail_name": "0fb0be439480821efb926a5079e39ce5941eaa48", "artifact_status": null } }, @@ -5563,7 +5835,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", "artifact_status": null } }, @@ -5571,7 +5843,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", "artifact_status": null } } @@ -5598,8 +5870,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "exercises-start-points-ci", - "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", + "flow_name": "dashboard-ci", + "trail_name": "0fb0be439480821efb926a5079e39ce5941eaa48", "artifact_status": null } }, @@ -5615,7 +5887,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", "artifact_status": null } }, @@ -5623,7 +5895,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", "artifact_status": null } } @@ -5649,8 +5921,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "exercises-start-points-ci", - "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", + "flow_name": "dashboard-ci", + "trail_name": "0fb0be439480821efb926a5079e39ce5941eaa48", "artifact_status": "COMPLIANT" } }, @@ -5666,7 +5938,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", "artifact_status": "COMPLIANT" } }, @@ -5674,7 +5946,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", "artifact_status": "COMPLIANT" } } @@ -5685,7 +5957,7 @@ kosli get snapshot aws-prod --output=json } ], "reasons_for_incompliance": [], - "fingerprint": "c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "fingerprint": "c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", "creationTimestamp": [ 1785241255 ], @@ -5695,59 +5967,59 @@ kosli get snapshot aws-prod --output=json "was": 1, "now": 1 }, - "flow_name": "exercises-start-points-ci", - "git_commit": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", - "commit_url": "https://github.com/cyber-dojo/exercises-start-points/commit/258b6d07d2b28ad5cb2ce6d29934997f72380f1a", - "html_url": "https://app.kosli.com/cyber-dojo/flows/exercises-start-points-ci/artifacts/c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea?artifact_id=ffb671be-6388-4f6a-ae64-8ba95d82", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/exercises-start-points-ci", + "flow_name": "dashboard-ci", + "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/exercises-start-points/compare/804f248d832dc34e564507b009c246dfb4f0c657...258b6d07d2b28ad5cb2ce6d29934997f72380f1a", - "previous_git_commit": "804f248d832dc34e564507b009c246dfb4f0c657", - "previous_fingerprint": "a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:804f248@sha256:a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", + "diff_url": "https://github.com/cyber-dojo/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/exercises-start-points/commit/804f248d832dc34e564507b009c246dfb4f0c657", - "previous_trail_name": "804f248d832dc34e564507b009c246dfb4f0c657", - "previous_template_reference_name": "exercises-start-points" + "previous_git_commit_url": "https://github.com/cyber-dojo/dashboard/commit/5407827a19ff32c8d0e7ff2e8f18665e86e64f01", + "previous_trail_name": "5407827a19ff32c8d0e7ff2e8f18665e86e64f01", + "previous_template_reference_name": "dashboard" }, - "commit_lead_time": 929108.0, + "commit_lead_time": 527719.0, "flows": [ { - "flow_name": "exercises-start-points-ci", - "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", - "template_reference_name": "exercises-start-points", - "git_commit": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", - "commit_url": "https://github.com/cyber-dojo/exercises-start-points/commit/258b6d07d2b28ad5cb2ce6d29934997f72380f1a", + "flow_name": "dashboard-ci", + "trail_name": "0fb0be439480821efb926a5079e39ce5941eaa48", + "template_reference_name": "dashboard", + "git_commit": "0fb0be439480821efb926a5079e39ce5941eaa48", + "commit_url": "https://github.com/cyber-dojo/dashboard/commit/0fb0be439480821efb926a5079e39ce5941eaa48", "git_commit_info": { - "sha1": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", - "message": "Merge pull request #146 from cyber-dojo/add-drift-detection\n\nAdd periodic drift-detection workflow", + "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": 1784312147.0, - "url": "https://github.com/cyber-dojo/exercises-start-points/commit/258b6d07d2b28ad5cb2ce6d29934997f72380f1a" + "timestamp": 1784713536.0, + "url": "https://github.com/cyber-dojo/dashboard/commit/0fb0be439480821efb926a5079e39ce5941eaa48" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/exercises-start-points-ci/artifacts/c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea?artifact_id=ffb671be-6388-4f6a-ae64-8ba95d82", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/exercises-start-points-ci", + "html_url": "https://app.kosli.com/cyber-dojo/flows/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/exercises-start-points/compare/804f248d832dc34e564507b009c246dfb4f0c657...258b6d07d2b28ad5cb2ce6d29934997f72380f1a", - "previous_git_commit": "804f248d832dc34e564507b009c246dfb4f0c657", - "previous_fingerprint": "a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:804f248@sha256:a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", + "diff_url": "https://github.com/cyber-dojo/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/exercises-start-points/commit/804f248d832dc34e564507b009c246dfb4f0c657", - "previous_trail_name": "804f248d832dc34e564507b009c246dfb4f0c657", - "previous_template_reference_name": "exercises-start-points" + "previous_git_commit_url": "https://github.com/cyber-dojo/dashboard/commit/5407827a19ff32c8d0e7ff2e8f18665e86e64f01", + "previous_trail_name": "5407827a19ff32c8d0e7ff2e8f18665e86e64f01", + "previous_template_reference_name": "dashboard" }, - "commit_lead_time": 929108.0, + "commit_lead_time": 527719.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "production-promotion", "trail_name": "promote-all-31", - "template_reference_name": "exercises-start-points", + "template_reference_name": "dashboard", "git_commit": "81c216a55b2cb1787645e699ceaceca868cad253", "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253", "git_commit_info": { @@ -5758,18 +6030,18 @@ 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/c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea?artifact_id=b17578fc-3dc0-42c5-98a7-216ebe8a", + "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/aws-prod-co-promotion/compare/d7e31ce0207b766140ae689f38625da4374acf87...81c216a55b2cb1787645e699ceaceca868cad253", - "previous_git_commit": "d7e31ce0207b766140ae689f38625da4374acf87", - "previous_fingerprint": "a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:804f248@sha256:a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", + "diff_url": "https://github.com/cyber-dojo/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/aws-prod-co-promotion/commit/d7e31ce0207b766140ae689f38625da4374acf87", - "previous_trail_name": "promote-all-30", - "previous_template_reference_name": "exercises-start-points" + "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/76325d840dc66e1c84743725e17de05a16616419", + "previous_trail_name": "promotion-one-131", + "previous_template_reference_name": "dashboard" }, "commit_lead_time": 98201.0, "artifact_compliance_in_flow": true, @@ -5777,75 +6049,75 @@ kosli get snapshot aws-prod --output=json }, { "flow_name": "snyk-aws-prod-per-artifact", - "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", + "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", + "template_reference_name": "dashboard", + "git_commit": "c0666c020044ac5b5181999ec153db1e7f6cd303", + "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303", "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": "c0666c020044ac5b5181999ec153db1e7f6cd303", + "message": "Drop lone use of = separator on Kosli CLI boolean flag", "author": "JonJagger ", "branch": "main", - "timestamp": 1783850974.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7" + "timestamp": 1785316951.0, + "url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea?artifact_id=310fe7e0-a7b2-4051-9dea-f470022c", + "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98?artifact_id=f25ae17c-30d1-4519-a8c3-66910f45", "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", + "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/00c479764cb9eca038fdaaaef108672d0bb0ed26...c0666c020044ac5b5181999ec153db1e7f6cd303", "previous_git_commit": "00c479764cb9eca038fdaaaef108672d0bb0ed26", - "previous_fingerprint": "f00aa234bebafb1980dced29626750f84a6fe6c9c50f6a90167e4d8e6511a8a8", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:b8e5cbf@sha256:f00aa234bebafb1980dced29626750f84a6fe6c9c50f6a90167e4d8e6511a8a8", + "previous_fingerprint": "45513c642ba191052bde056d56eeba8b06b0346eb444ec0008bd59bc0581bb8c", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:87f560f@sha256:45513c642ba191052bde056d56eeba8b06b0346eb444ec0008bd59bc0581bb8c", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/00c479764cb9eca038fdaaaef108672d0bb0ed26", - "previous_trail_name": "exercises-start-points-f00aa234bebafb1980dced29626750f84a6fe6c9c50f6a90167e4d8e6511a8a8", - "previous_template_reference_name": "exercises-start-points" + "previous_trail_name": "dashboard-45513c642ba191052bde056d56eeba8b06b0346eb444ec0008bd59bc0581bb8c", + "previous_template_reference_name": "dashboard" }, - "commit_lead_time": 1390281.0, + "commit_lead_time": -75696.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", - "template_reference_name": "exercises-start-points", - "git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", + "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", + "template_reference_name": "dashboard", + "git_commit": "c0666c020044ac5b5181999ec153db1e7f6cd303", + "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303", "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": "c0666c020044ac5b5181999ec153db1e7f6cd303", + "message": "Drop lone use of = separator on Kosli CLI boolean flag", "author": "JonJagger ", "branch": "main", - "timestamp": 1783850974.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7" + "timestamp": 1785316951.0, + "url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea?artifact_id=1e751756-2547-4296-acd6-2a711f50", + "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98?artifact_id=ce608804-cd89-4683-ab0a-873b873f", "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/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7...35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", + "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7...c0666c020044ac5b5181999ec153db1e7f6cd303", "previous_git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "previous_fingerprint": "a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:804f248@sha256:a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", + "previous_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/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "previous_trail_name": "exercises-start-points-a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", - "previous_template_reference_name": "exercises-start-points" + "previous_trail_name": "dashboard-d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e", + "previous_template_reference_name": "dashboard" }, - "commit_lead_time": 1390281.0, + "commit_lead_time": -75696.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] } ], "ecs_context": { - "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/f248719ae7814027825075c5ea81acff", + "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/c454b3320b2144ec988e1926eb8538b2", "cluster_name": null, "service_name": null } }, { - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/custom-start-points:790d86b@sha256:8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:258b6d0@sha256:c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "compliant": true, "deployments": [], "policy_decisions": [ @@ -5867,8 +6139,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "custom-start-points-ci", - "trail_name": "790d86b66f4d86ab47f5c521daf5039dc8aeef4d", + "flow_name": "exercises-start-points-ci", + "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", "artifact_status": null } }, @@ -5884,7 +6156,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": null } }, @@ -5892,7 +6164,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": null } } @@ -5912,8 +6184,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "custom-start-points-ci", - "trail_name": "790d86b66f4d86ab47f5c521daf5039dc8aeef4d", + "flow_name": "exercises-start-points-ci", + "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", "artifact_status": "COMPLIANT" } }, @@ -5929,7 +6201,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": "COMPLIANT" } }, @@ -5937,7 +6209,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": "COMPLIANT" } } @@ -5962,8 +6234,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "custom-start-points-ci", - "trail_name": "790d86b66f4d86ab47f5c521daf5039dc8aeef4d", + "flow_name": "exercises-start-points-ci", + "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", "artifact_status": null } }, @@ -5979,7 +6251,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": null } }, @@ -5987,7 +6259,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": null } } @@ -6014,8 +6286,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "custom-start-points-ci", - "trail_name": "790d86b66f4d86ab47f5c521daf5039dc8aeef4d", + "flow_name": "exercises-start-points-ci", + "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", "artifact_status": null } }, @@ -6031,7 +6303,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": null } }, @@ -6039,7 +6311,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": null } } @@ -6059,8 +6331,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "custom-start-points-ci", - "trail_name": "790d86b66f4d86ab47f5c521daf5039dc8aeef4d", + "flow_name": "exercises-start-points-ci", + "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", "artifact_status": "COMPLIANT" } }, @@ -6076,7 +6348,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": "COMPLIANT" } }, @@ -6084,7 +6356,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": "COMPLIANT" } } @@ -6109,8 +6381,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "custom-start-points-ci", - "trail_name": "790d86b66f4d86ab47f5c521daf5039dc8aeef4d", + "flow_name": "exercises-start-points-ci", + "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -6128,7 +6400,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -6137,7 +6409,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -6165,8 +6437,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "custom-start-points-ci", - "trail_name": "790d86b66f4d86ab47f5c521daf5039dc8aeef4d", + "flow_name": "exercises-start-points-ci", + "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", "artifact_status": null } }, @@ -6182,7 +6454,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": null } }, @@ -6190,7 +6462,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": null } } @@ -6210,8 +6482,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "custom-start-points-ci", - "trail_name": "790d86b66f4d86ab47f5c521daf5039dc8aeef4d", + "flow_name": "exercises-start-points-ci", + "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", "artifact_status": "COMPLIANT" } }, @@ -6227,7 +6499,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": "COMPLIANT" } }, @@ -6235,7 +6507,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": "COMPLIANT" } } @@ -6260,8 +6532,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "custom-start-points-ci", - "trail_name": "790d86b66f4d86ab47f5c521daf5039dc8aeef4d", + "flow_name": "exercises-start-points-ci", + "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -6279,7 +6551,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -6288,7 +6560,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -6316,8 +6588,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "custom-start-points-ci", - "trail_name": "790d86b66f4d86ab47f5c521daf5039dc8aeef4d", + "flow_name": "exercises-start-points-ci", + "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", "artifact_status": null } }, @@ -6333,7 +6605,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": null } }, @@ -6341,7 +6613,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": null } } @@ -6361,8 +6633,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "custom-start-points-ci", - "trail_name": "790d86b66f4d86ab47f5c521daf5039dc8aeef4d", + "flow_name": "exercises-start-points-ci", + "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", "artifact_status": "COMPLIANT" } }, @@ -6378,7 +6650,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": "COMPLIANT" } }, @@ -6386,7 +6658,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": "COMPLIANT" } } @@ -6411,8 +6683,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "custom-start-points-ci", - "trail_name": "790d86b66f4d86ab47f5c521daf5039dc8aeef4d", + "flow_name": "exercises-start-points-ci", + "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", "artifact_status": null } }, @@ -6428,7 +6700,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": null } }, @@ -6436,7 +6708,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": null } } @@ -6463,8 +6735,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "custom-start-points-ci", - "trail_name": "790d86b66f4d86ab47f5c521daf5039dc8aeef4d", + "flow_name": "exercises-start-points-ci", + "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", "artifact_status": null } }, @@ -6480,7 +6752,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": null } }, @@ -6488,7 +6760,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": null } } @@ -6514,8 +6786,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "custom-start-points-ci", - "trail_name": "790d86b66f4d86ab47f5c521daf5039dc8aeef4d", + "flow_name": "exercises-start-points-ci", + "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", "artifact_status": "COMPLIANT" } }, @@ -6531,7 +6803,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": "COMPLIANT" } }, @@ -6539,7 +6811,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "artifact_status": "COMPLIANT" } } @@ -6550,9 +6822,9 @@ kosli get snapshot aws-prod --output=json } ], "reasons_for_incompliance": [], - "fingerprint": "8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", + "fingerprint": "c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", "creationTimestamp": [ - 1785241244 + 1785241255 ], "pods": null, "annotation": { @@ -6560,59 +6832,59 @@ kosli get snapshot aws-prod --output=json "was": 1, "now": 1 }, - "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", + "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/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", + "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/custom-start-points/commit/d37aace7598ee943ba0bd5e51f224335cbdf0a3e", - "previous_trail_name": "d37aace7598ee943ba0bd5e51f224335cbdf0a3e", - "previous_template_reference_name": "custom-start-points" + "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": 929228.0, + "commit_lead_time": 929108.0, "flows": [ { - "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", + "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": "790d86b66f4d86ab47f5c521daf5039dc8aeef4d", - "message": "Merge pull request #140 from cyber-dojo/add-drift-detection\n\nAdd periodic drift-detection workflow", + "sha1": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a", + "message": "Merge pull request #146 from cyber-dojo/add-drift-detection\n\nAdd periodic drift-detection workflow", "author": "Jon Jagger ", "branch": "", - "timestamp": 1784312016.0, - "url": "https://github.com/cyber-dojo/custom-start-points/commit/790d86b66f4d86ab47f5c521daf5039dc8aeef4d" + "timestamp": 1784312147.0, + "url": "https://github.com/cyber-dojo/exercises-start-points/commit/258b6d07d2b28ad5cb2ce6d29934997f72380f1a" }, - "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", + "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/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", + "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/custom-start-points/commit/d37aace7598ee943ba0bd5e51f224335cbdf0a3e", - "previous_trail_name": "d37aace7598ee943ba0bd5e51f224335cbdf0a3e", - "previous_template_reference_name": "custom-start-points" + "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": 929228.0, + "commit_lead_time": 929108.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "production-promotion", "trail_name": "promote-all-31", - "template_reference_name": "custom-start-points", + "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": { @@ -6623,94 +6895,94 @@ 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/8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81?artifact_id=48b388e8-ce61-4668-a0dd-eb163cd4", + "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea?artifact_id=b17578fc-3dc0-42c5-98a7-216ebe8a", "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion", "deployment_diff": { "diff_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/compare/d7e31ce0207b766140ae689f38625da4374acf87...81c216a55b2cb1787645e699ceaceca868cad253", "previous_git_commit": "d7e31ce0207b766140ae689f38625da4374acf87", - "previous_fingerprint": "1ed61f19b66b82f7f122b7b88522360de73abb3536fab5d0f8eadb9b987f9400", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/custom-start-points:d37aace@sha256:1ed61f19b66b82f7f122b7b88522360de73abb3536fab5d0f8eadb9b987f9400", + "previous_fingerprint": "a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:804f248@sha256:a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/d7e31ce0207b766140ae689f38625da4374acf87", "previous_trail_name": "promote-all-30", - "previous_template_reference_name": "custom-start-points" + "previous_template_reference_name": "exercises-start-points" }, - "commit_lead_time": 98190.0, + "commit_lead_time": 98201.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "snyk-aws-prod-per-artifact", - "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", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "template_reference_name": "exercises-start-points", + "git_commit": "c0666c020044ac5b5181999ec153db1e7f6cd303", + "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303", "git_commit_info": { - "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": "c0666c020044ac5b5181999ec153db1e7f6cd303", + "message": "Drop lone use of = separator on Kosli CLI boolean flag", "author": "JonJagger ", "branch": "main", - "timestamp": 1783850974.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7" + "timestamp": 1785316951.0, + "url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81?artifact_id=385baa2d-73b5-443d-ac93-fbac4ae4", + "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea?artifact_id=3039fc99-8837-43cb-a068-28058dd4", "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", + "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/00c479764cb9eca038fdaaaef108672d0bb0ed26...c0666c020044ac5b5181999ec153db1e7f6cd303", "previous_git_commit": "00c479764cb9eca038fdaaaef108672d0bb0ed26", - "previous_fingerprint": "b4448ca68a0926e4a7a800f5b101b63e9c2f38e1caaebb7e929d992763570928", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/custom-start-points:6b5c159@sha256:b4448ca68a0926e4a7a800f5b101b63e9c2f38e1caaebb7e929d992763570928", + "previous_fingerprint": "f00aa234bebafb1980dced29626750f84a6fe6c9c50f6a90167e4d8e6511a8a8", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:b8e5cbf@sha256:f00aa234bebafb1980dced29626750f84a6fe6c9c50f6a90167e4d8e6511a8a8", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/00c479764cb9eca038fdaaaef108672d0bb0ed26", - "previous_trail_name": "custom-start-points-b4448ca68a0926e4a7a800f5b101b63e9c2f38e1caaebb7e929d992763570928", - "previous_template_reference_name": "custom-start-points" + "previous_trail_name": "exercises-start-points-f00aa234bebafb1980dced29626750f84a6fe6c9c50f6a90167e4d8e6511a8a8", + "previous_template_reference_name": "exercises-start-points" }, - "commit_lead_time": 1390270.0, + "commit_lead_time": -75696.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "snyk-aws-beta-per-artifact", - "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", + "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "template_reference_name": "exercises-start-points", + "git_commit": "c0666c020044ac5b5181999ec153db1e7f6cd303", + "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303", "git_commit_info": { - "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": "c0666c020044ac5b5181999ec153db1e7f6cd303", + "message": "Drop lone use of = separator on Kosli CLI boolean flag", "author": "JonJagger ", "branch": "main", - "timestamp": 1783850974.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7" + "timestamp": 1785316951.0, + "url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81?artifact_id=1024cb78-94dd-4b21-934f-40c22203", + "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea?artifact_id=ffade573-7149-4aaf-8696-3ab527bc", "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": "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/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7...c0666c020044ac5b5181999ec153db1e7f6cd303", + "previous_git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", + "previous_fingerprint": "a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:804f248@sha256:a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/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/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", + "previous_trail_name": "exercises-start-points-a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613", + "previous_template_reference_name": "exercises-start-points" }, - "commit_lead_time": 1390270.0, + "commit_lead_time": -75696.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] } ], "ecs_context": { - "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/6bf799c87c194e17be0f99fcd811abb6", + "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/saver:c29db2c@sha256:680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/custom-start-points:790d86b@sha256:8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", "compliant": true, "deployments": [], "policy_decisions": [ @@ -6732,8 +7004,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "saver-ci", - "trail_name": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e", + "flow_name": "custom-start-points-ci", + "trail_name": "790d86b66f4d86ab47f5c521daf5039dc8aeef4d", "artifact_status": null } }, @@ -6741,7 +7013,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-141", + "trail_name": "promote-all-31", "artifact_status": null } }, @@ -6749,7 +7021,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", + "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", "artifact_status": null } }, @@ -6757,7 +7029,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", + "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", "artifact_status": null } } @@ -6777,8 +7049,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "saver-ci", - "trail_name": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e", + "flow_name": "custom-start-points-ci", + "trail_name": "790d86b66f4d86ab47f5c521daf5039dc8aeef4d", "artifact_status": "COMPLIANT" } }, @@ -6786,7 +7058,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-141", + "trail_name": "promote-all-31", "artifact_status": "COMPLIANT" } }, @@ -6794,7 +7066,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", + "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", "artifact_status": "COMPLIANT" } }, @@ -6802,7 +7074,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", + "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", "artifact_status": "COMPLIANT" } } @@ -6827,8 +7099,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "saver-ci", - "trail_name": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e", + "flow_name": "custom-start-points-ci", + "trail_name": "790d86b66f4d86ab47f5c521daf5039dc8aeef4d", "artifact_status": null } }, @@ -6836,7 +7108,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-141", + "trail_name": "promote-all-31", "artifact_status": null } }, @@ -6844,7 +7116,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", + "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", "artifact_status": null } }, @@ -6852,7 +7124,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", + "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", "artifact_status": null } } @@ -6879,8 +7151,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "saver-ci", - "trail_name": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e", + "flow_name": "custom-start-points-ci", + "trail_name": "790d86b66f4d86ab47f5c521daf5039dc8aeef4d", "artifact_status": null } }, @@ -6888,7 +7160,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-141", + "trail_name": "promote-all-31", "artifact_status": null } }, @@ -6896,7 +7168,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", + "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", "artifact_status": null } }, @@ -6904,7 +7176,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", + "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", "artifact_status": null } } @@ -6924,8 +7196,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "saver-ci", - "trail_name": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e", + "flow_name": "custom-start-points-ci", + "trail_name": "790d86b66f4d86ab47f5c521daf5039dc8aeef4d", "artifact_status": "COMPLIANT" } }, @@ -6933,7 +7205,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-141", + "trail_name": "promote-all-31", "artifact_status": "COMPLIANT" } }, @@ -6941,7 +7213,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", + "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", "artifact_status": "COMPLIANT" } }, @@ -6949,7 +7221,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", + "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", "artifact_status": "COMPLIANT" } } @@ -6974,8 +7246,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "saver-ci", - "trail_name": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e", + "flow_name": "custom-start-points-ci", + "trail_name": "790d86b66f4d86ab47f5c521daf5039dc8aeef4d", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -6984,7 +7256,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-141", + "trail_name": "promote-all-31", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -6993,7 +7265,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", + "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -7002,7 +7274,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", + "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -7030,8 +7302,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "saver-ci", - "trail_name": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e", + "flow_name": "custom-start-points-ci", + "trail_name": "790d86b66f4d86ab47f5c521daf5039dc8aeef4d", "artifact_status": null } }, @@ -7039,7 +7311,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-141", + "trail_name": "promote-all-31", "artifact_status": null } }, @@ -7047,7 +7319,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", + "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", "artifact_status": null } }, @@ -7055,7 +7327,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", + "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", "artifact_status": null } } @@ -7075,8 +7347,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "saver-ci", - "trail_name": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e", + "flow_name": "custom-start-points-ci", + "trail_name": "790d86b66f4d86ab47f5c521daf5039dc8aeef4d", "artifact_status": "COMPLIANT" } }, @@ -7084,7 +7356,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-141", + "trail_name": "promote-all-31", "artifact_status": "COMPLIANT" } }, @@ -7092,7 +7364,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", + "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", "artifact_status": "COMPLIANT" } }, @@ -7100,7 +7372,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", + "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", "artifact_status": "COMPLIANT" } } @@ -7125,8 +7397,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "saver-ci", - "trail_name": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e", + "flow_name": "custom-start-points-ci", + "trail_name": "790d86b66f4d86ab47f5c521daf5039dc8aeef4d", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -7135,7 +7407,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-141", + "trail_name": "promote-all-31", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -7144,7 +7416,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", + "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -7153,7 +7425,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", + "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -7181,8 +7453,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "saver-ci", - "trail_name": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e", + "flow_name": "custom-start-points-ci", + "trail_name": "790d86b66f4d86ab47f5c521daf5039dc8aeef4d", "artifact_status": null } }, @@ -7190,7 +7462,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-141", + "trail_name": "promote-all-31", "artifact_status": null } }, @@ -7198,7 +7470,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", + "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", "artifact_status": null } }, @@ -7206,7 +7478,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", + "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", "artifact_status": null } } @@ -7226,8 +7498,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "saver-ci", - "trail_name": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e", + "flow_name": "custom-start-points-ci", + "trail_name": "790d86b66f4d86ab47f5c521daf5039dc8aeef4d", "artifact_status": "COMPLIANT" } }, @@ -7235,7 +7507,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-141", + "trail_name": "promote-all-31", "artifact_status": "COMPLIANT" } }, @@ -7243,7 +7515,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", + "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", "artifact_status": "COMPLIANT" } }, @@ -7251,7 +7523,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", + "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", "artifact_status": "COMPLIANT" } } @@ -7276,8 +7548,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "saver-ci", - "trail_name": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e", + "flow_name": "custom-start-points-ci", + "trail_name": "790d86b66f4d86ab47f5c521daf5039dc8aeef4d", "artifact_status": null } }, @@ -7285,7 +7557,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-141", + "trail_name": "promote-all-31", "artifact_status": null } }, @@ -7293,7 +7565,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", + "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", "artifact_status": null } }, @@ -7301,7 +7573,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", + "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", "artifact_status": null } } @@ -7328,8 +7600,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "saver-ci", - "trail_name": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e", + "flow_name": "custom-start-points-ci", + "trail_name": "790d86b66f4d86ab47f5c521daf5039dc8aeef4d", "artifact_status": null } }, @@ -7337,7 +7609,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-141", + "trail_name": "promote-all-31", "artifact_status": null } }, @@ -7345,7 +7617,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", + "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", "artifact_status": null } }, @@ -7353,7 +7625,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", + "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", "artifact_status": null } } @@ -7379,8 +7651,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "saver-ci", - "trail_name": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e", + "flow_name": "custom-start-points-ci", + "trail_name": "790d86b66f4d86ab47f5c521daf5039dc8aeef4d", "artifact_status": "COMPLIANT" } }, @@ -7388,7 +7660,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-141", + "trail_name": "promote-all-31", "artifact_status": "COMPLIANT" } }, @@ -7396,7 +7668,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", + "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", "artifact_status": "COMPLIANT" } }, @@ -7404,7 +7676,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", + "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", "artifact_status": "COMPLIANT" } } @@ -7415,9 +7687,9 @@ kosli get snapshot aws-prod --output=json } ], "reasons_for_incompliance": [], - "fingerprint": "680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", + "fingerprint": "8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", "creationTimestamp": [ - 1785236539 + 1785241244 ], "pods": null, "annotation": { @@ -7425,59 +7697,59 @@ kosli get snapshot aws-prod --output=json "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", + "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/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", + "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/saver/commit/f4bb3412725258648a7cf5ce1a776609b4dade72", - "previous_trail_name": "f4bb3412725258648a7cf5ce1a776609b4dade72", - "previous_template_reference_name": "saver" + "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": 7420.0, + "commit_lead_time": 929228.0, "flows": [ { - "flow_name": "saver-ci", - "trail_name": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e", - "template_reference_name": "saver", - "git_commit": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e", - "commit_url": "https://github.com/cyber-dojo/saver/commit/c29db2ce6d16a9ace09a8548b0cc39fd608abd2e", + "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": "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", + "sha1": "790d86b66f4d86ab47f5c521daf5039dc8aeef4d", + "message": "Merge pull request #140 from cyber-dojo/add-drift-detection\n\nAdd periodic drift-detection workflow", "author": "Jon Jagger ", "branch": "", - "timestamp": 1785229119.0, - "url": "https://github.com/cyber-dojo/saver/commit/c29db2ce6d16a9ace09a8548b0cc39fd608abd2e" + "timestamp": 1784312016.0, + "url": "https://github.com/cyber-dojo/custom-start-points/commit/790d86b66f4d86ab47f5c521daf5039dc8aeef4d" }, - "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", + "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/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", + "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/saver/commit/f4bb3412725258648a7cf5ce1a776609b4dade72", - "previous_trail_name": "f4bb3412725258648a7cf5ce1a776609b4dade72", - "previous_template_reference_name": "saver" + "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": 7420.0, + "commit_lead_time": 929228.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "production-promotion", - "trail_name": "promotion-one-141", - "template_reference_name": "saver", + "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": { @@ -7488,94 +7760,94 @@ 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/680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4?artifact_id=0db443cc-b53c-4780-b759-7a8a1bf8", + "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/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", + "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/aws-prod-co-promotion/commit/76325d840dc66e1c84743725e17de05a16616419", - "previous_trail_name": "promotion-one-133", - "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": "custom-start-points" }, - "commit_lead_time": 93485.0, + "commit_lead_time": 98190.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", - "template_reference_name": "saver", - "git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", + "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", + "template_reference_name": "custom-start-points", + "git_commit": "c0666c020044ac5b5181999ec153db1e7f6cd303", + "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303", "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": "c0666c020044ac5b5181999ec153db1e7f6cd303", + "message": "Drop lone use of = separator on Kosli CLI boolean flag", "author": "JonJagger ", "branch": "main", - "timestamp": 1783850974.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7" + "timestamp": 1785316951.0, + "url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4?artifact_id=ddf9ede9-71dc-43c0-ac96-8fd584b2", + "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81?artifact_id=a320a699-8ce4-460a-a70a-636fc16b", "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", + "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/00c479764cb9eca038fdaaaef108672d0bb0ed26...c0666c020044ac5b5181999ec153db1e7f6cd303", "previous_git_commit": "00c479764cb9eca038fdaaaef108672d0bb0ed26", - "previous_fingerprint": "f5909cc8dd53b2105953d1a72cd5d6181367d3588964aa01a04c056205a5d419", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:8c84fac@sha256:f5909cc8dd53b2105953d1a72cd5d6181367d3588964aa01a04c056205a5d419", + "previous_fingerprint": "b4448ca68a0926e4a7a800f5b101b63e9c2f38e1caaebb7e929d992763570928", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/custom-start-points:6b5c159@sha256:b4448ca68a0926e4a7a800f5b101b63e9c2f38e1caaebb7e929d992763570928", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/00c479764cb9eca038fdaaaef108672d0bb0ed26", - "previous_trail_name": "saver-f5909cc8dd53b2105953d1a72cd5d6181367d3588964aa01a04c056205a5d419", - "previous_template_reference_name": "saver" + "previous_trail_name": "custom-start-points-b4448ca68a0926e4a7a800f5b101b63e9c2f38e1caaebb7e929d992763570928", + "previous_template_reference_name": "custom-start-points" }, - "commit_lead_time": 1385565.0, + "commit_lead_time": -75707.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", - "template_reference_name": "saver", - "git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", + "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", + "template_reference_name": "custom-start-points", + "git_commit": "c0666c020044ac5b5181999ec153db1e7f6cd303", + "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303", "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": "c0666c020044ac5b5181999ec153db1e7f6cd303", + "message": "Drop lone use of = separator on Kosli CLI boolean flag", "author": "JonJagger ", "branch": "main", - "timestamp": 1783850974.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7" + "timestamp": 1785316951.0, + "url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4?artifact_id=c55f6071-1b01-403f-af19-98c5b776", + "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81?artifact_id=89848b7a-0c9c-4672-92ef-744a827e", "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/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/snyk-scanning/compare/c17bb3ed8862de03c1a491dfe790fd8734fc7071...c0666c020044ac5b5181999ec153db1e7f6cd303", + "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/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "previous_trail_name": "saver-b0c07ba3f67f16c2a1b6f0096f1474df6600ed3556e0e82b78d24acabc9b2bab", - "previous_template_reference_name": "saver" + "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": 1385565.0, + "commit_lead_time": -75707.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] } ], "ecs_context": { - "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/77b4502f86ca4337a17e8ddfe0e8177b", + "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/runner:19f8734@sha256:8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:c29db2c@sha256:680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", "compliant": true, "deployments": [], "policy_decisions": [ @@ -7597,8 +7869,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "runner-ci", - "trail_name": "19f873464a01f28ecd588504ffe03529119d6297", + "flow_name": "saver-ci", + "trail_name": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e", "artifact_status": null } }, @@ -7606,7 +7878,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-137", + "trail_name": "promotion-one-141", "artifact_status": null } }, @@ -7614,7 +7886,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", "artifact_status": null } }, @@ -7622,7 +7894,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", "artifact_status": null } } @@ -7642,8 +7914,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "runner-ci", - "trail_name": "19f873464a01f28ecd588504ffe03529119d6297", + "flow_name": "saver-ci", + "trail_name": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e", "artifact_status": "COMPLIANT" } }, @@ -7651,7 +7923,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-137", + "trail_name": "promotion-one-141", "artifact_status": "COMPLIANT" } }, @@ -7659,7 +7931,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", "artifact_status": "COMPLIANT" } }, @@ -7667,7 +7939,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", "artifact_status": "COMPLIANT" } } @@ -7692,8 +7964,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "runner-ci", - "trail_name": "19f873464a01f28ecd588504ffe03529119d6297", + "flow_name": "saver-ci", + "trail_name": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e", "artifact_status": null } }, @@ -7701,7 +7973,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-137", + "trail_name": "promotion-one-141", "artifact_status": null } }, @@ -7709,7 +7981,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", "artifact_status": null } }, @@ -7717,7 +7989,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", "artifact_status": null } } @@ -7744,8 +8016,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "runner-ci", - "trail_name": "19f873464a01f28ecd588504ffe03529119d6297", + "flow_name": "saver-ci", + "trail_name": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e", "artifact_status": null } }, @@ -7753,7 +8025,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-137", + "trail_name": "promotion-one-141", "artifact_status": null } }, @@ -7761,7 +8033,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", "artifact_status": null } }, @@ -7769,7 +8041,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", "artifact_status": null } } @@ -7789,8 +8061,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "runner-ci", - "trail_name": "19f873464a01f28ecd588504ffe03529119d6297", + "flow_name": "saver-ci", + "trail_name": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e", "artifact_status": "COMPLIANT" } }, @@ -7798,7 +8070,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-137", + "trail_name": "promotion-one-141", "artifact_status": "COMPLIANT" } }, @@ -7806,7 +8078,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", "artifact_status": "COMPLIANT" } }, @@ -7814,7 +8086,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", "artifact_status": "COMPLIANT" } } @@ -7839,8 +8111,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_satisfied", "context": { - "flow_name": "runner-ci", - "trail_name": "19f873464a01f28ecd588504ffe03529119d6297", + "flow_name": "saver-ci", + "trail_name": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -7849,7 +8121,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-137", + "trail_name": "promotion-one-141", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -7858,7 +8130,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -7867,7 +8139,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", "artifact_status": null, "for_control": "SDLC-CTRL-0002" } @@ -7895,8 +8167,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "runner-ci", - "trail_name": "19f873464a01f28ecd588504ffe03529119d6297", + "flow_name": "saver-ci", + "trail_name": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e", "artifact_status": null } }, @@ -7904,7 +8176,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-137", + "trail_name": "promotion-one-141", "artifact_status": null } }, @@ -7912,7 +8184,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", "artifact_status": null } }, @@ -7920,7 +8192,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", "artifact_status": null } } @@ -7940,8 +8212,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "runner-ci", - "trail_name": "19f873464a01f28ecd588504ffe03529119d6297", + "flow_name": "saver-ci", + "trail_name": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e", "artifact_status": "COMPLIANT" } }, @@ -7949,7 +8221,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-137", + "trail_name": "promotion-one-141", "artifact_status": "COMPLIANT" } }, @@ -7957,7 +8229,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", "artifact_status": "COMPLIANT" } }, @@ -7965,7 +8237,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", "artifact_status": "COMPLIANT" } } @@ -7990,8 +8262,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "runner-ci", - "trail_name": "19f873464a01f28ecd588504ffe03529119d6297", + "flow_name": "saver-ci", + "trail_name": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -8000,7 +8272,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-137", + "trail_name": "promotion-one-141", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -8009,7 +8281,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -8018,7 +8290,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", "artifact_status": null, "for_control": "SDLC-CTRL-0022" } @@ -8046,8 +8318,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "runner-ci", - "trail_name": "19f873464a01f28ecd588504ffe03529119d6297", + "flow_name": "saver-ci", + "trail_name": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e", "artifact_status": null } }, @@ -8055,7 +8327,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-137", + "trail_name": "promotion-one-141", "artifact_status": null } }, @@ -8063,7 +8335,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", "artifact_status": null } }, @@ -8071,7 +8343,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", "artifact_status": null } } @@ -8091,8 +8363,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "runner-ci", - "trail_name": "19f873464a01f28ecd588504ffe03529119d6297", + "flow_name": "saver-ci", + "trail_name": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e", "artifact_status": "COMPLIANT" } }, @@ -8100,7 +8372,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-137", + "trail_name": "promotion-one-141", "artifact_status": "COMPLIANT" } }, @@ -8108,7 +8380,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", "artifact_status": "COMPLIANT" } }, @@ -8116,7 +8388,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", "artifact_status": "COMPLIANT" } } @@ -8141,8 +8413,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "runner-ci", - "trail_name": "19f873464a01f28ecd588504ffe03529119d6297", + "flow_name": "saver-ci", + "trail_name": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e", "artifact_status": null } }, @@ -8150,7 +8422,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-137", + "trail_name": "promotion-one-141", "artifact_status": null } }, @@ -8158,7 +8430,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", "artifact_status": null } }, @@ -8166,7 +8438,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", "artifact_status": null } } @@ -8193,8 +8465,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "runner-ci", - "trail_name": "19f873464a01f28ecd588504ffe03529119d6297", + "flow_name": "saver-ci", + "trail_name": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e", "artifact_status": null } }, @@ -8202,7 +8474,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-137", + "trail_name": "promotion-one-141", "artifact_status": null } }, @@ -8210,7 +8482,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", "artifact_status": null } }, @@ -8218,7 +8490,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", "artifact_status": null } } @@ -8244,8 +8516,8 @@ kosli get snapshot aws-prod --output=json { "type": "rule_not_applicable", "context": { - "flow_name": "runner-ci", - "trail_name": "19f873464a01f28ecd588504ffe03529119d6297", + "flow_name": "saver-ci", + "trail_name": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e", "artifact_status": "COMPLIANT" } }, @@ -8253,7 +8525,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "production-promotion", - "trail_name": "promotion-one-137", + "trail_name": "promotion-one-141", "artifact_status": "COMPLIANT" } }, @@ -8261,7 +8533,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_satisfied", "context": { "flow_name": "snyk-aws-prod-per-artifact", - "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", "artifact_status": "COMPLIANT" } }, @@ -8269,7 +8541,7 @@ kosli get snapshot aws-prod --output=json "type": "rule_not_applicable", "context": { "flow_name": "snyk-aws-beta-per-artifact", - "trail_name": "runner-8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", "artifact_status": "COMPLIANT" } } @@ -8280,163 +8552,161 @@ kosli get snapshot aws-prod --output=json } ], "reasons_for_incompliance": [], - "fingerprint": "8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "fingerprint": "680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", "creationTimestamp": [ - 1785138608, - 1785138608, - 1785138609 + 1785236539 ], "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": "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/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/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/runner/commit/6dac3ae5d85ee8e6040d8badd5c2eede44bc8a6b", - "previous_trail_name": "6dac3ae5d85ee8e6040d8badd5c2eede44bc8a6b", - "previous_template_reference_name": "runner" + "previous_git_commit_url": "https://github.com/cyber-dojo/saver/commit/f4bb3412725258648a7cf5ce1a776609b4dade72", + "previous_trail_name": "f4bb3412725258648a7cf5ce1a776609b4dade72", + "previous_template_reference_name": "saver" }, - "commit_lead_time": 85840.0, + "commit_lead_time": 7420.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": "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": "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", + "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": 1785052768.0, - "url": "https://github.com/cyber-dojo/runner/commit/19f873464a01f28ecd588504ffe03529119d6297" + "timestamp": 1785229119.0, + "url": "https://github.com/cyber-dojo/saver/commit/c29db2ce6d16a9ace09a8548b0cc39fd608abd2e" }, - "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", + "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/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/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/runner/commit/6dac3ae5d85ee8e6040d8badd5c2eede44bc8a6b", - "previous_trail_name": "6dac3ae5d85ee8e6040d8badd5c2eede44bc8a6b", - "previous_template_reference_name": "runner" + "previous_git_commit_url": "https://github.com/cyber-dojo/saver/commit/f4bb3412725258648a7cf5ce1a776609b4dade72", + "previous_trail_name": "f4bb3412725258648a7cf5ce1a776609b4dade72", + "previous_template_reference_name": "saver" }, - "commit_lead_time": 85840.0, + "commit_lead_time": 7420.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", + "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": "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/8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67?artifact_id=cceaf70c-da3e-4637-a622-d7091e3c", + "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/aws-prod-co-promotion/compare/76325d840dc66e1c84743725e17de05a16616419...76325d840dc66e1c84743725e17de05a16616419", + "diff_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/compare/76325d840dc66e1c84743725e17de05a16616419...81c216a55b2cb1787645e699ceaceca868cad253", "previous_git_commit": "76325d840dc66e1c84743725e17de05a16616419", - "previous_fingerprint": "d7c56f15abf30e1424444c9de9beb4884f72dd400183da58fa9d8d1092309e7b", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:6dac3ae@sha256:d7c56f15abf30e1424444c9de9beb4884f72dd400183da58fa9d8d1092309e7b", + "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/aws-prod-co-promotion/commit/76325d840dc66e1c84743725e17de05a16616419", - "previous_trail_name": "promotion-one-136", - "previous_template_reference_name": "runner" + "previous_trail_name": "promotion-one-133", + "previous_template_reference_name": "saver" }, - "commit_lead_time": 1285907.0, + "commit_lead_time": 93485.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", - "git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", + "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", + "template_reference_name": "saver", + "git_commit": "c0666c020044ac5b5181999ec153db1e7f6cd303", + "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303", "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": "c0666c020044ac5b5181999ec153db1e7f6cd303", + "message": "Drop lone use of = separator on Kosli CLI boolean flag", "author": "JonJagger ", "branch": "main", - "timestamp": 1783850974.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7" + "timestamp": 1785316951.0, + "url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67?artifact_id=cd00f766-4f8b-4bb4-a097-657eaf90", + "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4?artifact_id=986c8a72-0c76-4272-98d2-136b2c0b", "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", + "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/00c479764cb9eca038fdaaaef108672d0bb0ed26...c0666c020044ac5b5181999ec153db1e7f6cd303", "previous_git_commit": "00c479764cb9eca038fdaaaef108672d0bb0ed26", - "previous_fingerprint": "414a07a72fbd04444ba4d2e19b6c7102095d5aeb469211f99166538626c08d06", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:9cc2a80@sha256:414a07a72fbd04444ba4d2e19b6c7102095d5aeb469211f99166538626c08d06", + "previous_fingerprint": "f5909cc8dd53b2105953d1a72cd5d6181367d3588964aa01a04c056205a5d419", + "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:8c84fac@sha256:f5909cc8dd53b2105953d1a72cd5d6181367d3588964aa01a04c056205a5d419", "previous_artifact_compliance_state": "COMPLIANT", "previous_running": false, "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/00c479764cb9eca038fdaaaef108672d0bb0ed26", - "previous_trail_name": "runner-414a07a72fbd04444ba4d2e19b6c7102095d5aeb469211f99166538626c08d06", - "previous_template_reference_name": "runner" + "previous_trail_name": "saver-f5909cc8dd53b2105953d1a72cd5d6181367d3588964aa01a04c056205a5d419", + "previous_template_reference_name": "saver" }, - "commit_lead_time": 1287634.0, + "commit_lead_time": -80412.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", + "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", + "template_reference_name": "saver", + "git_commit": "c0666c020044ac5b5181999ec153db1e7f6cd303", + "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303", "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": "c0666c020044ac5b5181999ec153db1e7f6cd303", + "message": "Drop lone use of = separator on Kosli CLI boolean flag", "author": "JonJagger ", "branch": "main", - "timestamp": 1783850974.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7" + "timestamp": 1785316951.0, + "url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67?artifact_id=d615c9d4-25ad-47f2-989c-5a89db32", + "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4?artifact_id=1e09b5c8-60fa-4227-8ddb-67fab193", "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/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7...35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", + "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7...c0666c020044ac5b5181999ec153db1e7f6cd303", "previous_git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "previous_fingerprint": "d7c56f15abf30e1424444c9de9beb4884f72dd400183da58fa9d8d1092309e7b", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:6dac3ae@sha256:d7c56f15abf30e1424444c9de9beb4884f72dd400183da58fa9d8d1092309e7b", + "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/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", - "previous_trail_name": "runner-d7c56f15abf30e1424444c9de9beb4884f72dd400183da58fa9d8d1092309e7b", - "previous_template_reference_name": "runner" + "previous_trail_name": "saver-b0c07ba3f67f16c2a1b6f0096f1474df6600ed3556e0e82b78d24acabc9b2bab", + "previous_template_reference_name": "saver" }, - "commit_lead_time": 1287634.0, + "commit_lead_time": -80412.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/77b4502f86ca4337a17e8ddfe0e8177b", "cluster_name": null, "service_name": null } @@ -9241,20 +9511,20 @@ kosli get snapshot aws-prod --output=json "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": "c0666c020044ac5b5181999ec153db1e7f6cd303", + "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303", "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": "c0666c020044ac5b5181999ec153db1e7f6cd303", + "message": "Drop lone use of = separator on Kosli CLI boolean flag", "author": "JonJagger ", "branch": "main", - "timestamp": 1783850974.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7" + "timestamp": 1785316951.0, + "url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6?artifact_id=867a63ce-d8a5-4a06-85c7-fcccdd49", + "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6?artifact_id=e337ab34-8c68-4b0b-90d3-f961c5ff", "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact", "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/7172cc22125f480a9f12127edb481a4d84aabea3...35a09b2d283bafd6bbc12c29eba3306d5b36a5f7", + "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/7172cc22125f480a9f12127edb481a4d84aabea3...c0666c020044ac5b5181999ec153db1e7f6cd303", "previous_git_commit": "7172cc22125f480a9f12127edb481a4d84aabea3", "previous_fingerprint": "e8b5e25c5550658cdbd2b8339684b18bce86aaf6538611124ff62f2582c2e5b6", "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/creator:a288de5@sha256:e8b5e25c5550658cdbd2b8339684b18bce86aaf6538611124ff62f2582c2e5b6", @@ -9264,7 +9534,7 @@ kosli get snapshot aws-prod --output=json "previous_trail_name": "creator-e8b5e25c5550658cdbd2b8339684b18bce86aaf6538611124ff62f2582c2e5b6", "previous_template_reference_name": "creator" }, - "commit_lead_time": 506096.0, + "commit_lead_time": -959881.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] }, @@ -9272,20 +9542,20 @@ kosli get snapshot aws-prod --output=json "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": "c0666c020044ac5b5181999ec153db1e7f6cd303", + "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303", "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": "c0666c020044ac5b5181999ec153db1e7f6cd303", + "message": "Drop lone use of = separator on Kosli CLI boolean flag", "author": "JonJagger ", "branch": "main", - "timestamp": 1783850974.0, - "url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7" + "timestamp": 1785316951.0, + "url": "https://github.com/cyber-dojo/snyk-scanning/commit/c0666c020044ac5b5181999ec153db1e7f6cd303" }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6?artifact_id=acb0214b-3bc9-4b83-8971-0751b1fb", + "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6?artifact_id=ef39d97b-055b-4e03-b208-72d8c545", "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", + "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/a517304f4e9013e2e9ea67e90c7342f7e56653f0...c0666c020044ac5b5181999ec153db1e7f6cd303", "previous_git_commit": "a517304f4e9013e2e9ea67e90c7342f7e56653f0", "previous_fingerprint": "0744a611723cb72a3f24b33c2d56fcbb1bfbedf0637a962f259fada8e3dbbe50", "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/creator:7e00b70@sha256:0744a611723cb72a3f24b33c2d56fcbb1bfbedf0637a962f259fada8e3dbbe50", @@ -9295,7 +9565,7 @@ kosli get snapshot aws-prod --output=json "previous_trail_name": "creator-0744a611723cb72a3f24b33c2d56fcbb1bfbedf0637a962f259fada8e3dbbe50", "previous_template_reference_name": "creator" }, - "commit_lead_time": 506096.0, + "commit_lead_time": -959881.0, "artifact_compliance_in_flow": true, "flow_reasons_for_non_compliance": [] } @@ -9305,581 +9575,6 @@ kosli get snapshot aws-prod --output=json "cluster_name": null, "service_name": null } - }, - { - "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/spooler:e4d9d08@sha256:2d13ace2ba9449bcabeaef32f8cdc9255eff976ddf7a4ce5bd70e46bac11b204", - "compliant": true, - "deployments": [], - "policy_decisions": [ - { - "policy_version": 3, - "status": "COMPLIANT", - "rule_evaluations": [ - { - "rule": { - "type": "provenance", - "definition": { - "required": false, - "exceptions": [] - } - }, - "satisfied": null, - "ignored": true, - "resolutions": [ - { - "type": "rule_not_applicable", - "context": { - "flow_name": "spooler-ci", - "trail_name": "e4d9d0868e299522b207696e19c07966a09bf08a", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-144", - "artifact_status": null - } - } - ] - }, - { - "rule": { - "type": "trail-compliance", - "definition": { - "required": false, - "exceptions": [] - } - }, - "satisfied": null, - "ignored": true, - "resolutions": [ - { - "type": "rule_not_applicable", - "context": { - "flow_name": "spooler-ci", - "trail_name": "e4d9d0868e299522b207696e19c07966a09bf08a", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-144", - "artifact_status": "COMPLIANT" - } - } - ] - }, - { - "rule": { - "type": "attestation", - "definition": { - "if": { - "text": "flow.tags.kind == \"build\"" - }, - "name": "*", - "type": "pull_request", - "must_be_compliant": true, - "for_control": null - } - }, - "satisfied": null, - "ignored": true, - "resolutions": [ - { - "type": "rule_not_applicable", - "context": { - "flow_name": "spooler-ci", - "trail_name": "e4d9d0868e299522b207696e19c07966a09bf08a", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-144", - "artifact_status": null - } - } - ] - } - ], - "policy_name": "pull-request" - }, - { - "policy_version": 3, - "status": "COMPLIANT", - "rule_evaluations": [ - { - "rule": { - "type": "provenance", - "definition": { - "required": true, - "exceptions": [] - } - }, - "satisfied": true, - "ignored": false, - "resolutions": [ - { - "type": "rule_satisfied", - "context": { - "flow_name": "spooler-ci", - "trail_name": "e4d9d0868e299522b207696e19c07966a09bf08a", - "artifact_status": null - } - }, - { - "type": "rule_satisfied", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-144", - "artifact_status": null - } - } - ] - }, - { - "rule": { - "type": "trail-compliance", - "definition": { - "required": false, - "exceptions": [] - } - }, - "satisfied": null, - "ignored": true, - "resolutions": [ - { - "type": "rule_not_applicable", - "context": { - "flow_name": "spooler-ci", - "trail_name": "e4d9d0868e299522b207696e19c07966a09bf08a", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-144", - "artifact_status": "COMPLIANT" - } - } - ] - }, - { - "rule": { - "type": "attestation", - "definition": { - "if": { - "text": "flow.tags.kind == \"build\"" - }, - "name": "*", - "type": "decision", - "must_be_compliant": true, - "for_control": "SDLC-CTRL-0002" - } - }, - "satisfied": null, - "ignored": true, - "resolutions": [ - { - "type": "rule_not_applicable", - "context": { - "flow_name": "spooler-ci", - "trail_name": "e4d9d0868e299522b207696e19c07966a09bf08a", - "artifact_status": null, - "for_control": "SDLC-CTRL-0002" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-144", - "artifact_status": null, - "for_control": "SDLC-CTRL-0002" - } - } - ] - } - ], - "policy_name": "provenance" - }, - { - "policy_version": 4, - "status": "COMPLIANT", - "rule_evaluations": [ - { - "rule": { - "type": "provenance", - "definition": { - "required": false, - "exceptions": [] - } - }, - "satisfied": null, - "ignored": true, - "resolutions": [ - { - "type": "rule_not_applicable", - "context": { - "flow_name": "spooler-ci", - "trail_name": "e4d9d0868e299522b207696e19c07966a09bf08a", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-144", - "artifact_status": null - } - } - ] - }, - { - "rule": { - "type": "trail-compliance", - "definition": { - "required": false, - "exceptions": [] - } - }, - "satisfied": null, - "ignored": true, - "resolutions": [ - { - "type": "rule_not_applicable", - "context": { - "flow_name": "spooler-ci", - "trail_name": "e4d9d0868e299522b207696e19c07966a09bf08a", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-144", - "artifact_status": "COMPLIANT" - } - } - ] - }, - { - "rule": { - "type": "attestation", - "definition": { - "if": { - "text": "flow.name == \"snyk-aws-prod-per-artifact\"" - }, - "name": "snyk-container-scan", - "type": "decision", - "must_be_compliant": true, - "for_control": "SDLC-CTRL-0022" - } - }, - "satisfied": null, - "ignored": true, - "resolutions": [ - { - "type": "rule_not_applicable", - "context": { - "flow_name": "spooler-ci", - "trail_name": "e4d9d0868e299522b207696e19c07966a09bf08a", - "artifact_status": null, - "for_control": "SDLC-CTRL-0022" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-144", - "artifact_status": null, - "for_control": "SDLC-CTRL-0022" - } - } - ] - } - ], - "policy_name": "snyk-scan-aws-prod" - }, - { - "policy_version": 2, - "status": "COMPLIANT", - "rule_evaluations": [ - { - "rule": { - "type": "provenance", - "definition": { - "required": false, - "exceptions": [] - } - }, - "satisfied": null, - "ignored": true, - "resolutions": [ - { - "type": "rule_not_applicable", - "context": { - "flow_name": "spooler-ci", - "trail_name": "e4d9d0868e299522b207696e19c07966a09bf08a", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-144", - "artifact_status": null - } - } - ] - }, - { - "rule": { - "type": "trail-compliance", - "definition": { - "required": false, - "exceptions": [] - } - }, - "satisfied": null, - "ignored": true, - "resolutions": [ - { - "type": "rule_not_applicable", - "context": { - "flow_name": "spooler-ci", - "trail_name": "e4d9d0868e299522b207696e19c07966a09bf08a", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-144", - "artifact_status": "COMPLIANT" - } - } - ] - }, - { - "rule": { - "type": "attestation", - "definition": { - "if": { - "text": "flow.name == \"production-promotion\"" - }, - "name": "snyk-scan", - "type": "decision", - "must_be_compliant": true, - "for_control": null - } - }, - "satisfied": true, - "ignored": false, - "resolutions": [ - { - "type": "rule_not_applicable", - "context": { - "flow_name": "spooler-ci", - "trail_name": "e4d9d0868e299522b207696e19c07966a09bf08a", - "artifact_status": null - } - }, - { - "type": "rule_satisfied", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-144", - "artifact_status": null - } - } - ] - } - ], - "policy_name": "production-promotion" - }, - { - "policy_version": 2, - "status": "COMPLIANT", - "rule_evaluations": [ - { - "rule": { - "type": "provenance", - "definition": { - "required": false, - "exceptions": [] - } - }, - "satisfied": null, - "ignored": true, - "resolutions": [ - { - "type": "rule_not_applicable", - "context": { - "flow_name": "spooler-ci", - "trail_name": "e4d9d0868e299522b207696e19c07966a09bf08a", - "artifact_status": null - } - }, - { - "type": "rule_not_applicable", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-144", - "artifact_status": null - } - } - ] - }, - { - "rule": { - "type": "trail-compliance", - "definition": { - "required": true, - "exceptions": [ - { - "if": { - "text": "exists(flow.tags.env) and flow.tags.env != \"aws-prod\"" - } - } - ] - } - }, - "satisfied": true, - "ignored": false, - "resolutions": [ - { - "type": "rule_not_applicable", - "context": { - "flow_name": "spooler-ci", - "trail_name": "e4d9d0868e299522b207696e19c07966a09bf08a", - "artifact_status": "COMPLIANT" - } - }, - { - "type": "rule_satisfied", - "context": { - "flow_name": "production-promotion", - "trail_name": "promotion-one-144", - "artifact_status": "COMPLIANT" - } - } - ] - } - ], - "policy_name": "trail-compliance-aws-prod" - } - ], - "reasons_for_incompliance": [], - "fingerprint": "2d13ace2ba9449bcabeaef32f8cdc9255eff976ddf7a4ce5bd70e46bac11b204", - "creationTimestamp": [ - 1785305285 - ], - "pods": null, - "annotation": { - "type": "exited", - "was": 1, - "now": 0 - }, - "flow_name": "spooler-ci", - "git_commit": "e4d9d0868e299522b207696e19c07966a09bf08a", - "commit_url": "https://github.com/cyber-dojo/spooler/commit/e4d9d0868e299522b207696e19c07966a09bf08a", - "html_url": "https://app.kosli.com/cyber-dojo/flows/spooler-ci/artifacts/2d13ace2ba9449bcabeaef32f8cdc9255eff976ddf7a4ce5bd70e46bac11b204?artifact_id=d2a91db5-76a8-43df-988c-d57fda6c", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/spooler-ci", - "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/spooler/compare/92c624eabb024729fb2af6cdbe354db11ee3882f...e4d9d0868e299522b207696e19c07966a09bf08a", - "previous_git_commit": "92c624eabb024729fb2af6cdbe354db11ee3882f", - "previous_fingerprint": "a20359795934beb03d992ba5a8f8b95ca637e609284e5a84781bdcbb1b861975", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/spooler:92c624e@sha256:a20359795934beb03d992ba5a8f8b95ca637e609284e5a84781bdcbb1b861975", - "previous_artifact_compliance_state": "COMPLIANT", - "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/spooler/commit/92c624eabb024729fb2af6cdbe354db11ee3882f", - "previous_trail_name": "92c624eabb024729fb2af6cdbe354db11ee3882f", - "previous_template_reference_name": "spooler" - }, - "commit_lead_time": 788.0, - "flows": [ - { - "flow_name": "spooler-ci", - "trail_name": "e4d9d0868e299522b207696e19c07966a09bf08a", - "template_reference_name": "spooler", - "git_commit": "e4d9d0868e299522b207696e19c07966a09bf08a", - "commit_url": "https://github.com/cyber-dojo/spooler/commit/e4d9d0868e299522b207696e19c07966a09bf08a", - "git_commit_info": { - "sha1": "e4d9d0868e299522b207696e19c07966a09bf08a", - "message": "Merge pull request #12 from cyber-dojo/run-ci-workflow-4\n\nRun ci workflow to force a deployment", - "author": "Jon Jagger ", - "branch": "", - "timestamp": 1785304497.0, - "url": "https://github.com/cyber-dojo/spooler/commit/e4d9d0868e299522b207696e19c07966a09bf08a" - }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/spooler-ci/artifacts/2d13ace2ba9449bcabeaef32f8cdc9255eff976ddf7a4ce5bd70e46bac11b204?artifact_id=d2a91db5-76a8-43df-988c-d57fda6c", - "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/spooler-ci", - "deployment_diff": { - "diff_url": "https://github.com/cyber-dojo/spooler/compare/92c624eabb024729fb2af6cdbe354db11ee3882f...e4d9d0868e299522b207696e19c07966a09bf08a", - "previous_git_commit": "92c624eabb024729fb2af6cdbe354db11ee3882f", - "previous_fingerprint": "a20359795934beb03d992ba5a8f8b95ca637e609284e5a84781bdcbb1b861975", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/spooler:92c624e@sha256:a20359795934beb03d992ba5a8f8b95ca637e609284e5a84781bdcbb1b861975", - "previous_artifact_compliance_state": "COMPLIANT", - "previous_running": false, - "previous_git_commit_url": "https://github.com/cyber-dojo/spooler/commit/92c624eabb024729fb2af6cdbe354db11ee3882f", - "previous_trail_name": "92c624eabb024729fb2af6cdbe354db11ee3882f", - "previous_template_reference_name": "spooler" - }, - "commit_lead_time": 788.0, - "artifact_compliance_in_flow": true, - "flow_reasons_for_non_compliance": [] - }, - { - "flow_name": "production-promotion", - "trail_name": "promotion-one-144", - "template_reference_name": "spooler", - "git_commit": "81c216a55b2cb1787645e699ceaceca868cad253", - "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253", - "git_commit_info": { - "sha1": "81c216a55b2cb1787645e699ceaceca868cad253", - "message": "Add spooler service name to promote_one.yml", - "author": "JonJagger ", - "branch": "main", - "timestamp": 1785143054.0, - "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253" - }, - "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/2d13ace2ba9449bcabeaef32f8cdc9255eff976ddf7a4ce5bd70e46bac11b204?artifact_id=52a4e142-1fbf-43ff-aa0f-77be3722", - "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": "a20359795934beb03d992ba5a8f8b95ca637e609284e5a84781bdcbb1b861975", - "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/spooler:92c624e@sha256:a20359795934beb03d992ba5a8f8b95ca637e609284e5a84781bdcbb1b861975", - "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-140", - "previous_template_reference_name": "spooler" - }, - "commit_lead_time": 162231.0, - "artifact_compliance_in_flow": true, - "flow_reasons_for_non_compliance": [] - } - ], - "ecs_context": { - "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/e26ec5335fcb49c3a938df19ecc5b23c", - "cluster_name": null, - "service_name": null - } } ], "applied_policies": [ diff --git a/client_reference/kosli_list_environments.md b/client_reference/kosli_list_environments.md index 4b4f943..80a6a11 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": 1785324204.0388827, - "last_reported_at": 1785324204.0388827, - "last_changed_at": 1785310343.8935354, + "last_modified_at": 1785405144.0992692, + "last_reported_at": 1785405144.0992692, + "last_changed_at": 1785399024.0606346, "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": 1785324008.8526094, - "last_reported_at": 1785324008.8526094, - "last_changed_at": 1785310508.6621323, + "last_modified_at": 1785405008.6709044, + "last_reported_at": 1785405008.6709044, + "last_changed_at": 1785399308.8990152, "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": 1785324178.5060613, - "last_reported_at": 1785324178.5060613, - "last_changed_at": 1785310558.4611607, + "last_modified_at": 1785405118.3597527, + "last_reported_at": 1785405118.3597527, + "last_changed_at": 1785386758.6525679, "state": true, "include_scaling": false, "tags": { @@ -122,8 +122,8 @@ 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": 1785323912.125187, - "last_reported_at": 1785323912.125187, + "last_modified_at": 1785404924.3084204, + "last_reported_at": 1785404924.3084204, "last_changed_at": 1785311013.6893866, "state": true, "include_scaling": false, @@ -138,9 +138,9 @@ kosli list environments --output=json "name": "production", "type": "logical", "description": "Production environments for cyber-dojo", - "last_modified_at": 1785311013.6893866, + "last_modified_at": 1785386758.6525679, "last_reported_at": null, - "last_changed_at": 1785311013.6893866, + "last_changed_at": 1785386758.6525679, "state": true, "include_scaling": false, "tags": {}, @@ -155,9 +155,9 @@ kosli list environments --output=json "name": "staging", "type": "logical", "description": "Staging environments for cyber-dojo", - "last_modified_at": 1785310508.6621323, + "last_modified_at": 1785399308.8990152, "last_reported_at": null, - "last_changed_at": 1785310508.6621323, + "last_changed_at": 1785399308.8990152, "state": true, "include_scaling": false, "tags": {}, diff --git a/client_reference/kosli_list_snapshots.md b/client_reference/kosli_list_snapshots.md index ab03b5b..9ae3a26 100644 --- a/client_reference/kosli_list_snapshots.md +++ b/client_reference/kosli_list_snapshots.md @@ -63,12 +63,40 @@ kosli list snapshots aws-prod --output=json ```json [ + { + "index": 5138, + "from": 1785386758.6525679, + "to": 0.0, + "compliant": true, + "duration": 18396.789004325867 + }, + { + "index": 5137, + "from": 1785386638.4935195, + "to": 1785386758.6525679, + "compliant": true, + "duration": 120.15904831886292 + }, + { + "index": 5136, + "from": 1785386578.4141178, + "to": 1785386638.4935195, + "compliant": true, + "duration": 60.07940173149109 + }, + { + "index": 5135, + "from": 1785386518.396874, + "to": 1785386578.4141178, + "compliant": true, + "duration": 60.0172438621521 + }, { "index": 5134, "from": 1785310558.4611607, - "to": 0.0, + "to": 1785386518.396874, "compliant": true, - "duration": 13650.749610424042 + "duration": 75959.93571329117 }, { "index": 5133, @@ -139,34 +167,6 @@ kosli list snapshots aws-prod --output=json "to": 1785243418.5364106, "compliant": true, "duration": 1740.1218185424805 - }, - { - "index": 5123, - "from": 1785241618.6033545, - "to": 1785241678.414592, - "compliant": true, - "duration": 59.81123757362366 - }, - { - "index": 5122, - "from": 1785241318.4716694, - "to": 1785241618.6033545, - "compliant": true, - "duration": 300.13168501853943 - }, - { - "index": 5121, - "from": 1785241258.6193466, - "to": 1785241318.4716694, - "compliant": true, - "duration": 59.852322816848755 - }, - { - "index": 5120, - "from": 1785240718.5257201, - "to": 1785241258.6193466, - "compliant": true, - "duration": 540.093626499176 } ] ``` diff --git a/client_reference/kosli_log_environment.md b/client_reference/kosli_log_environment.md index 030355f..c124acb 100644 --- a/client_reference/kosli_log_environment.md +++ b/client_reference/kosli_log_environment.md @@ -72,11 +72,11 @@ kosli log environment aws-prod --output=json [ { "environment_name": "aws-prod", - "snapshot_index": 5134, + "snapshot_index": 5138, "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/spooler:c81791f@sha256:6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac", "sha256": "6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac", - "description": "1 instance started running (from 0 to 1)", - "reported_at": 1785310558.4611607, + "description": "1 instance changed", + "reported_at": 1785386758.6525679, "pipeline": "spooler-ci", "deployments": [], "flows": [ @@ -87,11 +87,19 @@ kosli log environment aws-prod --output=json { "flow_name": "production-promotion", "deployments": null + }, + { + "flow_name": "snyk-aws-prod-per-artifact", + "deployments": null + }, + { + "flow_name": "snyk-aws-beta-per-artifact", + "deployments": null } ], "artifact_compliance": true, "snapshot_compliance": true, - "type": "started-compliant", + "type": "updated-provenance", "code_diff": "https://github.com/cyber-dojo/spooler/compare/e4d9d0868e299522b207696e19c07966a09bf08a...c81791fd10558a59f83876137fb021abcd89f262", "_links": { "artifact": { @@ -99,91 +107,107 @@ kosli log environment aws-prod --output=json "html": "https://app.kosli.com/cyber-dojo/flows/spooler-ci/artifacts/6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac?artifact_id=28274720-dc6e-4b52-b48e-4418ecaa" }, "snapshot": { - "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5134", - "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5134" + "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5138", + "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5138" } } }, { "environment_name": "aws-prod", - "snapshot_index": 5134, - "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/spooler:e4d9d08@sha256:2d13ace2ba9449bcabeaef32f8cdc9255eff976ddf7a4ce5bd70e46bac11b204", - "sha256": "2d13ace2ba9449bcabeaef32f8cdc9255eff976ddf7a4ce5bd70e46bac11b204", - "description": "1 instance stopped running (from 1 to 0)", - "reported_at": 1785310558.4611607, - "pipeline": "spooler-ci", + "snapshot_index": 5138, + "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:19f8734@sha256:8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "sha256": "8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", + "description": "3 instances changed", + "reported_at": 1785386758.6525679, + "pipeline": "runner-ci", "deployments": [], "flows": [ { - "flow_name": "spooler-ci", + "flow_name": "runner-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": "exited", - "code_diff": "https://github.com/cyber-dojo/spooler/compare/92c624eabb024729fb2af6cdbe354db11ee3882f...e4d9d0868e299522b207696e19c07966a09bf08a", + "type": "updated-provenance", + "code_diff": "https://github.com/cyber-dojo/runner/compare/6dac3ae5d85ee8e6040d8badd5c2eede44bc8a6b...19f873464a01f28ecd588504ffe03529119d6297", "_links": { "artifact": { - "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/spooler-ci/fingerprint/2d13ace2ba9449bcabeaef32f8cdc9255eff976ddf7a4ce5bd70e46bac11b204", - "html": "https://app.kosli.com/cyber-dojo/flows/spooler-ci/artifacts/2d13ace2ba9449bcabeaef32f8cdc9255eff976ddf7a4ce5bd70e46bac11b204?artifact_id=d2a91db5-76a8-43df-988c-d57fda6c" + "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" }, "snapshot": { - "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5134", - "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5134" + "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5138", + "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5138" } } }, { "environment_name": "aws-prod", - "snapshot_index": 5133, - "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/spooler:e4d9d08@sha256:2d13ace2ba9449bcabeaef32f8cdc9255eff976ddf7a4ce5bd70e46bac11b204", - "sha256": "2d13ace2ba9449bcabeaef32f8cdc9255eff976ddf7a4ce5bd70e46bac11b204", - "description": "1 instance started running (from 0 to 1)", - "reported_at": 1785305338.459451, - "pipeline": "spooler-ci", + "snapshot_index": 5138, + "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/languages-start-points:6a7f7be@sha256:b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", + "sha256": "b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", + "description": "1 instance changed", + "reported_at": 1785386758.6525679, + "pipeline": "languages-start-points-ci", "deployments": [], "flows": [ { - "flow_name": "spooler-ci", + "flow_name": "languages-start-points-ci", "deployments": null }, { "flow_name": "production-promotion", "deployments": null + }, + { + "flow_name": "snyk-aws-prod-per-artifact", + "deployments": null + }, + { + "flow_name": "snyk-aws-beta-per-artifact", + "deployments": null } ], "artifact_compliance": true, "snapshot_compliance": true, - "type": "started-compliant", - "code_diff": "https://github.com/cyber-dojo/spooler/compare/92c624eabb024729fb2af6cdbe354db11ee3882f...e4d9d0868e299522b207696e19c07966a09bf08a", + "type": "updated-provenance", + "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/spooler-ci/fingerprint/2d13ace2ba9449bcabeaef32f8cdc9255eff976ddf7a4ce5bd70e46bac11b204", - "html": "https://app.kosli.com/cyber-dojo/flows/spooler-ci/artifacts/2d13ace2ba9449bcabeaef32f8cdc9255eff976ddf7a4ce5bd70e46bac11b204?artifact_id=d2a91db5-76a8-43df-988c-d57fda6c" + "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/5133", - "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5133" + "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5138", + "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5138" } } }, { "environment_name": "aws-prod", - "snapshot_index": 5133, - "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/spooler:92c624e@sha256:a20359795934beb03d992ba5a8f8b95ca637e609284e5a84781bdcbb1b861975", - "sha256": "a20359795934beb03d992ba5a8f8b95ca637e609284e5a84781bdcbb1b861975", - "description": "1 instance stopped running (from 1 to 0)", - "reported_at": 1785305338.459451, - "pipeline": "spooler-ci", + "snapshot_index": 5137, + "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:c29db2c@sha256:680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", + "sha256": "680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", + "description": "1 instance changed", + "reported_at": 1785386638.4935195, + "pipeline": "saver-ci", "deployments": [], "flows": [ { - "flow_name": "spooler-ci", + "flow_name": "saver-ci", "deployments": null }, { @@ -201,31 +225,31 @@ kosli log environment aws-prod --output=json ], "artifact_compliance": true, "snapshot_compliance": true, - "type": "exited", - "code_diff": "https://github.com/cyber-dojo/spooler/compare/b592c3af03e9530c1d224686a1745e4a12e1df00...92c624eabb024729fb2af6cdbe354db11ee3882f", + "type": "updated-provenance", + "code_diff": "https://github.com/cyber-dojo/saver/compare/f4bb3412725258648a7cf5ce1a776609b4dade72...c29db2ce6d16a9ace09a8548b0cc39fd608abd2e", "_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/saver-ci/fingerprint/680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", + "html": "https://app.kosli.com/cyber-dojo/flows/saver-ci/artifacts/680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4?artifact_id=1fb48da0-c9b7-4627-8597-827ecccf" }, "snapshot": { - "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5133", - "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5133" + "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5137", + "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5137" } } }, { "environment_name": "aws-prod", - "snapshot_index": 5132, - "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:19f8734@sha256:8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", - "sha256": "8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", - "description": "3 instances changed", - "reported_at": 1785301138.4848077, - "pipeline": "runner-ci", + "snapshot_index": 5137, + "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/spooler:c81791f@sha256:6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac", + "sha256": "6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac", + "description": "1 instance changed", + "reported_at": 1785386638.4935195, + "pipeline": "spooler-ci", "deployments": [], "flows": [ { - "flow_name": "runner-ci", + "flow_name": "spooler-ci", "deployments": null }, { @@ -235,39 +259,35 @@ kosli log environment aws-prod --output=json { "flow_name": "snyk-aws-prod-per-artifact", "deployments": null - }, - { - "flow_name": "snyk-aws-beta-per-artifact", - "deployments": null } ], "artifact_compliance": true, "snapshot_compliance": true, "type": "updated-provenance", - "code_diff": "https://github.com/cyber-dojo/runner/compare/6dac3ae5d85ee8e6040d8badd5c2eede44bc8a6b...19f873464a01f28ecd588504ffe03529119d6297", + "code_diff": "https://github.com/cyber-dojo/spooler/compare/e4d9d0868e299522b207696e19c07966a09bf08a...c81791fd10558a59f83876137fb021abcd89f262", "_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/spooler-ci/fingerprint/6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac", + "html": "https://app.kosli.com/cyber-dojo/flows/spooler-ci/artifacts/6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac?artifact_id=28274720-dc6e-4b52-b48e-4418ecaa" }, "snapshot": { - "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5132", - "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5132" + "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5137", + "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5137" } } }, { "environment_name": "aws-prod", - "snapshot_index": 5131, - "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:c29db2c@sha256:680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", - "sha256": "680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", + "snapshot_index": 5137, + "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:a2e4638@sha256:c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", + "sha256": "c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", "description": "1 instance changed", - "reported_at": 1785301078.6254478, - "pipeline": "saver-ci", + "reported_at": 1785386638.4935195, + "pipeline": "nginx-ci", "deployments": [], "flows": [ { - "flow_name": "saver-ci", + "flow_name": "nginx-ci", "deployments": null }, { @@ -275,41 +295,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/f4bb3412725258648a7cf5ce1a776609b4dade72...c29db2ce6d16a9ace09a8548b0cc39fd608abd2e", + "code_diff": "https://github.com/cyber-dojo/nginx/compare/7ba8029e0cb5d4c8fa51360f59b5cb8714a60d47...a2e4638aaa102446b8a6d1d519c5bc007e24f087", "_links": { "artifact": { - "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/saver-ci/fingerprint/680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", - "html": "https://app.kosli.com/cyber-dojo/flows/saver-ci/artifacts/680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4?artifact_id=1fb48da0-c9b7-4627-8597-827ecccf" + "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/5131", - "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5131" + "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5137", + "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5137" } } }, { "environment_name": "aws-prod", - "snapshot_index": 5131, - "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:19f8734@sha256:8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", - "sha256": "8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67", - "description": "3 instances changed", - "reported_at": 1785301078.6254478, - "pipeline": "runner-ci", + "snapshot_index": 5137, + "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:258b6d0@sha256:c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "sha256": "c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea", + "description": "1 instance changed", + "reported_at": 1785386638.4935195, + "pipeline": "exercises-start-points-ci", "deployments": [], "flows": [ { - "flow_name": "runner-ci", + "flow_name": "exercises-start-points-ci", "deployments": null }, { @@ -317,41 +337,41 @@ kosli log environment aws-prod --output=json "deployments": null }, { - "flow_name": "snyk-aws-beta-per-artifact", + "flow_name": "snyk-aws-prod-per-artifact", "deployments": null }, { - "flow_name": "snyk-aws-prod-per-artifact", + "flow_name": "snyk-aws-beta-per-artifact", "deployments": null } ], "artifact_compliance": true, "snapshot_compliance": true, "type": "updated-provenance", - "code_diff": "https://github.com/cyber-dojo/runner/compare/6dac3ae5d85ee8e6040d8badd5c2eede44bc8a6b...19f873464a01f28ecd588504ffe03529119d6297", + "code_diff": "https://github.com/cyber-dojo/exercises-start-points/compare/804f248d832dc34e564507b009c246dfb4f0c657...258b6d07d2b28ad5cb2ce6d29934997f72380f1a", "_links": { "artifact": { - "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/runner-ci/fingerprint/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/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/5131", - "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5131" + "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5137", + "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5137" } } }, { "environment_name": "aws-prod", - "snapshot_index": 5131, - "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:a2e4638@sha256:c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", - "sha256": "c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053", + "snapshot_index": 5136, + "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:c29db2c@sha256:680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", + "sha256": "680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", "description": "1 instance changed", - "reported_at": 1785301078.6254478, - "pipeline": "nginx-ci", + "reported_at": 1785386578.4141178, + "pipeline": "saver-ci", "deployments": [], "flows": [ { - "flow_name": "nginx-ci", + "flow_name": "saver-ci", "deployments": null }, { @@ -359,41 +379,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/nginx/compare/7ba8029e0cb5d4c8fa51360f59b5cb8714a60d47...a2e4638aaa102446b8a6d1d519c5bc007e24f087", + "type": "changed", + "code_diff": "https://github.com/cyber-dojo/saver/compare/f4bb3412725258648a7cf5ce1a776609b4dade72...c29db2ce6d16a9ace09a8548b0cc39fd608abd2e", "_links": { "artifact": { - "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" + "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/saver-ci/fingerprint/680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", + "html": "https://app.kosli.com/cyber-dojo/flows/saver-ci/artifacts/680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4?artifact_id=1fb48da0-c9b7-4627-8597-827ecccf" }, "snapshot": { - "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5131", - "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5131" + "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5136", + "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5136" } } }, { "environment_name": "aws-prod", - "snapshot_index": 5131, - "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:0fb0be4@sha256:c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", - "sha256": "c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", + "snapshot_index": 5136, + "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/custom-start-points:790d86b@sha256:8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", + "sha256": "8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", "description": "1 instance changed", - "reported_at": 1785301078.6254478, - "pipeline": "dashboard-ci", + "reported_at": 1785386578.4141178, + "pipeline": "custom-start-points-ci", "deployments": [], "flows": [ { - "flow_name": "dashboard-ci", + "flow_name": "custom-start-points-ci", "deployments": null }, { @@ -412,30 +432,30 @@ kosli log environment aws-prod --output=json "artifact_compliance": true, "snapshot_compliance": true, "type": "updated-provenance", - "code_diff": "https://github.com/cyber-dojo/dashboard/compare/5407827a19ff32c8d0e7ff2e8f18665e86e64f01...0fb0be439480821efb926a5079e39ce5941eaa48", + "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/dashboard-ci/fingerprint/c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", - "html": "https://app.kosli.com/cyber-dojo/flows/dashboard-ci/artifacts/c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98?artifact_id=e55cba1f-ce06-49ff-9701-62eb823d" + "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/5131", - "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5131" + "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5136", + "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5136" } } }, { "environment_name": "aws-prod", - "snapshot_index": 5130, - "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:2779354@sha256:af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", - "sha256": "af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", - "description": "3 instances changed", - "reported_at": 1785301018.7636228, - "pipeline": "web-ci", + "snapshot_index": 5136, + "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/creator:76672a8@sha256:aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", + "sha256": "aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", + "description": "1 instance changed", + "reported_at": 1785386578.4141178, + "pipeline": "creator-ci", "deployments": [], "flows": [ { - "flow_name": "web-ci", + "flow_name": "creator-ci", "deployments": null }, { @@ -454,30 +474,30 @@ kosli log environment aws-prod --output=json "artifact_compliance": true, "snapshot_compliance": true, "type": "updated-provenance", - "code_diff": "https://github.com/cyber-dojo/web/compare/aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f...2779354a4fda0eeb90fd43f32211836d99f6bde1", + "code_diff": "https://github.com/cyber-dojo/creator/compare/7e00b70f8911edf1c480ba9a8b9c2a280260cb08...76672a8b247049c3ce8c3140852e17be8f47d995", "_links": { "artifact": { - "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" + "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" }, "snapshot": { - "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5130", - "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5130" + "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5136", + "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5136" } } }, { "environment_name": "aws-prod", - "snapshot_index": 5129, - "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/custom-start-points:790d86b@sha256:8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", - "sha256": "8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", - "description": "1 instance changed", - "reported_at": 1785300958.5618691, - "pipeline": "custom-start-points-ci", + "snapshot_index": 5136, + "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:2779354@sha256:af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", + "sha256": "af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e", + "description": "3 instances changed", + "reported_at": 1785386578.4141178, + "pipeline": "web-ci", "deployments": [], "flows": [ { - "flow_name": "custom-start-points-ci", + "flow_name": "web-ci", "deployments": null }, { @@ -485,41 +505,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/custom-start-points/compare/d37aace7598ee943ba0bd5e51f224335cbdf0a3e...790d86b66f4d86ab47f5c521daf5039dc8aeef4d", + "code_diff": "https://github.com/cyber-dojo/web/compare/aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f...2779354a4fda0eeb90fd43f32211836d99f6bde1", "_links": { "artifact": { - "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/custom-start-points-ci/fingerprint/8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", - "html": "https://app.kosli.com/cyber-dojo/flows/custom-start-points-ci/artifacts/8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81?artifact_id=653e13a5-2f2a-4a23-be4e-1693fc77" + "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/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/5129", - "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5129" + "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5136", + "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5136" } } }, { "environment_name": "aws-prod", - "snapshot_index": 5129, - "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/spooler:92c624e@sha256:a20359795934beb03d992ba5a8f8b95ca637e609284e5a84781bdcbb1b861975", - "sha256": "a20359795934beb03d992ba5a8f8b95ca637e609284e5a84781bdcbb1b861975", + "snapshot_index": 5136, + "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:0fb0be4@sha256:c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", + "sha256": "c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98", "description": "1 instance changed", - "reported_at": 1785300958.5618691, - "pipeline": "spooler-ci", + "reported_at": 1785386578.4141178, + "pipeline": "dashboard-ci", "deployments": [], "flows": [ { - "flow_name": "spooler-ci", + "flow_name": "dashboard-ci", "deployments": null }, { @@ -538,30 +558,30 @@ kosli log environment aws-prod --output=json "artifact_compliance": true, "snapshot_compliance": true, "type": "updated-provenance", - "code_diff": "https://github.com/cyber-dojo/spooler/compare/b592c3af03e9530c1d224686a1745e4a12e1df00...92c624eabb024729fb2af6cdbe354db11ee3882f", + "code_diff": "https://github.com/cyber-dojo/dashboard/compare/5407827a19ff32c8d0e7ff2e8f18665e86e64f01...0fb0be439480821efb926a5079e39ce5941eaa48", "_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/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/5129", - "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5129" + "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5136", + "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5136" } } }, { "environment_name": "aws-prod", - "snapshot_index": 5129, - "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/languages-start-points:6a7f7be@sha256:b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", - "sha256": "b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b", + "snapshot_index": 5135, + "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:c29db2c@sha256:680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", + "sha256": "680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", "description": "1 instance changed", - "reported_at": 1785300958.5618691, - "pipeline": "languages-start-points-ci", + "reported_at": 1785386518.396874, + "pipeline": "saver-ci", "deployments": [], "flows": [ { - "flow_name": "languages-start-points-ci", + "flow_name": "saver-ci", "deployments": null }, { @@ -569,41 +589,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/languages-start-points/compare/c6db342472238a7852b6ff31b04f9a6a6099f5cf...6a7f7be81022f7ed3fa8383f016b55af86e2af23", + "code_diff": "https://github.com/cyber-dojo/saver/compare/f4bb3412725258648a7cf5ce1a776609b4dade72...c29db2ce6d16a9ace09a8548b0cc39fd608abd2e", "_links": { "artifact": { - "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" + "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/saver-ci/fingerprint/680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", + "html": "https://app.kosli.com/cyber-dojo/flows/saver-ci/artifacts/680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4?artifact_id=1fb48da0-c9b7-4627-8597-827ecccf" }, "snapshot": { - "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5129", - "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5129" + "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5135", + "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5135" } } }, { "environment_name": "aws-prod", - "snapshot_index": 5129, - "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/differ:1b7ea87@sha256:c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", - "sha256": "c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", + "snapshot_index": 5135, + "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/custom-start-points:790d86b@sha256:8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", + "sha256": "8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81", "description": "1 instance changed", - "reported_at": 1785300958.5618691, - "pipeline": "differ-ci", + "reported_at": 1785386518.396874, + "pipeline": "custom-start-points-ci", "deployments": [], "flows": [ { - "flow_name": "differ-ci", + "flow_name": "custom-start-points-ci", "deployments": null }, { @@ -611,47 +631,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": "https://github.com/cyber-dojo/differ/compare/335ddfa139708c37908dd594a0502bc6d88f8615...1b7ea87a174a1a290600b469dc1029ec4c974320", + "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/differ-ci/fingerprint/c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12", - "html": "https://app.kosli.com/cyber-dojo/flows/differ-ci/artifacts/c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12?artifact_id=53b144c7-33a3-4d8a-b416-37aea745" + "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/5129", - "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5129" + "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5135", + "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5135" } } }, { "environment_name": "aws-prod", - "snapshot_index": 5128, - "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:c29db2c@sha256:680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", - "sha256": "680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", + "snapshot_index": 5135, + "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/creator:76672a8@sha256:aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", + "sha256": "aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6", "description": "1 instance changed", - "reported_at": 1785300898.3949952, - "pipeline": "saver-ci", + "reported_at": 1785386518.396874, + "pipeline": "creator-ci", "deployments": [], "flows": [ { - "flow_name": "saver-ci", + "flow_name": "creator-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 @@ -660,15 +684,15 @@ kosli log environment aws-prod --output=json "artifact_compliance": true, "snapshot_compliance": true, "type": "updated-provenance", - "code_diff": "https://github.com/cyber-dojo/saver/compare/f4bb3412725258648a7cf5ce1a776609b4dade72...c29db2ce6d16a9ace09a8548b0cc39fd608abd2e", + "code_diff": "https://github.com/cyber-dojo/creator/compare/7e00b70f8911edf1c480ba9a8b9c2a280260cb08...76672a8b247049c3ce8c3140852e17be8f47d995", "_links": { "artifact": { - "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/saver-ci/fingerprint/680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4", - "html": "https://app.kosli.com/cyber-dojo/flows/saver-ci/artifacts/680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4?artifact_id=1fb48da0-c9b7-4627-8597-827ecccf" + "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" }, "snapshot": { - "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5128", - "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5128" + "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5135", + "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5135" } } } diff --git a/client_reference/kosli_snapshot_azure.md b/client_reference/kosli_snapshot_azure.md index 9f82c7c..d48483c 100644 --- a/client_reference/kosli_snapshot_azure.md +++ b/client_reference/kosli_snapshot_azure.md @@ -49,10 +49,8 @@ The service principal needs to have the following permissions: | `-c`, `--config-file` string | [optional] The Kosli config file path. (default "kosli") | | `--debug` | [optional] Print debug logs to stdout. | | `--environment-description` string | [optional] The environment description. | -| `--exclude-scaling` | [optional] Exclude scaling events for snapshots. Snapshots with scaling changes will not result in new environment records. | | `-H`, `--host` string | [defaulted] The Kosli endpoint. (default "https://app.kosli.com") | | `--http-proxy` string | [optional] The HTTP proxy URL including protocol and port number. e.g. `http://proxy-server-ip:proxy-port` | -| `--include-scaling` | [optional] Include scaling events for snapshots. Snapshots with scaling changes will result in new environment records. | | `-r`, `--max-api-retries` int | [defaulted] How many times should API calls be retried when the API host is not reachable. (default 3) | | `--org` string | The Kosli organization. | | `-q`, `--quiet` | [optional] Suppress non-critical warning messages. Errors and normal output are not affected. If both `--quiet` and `--debug` are set, `--debug` wins. | diff --git a/client_reference/kosli_snapshot_cloud-run.md b/client_reference/kosli_snapshot_cloud-run.md index ecef735..18bad1f 100644 --- a/client_reference/kosli_snapshot_cloud-run.md +++ b/client_reference/kosli_snapshot_cloud-run.md @@ -74,10 +74,8 @@ reverse-lookup. Only supported for Artifact Registry hosts. | `-c`, `--config-file` string | [optional] The Kosli config file path. (default "kosli") | | `--debug` | [optional] Print debug logs to stdout. | | `--environment-description` string | [optional] The environment description. | -| `--exclude-scaling` | [optional] Exclude scaling events for snapshots. Snapshots with scaling changes will not result in new environment records. | | `-H`, `--host` string | [defaulted] The Kosli endpoint. (default "https://app.kosli.com") | | `--http-proxy` string | [optional] The HTTP proxy URL including protocol and port number. e.g. `http://proxy-server-ip:proxy-port` | -| `--include-scaling` | [optional] Include scaling events for snapshots. Snapshots with scaling changes will result in new environment records. | | `-r`, `--max-api-retries` int | [defaulted] How many times should API calls be retried when the API host is not reachable. (default 3) | | `--org` string | The Kosli organization. | | `-q`, `--quiet` | [optional] Suppress non-critical warning messages. Errors and normal output are not affected. If both `--quiet` and `--debug` are set, `--debug` wins. | diff --git a/client_reference/kosli_snapshot_docker.md b/client_reference/kosli_snapshot_docker.md index f34b4fd..b27f03a 100644 --- a/client_reference/kosli_snapshot_docker.md +++ b/client_reference/kosli_snapshot_docker.md @@ -29,10 +29,8 @@ been pushed to or pulled from a registry will be ignored. | `-c`, `--config-file` string | [optional] The Kosli config file path. (default "kosli") | | `--debug` | [optional] Print debug logs to stdout. | | `--environment-description` string | [optional] The environment description. | -| `--exclude-scaling` | [optional] Exclude scaling events for snapshots. Snapshots with scaling changes will not result in new environment records. | | `-H`, `--host` string | [defaulted] The Kosli endpoint. (default "https://app.kosli.com") | | `--http-proxy` string | [optional] The HTTP proxy URL including protocol and port number. e.g. `http://proxy-server-ip:proxy-port` | -| `--include-scaling` | [optional] Include scaling events for snapshots. Snapshots with scaling changes will result in new environment records. | | `-r`, `--max-api-retries` int | [defaulted] How many times should API calls be retried when the API host is not reachable. (default 3) | | `--org` string | The Kosli organization. | | `-q`, `--quiet` | [optional] Suppress non-critical warning messages. Errors and normal output are not affected. If both `--quiet` and `--debug` are set, `--debug` wins. | diff --git a/client_reference/kosli_snapshot_ecs.md b/client_reference/kosli_snapshot_ecs.md index 287f054..5b0d779 100644 --- a/client_reference/kosli_snapshot_ecs.md +++ b/client_reference/kosli_snapshot_ecs.md @@ -55,10 +55,8 @@ More details can be found here: https://aws.github.io/aws-sdk-go-v2/docs/configu | `-c`, `--config-file` string | [optional] The Kosli config file path. (default "kosli") | | `--debug` | [optional] Print debug logs to stdout. | | `--environment-description` string | [optional] The environment description. | -| `--exclude-scaling` | [optional] Exclude scaling events for snapshots. Snapshots with scaling changes will not result in new environment records. | | `-H`, `--host` string | [defaulted] The Kosli endpoint. (default "https://app.kosli.com") | | `--http-proxy` string | [optional] The HTTP proxy URL including protocol and port number. e.g. `http://proxy-server-ip:proxy-port` | -| `--include-scaling` | [optional] Include scaling events for snapshots. Snapshots with scaling changes will result in new environment records. | | `-r`, `--max-api-retries` int | [defaulted] How many times should API calls be retried when the API host is not reachable. (default 3) | | `--org` string | The Kosli organization. | | `-q`, `--quiet` | [optional] Suppress non-critical warning messages. Errors and normal output are not affected. If both `--quiet` and `--debug` are set, `--debug` wins. | diff --git a/client_reference/kosli_snapshot_k8s.md b/client_reference/kosli_snapshot_k8s.md index 3383588..a84fc36 100644 --- a/client_reference/kosli_snapshot_k8s.md +++ b/client_reference/kosli_snapshot_k8s.md @@ -34,10 +34,8 @@ to include or exclude namespaces. | `-A`, `--auto-environment` | [optional] Create the environment (with the type inferred from the snapshot subcommand) if it does not already exist, before reporting the snapshot. | | `--debug` | [optional] Print debug logs to stdout. | | `--environment-description` string | [optional] The environment description. | -| `--exclude-scaling` | [optional] Exclude scaling events for snapshots. Snapshots with scaling changes will not result in new environment records. | | `-H`, `--host` string | [defaulted] The Kosli endpoint. (default "https://app.kosli.com") | | `--http-proxy` string | [optional] The HTTP proxy URL including protocol and port number. e.g. `http://proxy-server-ip:proxy-port` | -| `--include-scaling` | [optional] Include scaling events for snapshots. Snapshots with scaling changes will result in new environment records. | | `-r`, `--max-api-retries` int | [defaulted] How many times should API calls be retried when the API host is not reachable. (default 3) | | `--org` string | The Kosli organization. | | `-q`, `--quiet` | [optional] Suppress non-critical warning messages. Errors and normal output are not affected. If both `--quiet` and `--debug` are set, `--debug` wins. | diff --git a/client_reference/kosli_snapshot_lambda.md b/client_reference/kosli_snapshot_lambda.md index 3db6c32..9e1c52e 100644 --- a/client_reference/kosli_snapshot_lambda.md +++ b/client_reference/kosli_snapshot_lambda.md @@ -43,10 +43,8 @@ More details can be found here: https://aws.github.io/aws-sdk-go-v2/docs/configu | `-c`, `--config-file` string | [optional] The Kosli config file path. (default "kosli") | | `--debug` | [optional] Print debug logs to stdout. | | `--environment-description` string | [optional] The environment description. | -| `--exclude-scaling` | [optional] Exclude scaling events for snapshots. Snapshots with scaling changes will not result in new environment records. | | `-H`, `--host` string | [defaulted] The Kosli endpoint. (default "https://app.kosli.com") | | `--http-proxy` string | [optional] The HTTP proxy URL including protocol and port number. e.g. `http://proxy-server-ip:proxy-port` | -| `--include-scaling` | [optional] Include scaling events for snapshots. Snapshots with scaling changes will result in new environment records. | | `-r`, `--max-api-retries` int | [defaulted] How many times should API calls be retried when the API host is not reachable. (default 3) | | `--org` string | The Kosli organization. | | `-q`, `--quiet` | [optional] Suppress non-critical warning messages. Errors and normal output are not affected. If both `--quiet` and `--debug` are set, `--debug` wins. | diff --git a/client_reference/kosli_snapshot_path.md b/client_reference/kosli_snapshot_path.md index c3090bd..83456d5 100644 --- a/client_reference/kosli_snapshot_path.md +++ b/client_reference/kosli_snapshot_path.md @@ -38,10 +38,8 @@ The `.kosli_ignore` will be treated as part of the artifact like any other file, | `-c`, `--config-file` string | [optional] The Kosli config file path. (default "kosli") | | `--debug` | [optional] Print debug logs to stdout. | | `--environment-description` string | [optional] The environment description. | -| `--exclude-scaling` | [optional] Exclude scaling events for snapshots. Snapshots with scaling changes will not result in new environment records. | | `-H`, `--host` string | [defaulted] The Kosli endpoint. (default "https://app.kosli.com") | | `--http-proxy` string | [optional] The HTTP proxy URL including protocol and port number. e.g. `http://proxy-server-ip:proxy-port` | -| `--include-scaling` | [optional] Include scaling events for snapshots. Snapshots with scaling changes will result in new environment records. | | `-r`, `--max-api-retries` int | [defaulted] How many times should API calls be retried when the API host is not reachable. (default 3) | | `--org` string | The Kosli organization. | | `-q`, `--quiet` | [optional] Suppress non-critical warning messages. Errors and normal output are not affected. If both `--quiet` and `--debug` are set, `--debug` wins. | diff --git a/client_reference/kosli_snapshot_paths.md b/client_reference/kosli_snapshot_paths.md index 34abaa9..0d7e418 100644 --- a/client_reference/kosli_snapshot_paths.md +++ b/client_reference/kosli_snapshot_paths.md @@ -51,10 +51,8 @@ artifacts: | `-c`, `--config-file` string | [optional] The Kosli config file path. (default "kosli") | | `--debug` | [optional] Print debug logs to stdout. | | `--environment-description` string | [optional] The environment description. | -| `--exclude-scaling` | [optional] Exclude scaling events for snapshots. Snapshots with scaling changes will not result in new environment records. | | `-H`, `--host` string | [defaulted] The Kosli endpoint. (default "https://app.kosli.com") | | `--http-proxy` string | [optional] The HTTP proxy URL including protocol and port number. e.g. `http://proxy-server-ip:proxy-port` | -| `--include-scaling` | [optional] Include scaling events for snapshots. Snapshots with scaling changes will result in new environment records. | | `-r`, `--max-api-retries` int | [defaulted] How many times should API calls be retried when the API host is not reachable. (default 3) | | `--org` string | The Kosli organization. | | `-q`, `--quiet` | [optional] Suppress non-critical warning messages. Errors and normal output are not affected. If both `--quiet` and `--debug` are set, `--debug` wins. | diff --git a/client_reference/kosli_snapshot_s3.md b/client_reference/kosli_snapshot_s3.md index 304e830..5edc4f7 100644 --- a/client_reference/kosli_snapshot_s3.md +++ b/client_reference/kosli_snapshot_s3.md @@ -49,10 +49,8 @@ The `.kosli_ignore` will be treated as part of the artifact like any other file, | `-c`, `--config-file` string | [optional] The Kosli config file path. (default "kosli") | | `--debug` | [optional] Print debug logs to stdout. | | `--environment-description` string | [optional] The environment description. | -| `--exclude-scaling` | [optional] Exclude scaling events for snapshots. Snapshots with scaling changes will not result in new environment records. | | `-H`, `--host` string | [defaulted] The Kosli endpoint. (default "https://app.kosli.com") | | `--http-proxy` string | [optional] The HTTP proxy URL including protocol and port number. e.g. `http://proxy-server-ip:proxy-port` | -| `--include-scaling` | [optional] Include scaling events for snapshots. Snapshots with scaling changes will result in new environment records. | | `-r`, `--max-api-retries` int | [defaulted] How many times should API calls be retried when the API host is not reachable. (default 3) | | `--org` string | The Kosli organization. | | `-q`, `--quiet` | [optional] Suppress non-critical warning messages. Errors and normal output are not affected. If both `--quiet` and `--debug` are set, `--debug` wins. | diff --git a/client_reference/kosli_snapshot_server.md b/client_reference/kosli_snapshot_server.md index 29672c6..030282b 100644 --- a/client_reference/kosli_snapshot_server.md +++ b/client_reference/kosli_snapshot_server.md @@ -62,10 +62,8 @@ The `.kosli_ignore` will be treated as part of the artifact like any other file, | `-c`, `--config-file` string | [optional] The Kosli config file path. (default "kosli") | | `--debug` | [optional] Print debug logs to stdout. | | `--environment-description` string | [optional] The environment description. | -| `--exclude-scaling` | [optional] Exclude scaling events for snapshots. Snapshots with scaling changes will not result in new environment records. | | `-H`, `--host` string | [defaulted] The Kosli endpoint. (default "https://app.kosli.com") | | `--http-proxy` string | [optional] The HTTP proxy URL including protocol and port number. e.g. `http://proxy-server-ip:proxy-port` | -| `--include-scaling` | [optional] Include scaling events for snapshots. Snapshots with scaling changes will result in new environment records. | | `-r`, `--max-api-retries` int | [defaulted] How many times should API calls be retried when the API host is not reachable. (default 3) | | `--org` string | The Kosli organization. | | `-q`, `--quiet` | [optional] Suppress non-critical warning messages. Errors and normal output are not affected. If both `--quiet` and `--debug` are set, `--debug` wins. | diff --git a/client_reference/overview.md b/client_reference/overview.md index 22a3c29..17e8d86 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.36.1**. + This reference was generated from Kosli CLI **v2.36.2**. 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 8b6f749..d18c9b7 100644 --- a/helm/k8s_reporter/configuration.mdx +++ b/helm/k8s_reporter/configuration.mdx @@ -90,7 +90,7 @@ description: All values.yaml options for the Kosli k8s-reporter Helm chart. - 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. + **Deprecated and ignored** — used to control whether scaling (replica count) changes were recorded for environments auto-created in this run. Scaling events no longer trigger new snapshots and an environment can no longer have scaling capture turned on, so the `--include-scaling` / `--exclude-scaling` flags this passed to the CLI had stopped having any effect. As of chart version 2.7.0 the flags are no longer passed. Setting this value does nothing; remove it from your values. diff --git a/helm/k8s_reporter/overview.mdx b/helm/k8s_reporter/overview.mdx index 01c5344..b801876 100644 --- a/helm/k8s_reporter/overview.mdx +++ b/helm/k8s_reporter/overview.mdx @@ -4,7 +4,7 @@ description: A Helm chart for installing the Kosli K8s reporter as a CronJob. --- - This reference applies to **chart version 2.6.0**, which defaults to CLI **v2.34.0** via `appVersion`. Override with `image.tag`. + This reference applies to **chart version 2.7.0**, which defaults to CLI **v2.36.1** via `appVersion`. Override with `image.tag`. A Helm chart for installing the Kosli K8s reporter as a CronJob. diff --git a/helm/k8s_reporter/upgrading.mdx b/helm/k8s_reporter/upgrading.mdx index 3df9481..8060b58 100644 --- a/helm/k8s_reporter/upgrading.mdx +++ b/helm/k8s_reporter/upgrading.mdx @@ -9,6 +9,12 @@ Version 2.0.0 removes the previous single-environment mode (`kosliEnvironmentNam If upgrading from v1.x to v2.0.0, migrate your values to the **environments** list format (see [Installing the chart](/helm/k8s_reporter/installing)). +## Deprecated and ignored in v2.7.0: `reporterConfig.includeScaling` + +`reporterConfig.includeScaling` no longer has any effect. Scaling events do not trigger new snapshots, and an environment can no longer have scaling capture turned on, so the `--include-scaling` / `--exclude-scaling` flags this value passed to the CLI had already stopped doing anything — they only produced a deprecation warning in the reporter's logs on every run. + +Version 2.7.0 stops passing them, which removes that warning. Nothing else changes: the reporter created environments with scaling off before this version and still does. The value is still accepted, but it does nothing and will be removed in a future major version. Remove it from your values. + ## Upgrade command ```shell