diff --git a/client_reference/kosli_diff_snapshots.md b/client_reference/kosli_diff_snapshots.md
index 1488564..8a3d334 100644
--- a/client_reference/kosli_diff_snapshots.md
+++ b/client_reference/kosli_diff_snapshots.md
@@ -66,11 +66,11 @@ kosli diff snapshots aws-beta aws-prod --output=json
```json
{
"snappish1": {
- "snapshot_id": "aws-beta#7866",
+ "snapshot_id": "aws-beta#7875",
"artifacts": []
},
"snappish2": {
- "snapshot_id": "aws-prod#5126",
+ "snapshot_id": "aws-prod#5134",
"artifacts": []
},
"changed": {
@@ -86,6 +86,14 @@ kosli diff snapshots aws-beta aws-prod --output=json
"commit_url": "https://github.com/cyber-dojo/saver/commit/c29db2ce6d16a9ace09a8548b0cc39fd608abd2e",
"instance_count": 1
},
+ {
+ "fingerprint": "6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac",
+ "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/spooler:c81791f@sha256:6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac",
+ "most_recent_timestamp": 1785310509,
+ "flow": "spooler-ci",
+ "commit_url": "https://github.com/cyber-dojo/spooler/commit/c81791fd10558a59f83876137fb021abcd89f262",
+ "instance_count": 1
+ },
{
"fingerprint": "8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67",
"name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:19f8734@sha256:8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67",
@@ -102,14 +110,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": "a20359795934beb03d992ba5a8f8b95ca637e609284e5a84781bdcbb1b861975",
- "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/spooler:92c624e@sha256:a20359795934beb03d992ba5a8f8b95ca637e609284e5a84781bdcbb1b861975",
- "most_recent_timestamp": 1785224823,
- "flow": "spooler-ci",
- "commit_url": "https://github.com/cyber-dojo/spooler/commit/92c624eabb024729fb2af6cdbe354db11ee3882f",
- "instance_count": 1
- },
{
"fingerprint": "aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6",
"name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/creator:76672a8@sha256:aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6",
diff --git a/client_reference/kosli_evaluate_input.md b/client_reference/kosli_evaluate_input.md
index eba6d95..25fe2e2 100644
--- a/client_reference/kosli_evaluate_input.md
+++ b/client_reference/kosli_evaluate_input.md
@@ -64,7 +64,7 @@ This accepts inline JSON or a file reference (`@file.json`).
View an example of the `kosli evaluate input` command in GitHub.
- In [this YAML file](https://github.com/cyber-dojo/snyk-scanning/blob/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7/tests/test_rego_rules.sh#L272)
+ In [this YAML file](https://github.com/cyber-dojo/snyk-scanning/blob/c0666c020044ac5b5181999ec153db1e7f6cd303/tests/test_rego_rules.sh#L272)
diff --git a/client_reference/kosli_evaluate_trail.md b/client_reference/kosli_evaluate_trail.md
index 1486fe2..cca4452 100644
--- a/client_reference/kosli_evaluate_trail.md
+++ b/client_reference/kosli_evaluate_trail.md
@@ -55,7 +55,7 @@ full data structure available to the policy. Use `--output json` for structured
View an example of the `kosli evaluate trail` command in GitHub.
- In [this YAML file](https://github.com/cyber-dojo/snyk-scanning/blob/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7/.github/workflows/artifact_snyk_test.yml#L323)
+ In [this YAML file](https://github.com/cyber-dojo/snyk-scanning/blob/c0666c020044ac5b5181999ec153db1e7f6cd303/.github/workflows/artifact_snyk_test.yml#L323)
diff --git a/client_reference/kosli_fingerprint.md b/client_reference/kosli_fingerprint.md
index fbb8791..94f76bf 100644
--- a/client_reference/kosli_fingerprint.md
+++ b/client_reference/kosli_fingerprint.md
@@ -77,7 +77,7 @@ The `.kosli_ignore` will be treated as part of the artifact like any other file,
View an example of the `kosli fingerprint` command in GitHub.
- In [this YAML file](https://github.com/cyber-dojo/snyk-scanning/blob/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7/.github/workflows/artifact_snyk_test.yml#L152)
+ In [this YAML file](https://github.com/cyber-dojo/snyk-scanning/blob/c0666c020044ac5b5181999ec153db1e7f6cd303/.github/workflows/artifact_snyk_test.yml#L152)
diff --git a/client_reference/kosli_get_environment.md b/client_reference/kosli_get_environment.md
index 7ef3252..fbbd6fc 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": 1785257278.4557931,
- "last_reported_at": 1785257278.4557931,
- "last_changed_at": 1785243478.598589,
+ "last_modified_at": 1785324178.5060613,
+ "last_reported_at": 1785324178.5060613,
+ "last_changed_at": 1785310558.4611607,
"state": true,
"include_scaling": false,
"tags": {
diff --git a/client_reference/kosli_get_snapshot.md b/client_reference/kosli_get_snapshot.md
index 1d413ec..5037fd9 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": 5126,
+ "index": 5134,
"is_latest": true,
"next_snapshot_timestamp": null,
"artifact_compliance_count": {
@@ -72,13 +72,13 @@ kosli get snapshot aws-prod --output=json
"false": 0,
"null": 0
},
- "timestamp": 1785243478.598589,
+ "timestamp": 1785310558.4611607,
"type": "ECS",
"compliant": true,
- "html_url": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5126",
+ "html_url": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5134",
"artifacts": [
{
- "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:2779354@sha256:af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e",
+ "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/spooler:c81791f@sha256:6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac",
"compliant": true,
"deployments": [],
"policy_decisions": [
@@ -100,8 +100,8 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "web-ci",
- "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1",
+ "flow_name": "spooler-ci",
+ "trail_name": "c81791fd10558a59f83876137fb021abcd89f262",
"artifact_status": null
}
},
@@ -109,7 +109,7 @@ kosli get snapshot aws-prod --output=json
"type": "rule_not_applicable",
"context": {
"flow_name": "production-promotion",
- "trail_name": "promotion-one-143",
+ "trail_name": "promotion-one-145",
"artifact_status": null
}
}
@@ -129,8 +129,8 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "web-ci",
- "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1",
+ "flow_name": "spooler-ci",
+ "trail_name": "c81791fd10558a59f83876137fb021abcd89f262",
"artifact_status": "COMPLIANT"
}
},
@@ -138,7 +138,7 @@ kosli get snapshot aws-prod --output=json
"type": "rule_not_applicable",
"context": {
"flow_name": "production-promotion",
- "trail_name": "promotion-one-143",
+ "trail_name": "promotion-one-145",
"artifact_status": "COMPLIANT"
}
}
@@ -157,14 +157,14 @@ kosli get snapshot aws-prod --output=json
"for_control": null
}
},
- "satisfied": true,
- "ignored": false,
+ "satisfied": null,
+ "ignored": true,
"resolutions": [
{
- "type": "rule_satisfied",
+ "type": "rule_not_applicable",
"context": {
- "flow_name": "web-ci",
- "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1",
+ "flow_name": "spooler-ci",
+ "trail_name": "c81791fd10558a59f83876137fb021abcd89f262",
"artifact_status": null
}
},
@@ -172,7 +172,7 @@ kosli get snapshot aws-prod --output=json
"type": "rule_not_applicable",
"context": {
"flow_name": "production-promotion",
- "trail_name": "promotion-one-143",
+ "trail_name": "promotion-one-145",
"artifact_status": null
}
}
@@ -199,8 +199,8 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_satisfied",
"context": {
- "flow_name": "web-ci",
- "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1",
+ "flow_name": "spooler-ci",
+ "trail_name": "c81791fd10558a59f83876137fb021abcd89f262",
"artifact_status": null
}
},
@@ -208,7 +208,7 @@ kosli get snapshot aws-prod --output=json
"type": "rule_satisfied",
"context": {
"flow_name": "production-promotion",
- "trail_name": "promotion-one-143",
+ "trail_name": "promotion-one-145",
"artifact_status": null
}
}
@@ -228,8 +228,8 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "web-ci",
- "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1",
+ "flow_name": "spooler-ci",
+ "trail_name": "c81791fd10558a59f83876137fb021abcd89f262",
"artifact_status": "COMPLIANT"
}
},
@@ -237,7 +237,7 @@ kosli get snapshot aws-prod --output=json
"type": "rule_not_applicable",
"context": {
"flow_name": "production-promotion",
- "trail_name": "promotion-one-143",
+ "trail_name": "promotion-one-145",
"artifact_status": "COMPLIANT"
}
}
@@ -256,14 +256,14 @@ kosli get snapshot aws-prod --output=json
"for_control": "SDLC-CTRL-0002"
}
},
- "satisfied": true,
- "ignored": false,
+ "satisfied": null,
+ "ignored": true,
"resolutions": [
{
- "type": "rule_satisfied",
+ "type": "rule_not_applicable",
"context": {
- "flow_name": "web-ci",
- "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1",
+ "flow_name": "spooler-ci",
+ "trail_name": "c81791fd10558a59f83876137fb021abcd89f262",
"artifact_status": null,
"for_control": "SDLC-CTRL-0002"
}
@@ -272,7 +272,7 @@ kosli get snapshot aws-prod --output=json
"type": "rule_not_applicable",
"context": {
"flow_name": "production-promotion",
- "trail_name": "promotion-one-143",
+ "trail_name": "promotion-one-145",
"artifact_status": null,
"for_control": "SDLC-CTRL-0002"
}
@@ -300,8 +300,8 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "web-ci",
- "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1",
+ "flow_name": "spooler-ci",
+ "trail_name": "c81791fd10558a59f83876137fb021abcd89f262",
"artifact_status": null
}
},
@@ -309,7 +309,7 @@ kosli get snapshot aws-prod --output=json
"type": "rule_not_applicable",
"context": {
"flow_name": "production-promotion",
- "trail_name": "promotion-one-143",
+ "trail_name": "promotion-one-145",
"artifact_status": null
}
}
@@ -329,8 +329,8 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "web-ci",
- "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1",
+ "flow_name": "spooler-ci",
+ "trail_name": "c81791fd10558a59f83876137fb021abcd89f262",
"artifact_status": "COMPLIANT"
}
},
@@ -338,7 +338,7 @@ kosli get snapshot aws-prod --output=json
"type": "rule_not_applicable",
"context": {
"flow_name": "production-promotion",
- "trail_name": "promotion-one-143",
+ "trail_name": "promotion-one-145",
"artifact_status": "COMPLIANT"
}
}
@@ -363,8 +363,8 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "web-ci",
- "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1",
+ "flow_name": "spooler-ci",
+ "trail_name": "c81791fd10558a59f83876137fb021abcd89f262",
"artifact_status": null,
"for_control": "SDLC-CTRL-0022"
}
@@ -373,7 +373,7 @@ kosli get snapshot aws-prod --output=json
"type": "rule_not_applicable",
"context": {
"flow_name": "production-promotion",
- "trail_name": "promotion-one-143",
+ "trail_name": "promotion-one-145",
"artifact_status": null,
"for_control": "SDLC-CTRL-0022"
}
@@ -401,8 +401,8 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "web-ci",
- "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1",
+ "flow_name": "spooler-ci",
+ "trail_name": "c81791fd10558a59f83876137fb021abcd89f262",
"artifact_status": null
}
},
@@ -410,7 +410,7 @@ kosli get snapshot aws-prod --output=json
"type": "rule_not_applicable",
"context": {
"flow_name": "production-promotion",
- "trail_name": "promotion-one-143",
+ "trail_name": "promotion-one-145",
"artifact_status": null
}
}
@@ -430,8 +430,8 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "web-ci",
- "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1",
+ "flow_name": "spooler-ci",
+ "trail_name": "c81791fd10558a59f83876137fb021abcd89f262",
"artifact_status": "COMPLIANT"
}
},
@@ -439,7 +439,7 @@ kosli get snapshot aws-prod --output=json
"type": "rule_not_applicable",
"context": {
"flow_name": "production-promotion",
- "trail_name": "promotion-one-143",
+ "trail_name": "promotion-one-145",
"artifact_status": "COMPLIANT"
}
}
@@ -464,8 +464,8 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "web-ci",
- "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1",
+ "flow_name": "spooler-ci",
+ "trail_name": "c81791fd10558a59f83876137fb021abcd89f262",
"artifact_status": null
}
},
@@ -473,7 +473,7 @@ kosli get snapshot aws-prod --output=json
"type": "rule_satisfied",
"context": {
"flow_name": "production-promotion",
- "trail_name": "promotion-one-143",
+ "trail_name": "promotion-one-145",
"artifact_status": null
}
}
@@ -500,8 +500,8 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "web-ci",
- "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1",
+ "flow_name": "spooler-ci",
+ "trail_name": "c81791fd10558a59f83876137fb021abcd89f262",
"artifact_status": null
}
},
@@ -509,7 +509,7 @@ kosli get snapshot aws-prod --output=json
"type": "rule_not_applicable",
"context": {
"flow_name": "production-promotion",
- "trail_name": "promotion-one-143",
+ "trail_name": "promotion-one-145",
"artifact_status": null
}
}
@@ -535,8 +535,8 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "web-ci",
- "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1",
+ "flow_name": "spooler-ci",
+ "trail_name": "c81791fd10558a59f83876137fb021abcd89f262",
"artifact_status": "COMPLIANT"
}
},
@@ -544,7 +544,7 @@ kosli get snapshot aws-prod --output=json
"type": "rule_satisfied",
"context": {
"flow_name": "production-promotion",
- "trail_name": "promotion-one-143",
+ "trail_name": "promotion-one-145",
"artifact_status": "COMPLIANT"
}
}
@@ -555,71 +555,69 @@ kosli get snapshot aws-prod --output=json
}
],
"reasons_for_incompliance": [],
- "fingerprint": "af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e",
+ "fingerprint": "6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac",
"creationTimestamp": [
- 1785243407,
- 1785243408,
- 1785243412
+ 1785310509
],
"pods": null,
"annotation": {
- "type": "unchanged",
- "was": 3,
- "now": 3
+ "type": "started-compliant",
+ "was": 0,
+ "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": "spooler-ci",
+ "git_commit": "c81791fd10558a59f83876137fb021abcd89f262",
+ "commit_url": "https://github.com/cyber-dojo/spooler/commit/c81791fd10558a59f83876137fb021abcd89f262",
+ "html_url": "https://app.kosli.com/cyber-dojo/flows/spooler-ci/artifacts/6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac?artifact_id=28274720-dc6e-4b52-b48e-4418ecaa",
+ "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/spooler-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/spooler/compare/e4d9d0868e299522b207696e19c07966a09bf08a...c81791fd10558a59f83876137fb021abcd89f262",
+ "previous_git_commit": "e4d9d0868e299522b207696e19c07966a09bf08a",
+ "previous_fingerprint": "2d13ace2ba9449bcabeaef32f8cdc9255eff976ddf7a4ce5bd70e46bac11b204",
+ "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/spooler:e4d9d08@sha256:2d13ace2ba9449bcabeaef32f8cdc9255eff976ddf7a4ce5bd70e46bac11b204",
"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/spooler/commit/e4d9d0868e299522b207696e19c07966a09bf08a",
+ "previous_trail_name": "e4d9d0868e299522b207696e19c07966a09bf08a",
+ "previous_template_reference_name": "spooler"
},
- "commit_lead_time": 856.0,
+ "commit_lead_time": 791.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": "spooler-ci",
+ "trail_name": "c81791fd10558a59f83876137fb021abcd89f262",
+ "template_reference_name": "spooler",
+ "git_commit": "c81791fd10558a59f83876137fb021abcd89f262",
+ "commit_url": "https://github.com/cyber-dojo/spooler/commit/c81791fd10558a59f83876137fb021abcd89f262",
"git_commit_info": {
- "sha1": "2779354a4fda0eeb90fd43f32211836d99f6bde1",
- "message": "Add spooler env-vars for deployment (#389)",
+ "sha1": "c81791fd10558a59f83876137fb021abcd89f262",
+ "message": "Merge pull request #13 from cyber-dojo/unsequenced-writes-no-longer-wedge-drainer\n\nKeep a shard draining when a write has no tab_seq",
"author": "Jon Jagger ",
"branch": "",
- "timestamp": 1785242551.0,
- "url": "https://github.com/cyber-dojo/web/commit/2779354a4fda0eeb90fd43f32211836d99f6bde1"
+ "timestamp": 1785309718.0,
+ "url": "https://github.com/cyber-dojo/spooler/commit/c81791fd10558a59f83876137fb021abcd89f262"
},
- "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/spooler-ci/artifacts/6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac?artifact_id=28274720-dc6e-4b52-b48e-4418ecaa",
+ "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/spooler-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/spooler/compare/e4d9d0868e299522b207696e19c07966a09bf08a...c81791fd10558a59f83876137fb021abcd89f262",
+ "previous_git_commit": "e4d9d0868e299522b207696e19c07966a09bf08a",
+ "previous_fingerprint": "2d13ace2ba9449bcabeaef32f8cdc9255eff976ddf7a4ce5bd70e46bac11b204",
+ "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/spooler:e4d9d08@sha256:2d13ace2ba9449bcabeaef32f8cdc9255eff976ddf7a4ce5bd70e46bac11b204",
"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/spooler/commit/e4d9d0868e299522b207696e19c07966a09bf08a",
+ "previous_trail_name": "e4d9d0868e299522b207696e19c07966a09bf08a",
+ "previous_template_reference_name": "spooler"
},
- "commit_lead_time": 856.0,
+ "commit_lead_time": 791.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": "promotion-one-145",
+ "template_reference_name": "spooler",
"git_commit": "81c216a55b2cb1787645e699ceaceca868cad253",
"commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253",
"git_commit_info": {
@@ -630,32 +628,32 @@ kosli get snapshot aws-prod --output=json
"timestamp": 1785143054.0,
"url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253"
},
- "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e?artifact_id=11f2828c-83b9-4e8c-bd6a-be37eb17",
+ "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/6ca8f8d96e1fe8c360fce64b81c330c4ac05d3f128461be4034d36b37147eeac?artifact_id=6154dd8b-8a89-49c6-be10-9c36fd71",
"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",
+ "previous_fingerprint": "2d13ace2ba9449bcabeaef32f8cdc9255eff976ddf7a4ce5bd70e46bac11b204",
+ "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/spooler:e4d9d08@sha256:2d13ace2ba9449bcabeaef32f8cdc9255eff976ddf7a4ce5bd70e46bac11b204",
"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_trail_name": "promotion-one-144",
+ "previous_template_reference_name": "spooler"
},
- "commit_lead_time": 100353.0,
+ "commit_lead_time": 167455.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/f33363aadf854b71b715ff4961e94b82",
"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/web:2779354@sha256:af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e",
"compliant": true,
"deployments": [],
"policy_decisions": [
@@ -677,24 +675,32 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "differ-ci",
- "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320",
+ "flow_name": "web-ci",
+ "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1",
"artifact_status": null
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12",
+ "flow_name": "production-promotion",
+ "trail_name": "promotion-one-143",
"artifact_status": null
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e",
+ "artifact_status": null
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e",
"artifact_status": null
}
}
@@ -714,24 +720,32 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "differ-ci",
- "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320",
+ "flow_name": "web-ci",
+ "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1",
"artifact_status": "COMPLIANT"
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12",
+ "flow_name": "production-promotion",
+ "trail_name": "promotion-one-143",
"artifact_status": "COMPLIANT"
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e",
+ "artifact_status": "COMPLIANT"
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e",
"artifact_status": "COMPLIANT"
}
}
@@ -756,24 +770,32 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_satisfied",
"context": {
- "flow_name": "differ-ci",
- "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320",
+ "flow_name": "web-ci",
+ "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1",
"artifact_status": null
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12",
+ "flow_name": "production-promotion",
+ "trail_name": "promotion-one-143",
"artifact_status": null
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e",
+ "artifact_status": null
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e",
"artifact_status": null
}
}
@@ -800,24 +822,32 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_satisfied",
"context": {
- "flow_name": "differ-ci",
- "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320",
+ "flow_name": "web-ci",
+ "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1",
"artifact_status": null
}
},
{
"type": "rule_satisfied",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12",
+ "flow_name": "production-promotion",
+ "trail_name": "promotion-one-143",
"artifact_status": null
}
},
{
"type": "rule_satisfied",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e",
+ "artifact_status": null
+ }
+ },
+ {
+ "type": "rule_satisfied",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e",
"artifact_status": null
}
}
@@ -837,24 +867,32 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "differ-ci",
- "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320",
+ "flow_name": "web-ci",
+ "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1",
"artifact_status": "COMPLIANT"
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12",
+ "flow_name": "production-promotion",
+ "trail_name": "promotion-one-143",
"artifact_status": "COMPLIANT"
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e",
+ "artifact_status": "COMPLIANT"
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e",
"artifact_status": "COMPLIANT"
}
}
@@ -879,8 +917,8 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_satisfied",
"context": {
- "flow_name": "differ-ci",
- "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320",
+ "flow_name": "web-ci",
+ "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1",
"artifact_status": null,
"for_control": "SDLC-CTRL-0002"
}
@@ -888,8 +926,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": "production-promotion",
+ "trail_name": "promotion-one-143",
"artifact_status": null,
"for_control": "SDLC-CTRL-0002"
}
@@ -897,8 +935,17 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e",
+ "artifact_status": null,
+ "for_control": "SDLC-CTRL-0002"
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e",
"artifact_status": null,
"for_control": "SDLC-CTRL-0002"
}
@@ -926,24 +973,32 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "differ-ci",
- "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320",
+ "flow_name": "web-ci",
+ "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1",
"artifact_status": null
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12",
+ "flow_name": "production-promotion",
+ "trail_name": "promotion-one-143",
"artifact_status": null
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e",
+ "artifact_status": null
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e",
"artifact_status": null
}
}
@@ -963,24 +1018,32 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "differ-ci",
- "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320",
+ "flow_name": "web-ci",
+ "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1",
"artifact_status": "COMPLIANT"
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12",
+ "flow_name": "production-promotion",
+ "trail_name": "promotion-one-143",
"artifact_status": "COMPLIANT"
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e",
+ "artifact_status": "COMPLIANT"
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e",
"artifact_status": "COMPLIANT"
}
}
@@ -999,14 +1062,14 @@ 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",
"context": {
- "flow_name": "differ-ci",
- "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320",
+ "flow_name": "web-ci",
+ "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1",
"artifact_status": null,
"for_control": "SDLC-CTRL-0022"
}
@@ -1014,8 +1077,17 @@ 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": "production-promotion",
+ "trail_name": "promotion-one-143",
+ "artifact_status": null,
+ "for_control": "SDLC-CTRL-0022"
+ }
+ },
+ {
+ "type": "rule_satisfied",
+ "context": {
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e",
"artifact_status": null,
"for_control": "SDLC-CTRL-0022"
}
@@ -1023,8 +1095,8 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e",
"artifact_status": null,
"for_control": "SDLC-CTRL-0022"
}
@@ -1052,24 +1124,32 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "differ-ci",
- "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320",
+ "flow_name": "web-ci",
+ "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1",
"artifact_status": null
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12",
+ "flow_name": "production-promotion",
+ "trail_name": "promotion-one-143",
"artifact_status": null
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e",
+ "artifact_status": null
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e",
"artifact_status": null
}
}
@@ -1089,24 +1169,32 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "differ-ci",
- "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320",
+ "flow_name": "web-ci",
+ "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1",
"artifact_status": "COMPLIANT"
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12",
+ "flow_name": "production-promotion",
+ "trail_name": "promotion-one-143",
"artifact_status": "COMPLIANT"
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e",
+ "artifact_status": "COMPLIANT"
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e",
"artifact_status": "COMPLIANT"
}
}
@@ -1131,24 +1219,32 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "differ-ci",
- "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320",
+ "flow_name": "web-ci",
+ "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1",
+ "artifact_status": null
+ }
+ },
+ {
+ "type": "rule_satisfied",
+ "context": {
+ "flow_name": "production-promotion",
+ "trail_name": "promotion-one-143",
"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": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e",
"artifact_status": null
}
},
{
- "type": "rule_satisfied",
+ "type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e",
"artifact_status": null
}
}
@@ -1175,24 +1271,32 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "differ-ci",
- "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320",
+ "flow_name": "web-ci",
+ "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1",
"artifact_status": null
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12",
+ "flow_name": "production-promotion",
+ "trail_name": "promotion-one-143",
"artifact_status": null
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e",
+ "artifact_status": null
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e",
"artifact_status": null
}
}
@@ -1218,24 +1322,32 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "differ-ci",
- "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320",
+ "flow_name": "web-ci",
+ "trail_name": "2779354a4fda0eeb90fd43f32211836d99f6bde1",
"artifact_status": "COMPLIANT"
}
},
{
- "type": "rule_not_applicable",
+ "type": "rule_satisfied",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12",
+ "flow_name": "production-promotion",
+ "trail_name": "promotion-one-143",
"artifact_status": "COMPLIANT"
}
},
{
"type": "rule_satisfied",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e",
+ "artifact_status": "COMPLIANT"
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e",
"artifact_status": "COMPLIANT"
}
}
@@ -1246,100 +1358,71 @@ kosli get snapshot aws-prod --output=json
}
],
"reasons_for_incompliance": [],
- "fingerprint": "c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12",
+ "fingerprint": "af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e",
"creationTimestamp": [
- 1785241593
+ 1785243407,
+ 1785243408,
+ 1785243412
],
"pods": null,
"annotation": {
"type": "unchanged",
- "was": 1,
- "now": 1
+ "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": "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/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/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/differ/commit/335ddfa139708c37908dd594a0502bc6d88f8615",
- "previous_trail_name": "335ddfa139708c37908dd594a0502bc6d88f8615",
- "previous_template_reference_name": "differ"
+ "previous_git_commit_url": "https://github.com/cyber-dojo/web/commit/aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f",
+ "previous_trail_name": "aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f",
+ "previous_template_reference_name": "web"
},
- "commit_lead_time": 929480.0,
+ "commit_lead_time": 856.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": "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": "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": "2779354a4fda0eeb90fd43f32211836d99f6bde1",
+ "message": "Add spooler env-vars for deployment (#389)",
+ "author": "Jon Jagger ",
"branch": "",
- "timestamp": 1784312113.0,
- "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/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/differ/commit/335ddfa139708c37908dd594a0502bc6d88f8615",
- "previous_trail_name": "335ddfa139708c37908dd594a0502bc6d88f8615",
- "previous_template_reference_name": "differ"
- },
- "commit_lead_time": 929480.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",
- "git_commit_info": {
- "sha1": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7",
- "message": "Add emoji prefixes to workflow names\n\n Match the visual convention already used in the kosli-demo/stochastic-committer\n repo, where the Actions sidebar distinguishes workflow roles at a glance.\n\n The two aws-* files are the top-level entry points, triggered by dispatch and\n schedule, so they get the play emoji. The three reusable workflow_call\n sub-workflows get the package emoji to mark them as callable building blocks.",
- "author": "JonJagger ",
- "branch": "main",
- "timestamp": 1783850974.0,
- "url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7"
+ "timestamp": 1785242551.0,
+ "url": "https://github.com/cyber-dojo/web/commit/2779354a4fda0eeb90fd43f32211836d99f6bde1"
},
- "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12?artifact_id=eee71ae0-2bdd-4d9b-90b0-572bb946",
- "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact",
+ "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/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/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/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7",
- "previous_trail_name": "differ-c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f",
- "previous_template_reference_name": "differ"
+ "previous_git_commit_url": "https://github.com/cyber-dojo/web/commit/aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f",
+ "previous_trail_name": "aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f",
+ "previous_template_reference_name": "web"
},
- "commit_lead_time": 1390619.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": "differ",
+ "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": {
@@ -1350,32 +1433,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/c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12?artifact_id=43c3d8db-588e-495b-b5ba-097d8eae",
+ "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/76325d840dc66e1c84743725e17de05a16616419...81c216a55b2cb1787645e699ceaceca868cad253",
- "previous_git_commit": "76325d840dc66e1c84743725e17de05a16616419",
- "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/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/76325d840dc66e1c84743725e17de05a16616419",
- "previous_trail_name": "promotion-one-128",
- "previous_template_reference_name": "differ"
+ "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": 98539.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": "web-af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e",
+ "template_reference_name": "web",
+ "git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7",
+ "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7",
+ "git_commit_info": {
+ "sha1": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7",
+ "message": "Add emoji prefixes to workflow names\n\n Match the visual convention already used in the kosli-demo/stochastic-committer\n repo, where the Actions sidebar distinguishes workflow roles at a glance.\n\n The two aws-* files are the top-level entry points, triggered by dispatch and\n schedule, so they get the play emoji. The three reusable workflow_call\n sub-workflows get the package emoji to mark them as callable building blocks.",
+ "author": "JonJagger ",
+ "branch": "main",
+ "timestamp": 1783850974.0,
+ "url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7"
+ },
+ "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e?artifact_id=83c5644d-1b5c-4f05-992f-49d05fdc",
+ "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact",
+ "deployment_diff": {
+ "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/00c479764cb9eca038fdaaaef108672d0bb0ed26...35a09b2d283bafd6bbc12c29eba3306d5b36a5f7",
+ "previous_git_commit": "00c479764cb9eca038fdaaaef108672d0bb0ed26",
+ "previous_fingerprint": "29c69c2f30f261a26fff4793fd8ae44b9081def1d4bcaaa27b0fef0501d949e4",
+ "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:f66cc5c@sha256:29c69c2f30f261a26fff4793fd8ae44b9081def1d4bcaaa27b0fef0501d949e4",
+ "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"
+ },
+ "commit_lead_time": 1392433.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",
+ "git_commit_info": {
+ "sha1": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7",
+ "message": "Add emoji prefixes to workflow names\n\n Match the visual convention already used in the kosli-demo/stochastic-committer\n repo, where the Actions sidebar distinguishes workflow roles at a glance.\n\n The two aws-* files are the top-level entry points, triggered by dispatch and\n schedule, so they get the play emoji. The three reusable workflow_call\n sub-workflows get the package emoji to mark them as callable building blocks.",
+ "author": "JonJagger ",
+ "branch": "main",
+ "timestamp": 1783850974.0,
+ "url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7"
+ },
+ "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e?artifact_id=2839b032-94fd-484c-91fa-37aaecfc",
+ "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": "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/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7",
+ "previous_trail_name": "web-0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972",
+ "previous_template_reference_name": "web"
+ },
+ "commit_lead_time": 1392433.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/4984e4ce7a34424585623c1a67da8c6d",
"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/differ:1b7ea87@sha256:c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12",
"compliant": true,
"deployments": [],
"policy_decisions": [
@@ -1397,24 +1542,32 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "languages-start-points-ci",
- "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23",
+ "flow_name": "differ-ci",
+ "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320",
"artifact_status": null
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": null
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12",
+ "artifact_status": null
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12",
"artifact_status": null
}
}
@@ -1434,24 +1587,32 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "languages-start-points-ci",
- "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23",
+ "flow_name": "differ-ci",
+ "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320",
"artifact_status": "COMPLIANT"
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": "COMPLIANT"
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12",
+ "artifact_status": "COMPLIANT"
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12",
"artifact_status": "COMPLIANT"
}
}
@@ -1476,24 +1637,32 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_satisfied",
"context": {
- "flow_name": "languages-start-points-ci",
- "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23",
+ "flow_name": "differ-ci",
+ "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320",
"artifact_status": null
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": null
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12",
+ "artifact_status": null
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12",
"artifact_status": null
}
}
@@ -1520,24 +1689,32 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_satisfied",
"context": {
- "flow_name": "languages-start-points-ci",
- "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23",
+ "flow_name": "differ-ci",
+ "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320",
"artifact_status": null
}
},
{
"type": "rule_satisfied",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": null
}
},
{
"type": "rule_satisfied",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12",
+ "artifact_status": null
+ }
+ },
+ {
+ "type": "rule_satisfied",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12",
"artifact_status": null
}
}
@@ -1557,24 +1734,32 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "languages-start-points-ci",
- "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23",
+ "flow_name": "differ-ci",
+ "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320",
"artifact_status": "COMPLIANT"
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": "COMPLIANT"
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12",
+ "artifact_status": "COMPLIANT"
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12",
"artifact_status": "COMPLIANT"
}
}
@@ -1599,8 +1784,8 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_satisfied",
"context": {
- "flow_name": "languages-start-points-ci",
- "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23",
+ "flow_name": "differ-ci",
+ "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320",
"artifact_status": null,
"for_control": "SDLC-CTRL-0002"
}
@@ -1608,8 +1793,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": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": null,
"for_control": "SDLC-CTRL-0002"
}
@@ -1617,8 +1802,17 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12",
+ "artifact_status": null,
+ "for_control": "SDLC-CTRL-0002"
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12",
"artifact_status": null,
"for_control": "SDLC-CTRL-0002"
}
@@ -1646,24 +1840,32 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "languages-start-points-ci",
- "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23",
+ "flow_name": "differ-ci",
+ "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320",
"artifact_status": null
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": null
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12",
+ "artifact_status": null
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12",
"artifact_status": null
}
}
@@ -1683,24 +1885,32 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "languages-start-points-ci",
- "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23",
+ "flow_name": "differ-ci",
+ "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320",
"artifact_status": "COMPLIANT"
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": "COMPLIANT"
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12",
+ "artifact_status": "COMPLIANT"
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12",
"artifact_status": "COMPLIANT"
}
}
@@ -1719,14 +1929,14 @@ 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",
"context": {
- "flow_name": "languages-start-points-ci",
- "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23",
+ "flow_name": "differ-ci",
+ "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320",
"artifact_status": null,
"for_control": "SDLC-CTRL-0022"
}
@@ -1734,8 +1944,17 @@ 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": "production-promotion",
+ "trail_name": "promote-all-31",
+ "artifact_status": null,
+ "for_control": "SDLC-CTRL-0022"
+ }
+ },
+ {
+ "type": "rule_satisfied",
+ "context": {
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12",
"artifact_status": null,
"for_control": "SDLC-CTRL-0022"
}
@@ -1743,8 +1962,8 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12",
"artifact_status": null,
"for_control": "SDLC-CTRL-0022"
}
@@ -1772,24 +1991,32 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "languages-start-points-ci",
- "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23",
+ "flow_name": "differ-ci",
+ "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320",
"artifact_status": null
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b",
- "artifact_status": null
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
+ "artifact_status": null
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12",
+ "artifact_status": null
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12",
"artifact_status": null
}
}
@@ -1809,24 +2036,32 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "languages-start-points-ci",
- "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23",
+ "flow_name": "differ-ci",
+ "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320",
"artifact_status": "COMPLIANT"
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": "COMPLIANT"
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12",
+ "artifact_status": "COMPLIANT"
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12",
"artifact_status": "COMPLIANT"
}
}
@@ -1851,24 +2086,32 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "languages-start-points-ci",
- "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23",
+ "flow_name": "differ-ci",
+ "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320",
+ "artifact_status": null
+ }
+ },
+ {
+ "type": "rule_satisfied",
+ "context": {
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
"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": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12",
"artifact_status": null
}
},
{
- "type": "rule_satisfied",
+ "type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12",
"artifact_status": null
}
}
@@ -1895,24 +2138,32 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "languages-start-points-ci",
- "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23",
+ "flow_name": "differ-ci",
+ "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320",
"artifact_status": null
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": null
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12",
+ "artifact_status": null
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12",
"artifact_status": null
}
}
@@ -1938,24 +2189,32 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "languages-start-points-ci",
- "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23",
+ "flow_name": "differ-ci",
+ "trail_name": "1b7ea87a174a1a290600b469dc1029ec4c974320",
"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": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": "COMPLIANT"
}
},
{
"type": "rule_satisfied",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12",
+ "artifact_status": "COMPLIANT"
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12",
"artifact_status": "COMPLIANT"
}
}
@@ -1966,9 +2225,9 @@ kosli get snapshot aws-prod --output=json
}
],
"reasons_for_incompliance": [],
- "fingerprint": "b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b",
+ "fingerprint": "c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12",
"creationTimestamp": [
- 1785241263
+ 1785241593
],
"pods": null,
"annotation": {
@@ -1976,59 +2235,90 @@ kosli get snapshot aws-prod --output=json
"was": 1,
"now": 1
},
- "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": "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/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/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/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/differ/commit/335ddfa139708c37908dd594a0502bc6d88f8615",
+ "previous_trail_name": "335ddfa139708c37908dd594a0502bc6d88f8615",
+ "previous_template_reference_name": "differ"
},
- "commit_lead_time": 929088.0,
+ "commit_lead_time": 929480.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": "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": "6a7f7be81022f7ed3fa8383f016b55af86e2af23",
- "message": "Merge pull request #243 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": 1784312175.0,
- "url": "https://github.com/cyber-dojo/languages-start-points/commit/6a7f7be81022f7ed3fa8383f016b55af86e2af23"
+ "timestamp": 1784312113.0,
+ "url": "https://github.com/cyber-dojo/differ/commit/1b7ea87a174a1a290600b469dc1029ec4c974320"
},
- "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/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/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/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/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/differ/commit/335ddfa139708c37908dd594a0502bc6d88f8615",
+ "previous_trail_name": "335ddfa139708c37908dd594a0502bc6d88f8615",
+ "previous_template_reference_name": "differ"
},
- "commit_lead_time": 929088.0,
+ "commit_lead_time": 929480.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",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
+ "template_reference_name": "differ",
+ "git_commit": "81c216a55b2cb1787645e699ceaceca868cad253",
+ "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253",
+ "git_commit_info": {
+ "sha1": "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/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": "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-128",
+ "previous_template_reference_name": "differ"
+ },
+ "commit_lead_time": 98539.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",
"git_commit_info": {
@@ -2039,63 +2329,63 @@ kosli get snapshot aws-prod --output=json
"timestamp": 1783850974.0,
"url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7"
},
- "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b?artifact_id=e1aab4c4-4a40-4b9f-948e-43ba5489",
- "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=47c9bbdc-a20e-4cbc-9e22-0290f20a",
+ "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...35a09b2d283bafd6bbc12c29eba3306d5b36a5f7",
+ "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": "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": "differ-902ec7af03407049ac6e5ef713146d518bbffd9d99cd28715fa0df973e809b7b",
+ "previous_template_reference_name": "differ"
},
- "commit_lead_time": 1390289.0,
+ "commit_lead_time": 1390619.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",
- "git_commit": "81c216a55b2cb1787645e699ceaceca868cad253",
- "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253",
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "differ-c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12",
+ "template_reference_name": "differ",
+ "git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7",
+ "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7",
"git_commit_info": {
- "sha1": "81c216a55b2cb1787645e699ceaceca868cad253",
- "message": "Add spooler service name to promote_one.yml",
+ "sha1": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7",
+ "message": "Add emoji prefixes to workflow names\n\n Match the visual convention already used in the kosli-demo/stochastic-committer\n repo, where the Actions sidebar distinguishes workflow roles at a glance.\n\n The two aws-* files are the top-level entry points, triggered by dispatch and\n schedule, so they get the play emoji. The three reusable workflow_call\n sub-workflows get the package emoji to mark them as callable building blocks.",
"author": "JonJagger ",
"branch": "main",
- "timestamp": 1785143054.0,
- "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253"
+ "timestamp": 1783850974.0,
+ "url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7"
},
- "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",
+ "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",
"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/snyk-scanning/compare/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7...35a09b2d283bafd6bbc12c29eba3306d5b36a5f7",
+ "previous_git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7",
+ "previous_fingerprint": "c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f",
+ "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/differ:335ddfa@sha256:c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f",
"previous_artifact_compliance_state": "COMPLIANT",
"previous_running": false,
- "previous_git_commit_url": "https://github.com/cyber-dojo/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/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7",
+ "previous_trail_name": "differ-c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f",
+ "previous_template_reference_name": "differ"
},
- "commit_lead_time": 98209.0,
+ "commit_lead_time": 1390619.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/7cbb5625fe464da7851d6c4509ff0e9c",
"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/languages-start-points:6a7f7be@sha256:b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b",
"compliant": true,
"deployments": [],
"policy_decisions": [
@@ -2117,24 +2407,32 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "nginx-ci",
- "trail_name": "a2e4638aaa102446b8a6d1d519c5bc007e24f087",
+ "flow_name": "languages-start-points-ci",
+ "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23",
"artifact_status": null
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": null
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b",
+ "artifact_status": null
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b",
"artifact_status": null
}
}
@@ -2154,24 +2452,32 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "nginx-ci",
- "trail_name": "a2e4638aaa102446b8a6d1d519c5bc007e24f087",
+ "flow_name": "languages-start-points-ci",
+ "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23",
"artifact_status": "COMPLIANT"
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": "COMPLIANT"
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b",
+ "artifact_status": "COMPLIANT"
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b",
"artifact_status": "COMPLIANT"
}
}
@@ -2196,24 +2502,32 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_satisfied",
"context": {
- "flow_name": "nginx-ci",
- "trail_name": "a2e4638aaa102446b8a6d1d519c5bc007e24f087",
+ "flow_name": "languages-start-points-ci",
+ "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23",
"artifact_status": null
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": null
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b",
+ "artifact_status": null
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b",
"artifact_status": null
}
}
@@ -2240,24 +2554,32 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_satisfied",
"context": {
- "flow_name": "nginx-ci",
- "trail_name": "a2e4638aaa102446b8a6d1d519c5bc007e24f087",
+ "flow_name": "languages-start-points-ci",
+ "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23",
"artifact_status": null
}
},
{
"type": "rule_satisfied",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": null
}
},
{
"type": "rule_satisfied",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b",
+ "artifact_status": null
+ }
+ },
+ {
+ "type": "rule_satisfied",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b",
"artifact_status": null
}
}
@@ -2277,24 +2599,32 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "nginx-ci",
- "trail_name": "a2e4638aaa102446b8a6d1d519c5bc007e24f087",
+ "flow_name": "languages-start-points-ci",
+ "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23",
"artifact_status": "COMPLIANT"
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": "COMPLIANT"
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b",
+ "artifact_status": "COMPLIANT"
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b",
"artifact_status": "COMPLIANT"
}
}
@@ -2319,8 +2649,8 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_satisfied",
"context": {
- "flow_name": "nginx-ci",
- "trail_name": "a2e4638aaa102446b8a6d1d519c5bc007e24f087",
+ "flow_name": "languages-start-points-ci",
+ "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23",
"artifact_status": null,
"for_control": "SDLC-CTRL-0002"
}
@@ -2328,8 +2658,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": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": null,
"for_control": "SDLC-CTRL-0002"
}
@@ -2337,8 +2667,17 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b",
+ "artifact_status": null,
+ "for_control": "SDLC-CTRL-0002"
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b",
"artifact_status": null,
"for_control": "SDLC-CTRL-0002"
}
@@ -2366,24 +2705,32 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "nginx-ci",
- "trail_name": "a2e4638aaa102446b8a6d1d519c5bc007e24f087",
+ "flow_name": "languages-start-points-ci",
+ "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23",
"artifact_status": null
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": null
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b",
+ "artifact_status": null
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b",
"artifact_status": null
}
}
@@ -2403,24 +2750,32 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "nginx-ci",
- "trail_name": "a2e4638aaa102446b8a6d1d519c5bc007e24f087",
+ "flow_name": "languages-start-points-ci",
+ "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23",
"artifact_status": "COMPLIANT"
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": "COMPLIANT"
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b",
+ "artifact_status": "COMPLIANT"
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b",
"artifact_status": "COMPLIANT"
}
}
@@ -2439,14 +2794,14 @@ 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",
"context": {
- "flow_name": "nginx-ci",
- "trail_name": "a2e4638aaa102446b8a6d1d519c5bc007e24f087",
+ "flow_name": "languages-start-points-ci",
+ "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23",
"artifact_status": null,
"for_control": "SDLC-CTRL-0022"
}
@@ -2454,8 +2809,17 @@ 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": "production-promotion",
+ "trail_name": "promote-all-31",
+ "artifact_status": null,
+ "for_control": "SDLC-CTRL-0022"
+ }
+ },
+ {
+ "type": "rule_satisfied",
+ "context": {
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b",
"artifact_status": null,
"for_control": "SDLC-CTRL-0022"
}
@@ -2463,8 +2827,8 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b",
"artifact_status": null,
"for_control": "SDLC-CTRL-0022"
}
@@ -2492,24 +2856,32 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "nginx-ci",
- "trail_name": "a2e4638aaa102446b8a6d1d519c5bc007e24f087",
+ "flow_name": "languages-start-points-ci",
+ "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23",
"artifact_status": null
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": null
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b",
+ "artifact_status": null
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b",
"artifact_status": null
}
}
@@ -2529,24 +2901,32 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "nginx-ci",
- "trail_name": "a2e4638aaa102446b8a6d1d519c5bc007e24f087",
+ "flow_name": "languages-start-points-ci",
+ "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23",
"artifact_status": "COMPLIANT"
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": "COMPLIANT"
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b",
+ "artifact_status": "COMPLIANT"
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b",
"artifact_status": "COMPLIANT"
}
}
@@ -2571,24 +2951,32 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "nginx-ci",
- "trail_name": "a2e4638aaa102446b8a6d1d519c5bc007e24f087",
+ "flow_name": "languages-start-points-ci",
+ "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23",
+ "artifact_status": null
+ }
+ },
+ {
+ "type": "rule_satisfied",
+ "context": {
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
"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": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b",
"artifact_status": null
}
},
{
- "type": "rule_satisfied",
+ "type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b",
"artifact_status": null
}
}
@@ -2615,24 +3003,32 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "nginx-ci",
- "trail_name": "a2e4638aaa102446b8a6d1d519c5bc007e24f087",
+ "flow_name": "languages-start-points-ci",
+ "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23",
"artifact_status": null
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": null
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b",
+ "artifact_status": null
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b",
"artifact_status": null
}
}
@@ -2658,24 +3054,32 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "nginx-ci",
- "trail_name": "a2e4638aaa102446b8a6d1d519c5bc007e24f087",
+ "flow_name": "languages-start-points-ci",
+ "trail_name": "6a7f7be81022f7ed3fa8383f016b55af86e2af23",
"artifact_status": "COMPLIANT"
}
},
{
- "type": "rule_not_applicable",
+ "type": "rule_satisfied",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": "COMPLIANT"
}
},
{
"type": "rule_satisfied",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b",
+ "artifact_status": "COMPLIANT"
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b",
"artifact_status": "COMPLIANT"
}
}
@@ -2686,9 +3090,9 @@ kosli get snapshot aws-prod --output=json
}
],
"reasons_for_incompliance": [],
- "fingerprint": "c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053",
+ "fingerprint": "b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b",
"creationTimestamp": [
- 1785241259
+ 1785241263
],
"pods": null,
"annotation": {
@@ -2696,59 +3100,90 @@ 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": "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/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/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/nginx/commit/7ba8029e0cb5d4c8fa51360f59b5cb8714a60d47",
- "previous_trail_name": "7ba8029e0cb5d4c8fa51360f59b5cb8714a60d47",
- "previous_template_reference_name": "nginx"
+ "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": 929056.0,
+ "commit_lead_time": 929088.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": "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": "a2e4638aaa102446b8a6d1d519c5bc007e24f087",
- "message": "Merge pull request #160 from cyber-dojo/add-drift-detection\n\nAdd periodic drift-detection workflow",
+ "sha1": "6a7f7be81022f7ed3fa8383f016b55af86e2af23",
+ "message": "Merge pull request #243 from cyber-dojo/add-drift-detection\n\nAdd periodic drift-detection workflow",
"author": "Jon Jagger ",
"branch": "",
- "timestamp": 1784312203.0,
- "url": "https://github.com/cyber-dojo/nginx/commit/a2e4638aaa102446b8a6d1d519c5bc007e24f087"
+ "timestamp": 1784312175.0,
+ "url": "https://github.com/cyber-dojo/languages-start-points/commit/6a7f7be81022f7ed3fa8383f016b55af86e2af23"
},
- "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/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/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/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/nginx/commit/7ba8029e0cb5d4c8fa51360f59b5cb8714a60d47",
- "previous_trail_name": "7ba8029e0cb5d4c8fa51360f59b5cb8714a60d47",
- "previous_template_reference_name": "nginx"
+ "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": 929056.0,
+ "commit_lead_time": 929088.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",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
+ "template_reference_name": "languages-start-points",
+ "git_commit": "81c216a55b2cb1787645e699ceaceca868cad253",
+ "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253",
+ "git_commit_info": {
+ "sha1": "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/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/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/d7e31ce0207b766140ae689f38625da4374acf87",
+ "previous_trail_name": "promote-all-30",
+ "previous_template_reference_name": "languages-start-points"
+ },
+ "commit_lead_time": 98209.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",
"git_commit_info": {
@@ -2759,63 +3194,63 @@ kosli get snapshot aws-prod --output=json
"timestamp": 1783850974.0,
"url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7"
},
- "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053?artifact_id=3290f392-c29b-4eda-a459-c588f680",
- "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/b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b?artifact_id=a99c6980-a83f-4bbd-84c5-133f25e6",
+ "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...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",
"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": "languages-start-points-b2f51324efc1528e4dda57d235bdbc68d966e1ea23722d5d296f98eefbfc2676",
+ "previous_template_reference_name": "languages-start-points"
},
- "commit_lead_time": 1390285.0,
+ "commit_lead_time": 1390289.0,
"artifact_compliance_in_flow": true,
"flow_reasons_for_non_compliance": []
},
{
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
- "template_reference_name": "nginx",
- "git_commit": "81c216a55b2cb1787645e699ceaceca868cad253",
- "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253",
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "languages-start-points-b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b",
+ "template_reference_name": "languages-start-points",
+ "git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7",
+ "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7",
"git_commit_info": {
- "sha1": "81c216a55b2cb1787645e699ceaceca868cad253",
- "message": "Add spooler service name to promote_one.yml",
+ "sha1": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7",
+ "message": "Add emoji prefixes to workflow names\n\n Match the visual convention already used in the kosli-demo/stochastic-committer\n repo, where the Actions sidebar distinguishes workflow roles at a glance.\n\n The two aws-* files are the top-level entry points, triggered by dispatch and\n schedule, so they get the play emoji. The three reusable workflow_call\n sub-workflows get the package emoji to mark them as callable building blocks.",
"author": "JonJagger ",
"branch": "main",
- "timestamp": 1785143054.0,
- "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253"
+ "timestamp": 1783850974.0,
+ "url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7"
},
- "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",
+ "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",
"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",
+ "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7...35a09b2d283bafd6bbc12c29eba3306d5b36a5f7",
+ "previous_git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7",
+ "previous_fingerprint": "f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418",
+ "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/languages-start-points:c6db342@sha256:f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418",
"previous_artifact_compliance_state": "COMPLIANT",
"previous_running": false,
- "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/76325d840dc66e1c84743725e17de05a16616419",
- "previous_trail_name": "promotion-one-127",
- "previous_template_reference_name": "nginx"
+ "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7",
+ "previous_trail_name": "languages-start-points-f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418",
+ "previous_template_reference_name": "languages-start-points"
},
- "commit_lead_time": 98205.0,
+ "commit_lead_time": 1390289.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/42e358b2bd144b99b7f4b93382dddc90",
"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": [
@@ -2837,24 +3272,32 @@ 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
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": null
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053",
+ "artifact_status": null
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053",
"artifact_status": null
}
}
@@ -2874,24 +3317,32 @@ 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"
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": "COMPLIANT"
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053",
+ "artifact_status": "COMPLIANT"
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053",
"artifact_status": "COMPLIANT"
}
}
@@ -2916,24 +3367,32 @@ 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
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": null
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053",
+ "artifact_status": null
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053",
"artifact_status": null
}
}
@@ -2960,24 +3419,32 @@ 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
}
},
{
"type": "rule_satisfied",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": null
}
},
{
"type": "rule_satisfied",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053",
+ "artifact_status": null
+ }
+ },
+ {
+ "type": "rule_satisfied",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053",
"artifact_status": null
}
}
@@ -2997,24 +3464,32 @@ 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"
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": "COMPLIANT"
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053",
+ "artifact_status": "COMPLIANT"
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053",
"artifact_status": "COMPLIANT"
}
}
@@ -3039,8 +3514,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"
}
@@ -3048,8 +3523,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": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": null,
"for_control": "SDLC-CTRL-0002"
}
@@ -3057,8 +3532,17 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053",
+ "artifact_status": null,
+ "for_control": "SDLC-CTRL-0002"
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053",
"artifact_status": null,
"for_control": "SDLC-CTRL-0002"
}
@@ -3086,24 +3570,32 @@ 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
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": null
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053",
+ "artifact_status": null
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053",
"artifact_status": null
}
}
@@ -3123,24 +3615,32 @@ 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"
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": "COMPLIANT"
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053",
+ "artifact_status": "COMPLIANT"
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053",
"artifact_status": "COMPLIANT"
}
}
@@ -3159,14 +3659,14 @@ 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",
"context": {
- "flow_name": "dashboard-ci",
- "trail_name": "0fb0be439480821efb926a5079e39ce5941eaa48",
+ "flow_name": "nginx-ci",
+ "trail_name": "a2e4638aaa102446b8a6d1d519c5bc007e24f087",
"artifact_status": null,
"for_control": "SDLC-CTRL-0022"
}
@@ -3174,8 +3674,17 @@ 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": "production-promotion",
+ "trail_name": "promote-all-31",
+ "artifact_status": null,
+ "for_control": "SDLC-CTRL-0022"
+ }
+ },
+ {
+ "type": "rule_satisfied",
+ "context": {
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053",
"artifact_status": null,
"for_control": "SDLC-CTRL-0022"
}
@@ -3183,8 +3692,8 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053",
"artifact_status": null,
"for_control": "SDLC-CTRL-0022"
}
@@ -3212,24 +3721,32 @@ 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
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": null
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053",
+ "artifact_status": null
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053",
"artifact_status": null
}
}
@@ -3249,24 +3766,32 @@ 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"
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": "COMPLIANT"
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053",
+ "artifact_status": "COMPLIANT"
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053",
"artifact_status": "COMPLIANT"
}
}
@@ -3291,24 +3816,32 @@ 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
+ }
+ },
+ {
+ "type": "rule_satisfied",
+ "context": {
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
"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
}
},
{
- "type": "rule_satisfied",
+ "type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053",
"artifact_status": null
}
}
@@ -3335,24 +3868,32 @@ 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
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": null
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053",
+ "artifact_status": null
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053",
"artifact_status": null
}
}
@@ -3378,24 +3919,32 @@ 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"
}
},
{
- "type": "rule_not_applicable",
+ "type": "rule_satisfied",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": "COMPLIANT"
}
},
{
"type": "rule_satisfied",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053",
+ "artifact_status": "COMPLIANT"
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053",
"artifact_status": "COMPLIANT"
}
}
@@ -3406,9 +3955,9 @@ kosli get snapshot aws-prod --output=json
}
],
"reasons_for_incompliance": [],
- "fingerprint": "c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98",
+ "fingerprint": "c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053",
"creationTimestamp": [
- 1785241255
+ 1785241259
],
"pods": null,
"annotation": {
@@ -3416,59 +3965,90 @@ 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": "snyk-aws-beta-per-artifact",
- "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98",
- "template_reference_name": "dashboard",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
+ "template_reference_name": "nginx",
+ "git_commit": "81c216a55b2cb1787645e699ceaceca868cad253",
+ "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253",
+ "git_commit_info": {
+ "sha1": "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/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": "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-127",
+ "previous_template_reference_name": "nginx"
+ },
+ "commit_lead_time": 98205.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",
"git_commit_info": {
@@ -3479,63 +4059,63 @@ kosli get snapshot aws-prod --output=json
"timestamp": 1783850974.0,
"url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7"
},
- "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98?artifact_id=8b47f45d-e66d-4b83-b593-ffb56e5a",
- "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=e05b691d-e31d-4d54-831f-2e0eaba9",
+ "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...35a09b2d283bafd6bbc12c29eba3306d5b36a5f7",
+ "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": 1390285.0,
"artifact_compliance_in_flow": true,
"flow_reasons_for_non_compliance": []
},
{
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
- "template_reference_name": "dashboard",
- "git_commit": "81c216a55b2cb1787645e699ceaceca868cad253",
- "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253",
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "nginx-c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053",
+ "template_reference_name": "nginx",
+ "git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7",
+ "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7",
"git_commit_info": {
- "sha1": "81c216a55b2cb1787645e699ceaceca868cad253",
- "message": "Add spooler service name to promote_one.yml",
+ "sha1": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7",
+ "message": "Add emoji prefixes to workflow names\n\n Match the visual convention already used in the kosli-demo/stochastic-committer\n repo, where the Actions sidebar distinguishes workflow roles at a glance.\n\n The two aws-* files are the top-level entry points, triggered by dispatch and\n schedule, so they get the play emoji. The three reusable workflow_call\n sub-workflows get the package emoji to mark them as callable building blocks.",
"author": "JonJagger ",
"branch": "main",
- "timestamp": 1785143054.0,
- "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253"
+ "timestamp": 1783850974.0,
+ "url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7"
},
- "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",
+ "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",
"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",
+ "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7...35a09b2d283bafd6bbc12c29eba3306d5b36a5f7",
+ "previous_git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7",
+ "previous_fingerprint": "3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5",
+ "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:7ba8029@sha256:3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5",
"previous_artifact_compliance_state": "COMPLIANT",
"previous_running": false,
- "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/76325d840dc66e1c84743725e17de05a16616419",
- "previous_trail_name": "promotion-one-131",
- "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": 98201.0,
+ "commit_lead_time": 1390285.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": [
@@ -3557,24 +4137,32 @@ 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
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": null
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98",
+ "artifact_status": null
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98",
"artifact_status": null
}
}
@@ -3594,24 +4182,32 @@ 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"
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": "COMPLIANT"
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98",
+ "artifact_status": "COMPLIANT"
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98",
"artifact_status": "COMPLIANT"
}
}
@@ -3634,26 +4230,34 @@ kosli get snapshot aws-prod --output=json
"ignored": false,
"resolutions": [
{
- "type": "rule_satisfied",
+ "type": "rule_satisfied",
+ "context": {
+ "flow_name": "dashboard-ci",
+ "trail_name": "0fb0be439480821efb926a5079e39ce5941eaa48",
+ "artifact_status": null
+ }
+ },
+ {
+ "type": "rule_not_applicable",
"context": {
- "flow_name": "exercises-start-points-ci",
- "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": null
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98",
"artifact_status": null
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98",
"artifact_status": null
}
}
@@ -3680,24 +4284,32 @@ 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
}
},
{
"type": "rule_satisfied",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": null
}
},
{
"type": "rule_satisfied",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98",
+ "artifact_status": null
+ }
+ },
+ {
+ "type": "rule_satisfied",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98",
"artifact_status": null
}
}
@@ -3717,24 +4329,32 @@ 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"
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": "COMPLIANT"
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98",
+ "artifact_status": "COMPLIANT"
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98",
"artifact_status": "COMPLIANT"
}
}
@@ -3759,8 +4379,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"
}
@@ -3768,8 +4388,8 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": null,
"for_control": "SDLC-CTRL-0002"
}
@@ -3777,8 +4397,17 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98",
+ "artifact_status": null,
+ "for_control": "SDLC-CTRL-0002"
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98",
"artifact_status": null,
"for_control": "SDLC-CTRL-0002"
}
@@ -3806,24 +4435,32 @@ 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
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": null
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98",
+ "artifact_status": null
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98",
"artifact_status": null
}
}
@@ -3843,24 +4480,32 @@ 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"
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": "COMPLIANT"
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98",
+ "artifact_status": "COMPLIANT"
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98",
"artifact_status": "COMPLIANT"
}
}
@@ -3879,14 +4524,14 @@ 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",
"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"
}
@@ -3894,8 +4539,17 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
+ "artifact_status": null,
+ "for_control": "SDLC-CTRL-0022"
+ }
+ },
+ {
+ "type": "rule_satisfied",
+ "context": {
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98",
"artifact_status": null,
"for_control": "SDLC-CTRL-0022"
}
@@ -3903,8 +4557,8 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98",
"artifact_status": null,
"for_control": "SDLC-CTRL-0022"
}
@@ -3932,24 +4586,32 @@ 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
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": null
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98",
+ "artifact_status": null
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98",
"artifact_status": null
}
}
@@ -3969,24 +4631,32 @@ 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"
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": "COMPLIANT"
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98",
+ "artifact_status": "COMPLIANT"
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98",
"artifact_status": "COMPLIANT"
}
}
@@ -4011,24 +4681,32 @@ 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
+ }
+ },
+ {
+ "type": "rule_satisfied",
+ "context": {
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": null
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98",
"artifact_status": null
}
},
{
- "type": "rule_satisfied",
+ "type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98",
"artifact_status": null
}
}
@@ -4055,24 +4733,32 @@ 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
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": null
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98",
+ "artifact_status": null
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98",
"artifact_status": null
}
}
@@ -4098,24 +4784,32 @@ 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"
}
},
{
- "type": "rule_not_applicable",
+ "type": "rule_satisfied",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": "COMPLIANT"
}
},
{
"type": "rule_satisfied",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98",
+ "artifact_status": "COMPLIANT"
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98",
"artifact_status": "COMPLIANT"
}
}
@@ -4126,7 +4820,7 @@ kosli get snapshot aws-prod --output=json
}
],
"reasons_for_incompliance": [],
- "fingerprint": "c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea",
+ "fingerprint": "c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98",
"creationTimestamp": [
1785241255
],
@@ -4136,59 +4830,90 @@ 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": "snyk-aws-beta-per-artifact",
- "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea",
- "template_reference_name": "exercises-start-points",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
+ "template_reference_name": "dashboard",
+ "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/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/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/76325d840dc66e1c84743725e17de05a16616419",
+ "previous_trail_name": "promotion-one-131",
+ "previous_template_reference_name": "dashboard"
+ },
+ "commit_lead_time": 98201.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",
"git_commit_info": {
@@ -4199,63 +4924,63 @@ kosli get snapshot aws-prod --output=json
"timestamp": 1783850974.0,
"url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7"
},
- "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea?artifact_id=09bcaf35-ebb8-437f-bb7d-16f994e4",
- "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/c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98?artifact_id=af7e18b8-ccc2-4807-8ef1-8d572a29",
+ "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": "a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613",
- "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:804f248@sha256:a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613",
+ "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/00c479764cb9eca038fdaaaef108672d0bb0ed26...35a09b2d283bafd6bbc12c29eba3306d5b36a5f7",
+ "previous_git_commit": "00c479764cb9eca038fdaaaef108672d0bb0ed26",
+ "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/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7",
- "previous_trail_name": "exercises-start-points-a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613",
- "previous_template_reference_name": "exercises-start-points"
+ "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/00c479764cb9eca038fdaaaef108672d0bb0ed26",
+ "previous_trail_name": "dashboard-45513c642ba191052bde056d56eeba8b06b0346eb444ec0008bd59bc0581bb8c",
+ "previous_template_reference_name": "dashboard"
},
"commit_lead_time": 1390281.0,
"artifact_compliance_in_flow": true,
"flow_reasons_for_non_compliance": []
},
{
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
- "template_reference_name": "exercises-start-points",
- "git_commit": "81c216a55b2cb1787645e699ceaceca868cad253",
- "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253",
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "dashboard-c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98",
+ "template_reference_name": "dashboard",
+ "git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7",
+ "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7",
"git_commit_info": {
- "sha1": "81c216a55b2cb1787645e699ceaceca868cad253",
- "message": "Add spooler service name to promote_one.yml",
+ "sha1": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7",
+ "message": "Add emoji prefixes to workflow names\n\n Match the visual convention already used in the kosli-demo/stochastic-committer\n repo, where the Actions sidebar distinguishes workflow roles at a glance.\n\n The two aws-* files are the top-level entry points, triggered by dispatch and\n schedule, so they get the play emoji. The three reusable workflow_call\n sub-workflows get the package emoji to mark them as callable building blocks.",
"author": "JonJagger ",
"branch": "main",
- "timestamp": 1785143054.0,
- "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253"
+ "timestamp": 1783850974.0,
+ "url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7"
},
- "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea?artifact_id=b17578fc-3dc0-42c5-98a7-216ebe8a",
- "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion",
+ "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98?artifact_id=9ace06e0-2d46-41d9-a908-85b143a1",
+ "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact",
"deployment_diff": {
- "diff_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/compare/d7e31ce0207b766140ae689f38625da4374acf87...81c216a55b2cb1787645e699ceaceca868cad253",
- "previous_git_commit": "d7e31ce0207b766140ae689f38625da4374acf87",
- "previous_fingerprint": "a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613",
- "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:804f248@sha256:a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613",
+ "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7...35a09b2d283bafd6bbc12c29eba3306d5b36a5f7",
+ "previous_git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7",
+ "previous_fingerprint": "d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e",
+ "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:5407827@sha256:d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e",
"previous_artifact_compliance_state": "COMPLIANT",
"previous_running": false,
- "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/d7e31ce0207b766140ae689f38625da4374acf87",
- "previous_trail_name": "promote-all-30",
- "previous_template_reference_name": "exercises-start-points"
+ "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7",
+ "previous_trail_name": "dashboard-d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e",
+ "previous_template_reference_name": "dashboard"
},
- "commit_lead_time": 98201.0,
+ "commit_lead_time": 1390281.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": [
@@ -4277,24 +5002,32 @@ 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
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": null
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea",
+ "artifact_status": null
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea",
"artifact_status": null
}
}
@@ -4314,24 +5047,32 @@ 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"
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": "COMPLIANT"
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea",
+ "artifact_status": "COMPLIANT"
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea",
"artifact_status": "COMPLIANT"
}
}
@@ -4356,24 +5097,32 @@ 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
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": null
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea",
+ "artifact_status": null
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea",
"artifact_status": null
}
}
@@ -4400,24 +5149,32 @@ 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
}
},
{
"type": "rule_satisfied",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": null
}
},
{
"type": "rule_satisfied",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea",
+ "artifact_status": null
+ }
+ },
+ {
+ "type": "rule_satisfied",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea",
"artifact_status": null
}
}
@@ -4437,24 +5194,32 @@ 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"
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": "COMPLIANT"
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea",
+ "artifact_status": "COMPLIANT"
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea",
"artifact_status": "COMPLIANT"
}
}
@@ -4477,10 +5242,19 @@ kosli get snapshot aws-prod --output=json
"ignored": false,
"resolutions": [
{
- "type": "rule_satisfied",
+ "type": "rule_satisfied",
+ "context": {
+ "flow_name": "exercises-start-points-ci",
+ "trail_name": "258b6d07d2b28ad5cb2ce6d29934997f72380f1a",
+ "artifact_status": null,
+ "for_control": "SDLC-CTRL-0002"
+ }
+ },
+ {
+ "type": "rule_not_applicable",
"context": {
- "flow_name": "custom-start-points-ci",
- "trail_name": "790d86b66f4d86ab47f5c521daf5039dc8aeef4d",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": null,
"for_control": "SDLC-CTRL-0002"
}
@@ -4488,8 +5262,8 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea",
"artifact_status": null,
"for_control": "SDLC-CTRL-0002"
}
@@ -4497,8 +5271,8 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea",
"artifact_status": null,
"for_control": "SDLC-CTRL-0002"
}
@@ -4526,24 +5300,32 @@ 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
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": null
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea",
+ "artifact_status": null
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea",
"artifact_status": null
}
}
@@ -4563,24 +5345,32 @@ 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"
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": "COMPLIANT"
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea",
+ "artifact_status": "COMPLIANT"
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea",
"artifact_status": "COMPLIANT"
}
}
@@ -4599,14 +5389,14 @@ 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",
"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"
}
@@ -4614,8 +5404,17 @@ 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",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
+ "artifact_status": null,
+ "for_control": "SDLC-CTRL-0022"
+ }
+ },
+ {
+ "type": "rule_satisfied",
+ "context": {
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea",
"artifact_status": null,
"for_control": "SDLC-CTRL-0022"
}
@@ -4623,8 +5422,8 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea",
"artifact_status": null,
"for_control": "SDLC-CTRL-0022"
}
@@ -4652,24 +5451,32 @@ 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
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": null
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea",
+ "artifact_status": null
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea",
"artifact_status": null
}
}
@@ -4689,24 +5496,32 @@ 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"
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": "COMPLIANT"
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea",
+ "artifact_status": "COMPLIANT"
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea",
"artifact_status": "COMPLIANT"
}
}
@@ -4731,24 +5546,32 @@ 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
+ }
+ },
+ {
+ "type": "rule_satisfied",
+ "context": {
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": null
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea",
"artifact_status": null
}
},
{
- "type": "rule_satisfied",
+ "type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea",
"artifact_status": null
}
}
@@ -4775,24 +5598,32 @@ 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
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": null
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea",
+ "artifact_status": null
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea",
"artifact_status": null
}
}
@@ -4818,24 +5649,32 @@ 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"
}
},
{
- "type": "rule_not_applicable",
+ "type": "rule_satisfied",
"context": {
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81",
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
"artifact_status": "COMPLIANT"
}
},
{
"type": "rule_satisfied",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promote-all-31",
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea",
+ "artifact_status": "COMPLIANT"
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea",
"artifact_status": "COMPLIANT"
}
}
@@ -4846,9 +5685,9 @@ kosli get snapshot aws-prod --output=json
}
],
"reasons_for_incompliance": [],
- "fingerprint": "8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81",
+ "fingerprint": "c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea",
"creationTimestamp": [
- 1785241244
+ 1785241255
],
"pods": null,
"annotation": {
@@ -4856,59 +5695,90 @@ 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/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/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/exercises-start-points/commit/804f248d832dc34e564507b009c246dfb4f0c657",
+ "previous_trail_name": "804f248d832dc34e564507b009c246dfb4f0c657",
+ "previous_template_reference_name": "exercises-start-points"
+ },
+ "commit_lead_time": 929108.0,
+ "artifact_compliance_in_flow": true,
+ "flow_reasons_for_non_compliance": []
+ },
+ {
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
+ "template_reference_name": "exercises-start-points",
+ "git_commit": "81c216a55b2cb1787645e699ceaceca868cad253",
+ "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253",
+ "git_commit_info": {
+ "sha1": "81c216a55b2cb1787645e699ceaceca868cad253",
+ "message": "Add spooler service name to promote_one.yml",
+ "author": "JonJagger ",
+ "branch": "main",
+ "timestamp": 1785143054.0,
+ "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253"
},
- "html_url": "https://app.kosli.com/cyber-dojo/flows/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/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/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/aws-prod-co-promotion/compare/d7e31ce0207b766140ae689f38625da4374acf87...81c216a55b2cb1787645e699ceaceca868cad253",
+ "previous_git_commit": "d7e31ce0207b766140ae689f38625da4374acf87",
+ "previous_fingerprint": "a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613",
+ "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:804f248@sha256:a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613",
"previous_artifact_compliance_state": "COMPLIANT",
"previous_running": false,
- "previous_git_commit_url": "https://github.com/cyber-dojo/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/aws-prod-co-promotion/commit/d7e31ce0207b766140ae689f38625da4374acf87",
+ "previous_trail_name": "promote-all-30",
+ "previous_template_reference_name": "exercises-start-points"
},
- "commit_lead_time": 929228.0,
+ "commit_lead_time": 98201.0,
"artifact_compliance_in_flow": true,
"flow_reasons_for_non_compliance": []
},
{
- "flow_name": "snyk-aws-beta-per-artifact",
- "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81",
- "template_reference_name": "custom-start-points",
+ "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",
"git_commit_info": {
@@ -4919,63 +5789,63 @@ kosli get snapshot aws-prod --output=json
"timestamp": 1783850974.0,
"url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7"
},
- "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81?artifact_id=ca358cf6-f605-4ae6-8d93-1296ece8",
- "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/c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea?artifact_id=310fe7e0-a7b2-4051-9dea-f470022c",
+ "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact",
"deployment_diff": {
- "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/c17bb3ed8862de03c1a491dfe790fd8734fc7071...35a09b2d283bafd6bbc12c29eba3306d5b36a5f7",
- "previous_git_commit": "c17bb3ed8862de03c1a491dfe790fd8734fc7071",
- "previous_fingerprint": "311da8e95c74716bf3953de67a6dc3fe514c88d805a08a55ab17c677d75cf797",
- "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/custom-start-points:514f79a@sha256:311da8e95c74716bf3953de67a6dc3fe514c88d805a08a55ab17c677d75cf797",
+ "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/00c479764cb9eca038fdaaaef108672d0bb0ed26...35a09b2d283bafd6bbc12c29eba3306d5b36a5f7",
+ "previous_git_commit": "00c479764cb9eca038fdaaaef108672d0bb0ed26",
+ "previous_fingerprint": "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/c17bb3ed8862de03c1a491dfe790fd8734fc7071",
- "previous_trail_name": "custom-start-points-311da8e95c74716bf3953de67a6dc3fe514c88d805a08a55ab17c677d75cf797",
- "previous_template_reference_name": "custom-start-points"
+ "previous_git_commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/00c479764cb9eca038fdaaaef108672d0bb0ed26",
+ "previous_trail_name": "exercises-start-points-f00aa234bebafb1980dced29626750f84a6fe6c9c50f6a90167e4d8e6511a8a8",
+ "previous_template_reference_name": "exercises-start-points"
},
- "commit_lead_time": 1390270.0,
+ "commit_lead_time": 1390281.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",
- "git_commit": "81c216a55b2cb1787645e699ceaceca868cad253",
- "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253",
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "exercises-start-points-c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea",
+ "template_reference_name": "exercises-start-points",
+ "git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7",
+ "commit_url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7",
"git_commit_info": {
- "sha1": "81c216a55b2cb1787645e699ceaceca868cad253",
- "message": "Add spooler service name to promote_one.yml",
+ "sha1": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7",
+ "message": "Add emoji prefixes to workflow names\n\n Match the visual convention already used in the kosli-demo/stochastic-committer\n repo, where the Actions sidebar distinguishes workflow roles at a glance.\n\n The two aws-* files are the top-level entry points, triggered by dispatch and\n schedule, so they get the play emoji. The three reusable workflow_call\n sub-workflows get the package emoji to mark them as callable building blocks.",
"author": "JonJagger ",
"branch": "main",
- "timestamp": 1785143054.0,
- "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253"
+ "timestamp": 1783850974.0,
+ "url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7"
},
- "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",
+ "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea?artifact_id=1e751756-2547-4296-acd6-2a711f50",
+ "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact",
"deployment_diff": {
- "diff_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/compare/d7e31ce0207b766140ae689f38625da4374acf87...81c216a55b2cb1787645e699ceaceca868cad253",
- "previous_git_commit": "d7e31ce0207b766140ae689f38625da4374acf87",
- "previous_fingerprint": "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/snyk-scanning/compare/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7...35a09b2d283bafd6bbc12c29eba3306d5b36a5f7",
+ "previous_git_commit": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7",
+ "previous_fingerprint": "a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613",
+ "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:804f248@sha256:a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613",
"previous_artifact_compliance_state": "COMPLIANT",
"previous_running": false,
- "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/d7e31ce0207b766140ae689f38625da4374acf87",
- "previous_trail_name": "promote-all-30",
- "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": 98190.0,
+ "commit_lead_time": 1390281.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": [
@@ -4997,8 +5867,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
}
},
@@ -5006,7 +5876,23 @@ 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
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81",
+ "artifact_status": null
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81",
"artifact_status": null
}
}
@@ -5026,8 +5912,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"
}
},
@@ -5035,7 +5921,23 @@ 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"
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81",
+ "artifact_status": "COMPLIANT"
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81",
"artifact_status": "COMPLIANT"
}
}
@@ -5060,8 +5962,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
}
},
@@ -5069,7 +5971,23 @@ 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
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81",
+ "artifact_status": null
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81",
"artifact_status": null
}
}
@@ -5096,8 +6014,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
}
},
@@ -5105,7 +6023,23 @@ 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
+ }
+ },
+ {
+ "type": "rule_satisfied",
+ "context": {
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81",
+ "artifact_status": null
+ }
+ },
+ {
+ "type": "rule_satisfied",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81",
"artifact_status": null
}
}
@@ -5125,8 +6059,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"
}
},
@@ -5134,7 +6068,23 @@ 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"
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81",
+ "artifact_status": "COMPLIANT"
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81",
"artifact_status": "COMPLIANT"
}
}
@@ -5159,8 +6109,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"
}
@@ -5169,7 +6119,25 @@ 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"
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81",
+ "artifact_status": null,
+ "for_control": "SDLC-CTRL-0002"
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81",
"artifact_status": null,
"for_control": "SDLC-CTRL-0002"
}
@@ -5197,8 +6165,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
}
},
@@ -5206,7 +6174,23 @@ 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
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81",
+ "artifact_status": null
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81",
"artifact_status": null
}
}
@@ -5226,16 +6210,32 @@ 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"
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "production-promotion",
+ "trail_name": "promote-all-31",
+ "artifact_status": "COMPLIANT"
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81",
"artifact_status": "COMPLIANT"
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promotion-one-141",
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81",
"artifact_status": "COMPLIANT"
}
}
@@ -5254,14 +6254,14 @@ 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",
"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"
}
@@ -5270,7 +6270,25 @@ 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"
+ }
+ },
+ {
+ "type": "rule_satisfied",
+ "context": {
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81",
+ "artifact_status": null,
+ "for_control": "SDLC-CTRL-0022"
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81",
"artifact_status": null,
"for_control": "SDLC-CTRL-0022"
}
@@ -5298,8 +6316,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
}
},
@@ -5307,7 +6325,23 @@ 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
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81",
+ "artifact_status": null
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81",
"artifact_status": null
}
}
@@ -5327,8 +6361,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"
}
},
@@ -5336,7 +6370,23 @@ 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"
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81",
+ "artifact_status": "COMPLIANT"
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81",
"artifact_status": "COMPLIANT"
}
}
@@ -5361,8 +6411,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
}
},
@@ -5370,7 +6420,23 @@ 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
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81",
+ "artifact_status": null
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81",
"artifact_status": null
}
}
@@ -5397,8 +6463,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
}
},
@@ -5406,7 +6472,23 @@ 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
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81",
+ "artifact_status": null
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81",
"artifact_status": null
}
}
@@ -5432,8 +6514,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"
}
},
@@ -5441,7 +6523,23 @@ 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"
+ }
+ },
+ {
+ "type": "rule_satisfied",
+ "context": {
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81",
+ "artifact_status": "COMPLIANT"
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "custom-start-points-8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81",
"artifact_status": "COMPLIANT"
}
}
@@ -5452,9 +6550,9 @@ kosli get snapshot aws-prod --output=json
}
],
"reasons_for_incompliance": [],
- "fingerprint": "680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4",
+ "fingerprint": "8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81",
"creationTimestamp": [
- 1785236539
+ 1785241244
],
"pods": null,
"annotation": {
@@ -5462,95 +6560,157 @@ 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/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/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/custom-start-points/commit/d37aace7598ee943ba0bd5e51f224335cbdf0a3e",
+ "previous_trail_name": "d37aace7598ee943ba0bd5e51f224335cbdf0a3e",
+ "previous_template_reference_name": "custom-start-points"
+ },
+ "commit_lead_time": 929228.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",
+ "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/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/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/d7e31ce0207b766140ae689f38625da4374acf87",
+ "previous_trail_name": "promote-all-30",
+ "previous_template_reference_name": "custom-start-points"
+ },
+ "commit_lead_time": 98190.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",
+ "git_commit_info": {
+ "sha1": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7",
+ "message": "Add emoji prefixes to workflow names\n\n Match the visual convention already used in the kosli-demo/stochastic-committer\n repo, where the Actions sidebar distinguishes workflow roles at a glance.\n\n The two aws-* files are the top-level entry points, triggered by dispatch and\n schedule, so they get the play emoji. The three reusable workflow_call\n sub-workflows get the package emoji to mark them as callable building blocks.",
+ "author": "JonJagger ",
+ "branch": "main",
+ "timestamp": 1783850974.0,
+ "url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7"
},
- "html_url": "https://app.kosli.com/cyber-dojo/flows/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/snyk-aws-prod-per-artifact/artifacts/8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81?artifact_id=385baa2d-73b5-443d-ac93-fbac4ae4",
+ "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact",
"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/snyk-scanning/compare/00c479764cb9eca038fdaaaef108672d0bb0ed26...35a09b2d283bafd6bbc12c29eba3306d5b36a5f7",
+ "previous_git_commit": "00c479764cb9eca038fdaaaef108672d0bb0ed26",
+ "previous_fingerprint": "b4448ca68a0926e4a7a800f5b101b63e9c2f38e1caaebb7e929d992763570928",
+ "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/custom-start-points:6b5c159@sha256:b4448ca68a0926e4a7a800f5b101b63e9c2f38e1caaebb7e929d992763570928",
"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/snyk-scanning/commit/00c479764cb9eca038fdaaaef108672d0bb0ed26",
+ "previous_trail_name": "custom-start-points-b4448ca68a0926e4a7a800f5b101b63e9c2f38e1caaebb7e929d992763570928",
+ "previous_template_reference_name": "custom-start-points"
},
- "commit_lead_time": 7420.0,
+ "commit_lead_time": 1390270.0,
"artifact_compliance_in_flow": true,
"flow_reasons_for_non_compliance": []
},
{
- "flow_name": "production-promotion",
- "trail_name": "promotion-one-141",
- "template_reference_name": "saver",
- "git_commit": "81c216a55b2cb1787645e699ceaceca868cad253",
- "commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253",
+ "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",
"git_commit_info": {
- "sha1": "81c216a55b2cb1787645e699ceaceca868cad253",
- "message": "Add spooler service name to promote_one.yml",
+ "sha1": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7",
+ "message": "Add emoji prefixes to workflow names\n\n Match the visual convention already used in the kosli-demo/stochastic-committer\n repo, where the Actions sidebar distinguishes workflow roles at a glance.\n\n The two aws-* files are the top-level entry points, triggered by dispatch and\n schedule, so they get the play emoji. The three reusable workflow_call\n sub-workflows get the package emoji to mark them as callable building blocks.",
"author": "JonJagger ",
"branch": "main",
- "timestamp": 1785143054.0,
- "url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253"
+ "timestamp": 1783850974.0,
+ "url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7"
},
- "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",
+ "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81?artifact_id=1024cb78-94dd-4b21-934f-40c22203",
+ "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact",
"deployment_diff": {
- "diff_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/compare/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/snyk-scanning/compare/c17bb3ed8862de03c1a491dfe790fd8734fc7071...35a09b2d283bafd6bbc12c29eba3306d5b36a5f7",
+ "previous_git_commit": "c17bb3ed8862de03c1a491dfe790fd8734fc7071",
+ "previous_fingerprint": "311da8e95c74716bf3953de67a6dc3fe514c88d805a08a55ab17c677d75cf797",
+ "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/custom-start-points:514f79a@sha256:311da8e95c74716bf3953de67a6dc3fe514c88d805a08a55ab17c677d75cf797",
"previous_artifact_compliance_state": "COMPLIANT",
"previous_running": false,
- "previous_git_commit_url": "https://github.com/cyber-dojo/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/snyk-scanning/commit/c17bb3ed8862de03c1a491dfe790fd8734fc7071",
+ "previous_trail_name": "custom-start-points-311da8e95c74716bf3953de67a6dc3fe514c88d805a08a55ab17c677d75cf797",
+ "previous_template_reference_name": "custom-start-points"
},
- "commit_lead_time": 93485.0,
+ "commit_lead_time": 1390270.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/spooler:92c624e@sha256:a20359795934beb03d992ba5a8f8b95ca637e609284e5a84781bdcbb1b861975",
+ "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:c29db2c@sha256:680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4",
"compliant": true,
"deployments": [],
"policy_decisions": [
@@ -5572,8 +6732,8 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "spooler-ci",
- "trail_name": "92c624eabb024729fb2af6cdbe354db11ee3882f",
+ "flow_name": "saver-ci",
+ "trail_name": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e",
"artifact_status": null
}
},
@@ -5581,7 +6741,23 @@ kosli get snapshot aws-prod --output=json
"type": "rule_not_applicable",
"context": {
"flow_name": "production-promotion",
- "trail_name": "promotion-one-140",
+ "trail_name": "promotion-one-141",
+ "artifact_status": null
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4",
+ "artifact_status": null
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4",
"artifact_status": null
}
}
@@ -5601,8 +6777,8 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "spooler-ci",
- "trail_name": "92c624eabb024729fb2af6cdbe354db11ee3882f",
+ "flow_name": "saver-ci",
+ "trail_name": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e",
"artifact_status": "COMPLIANT"
}
},
@@ -5610,7 +6786,23 @@ kosli get snapshot aws-prod --output=json
"type": "rule_not_applicable",
"context": {
"flow_name": "production-promotion",
- "trail_name": "promotion-one-140",
+ "trail_name": "promotion-one-141",
+ "artifact_status": "COMPLIANT"
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4",
+ "artifact_status": "COMPLIANT"
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4",
"artifact_status": "COMPLIANT"
}
}
@@ -5629,14 +6821,14 @@ kosli get snapshot aws-prod --output=json
"for_control": null
}
},
- "satisfied": null,
- "ignored": true,
+ "satisfied": true,
+ "ignored": false,
"resolutions": [
{
- "type": "rule_not_applicable",
+ "type": "rule_satisfied",
"context": {
- "flow_name": "spooler-ci",
- "trail_name": "92c624eabb024729fb2af6cdbe354db11ee3882f",
+ "flow_name": "saver-ci",
+ "trail_name": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e",
"artifact_status": null
}
},
@@ -5644,7 +6836,23 @@ kosli get snapshot aws-prod --output=json
"type": "rule_not_applicable",
"context": {
"flow_name": "production-promotion",
- "trail_name": "promotion-one-140",
+ "trail_name": "promotion-one-141",
+ "artifact_status": null
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4",
+ "artifact_status": null
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4",
"artifact_status": null
}
}
@@ -5671,8 +6879,8 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_satisfied",
"context": {
- "flow_name": "spooler-ci",
- "trail_name": "92c624eabb024729fb2af6cdbe354db11ee3882f",
+ "flow_name": "saver-ci",
+ "trail_name": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e",
"artifact_status": null
}
},
@@ -5680,7 +6888,23 @@ kosli get snapshot aws-prod --output=json
"type": "rule_satisfied",
"context": {
"flow_name": "production-promotion",
- "trail_name": "promotion-one-140",
+ "trail_name": "promotion-one-141",
+ "artifact_status": null
+ }
+ },
+ {
+ "type": "rule_satisfied",
+ "context": {
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4",
+ "artifact_status": null
+ }
+ },
+ {
+ "type": "rule_satisfied",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4",
"artifact_status": null
}
}
@@ -5700,8 +6924,8 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "spooler-ci",
- "trail_name": "92c624eabb024729fb2af6cdbe354db11ee3882f",
+ "flow_name": "saver-ci",
+ "trail_name": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e",
"artifact_status": "COMPLIANT"
}
},
@@ -5709,7 +6933,23 @@ kosli get snapshot aws-prod --output=json
"type": "rule_not_applicable",
"context": {
"flow_name": "production-promotion",
- "trail_name": "promotion-one-140",
+ "trail_name": "promotion-one-141",
+ "artifact_status": "COMPLIANT"
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4",
+ "artifact_status": "COMPLIANT"
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4",
"artifact_status": "COMPLIANT"
}
}
@@ -5728,14 +6968,14 @@ kosli get snapshot aws-prod --output=json
"for_control": "SDLC-CTRL-0002"
}
},
- "satisfied": null,
- "ignored": true,
+ "satisfied": true,
+ "ignored": false,
"resolutions": [
{
- "type": "rule_not_applicable",
+ "type": "rule_satisfied",
"context": {
- "flow_name": "spooler-ci",
- "trail_name": "92c624eabb024729fb2af6cdbe354db11ee3882f",
+ "flow_name": "saver-ci",
+ "trail_name": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e",
"artifact_status": null,
"for_control": "SDLC-CTRL-0002"
}
@@ -5744,7 +6984,25 @@ kosli get snapshot aws-prod --output=json
"type": "rule_not_applicable",
"context": {
"flow_name": "production-promotion",
- "trail_name": "promotion-one-140",
+ "trail_name": "promotion-one-141",
+ "artifact_status": null,
+ "for_control": "SDLC-CTRL-0002"
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4",
+ "artifact_status": null,
+ "for_control": "SDLC-CTRL-0002"
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4",
"artifact_status": null,
"for_control": "SDLC-CTRL-0002"
}
@@ -5772,8 +7030,8 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "spooler-ci",
- "trail_name": "92c624eabb024729fb2af6cdbe354db11ee3882f",
+ "flow_name": "saver-ci",
+ "trail_name": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e",
"artifact_status": null
}
},
@@ -5781,7 +7039,23 @@ kosli get snapshot aws-prod --output=json
"type": "rule_not_applicable",
"context": {
"flow_name": "production-promotion",
- "trail_name": "promotion-one-140",
+ "trail_name": "promotion-one-141",
+ "artifact_status": null
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4",
+ "artifact_status": null
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4",
"artifact_status": null
}
}
@@ -5801,8 +7075,8 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "spooler-ci",
- "trail_name": "92c624eabb024729fb2af6cdbe354db11ee3882f",
+ "flow_name": "saver-ci",
+ "trail_name": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e",
"artifact_status": "COMPLIANT"
}
},
@@ -5810,7 +7084,23 @@ kosli get snapshot aws-prod --output=json
"type": "rule_not_applicable",
"context": {
"flow_name": "production-promotion",
- "trail_name": "promotion-one-140",
+ "trail_name": "promotion-one-141",
+ "artifact_status": "COMPLIANT"
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4",
+ "artifact_status": "COMPLIANT"
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4",
"artifact_status": "COMPLIANT"
}
}
@@ -5829,14 +7119,14 @@ 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",
"context": {
- "flow_name": "spooler-ci",
- "trail_name": "92c624eabb024729fb2af6cdbe354db11ee3882f",
+ "flow_name": "saver-ci",
+ "trail_name": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e",
"artifact_status": null,
"for_control": "SDLC-CTRL-0022"
}
@@ -5845,7 +7135,25 @@ kosli get snapshot aws-prod --output=json
"type": "rule_not_applicable",
"context": {
"flow_name": "production-promotion",
- "trail_name": "promotion-one-140",
+ "trail_name": "promotion-one-141",
+ "artifact_status": null,
+ "for_control": "SDLC-CTRL-0022"
+ }
+ },
+ {
+ "type": "rule_satisfied",
+ "context": {
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4",
+ "artifact_status": null,
+ "for_control": "SDLC-CTRL-0022"
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4",
"artifact_status": null,
"for_control": "SDLC-CTRL-0022"
}
@@ -5873,16 +7181,32 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "spooler-ci",
- "trail_name": "92c624eabb024729fb2af6cdbe354db11ee3882f",
+ "flow_name": "saver-ci",
+ "trail_name": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e",
+ "artifact_status": null
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "production-promotion",
+ "trail_name": "promotion-one-141",
+ "artifact_status": null
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4",
"artifact_status": null
}
},
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "production-promotion",
- "trail_name": "promotion-one-140",
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4",
"artifact_status": null
}
}
@@ -5902,8 +7226,8 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "spooler-ci",
- "trail_name": "92c624eabb024729fb2af6cdbe354db11ee3882f",
+ "flow_name": "saver-ci",
+ "trail_name": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e",
"artifact_status": "COMPLIANT"
}
},
@@ -5911,7 +7235,23 @@ kosli get snapshot aws-prod --output=json
"type": "rule_not_applicable",
"context": {
"flow_name": "production-promotion",
- "trail_name": "promotion-one-140",
+ "trail_name": "promotion-one-141",
+ "artifact_status": "COMPLIANT"
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4",
+ "artifact_status": "COMPLIANT"
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4",
"artifact_status": "COMPLIANT"
}
}
@@ -5936,8 +7276,8 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "spooler-ci",
- "trail_name": "92c624eabb024729fb2af6cdbe354db11ee3882f",
+ "flow_name": "saver-ci",
+ "trail_name": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e",
"artifact_status": null
}
},
@@ -5945,7 +7285,23 @@ kosli get snapshot aws-prod --output=json
"type": "rule_satisfied",
"context": {
"flow_name": "production-promotion",
- "trail_name": "promotion-one-140",
+ "trail_name": "promotion-one-141",
+ "artifact_status": null
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4",
+ "artifact_status": null
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4",
"artifact_status": null
}
}
@@ -5972,8 +7328,8 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "spooler-ci",
- "trail_name": "92c624eabb024729fb2af6cdbe354db11ee3882f",
+ "flow_name": "saver-ci",
+ "trail_name": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e",
"artifact_status": null
}
},
@@ -5981,7 +7337,23 @@ kosli get snapshot aws-prod --output=json
"type": "rule_not_applicable",
"context": {
"flow_name": "production-promotion",
- "trail_name": "promotion-one-140",
+ "trail_name": "promotion-one-141",
+ "artifact_status": null
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4",
+ "artifact_status": null
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4",
"artifact_status": null
}
}
@@ -6007,8 +7379,8 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "spooler-ci",
- "trail_name": "92c624eabb024729fb2af6cdbe354db11ee3882f",
+ "flow_name": "saver-ci",
+ "trail_name": "c29db2ce6d16a9ace09a8548b0cc39fd608abd2e",
"artifact_status": "COMPLIANT"
}
},
@@ -6016,7 +7388,23 @@ kosli get snapshot aws-prod --output=json
"type": "rule_satisfied",
"context": {
"flow_name": "production-promotion",
- "trail_name": "promotion-one-140",
+ "trail_name": "promotion-one-141",
+ "artifact_status": "COMPLIANT"
+ }
+ },
+ {
+ "type": "rule_satisfied",
+ "context": {
+ "flow_name": "snyk-aws-prod-per-artifact",
+ "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4",
+ "artifact_status": "COMPLIANT"
+ }
+ },
+ {
+ "type": "rule_not_applicable",
+ "context": {
+ "flow_name": "snyk-aws-beta-per-artifact",
+ "trail_name": "saver-680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4",
"artifact_status": "COMPLIANT"
}
}
@@ -6027,9 +7415,9 @@ kosli get snapshot aws-prod --output=json
}
],
"reasons_for_incompliance": [],
- "fingerprint": "a20359795934beb03d992ba5a8f8b95ca637e609284e5a84781bdcbb1b861975",
+ "fingerprint": "680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4",
"creationTimestamp": [
- 1785224823
+ 1785236539
],
"pods": null,
"annotation": {
@@ -6037,59 +7425,59 @@ kosli get snapshot aws-prod --output=json
"was": 1,
"now": 1
},
- "flow_name": "spooler-ci",
- "git_commit": "92c624eabb024729fb2af6cdbe354db11ee3882f",
- "commit_url": "https://github.com/cyber-dojo/spooler/commit/92c624eabb024729fb2af6cdbe354db11ee3882f",
- "html_url": "https://app.kosli.com/cyber-dojo/flows/spooler-ci/artifacts/a20359795934beb03d992ba5a8f8b95ca637e609284e5a84781bdcbb1b861975?artifact_id=42025c9c-2608-4ef0-b140-84548282",
- "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/spooler-ci",
+ "flow_name": "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/spooler/compare/b592c3af03e9530c1d224686a1745e4a12e1df00...92c624eabb024729fb2af6cdbe354db11ee3882f",
- "previous_git_commit": "b592c3af03e9530c1d224686a1745e4a12e1df00",
- "previous_fingerprint": "5cd2a591370f45e0156411a484182215a0c403992b9aef2cfaacbeadb3ac2b3e",
- "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/spooler:b592c3a@sha256:5cd2a591370f45e0156411a484182215a0c403992b9aef2cfaacbeadb3ac2b3e",
+ "diff_url": "https://github.com/cyber-dojo/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/spooler/commit/b592c3af03e9530c1d224686a1745e4a12e1df00",
- "previous_trail_name": "b592c3af03e9530c1d224686a1745e4a12e1df00",
- "previous_template_reference_name": "spooler"
+ "previous_git_commit_url": "https://github.com/cyber-dojo/saver/commit/f4bb3412725258648a7cf5ce1a776609b4dade72",
+ "previous_trail_name": "f4bb3412725258648a7cf5ce1a776609b4dade72",
+ "previous_template_reference_name": "saver"
},
- "commit_lead_time": 1217.0,
+ "commit_lead_time": 7420.0,
"flows": [
{
- "flow_name": "spooler-ci",
- "trail_name": "92c624eabb024729fb2af6cdbe354db11ee3882f",
- "template_reference_name": "spooler",
- "git_commit": "92c624eabb024729fb2af6cdbe354db11ee3882f",
- "commit_url": "https://github.com/cyber-dojo/spooler/commit/92c624eabb024729fb2af6cdbe354db11ee3882f",
+ "flow_name": "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": "92c624eabb024729fb2af6cdbe354db11ee3882f",
- "message": "Merge pull request #11 from cyber-dojo/run-ci-workflow-3\n\nRun ci workflow to check deployment",
+ "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": 1785223606.0,
- "url": "https://github.com/cyber-dojo/spooler/commit/92c624eabb024729fb2af6cdbe354db11ee3882f"
+ "timestamp": 1785229119.0,
+ "url": "https://github.com/cyber-dojo/saver/commit/c29db2ce6d16a9ace09a8548b0cc39fd608abd2e"
},
- "html_url": "https://app.kosli.com/cyber-dojo/flows/spooler-ci/artifacts/a20359795934beb03d992ba5a8f8b95ca637e609284e5a84781bdcbb1b861975?artifact_id=42025c9c-2608-4ef0-b140-84548282",
- "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/spooler-ci",
+ "html_url": "https://app.kosli.com/cyber-dojo/flows/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/spooler/compare/b592c3af03e9530c1d224686a1745e4a12e1df00...92c624eabb024729fb2af6cdbe354db11ee3882f",
- "previous_git_commit": "b592c3af03e9530c1d224686a1745e4a12e1df00",
- "previous_fingerprint": "5cd2a591370f45e0156411a484182215a0c403992b9aef2cfaacbeadb3ac2b3e",
- "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/spooler:b592c3a@sha256:5cd2a591370f45e0156411a484182215a0c403992b9aef2cfaacbeadb3ac2b3e",
+ "diff_url": "https://github.com/cyber-dojo/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/spooler/commit/b592c3af03e9530c1d224686a1745e4a12e1df00",
- "previous_trail_name": "b592c3af03e9530c1d224686a1745e4a12e1df00",
- "previous_template_reference_name": "spooler"
+ "previous_git_commit_url": "https://github.com/cyber-dojo/saver/commit/f4bb3412725258648a7cf5ce1a776609b4dade72",
+ "previous_trail_name": "f4bb3412725258648a7cf5ce1a776609b4dade72",
+ "previous_template_reference_name": "saver"
},
- "commit_lead_time": 1217.0,
+ "commit_lead_time": 7420.0,
"artifact_compliance_in_flow": true,
"flow_reasons_for_non_compliance": []
},
{
"flow_name": "production-promotion",
- "trail_name": "promotion-one-140",
- "template_reference_name": "spooler",
+ "trail_name": "promotion-one-141",
+ "template_reference_name": "saver",
"git_commit": "81c216a55b2cb1787645e699ceaceca868cad253",
"commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253",
"git_commit_info": {
@@ -6100,26 +7488,88 @@ kosli get snapshot aws-prod --output=json
"timestamp": 1785143054.0,
"url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253"
},
- "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/a20359795934beb03d992ba5a8f8b95ca637e609284e5a84781bdcbb1b861975?artifact_id=fcfeda3a-8a41-444b-af27-4d97a807",
+ "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/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/81c216a55b2cb1787645e699ceaceca868cad253...81c216a55b2cb1787645e699ceaceca868cad253",
- "previous_git_commit": "81c216a55b2cb1787645e699ceaceca868cad253",
- "previous_fingerprint": "5cd2a591370f45e0156411a484182215a0c403992b9aef2cfaacbeadb3ac2b3e",
- "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/spooler:b592c3a@sha256:5cd2a591370f45e0156411a484182215a0c403992b9aef2cfaacbeadb3ac2b3e",
+ "diff_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/compare/76325d840dc66e1c84743725e17de05a16616419...81c216a55b2cb1787645e699ceaceca868cad253",
+ "previous_git_commit": "76325d840dc66e1c84743725e17de05a16616419",
+ "previous_fingerprint": "fcfc73775b49f8b8414c720e820b38258c6d18cb9d25b7ac76ff2d528a7add97",
+ "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:f4bb341@sha256:fcfc73775b49f8b8414c720e820b38258c6d18cb9d25b7ac76ff2d528a7add97",
"previous_artifact_compliance_state": "COMPLIANT",
"previous_running": false,
- "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253",
- "previous_trail_name": "promotion-one-139",
- "previous_template_reference_name": "spooler"
+ "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/76325d840dc66e1c84743725e17de05a16616419",
+ "previous_trail_name": "promotion-one-133",
+ "previous_template_reference_name": "saver"
+ },
+ "commit_lead_time": 93485.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",
+ "git_commit_info": {
+ "sha1": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7",
+ "message": "Add emoji prefixes to workflow names\n\n Match the visual convention already used in the kosli-demo/stochastic-committer\n repo, where the Actions sidebar distinguishes workflow roles at a glance.\n\n The two aws-* files are the top-level entry points, triggered by dispatch and\n schedule, so they get the play emoji. The three reusable workflow_call\n sub-workflows get the package emoji to mark them as callable building blocks.",
+ "author": "JonJagger ",
+ "branch": "main",
+ "timestamp": 1783850974.0,
+ "url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7"
+ },
+ "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4?artifact_id=ddf9ede9-71dc-43c0-ac96-8fd584b2",
+ "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact",
+ "deployment_diff": {
+ "diff_url": "https://github.com/cyber-dojo/snyk-scanning/compare/00c479764cb9eca038fdaaaef108672d0bb0ed26...35a09b2d283bafd6bbc12c29eba3306d5b36a5f7",
+ "previous_git_commit": "00c479764cb9eca038fdaaaef108672d0bb0ed26",
+ "previous_fingerprint": "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": "saver-f5909cc8dd53b2105953d1a72cd5d6181367d3588964aa01a04c056205a5d419",
+ "previous_template_reference_name": "saver"
},
- "commit_lead_time": 81769.0,
+ "commit_lead_time": 1385565.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",
+ "git_commit_info": {
+ "sha1": "35a09b2d283bafd6bbc12c29eba3306d5b36a5f7",
+ "message": "Add emoji prefixes to workflow names\n\n Match the visual convention already used in the kosli-demo/stochastic-committer\n repo, where the Actions sidebar distinguishes workflow roles at a glance.\n\n The two aws-* files are the top-level entry points, triggered by dispatch and\n schedule, so they get the play emoji. The three reusable workflow_call\n sub-workflows get the package emoji to mark them as callable building blocks.",
+ "author": "JonJagger ",
+ "branch": "main",
+ "timestamp": 1783850974.0,
+ "url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7"
+ },
+ "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4?artifact_id=c55f6071-1b01-403f-af19-98c5b776",
+ "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",
+ "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"
+ },
+ "commit_lead_time": 1385565.0,
"artifact_compliance_in_flow": true,
"flow_reasons_for_non_compliance": []
}
],
"ecs_context": {
- "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/ca0246c31f1e4a9d9819a606b9cd6715",
+ "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/77b4502f86ca4337a17e8ddfe0e8177b",
"cluster_name": null,
"service_name": null
}
@@ -6936,7 +8386,7 @@ kosli get snapshot aws-prod --output=json
"timestamp": 1783850974.0,
"url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7"
},
- "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67?artifact_id=eb363a63-17e1-4ec2-8c13-7cd210d5",
+ "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67?artifact_id=cd00f766-4f8b-4bb4-a097-657eaf90",
"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",
@@ -6967,7 +8417,7 @@ kosli get snapshot aws-prod --output=json
"timestamp": 1783850974.0,
"url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7"
},
- "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67?artifact_id=e2c38ae9-2d66-41b8-a06f-14c1b5c3",
+ "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/8c604f9f203a21ad88bd4c9610ef323242874410f0ce796ccdc884d101117b67?artifact_id=d615c9d4-25ad-47f2-989c-5a89db32",
"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",
@@ -7801,7 +9251,7 @@ kosli get snapshot aws-prod --output=json
"timestamp": 1783850974.0,
"url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7"
},
- "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6?artifact_id=fb202b8b-8f7b-4759-b011-db542952",
+ "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-prod-per-artifact/artifacts/aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6?artifact_id=867a63ce-d8a5-4a06-85c7-fcccdd49",
"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",
@@ -7832,7 +9282,7 @@ kosli get snapshot aws-prod --output=json
"timestamp": 1783850974.0,
"url": "https://github.com/cyber-dojo/snyk-scanning/commit/35a09b2d283bafd6bbc12c29eba3306d5b36a5f7"
},
- "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6?artifact_id=1a969b49-ddc3-4eda-becf-1fb6c837",
+ "html_url": "https://app.kosli.com/cyber-dojo/flows/snyk-aws-beta-per-artifact/artifacts/aaf68b01cfe75f9012155d59cc7421dac140457ea7f5eb1e508e12b7f1e58aa6?artifact_id=acb0214b-3bc9-4b83-8971-0751b1fb",
"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",
@@ -7857,7 +9307,7 @@ kosli get snapshot aws-prod --output=json
}
},
{
- "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:aaf06ae@sha256:30658abf51aa2b17e4edfa8636cc14aa9725432c2665ed3fcb2ee99ecae03889",
+ "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/spooler:e4d9d08@sha256:2d13ace2ba9449bcabeaef32f8cdc9255eff976ddf7a4ce5bd70e46bac11b204",
"compliant": true,
"deployments": [],
"policy_decisions": [
@@ -7879,8 +9329,8 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "web-ci",
- "trail_name": "aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f",
+ "flow_name": "spooler-ci",
+ "trail_name": "e4d9d0868e299522b207696e19c07966a09bf08a",
"artifact_status": null
}
},
@@ -7888,7 +9338,7 @@ kosli get snapshot aws-prod --output=json
"type": "rule_not_applicable",
"context": {
"flow_name": "production-promotion",
- "trail_name": "promotion-one-142",
+ "trail_name": "promotion-one-144",
"artifact_status": null
}
}
@@ -7908,8 +9358,8 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "web-ci",
- "trail_name": "aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f",
+ "flow_name": "spooler-ci",
+ "trail_name": "e4d9d0868e299522b207696e19c07966a09bf08a",
"artifact_status": "COMPLIANT"
}
},
@@ -7917,7 +9367,7 @@ kosli get snapshot aws-prod --output=json
"type": "rule_not_applicable",
"context": {
"flow_name": "production-promotion",
- "trail_name": "promotion-one-142",
+ "trail_name": "promotion-one-144",
"artifact_status": "COMPLIANT"
}
}
@@ -7936,14 +9386,14 @@ kosli get snapshot aws-prod --output=json
"for_control": null
}
},
- "satisfied": true,
- "ignored": false,
+ "satisfied": null,
+ "ignored": true,
"resolutions": [
{
- "type": "rule_satisfied",
+ "type": "rule_not_applicable",
"context": {
- "flow_name": "web-ci",
- "trail_name": "aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f",
+ "flow_name": "spooler-ci",
+ "trail_name": "e4d9d0868e299522b207696e19c07966a09bf08a",
"artifact_status": null
}
},
@@ -7951,7 +9401,7 @@ kosli get snapshot aws-prod --output=json
"type": "rule_not_applicable",
"context": {
"flow_name": "production-promotion",
- "trail_name": "promotion-one-142",
+ "trail_name": "promotion-one-144",
"artifact_status": null
}
}
@@ -7978,8 +9428,8 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_satisfied",
"context": {
- "flow_name": "web-ci",
- "trail_name": "aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f",
+ "flow_name": "spooler-ci",
+ "trail_name": "e4d9d0868e299522b207696e19c07966a09bf08a",
"artifact_status": null
}
},
@@ -7987,7 +9437,7 @@ kosli get snapshot aws-prod --output=json
"type": "rule_satisfied",
"context": {
"flow_name": "production-promotion",
- "trail_name": "promotion-one-142",
+ "trail_name": "promotion-one-144",
"artifact_status": null
}
}
@@ -8007,8 +9457,8 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "web-ci",
- "trail_name": "aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f",
+ "flow_name": "spooler-ci",
+ "trail_name": "e4d9d0868e299522b207696e19c07966a09bf08a",
"artifact_status": "COMPLIANT"
}
},
@@ -8016,7 +9466,7 @@ kosli get snapshot aws-prod --output=json
"type": "rule_not_applicable",
"context": {
"flow_name": "production-promotion",
- "trail_name": "promotion-one-142",
+ "trail_name": "promotion-one-144",
"artifact_status": "COMPLIANT"
}
}
@@ -8035,14 +9485,14 @@ kosli get snapshot aws-prod --output=json
"for_control": "SDLC-CTRL-0002"
}
},
- "satisfied": true,
- "ignored": false,
+ "satisfied": null,
+ "ignored": true,
"resolutions": [
{
- "type": "rule_satisfied",
+ "type": "rule_not_applicable",
"context": {
- "flow_name": "web-ci",
- "trail_name": "aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f",
+ "flow_name": "spooler-ci",
+ "trail_name": "e4d9d0868e299522b207696e19c07966a09bf08a",
"artifact_status": null,
"for_control": "SDLC-CTRL-0002"
}
@@ -8051,7 +9501,7 @@ kosli get snapshot aws-prod --output=json
"type": "rule_not_applicable",
"context": {
"flow_name": "production-promotion",
- "trail_name": "promotion-one-142",
+ "trail_name": "promotion-one-144",
"artifact_status": null,
"for_control": "SDLC-CTRL-0002"
}
@@ -8079,8 +9529,8 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "web-ci",
- "trail_name": "aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f",
+ "flow_name": "spooler-ci",
+ "trail_name": "e4d9d0868e299522b207696e19c07966a09bf08a",
"artifact_status": null
}
},
@@ -8088,7 +9538,7 @@ kosli get snapshot aws-prod --output=json
"type": "rule_not_applicable",
"context": {
"flow_name": "production-promotion",
- "trail_name": "promotion-one-142",
+ "trail_name": "promotion-one-144",
"artifact_status": null
}
}
@@ -8108,8 +9558,8 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "web-ci",
- "trail_name": "aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f",
+ "flow_name": "spooler-ci",
+ "trail_name": "e4d9d0868e299522b207696e19c07966a09bf08a",
"artifact_status": "COMPLIANT"
}
},
@@ -8117,7 +9567,7 @@ kosli get snapshot aws-prod --output=json
"type": "rule_not_applicable",
"context": {
"flow_name": "production-promotion",
- "trail_name": "promotion-one-142",
+ "trail_name": "promotion-one-144",
"artifact_status": "COMPLIANT"
}
}
@@ -8142,8 +9592,8 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "web-ci",
- "trail_name": "aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f",
+ "flow_name": "spooler-ci",
+ "trail_name": "e4d9d0868e299522b207696e19c07966a09bf08a",
"artifact_status": null,
"for_control": "SDLC-CTRL-0022"
}
@@ -8152,7 +9602,7 @@ kosli get snapshot aws-prod --output=json
"type": "rule_not_applicable",
"context": {
"flow_name": "production-promotion",
- "trail_name": "promotion-one-142",
+ "trail_name": "promotion-one-144",
"artifact_status": null,
"for_control": "SDLC-CTRL-0022"
}
@@ -8180,8 +9630,8 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "web-ci",
- "trail_name": "aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f",
+ "flow_name": "spooler-ci",
+ "trail_name": "e4d9d0868e299522b207696e19c07966a09bf08a",
"artifact_status": null
}
},
@@ -8189,7 +9639,7 @@ kosli get snapshot aws-prod --output=json
"type": "rule_not_applicable",
"context": {
"flow_name": "production-promotion",
- "trail_name": "promotion-one-142",
+ "trail_name": "promotion-one-144",
"artifact_status": null
}
}
@@ -8209,8 +9659,8 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "web-ci",
- "trail_name": "aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f",
+ "flow_name": "spooler-ci",
+ "trail_name": "e4d9d0868e299522b207696e19c07966a09bf08a",
"artifact_status": "COMPLIANT"
}
},
@@ -8218,7 +9668,7 @@ kosli get snapshot aws-prod --output=json
"type": "rule_not_applicable",
"context": {
"flow_name": "production-promotion",
- "trail_name": "promotion-one-142",
+ "trail_name": "promotion-one-144",
"artifact_status": "COMPLIANT"
}
}
@@ -8243,8 +9693,8 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "web-ci",
- "trail_name": "aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f",
+ "flow_name": "spooler-ci",
+ "trail_name": "e4d9d0868e299522b207696e19c07966a09bf08a",
"artifact_status": null
}
},
@@ -8252,7 +9702,7 @@ kosli get snapshot aws-prod --output=json
"type": "rule_satisfied",
"context": {
"flow_name": "production-promotion",
- "trail_name": "promotion-one-142",
+ "trail_name": "promotion-one-144",
"artifact_status": null
}
}
@@ -8279,8 +9729,8 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "web-ci",
- "trail_name": "aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f",
+ "flow_name": "spooler-ci",
+ "trail_name": "e4d9d0868e299522b207696e19c07966a09bf08a",
"artifact_status": null
}
},
@@ -8288,7 +9738,7 @@ kosli get snapshot aws-prod --output=json
"type": "rule_not_applicable",
"context": {
"flow_name": "production-promotion",
- "trail_name": "promotion-one-142",
+ "trail_name": "promotion-one-144",
"artifact_status": null
}
}
@@ -8314,8 +9764,8 @@ kosli get snapshot aws-prod --output=json
{
"type": "rule_not_applicable",
"context": {
- "flow_name": "web-ci",
- "trail_name": "aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f",
+ "flow_name": "spooler-ci",
+ "trail_name": "e4d9d0868e299522b207696e19c07966a09bf08a",
"artifact_status": "COMPLIANT"
}
},
@@ -8323,7 +9773,7 @@ kosli get snapshot aws-prod --output=json
"type": "rule_satisfied",
"context": {
"flow_name": "production-promotion",
- "trail_name": "promotion-one-142",
+ "trail_name": "promotion-one-144",
"artifact_status": "COMPLIANT"
}
}
@@ -8334,71 +9784,69 @@ kosli get snapshot aws-prod --output=json
}
],
"reasons_for_incompliance": [],
- "fingerprint": "30658abf51aa2b17e4edfa8636cc14aa9725432c2665ed3fcb2ee99ecae03889",
+ "fingerprint": "2d13ace2ba9449bcabeaef32f8cdc9255eff976ddf7a4ce5bd70e46bac11b204",
"creationTimestamp": [
- 1785240630,
- 1785240630,
- 1785240631
+ 1785305285
],
"pods": null,
"annotation": {
"type": "exited",
- "was": 3,
+ "was": 1,
"now": 0
},
- "flow_name": "web-ci",
- "git_commit": "aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f",
- "commit_url": "https://github.com/cyber-dojo/web/commit/aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f",
- "html_url": "https://app.kosli.com/cyber-dojo/flows/web-ci/artifacts/30658abf51aa2b17e4edfa8636cc14aa9725432c2665ed3fcb2ee99ecae03889?artifact_id=494b49a5-f26f-4602-8fce-8903d99d",
- "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/web-ci",
+ "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/web/compare/3f0b9975f96b7f4e4aae0b4409cebda3209be164...aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f",
- "previous_git_commit": "3f0b9975f96b7f4e4aae0b4409cebda3209be164",
- "previous_fingerprint": "0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972",
- "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:3f0b997@sha256:0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972",
+ "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/web/commit/3f0b9975f96b7f4e4aae0b4409cebda3209be164",
- "previous_trail_name": "3f0b9975f96b7f4e4aae0b4409cebda3209be164",
- "previous_template_reference_name": "web"
+ "previous_git_commit_url": "https://github.com/cyber-dojo/spooler/commit/92c624eabb024729fb2af6cdbe354db11ee3882f",
+ "previous_trail_name": "92c624eabb024729fb2af6cdbe354db11ee3882f",
+ "previous_template_reference_name": "spooler"
},
- "commit_lead_time": 2124.0,
+ "commit_lead_time": 788.0,
"flows": [
{
- "flow_name": "web-ci",
- "trail_name": "aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f",
- "template_reference_name": "web",
- "git_commit": "aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f",
- "commit_url": "https://github.com/cyber-dojo/web/commit/aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f",
+ "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": "aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f",
- "message": "Spike async writes via spooler (#388)\n\n* Route web's nine event writes through the new spooler\n\n Spike of ADR step B1 (docs/adr-async-writes-via-spooler.md): make web's\n writes to saver asynchronous by inserting the spooler as a durable,\n ordered store-and-forward buffer in front of saver. The traffic-light is\n a runner fact and must not be gated on a saver git commit, so the write\n path moves off the browser's critical path.\n\n web now POSTs the nine event writes (kata_file_create .. kata_checked_out)\n to the spooler, which acks immediately and drains to saver asynchronously\n in tab_seq order. Reads and non-event writes (kata_create, forks,\n kata_option_set, group ops, diff) stay direct web->saver.\n\n - SpoolerService: a new write client copying the SaverService construction\n pattern, targeting CYBER_DOJO_SPOOLER_HOSTNAME/PORT.\n - Externals#spooler + CYBER_DOJO_SPOOLER_CLASS in up.sh, mirroring saver.\n - app.rb: the nine callers now use spooler; the run_tests rescue catches\n SpoolerService::Error so the light still shows if the spooler is down.\n - SaverService: the nine event writes removed (they now live in the\n spooler); it keeps reads and non-event writes.\n - docker-compose: a spooler service (own /sqlite volume, forwards to\n saver), web depends_on it, and containers_up starts it.\n\n* Make inter-test-event writes fire-and-forget\n\n Now the spooler orders writes by (tab_id, tab_seq) (ADR B3), the browser no\n longer needs to serialise ITEs or wait on their network round-trip - that\n serialisation only existed to dodge saver's CAS-loser drop before the spooler\n existed. So the inter-test events (file create/delete/rename/edit) become\n fire-and-forget: dispatch and let the UI continue immediately.\n\n - _file_inter_test_events.erb: fireAndForgetITE dispatches and returns; removed\n waitForITE and the _interTestEventInProgress serialisation.\n - Dropped the now-pointless callback parameter from the four ITE senders; their\n callers do their local editor update inline after the call (order preserved -\n the POST body is serialised before the editor mutates).\n - app.rb: the four ITE controllers reply 204 No Content (the browser\n fire-and-forgets the response), and the dead @saved flag / saved: response\n field are removed (the browser never read them).\n\n Also (ancillary):\n - show_events.sh: read events via saver's kata_events API through nginx, as the\n browser does, not the working-tree events.json - saver commits via\n git update-ref with no checkout, so that file is stale (reads-via-git).\n - echo_env_vars.sh: pin saver SHA/TAG for the local demo loop.\n\n* Make web tests drain-aware for the async spooler write path\n\n Writes now go to the spooler and drain to saver asynchronously, so tests\n that write-then-read committed state must wait for the drain, and the\n client index is gone from the write path. Also fixes a real tab_seq bug\n surfaced while doing this.\n\n Production (app.rb):\n - tab_seq is coerced to an integer (it arrives as a form-field string).\n The spooler orders its buffer by tab_seq numerically, so a string breaks\n ordering ('10' < '2'); blank stays nil, not 0 (''.to_i), which is a real\n seq value.\n\n Tests:\n - TestExternalHelpers: seed helpers (kata_ran_tests/kata_revert write via\n the spooler, then wait_until_drained polls saver until the write's light\n lands) + wait_until_committed; run.sh/run_browser.sh export\n CYBER_DOJO_SPOOLER_CLASS.\n - app_controllers: post_json/post_run_tests stamp a caller tab_seq and wait\n for it to drain (run_tests waits for the light's colour, so the\n file_edit+light double-commit is not read half-done).\n - Move the nine write smoke tests to a new spooler_service_test (drain-aware)\n and the forwards_* tests to spooler_service_forwards_*; saver_service_test\n keeps reads and non-event writes.\n - Remove the dead client index: no index in write bodies, no @index tracking\n (forks keep index; checkout keeps src_index).\n - Delete/ retarget removed-behavior tests: drop mobbing_self_lag (index\n self-lag), and the run_tests raises-stub is now a SpoolerService stub.\n - ITE controllers reply 204, so their tests assert successful?, not ok?.\n\n* Drive web's v2-kata demo through the new saver write protocol\n\n The saver's kata-write endpoints now key each write on (laptop_id,\n tab_seq) and no longer take the old index arg. Bring web's demo seeding\n in line so it keeps working once the saver drops the laptop_id/tab_seq\n defaults:\n\n - bin/create_v2_kata.rb, source/script/create_v2_kata.rb: model each\n avatar as one Writer (a fixed laptop_id plus a monotonic tab_seq) and\n send that key on every write, dropping the removed index. The monotonic\n tab_seq is required because an avatar fires many same-colour runs that\n would otherwise collide on the saver's (laptop_id, tab_seq, colour)\n dedup key. demo.sh seeds live, so there is no fixture to rebake.\n - bin/echo_env_vars.sh: pin the saver and spooler images that implement\n the async-write-via-spooler path this demo now exercises.\n\n Co-Authored-By: Claude Opus 4.8 (1M context) \n\n* Adopt spooler write-loss fix, restore coverage, add /status endpoint\n\n D1EQJ6 (kata_checked_out smoke test) failed intermittently because the\n spooler's drainer ran several shard threads that shared one memoized\n Net::HTTP connection. Net::HTTP is not safe for concurrent requests on one\n instance, so two shards forwarding at once crossed their requests and\n responses: a kata_checked_out POST came back tagged kata_ran_tests, the\n write was lost, and wait_until_drained timed out. Fixed in spooler ebc7b92\n (each drainer shard owns its own connection); bump the pinned spooler\n SHA/tag to adopt it.\n\n That investigation also showed app/services had dropped below 100%:\n SpoolerService#ready? and SpoolerService::Error were never exercised. Add a\n ready? smoke test and a not-JSON-maps-to-Error test (mirroring SaverService)\n to restore full coverage.\n\n Separately, add GET /status so the readiness of each dependency (runner,\n saver, spooler) is visible from outside the process, giving their ready?\n client methods a real caller. It probes each dependency (rescuing the\n raising clients so one down service reports false rather than failing the\n whole endpoint), returns 200 when all are ready and 503 otherwise, with a\n body naming each. It is deliberately kept off the load balancer probe:\n coupling that to shared backends would let one downstream blip deschedule\n every web task at once and stall deploys. RunnerStub gains the ready? it was\n missing so it faithfully stands in for RunnerService.\n\n* Explain why /ready is not dependency-coupled\n\n Record the reasoning at the point of temptation: a future reader will\n naturally wonder why /ready is a static true rather than runner.ready? &&\n saver.ready? && spooler.ready?. The comment explains that /ready is the load\n balancer's probe, that the three are shared backends, and that coupling\n readiness to them turns one dependency blip into a fleet-wide 503 and blocks\n deploys. Dependency health belongs in graceful per-action errors and /status,\n not here.\n\n* Remove wip entries in echo_env_vars.sh",
+ "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": 1785238506.0,
- "url": "https://github.com/cyber-dojo/web/commit/aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f"
+ "timestamp": 1785304497.0,
+ "url": "https://github.com/cyber-dojo/spooler/commit/e4d9d0868e299522b207696e19c07966a09bf08a"
},
- "html_url": "https://app.kosli.com/cyber-dojo/flows/web-ci/artifacts/30658abf51aa2b17e4edfa8636cc14aa9725432c2665ed3fcb2ee99ecae03889?artifact_id=494b49a5-f26f-4602-8fce-8903d99d",
- "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/web-ci",
+ "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/web/compare/3f0b9975f96b7f4e4aae0b4409cebda3209be164...aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f",
- "previous_git_commit": "3f0b9975f96b7f4e4aae0b4409cebda3209be164",
- "previous_fingerprint": "0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972",
- "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:3f0b997@sha256:0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972",
+ "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/web/commit/3f0b9975f96b7f4e4aae0b4409cebda3209be164",
- "previous_trail_name": "3f0b9975f96b7f4e4aae0b4409cebda3209be164",
- "previous_template_reference_name": "web"
+ "previous_git_commit_url": "https://github.com/cyber-dojo/spooler/commit/92c624eabb024729fb2af6cdbe354db11ee3882f",
+ "previous_trail_name": "92c624eabb024729fb2af6cdbe354db11ee3882f",
+ "previous_template_reference_name": "spooler"
},
- "commit_lead_time": 2124.0,
+ "commit_lead_time": 788.0,
"artifact_compliance_in_flow": true,
"flow_reasons_for_non_compliance": []
},
{
"flow_name": "production-promotion",
- "trail_name": "promotion-one-142",
- "template_reference_name": "web",
+ "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": {
@@ -8409,26 +9857,26 @@ kosli get snapshot aws-prod --output=json
"timestamp": 1785143054.0,
"url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253"
},
- "html_url": "https://app.kosli.com/cyber-dojo/flows/production-promotion/artifacts/30658abf51aa2b17e4edfa8636cc14aa9725432c2665ed3fcb2ee99ecae03889?artifact_id=49687d93-45f9-492f-a122-a91b7959",
+ "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/76325d840dc66e1c84743725e17de05a16616419...81c216a55b2cb1787645e699ceaceca868cad253",
- "previous_git_commit": "76325d840dc66e1c84743725e17de05a16616419",
- "previous_fingerprint": "0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972",
- "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:3f0b997@sha256:0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972",
+ "diff_url": "https://github.com/cyber-dojo/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/76325d840dc66e1c84743725e17de05a16616419",
- "previous_trail_name": "promotion-one-130",
- "previous_template_reference_name": "web"
+ "previous_git_commit_url": "https://github.com/cyber-dojo/aws-prod-co-promotion/commit/81c216a55b2cb1787645e699ceaceca868cad253",
+ "previous_trail_name": "promotion-one-140",
+ "previous_template_reference_name": "spooler"
},
- "commit_lead_time": 97576.0,
+ "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/7290e7992d1d42b9a23b641bf02cea9a",
+ "task_arn": "arn:aws:ecs:eu-central-1:274425519734:task/app/e26ec5335fcb49c3a938df19ecc5b23c",
"cluster_name": null,
"service_name": null
}
diff --git a/client_reference/kosli_list_environments.md b/client_reference/kosli_list_environments.md
index 1b0f51b..4b4f943 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": 1785257304.0827382,
- "last_reported_at": 1785257304.0827382,
- "last_changed_at": 1785243263.9648561,
+ "last_modified_at": 1785324204.0388827,
+ "last_reported_at": 1785324204.0388827,
+ "last_changed_at": 1785310343.8935354,
"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": 1785257109.0435762,
- "last_reported_at": 1785257109.0435762,
- "last_changed_at": 1785243308.9429753,
+ "last_modified_at": 1785324008.8526094,
+ "last_reported_at": 1785324008.8526094,
+ "last_changed_at": 1785310508.6621323,
"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": 1785257278.4557931,
- "last_reported_at": 1785257278.4557931,
- "last_changed_at": 1785243478.598589,
+ "last_modified_at": 1785324178.5060613,
+ "last_reported_at": 1785324178.5060613,
+ "last_changed_at": 1785310558.4611607,
"state": true,
"include_scaling": false,
"tags": {
@@ -122,9 +122,9 @@ kosli list environments --output=json
"name": "aws-prod-terraform-drift-detection",
"type": "server",
"description": "Detection of drift of the Infrastructure-as-code components of aws-prod",
- "last_modified_at": 1785257011.940645,
- "last_reported_at": 1785257011.940645,
- "last_changed_at": 1785243812.1531923,
+ "last_modified_at": 1785323912.125187,
+ "last_reported_at": 1785323912.125187,
+ "last_changed_at": 1785311013.6893866,
"state": true,
"include_scaling": false,
"tags": {},
@@ -138,9 +138,9 @@ kosli list environments --output=json
"name": "production",
"type": "logical",
"description": "Production environments for cyber-dojo",
- "last_modified_at": 1785243812.1531923,
+ "last_modified_at": 1785311013.6893866,
"last_reported_at": null,
- "last_changed_at": 1785243812.1531923,
+ "last_changed_at": 1785311013.6893866,
"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": 1785243308.9429753,
+ "last_modified_at": 1785310508.6621323,
"last_reported_at": null,
- "last_changed_at": 1785243308.9429753,
+ "last_changed_at": 1785310508.6621323,
"state": true,
"include_scaling": false,
"tags": {},
diff --git a/client_reference/kosli_list_flows.md b/client_reference/kosli_list_flows.md
index 600e386..3026ebb 100644
--- a/client_reference/kosli_list_flows.md
+++ b/client_reference/kosli_list_flows.md
@@ -477,7 +477,7 @@ kosli list flows --output=json
"visibility": "private",
"org": "cyber-dojo",
"template": "version: 1\ntrail:\n attestations:\n - name: terraform-plan\n type: generic\n - name: terraform-apply\n type: generic\n artifacts:\n - name: terraform-state\n - name: drift-plan\n",
- "repo_url": "https://github.com/cyber-dojo/web",
+ "repo_url": "https://github.com/cyber-dojo/spooler",
"tags": {}
},
{
diff --git a/client_reference/kosli_list_snapshots.md b/client_reference/kosli_list_snapshots.md
index 4c69788..ab03b5b 100644
--- a/client_reference/kosli_list_snapshots.md
+++ b/client_reference/kosli_list_snapshots.md
@@ -63,12 +63,68 @@ kosli list snapshots aws-prod --output=json
```json
[
+ {
+ "index": 5134,
+ "from": 1785310558.4611607,
+ "to": 0.0,
+ "compliant": true,
+ "duration": 13650.749610424042
+ },
+ {
+ "index": 5133,
+ "from": 1785305338.459451,
+ "to": 1785310558.4611607,
+ "compliant": true,
+ "duration": 5220.001709699631
+ },
+ {
+ "index": 5132,
+ "from": 1785301138.4848077,
+ "to": 1785305338.459451,
+ "compliant": true,
+ "duration": 4199.974643230438
+ },
+ {
+ "index": 5131,
+ "from": 1785301078.6254478,
+ "to": 1785301138.4848077,
+ "compliant": true,
+ "duration": 59.85935997962952
+ },
+ {
+ "index": 5130,
+ "from": 1785301018.7636228,
+ "to": 1785301078.6254478,
+ "compliant": true,
+ "duration": 59.86182498931885
+ },
+ {
+ "index": 5129,
+ "from": 1785300958.5618691,
+ "to": 1785301018.7636228,
+ "compliant": true,
+ "duration": 60.20175361633301
+ },
+ {
+ "index": 5128,
+ "from": 1785300898.3949952,
+ "to": 1785300958.5618691,
+ "compliant": true,
+ "duration": 60.166873931884766
+ },
+ {
+ "index": 5127,
+ "from": 1785300838.4479997,
+ "to": 1785300898.3949952,
+ "compliant": true,
+ "duration": 59.94699549674988
+ },
{
"index": 5126,
"from": 1785243478.598589,
- "to": 0.0,
+ "to": 1785300838.4479997,
"compliant": true,
- "duration": 13834.632454156876
+ "duration": 57359.84941077232
},
{
"index": 5125,
@@ -111,62 +167,6 @@ kosli list snapshots aws-prod --output=json
"to": 1785241258.6193466,
"compliant": true,
"duration": 540.093626499176
- },
- {
- "index": 5119,
- "from": 1785240658.6597328,
- "to": 1785240718.5257201,
- "compliant": true,
- "duration": 59.8659873008728
- },
- {
- "index": 5118,
- "from": 1785236638.5786521,
- "to": 1785240658.6597328,
- "compliant": true,
- "duration": 4020.081080675125
- },
- {
- "index": 5117,
- "from": 1785236578.4785342,
- "to": 1785236638.5786521,
- "compliant": true,
- "duration": 60.100117921829224
- },
- {
- "index": 5116,
- "from": 1785224878.4373872,
- "to": 1785236578.4785342,
- "compliant": true,
- "duration": 11700.041146993637
- },
- {
- "index": 5115,
- "from": 1785215338.442852,
- "to": 1785224878.4373872,
- "compliant": true,
- "duration": 9539.994535207748
- },
- {
- "index": 5114,
- "from": 1785214438.378998,
- "to": 1785215338.442852,
- "compliant": true,
- "duration": 900.0638539791107
- },
- {
- "index": 5113,
- "from": 1785214378.5198987,
- "to": 1785214438.378998,
- "compliant": true,
- "duration": 59.85909938812256
- },
- {
- "index": 5112,
- "from": 1785214318.4842489,
- "to": 1785214378.5198987,
- "compliant": true,
- "duration": 60.03564977645874
}
]
```
diff --git a/client_reference/kosli_log_environment.md b/client_reference/kosli_log_environment.md
index 4c488c8..030355f 100644
--- a/client_reference/kosli_log_environment.md
+++ b/client_reference/kosli_log_environment.md
@@ -72,16 +72,16 @@ kosli log environment aws-prod --output=json
[
{
"environment_name": "aws-prod",
- "snapshot_index": 5126,
- "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:aaf06ae@sha256:30658abf51aa2b17e4edfa8636cc14aa9725432c2665ed3fcb2ee99ecae03889",
- "sha256": "30658abf51aa2b17e4edfa8636cc14aa9725432c2665ed3fcb2ee99ecae03889",
- "description": "3 instances stopped running (from 3 to 0)",
- "reported_at": 1785243478.598589,
- "pipeline": "web-ci",
+ "snapshot_index": 5134,
+ "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,
+ "pipeline": "spooler-ci",
"deployments": [],
"flows": [
{
- "flow_name": "web-ci",
+ "flow_name": "spooler-ci",
"deployments": null
},
{
@@ -91,31 +91,31 @@ kosli log environment aws-prod --output=json
],
"artifact_compliance": true,
"snapshot_compliance": true,
- "type": "exited",
- "code_diff": "https://github.com/cyber-dojo/web/compare/3f0b9975f96b7f4e4aae0b4409cebda3209be164...aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f",
+ "type": "started-compliant",
+ "code_diff": "https://github.com/cyber-dojo/spooler/compare/e4d9d0868e299522b207696e19c07966a09bf08a...c81791fd10558a59f83876137fb021abcd89f262",
"_links": {
"artifact": {
- "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/web-ci/fingerprint/30658abf51aa2b17e4edfa8636cc14aa9725432c2665ed3fcb2ee99ecae03889",
- "html": "https://app.kosli.com/cyber-dojo/flows/web-ci/artifacts/30658abf51aa2b17e4edfa8636cc14aa9725432c2665ed3fcb2ee99ecae03889?artifact_id=494b49a5-f26f-4602-8fce-8903d99d"
+ "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/5126",
- "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5126"
+ "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"
}
}
},
{
"environment_name": "aws-prod",
- "snapshot_index": 5125,
- "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:2779354@sha256:af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e",
- "sha256": "af5870236f643273d1f26a7f842fd2b616b0f766cc2ac177c6d8f9882b90851e",
- "description": "3 instances started running (from 0 to 3)",
- "reported_at": 1785243418.5364106,
- "pipeline": "web-ci",
+ "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",
"deployments": [],
"flows": [
{
- "flow_name": "web-ci",
+ "flow_name": "spooler-ci",
"deployments": null
},
{
@@ -125,187 +125,191 @@ kosli log environment aws-prod --output=json
],
"artifact_compliance": true,
"snapshot_compliance": true,
- "type": "started-compliant",
- "code_diff": "https://github.com/cyber-dojo/web/compare/aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f...2779354a4fda0eeb90fd43f32211836d99f6bde1",
+ "type": "exited",
+ "code_diff": "https://github.com/cyber-dojo/spooler/compare/92c624eabb024729fb2af6cdbe354db11ee3882f...e4d9d0868e299522b207696e19c07966a09bf08a",
"_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/spooler-ci/fingerprint/2d13ace2ba9449bcabeaef32f8cdc9255eff976ddf7a4ce5bd70e46bac11b204",
+ "html": "https://app.kosli.com/cyber-dojo/flows/spooler-ci/artifacts/2d13ace2ba9449bcabeaef32f8cdc9255eff976ddf7a4ce5bd70e46bac11b204?artifact_id=d2a91db5-76a8-43df-988c-d57fda6c"
},
"snapshot": {
- "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5125",
- "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5125"
+ "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"
}
}
},
{
"environment_name": "aws-prod",
- "snapshot_index": 5124,
- "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/differ:335ddfa@sha256:c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f",
- "sha256": "c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f",
- "description": "1 instance stopped running (from 1 to 0)",
- "reported_at": 1785241678.414592,
- "pipeline": "differ-ci",
+ "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",
"deployments": [],
"flows": [
{
- "flow_name": "differ-ci",
+ "flow_name": "spooler-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/differ/compare/8beff9901ac67acb7afcab3408106208571a1124...335ddfa139708c37908dd594a0502bc6d88f8615",
+ "type": "started-compliant",
+ "code_diff": "https://github.com/cyber-dojo/spooler/compare/92c624eabb024729fb2af6cdbe354db11ee3882f...e4d9d0868e299522b207696e19c07966a09bf08a",
"_links": {
"artifact": {
- "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/differ-ci/fingerprint/c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f",
- "html": "https://app.kosli.com/cyber-dojo/flows/differ-ci/artifacts/c2a404127f3114a7b82a8c0633f85bad599dd54d9c97cf1bc872ae9eab2bbe5f?artifact_id=5f3d2a2e-acdb-4414-a1e7-ebca7c32"
+ "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"
},
"snapshot": {
- "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5124",
- "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5124"
+ "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"
}
}
},
{
"environment_name": "aws-prod",
- "snapshot_index": 5123,
- "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/differ:1b7ea87@sha256:c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12",
- "sha256": "c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12",
- "description": "1 instance started running (from 0 to 1)",
- "reported_at": 1785241618.6033545,
- "pipeline": "differ-ci",
+ "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",
"deployments": [],
"flows": [
{
- "flow_name": "differ-ci",
+ "flow_name": "spooler-ci",
"deployments": null
},
{
- "flow_name": "snyk-aws-beta-per-artifact",
+ "flow_name": "production-promotion",
"deployments": null
},
{
- "flow_name": "production-promotion",
+ "flow_name": "snyk-aws-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/differ/compare/335ddfa139708c37908dd594a0502bc6d88f8615...1b7ea87a174a1a290600b469dc1029ec4c974320",
+ "type": "exited",
+ "code_diff": "https://github.com/cyber-dojo/spooler/compare/b592c3af03e9530c1d224686a1745e4a12e1df00...92c624eabb024729fb2af6cdbe354db11ee3882f",
"_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/spooler-ci/fingerprint/a20359795934beb03d992ba5a8f8b95ca637e609284e5a84781bdcbb1b861975",
+ "html": "https://app.kosli.com/cyber-dojo/flows/spooler-ci/artifacts/a20359795934beb03d992ba5a8f8b95ca637e609284e5a84781bdcbb1b861975?artifact_id=42025c9c-2608-4ef0-b140-84548282"
},
"snapshot": {
- "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5123",
- "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5123"
+ "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"
}
}
},
{
"environment_name": "aws-prod",
- "snapshot_index": 5122,
- "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:a2e4638@sha256:c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053",
- "sha256": "c4b92203ca7a794dc2a1e30b3f4f611e6ce22d60dfdfb7684e2c0e276cf36053",
- "description": "1 instance started running (from 0 to 1)",
- "reported_at": 1785241318.4716694,
- "pipeline": "nginx-ci",
+ "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",
"deployments": [],
"flows": [
{
- "flow_name": "nginx-ci",
+ "flow_name": "runner-ci",
"deployments": null
},
{
- "flow_name": "snyk-aws-beta-per-artifact",
+ "flow_name": "production-promotion",
"deployments": null
},
{
- "flow_name": "production-promotion",
+ "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/nginx/compare/7ba8029e0cb5d4c8fa51360f59b5cb8714a60d47...a2e4638aaa102446b8a6d1d519c5bc007e24f087",
+ "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/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/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/5122",
- "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5122"
+ "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"
}
}
},
{
"environment_name": "aws-prod",
- "snapshot_index": 5122,
- "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/languages-start-points:6a7f7be@sha256:b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b",
- "sha256": "b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b",
- "description": "1 instance started running (from 0 to 1)",
- "reported_at": 1785241318.4716694,
- "pipeline": "languages-start-points-ci",
+ "snapshot_index": 5131,
+ "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": "saver-ci",
"deployments": [],
"flows": [
{
- "flow_name": "languages-start-points-ci",
+ "flow_name": "saver-ci",
"deployments": null
},
{
- "flow_name": "snyk-aws-beta-per-artifact",
+ "flow_name": "production-promotion",
"deployments": null
},
{
- "flow_name": "production-promotion",
+ "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/languages-start-points/compare/c6db342472238a7852b6ff31b04f9a6a6099f5cf...6a7f7be81022f7ed3fa8383f016b55af86e2af23",
+ "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/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/5122",
- "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5122"
+ "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"
}
}
},
{
"environment_name": "aws-prod",
- "snapshot_index": 5122,
- "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/custom-start-points:d37aace@sha256:1ed61f19b66b82f7f122b7b88522360de73abb3536fab5d0f8eadb9b987f9400",
- "sha256": "1ed61f19b66b82f7f122b7b88522360de73abb3536fab5d0f8eadb9b987f9400",
- "description": "1 instance stopped running (from 1 to 0)",
- "reported_at": 1785241318.4716694,
- "pipeline": "custom-start-points-ci",
+ "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",
"deployments": [],
"flows": [
{
- "flow_name": "custom-start-points-ci",
+ "flow_name": "runner-ci",
"deployments": null
},
{
@@ -323,26 +327,26 @@ kosli log environment aws-prod --output=json
],
"artifact_compliance": true,
"snapshot_compliance": true,
- "type": "exited",
- "code_diff": "https://github.com/cyber-dojo/custom-start-points/compare/fc6b09be0518fbf8ab76815cb85b1745631e3659...d37aace7598ee943ba0bd5e51f224335cbdf0a3e",
+ "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/custom-start-points-ci/fingerprint/1ed61f19b66b82f7f122b7b88522360de73abb3536fab5d0f8eadb9b987f9400",
- "html": "https://app.kosli.com/cyber-dojo/flows/custom-start-points-ci/artifacts/1ed61f19b66b82f7f122b7b88522360de73abb3536fab5d0f8eadb9b987f9400?artifact_id=e434f9eb-be9c-4851-ab99-187f1a26"
+ "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/5122",
- "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5122"
+ "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"
}
}
},
{
"environment_name": "aws-prod",
- "snapshot_index": 5122,
- "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:7ba8029@sha256:3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5",
- "sha256": "3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5",
- "description": "1 instance stopped running (from 1 to 0)",
- "reported_at": 1785241318.4716694,
+ "snapshot_index": 5131,
+ "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": "nginx-ci",
"deployments": [],
"flows": [
@@ -355,41 +359,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": "exited",
- "code_diff": "https://github.com/cyber-dojo/nginx/compare/9b711df71c76a1f293c2525ace65778036591baf...7ba8029e0cb5d4c8fa51360f59b5cb8714a60d47",
+ "type": "updated-provenance",
+ "code_diff": "https://github.com/cyber-dojo/nginx/compare/7ba8029e0cb5d4c8fa51360f59b5cb8714a60d47...a2e4638aaa102446b8a6d1d519c5bc007e24f087",
"_links": {
"artifact": {
- "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/nginx-ci/fingerprint/3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5",
- "html": "https://app.kosli.com/cyber-dojo/flows/nginx-ci/artifacts/3fe0f4dede834e7315a340526c9719446a7537a4e4e42c6802c3c5ac86db3ec5?artifact_id=5c293d3e-84a1-42dd-8215-6abd8d8d"
+ "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/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/5122",
- "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5122"
+ "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"
}
}
},
{
"environment_name": "aws-prod",
- "snapshot_index": 5122,
- "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:804f248@sha256:a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613",
- "sha256": "a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613",
- "description": "1 instance stopped running (from 1 to 0)",
- "reported_at": 1785241318.4716694,
- "pipeline": "exercises-start-points-ci",
+ "snapshot_index": 5131,
+ "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:0fb0be4@sha256:c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98",
+ "sha256": "c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98",
+ "description": "1 instance changed",
+ "reported_at": 1785301078.6254478,
+ "pipeline": "dashboard-ci",
"deployments": [],
"flows": [
{
- "flow_name": "exercises-start-points-ci",
+ "flow_name": "dashboard-ci",
"deployments": null
},
{
@@ -397,41 +401,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": "exited",
- "code_diff": "https://github.com/cyber-dojo/exercises-start-points/compare/80b913e9f88902428a3567f75165d8b9d73b561a...804f248d832dc34e564507b009c246dfb4f0c657",
+ "type": "updated-provenance",
+ "code_diff": "https://github.com/cyber-dojo/dashboard/compare/5407827a19ff32c8d0e7ff2e8f18665e86e64f01...0fb0be439480821efb926a5079e39ce5941eaa48",
"_links": {
"artifact": {
- "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/exercises-start-points-ci/fingerprint/a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613",
- "html": "https://app.kosli.com/cyber-dojo/flows/exercises-start-points-ci/artifacts/a07b93ce0975df90f08f0dc171105a4f6e61e5b91aaf5ca9874d372084e1b613?artifact_id=0e55e1be-fab1-475b-8aaa-b45ca6e2"
+ "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/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/5122",
- "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5122"
+ "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"
}
}
},
{
"environment_name": "aws-prod",
- "snapshot_index": 5122,
- "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:5407827@sha256:d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e",
- "sha256": "d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e",
- "description": "1 instance stopped running (from 1 to 0)",
- "reported_at": 1785241318.4716694,
- "pipeline": "dashboard-ci",
+ "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",
"deployments": [],
"flows": [
{
- "flow_name": "dashboard-ci",
+ "flow_name": "web-ci",
"deployments": null
},
{
@@ -439,41 +443,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": "exited",
- "code_diff": "https://github.com/cyber-dojo/dashboard/compare/e4757683b74df7033c95aa544a7824b395c2f8bb...5407827a19ff32c8d0e7ff2e8f18665e86e64f01",
+ "type": "updated-provenance",
+ "code_diff": "https://github.com/cyber-dojo/web/compare/aaf06aec0e096d2de9c58152d1ee8d75c8f2a31f...2779354a4fda0eeb90fd43f32211836d99f6bde1",
"_links": {
"artifact": {
- "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/dashboard-ci/fingerprint/d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e",
- "html": "https://app.kosli.com/cyber-dojo/flows/dashboard-ci/artifacts/d5e2c2da34f74c61721f620d410e6ae9299f15e1f928aeb903cefdd72a1e815e?artifact_id=53e5b750-6f87-43db-a8a3-e1f5b1db"
+ "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/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/5122",
- "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5122"
+ "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"
}
}
},
{
"environment_name": "aws-prod",
- "snapshot_index": 5122,
- "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/languages-start-points:c6db342@sha256:f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418",
- "sha256": "f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418",
- "description": "1 instance stopped running (from 1 to 0)",
- "reported_at": 1785241318.4716694,
- "pipeline": "languages-start-points-ci",
+ "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",
"deployments": [],
"flows": [
{
- "flow_name": "languages-start-points-ci",
+ "flow_name": "custom-start-points-ci",
"deployments": null
},
{
@@ -481,159 +485,167 @@ 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": "exited",
- "code_diff": "https://github.com/cyber-dojo/languages-start-points/compare/04e0e14bb8874ab521d35c97d6040133f0d2143a...c6db342472238a7852b6ff31b04f9a6a6099f5cf",
+ "type": "updated-provenance",
+ "code_diff": "https://github.com/cyber-dojo/custom-start-points/compare/d37aace7598ee943ba0bd5e51f224335cbdf0a3e...790d86b66f4d86ab47f5c521daf5039dc8aeef4d",
"_links": {
"artifact": {
- "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/languages-start-points-ci/fingerprint/f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418",
- "html": "https://app.kosli.com/cyber-dojo/flows/languages-start-points-ci/artifacts/f4ed92af30318fe8230648a2fc1f482970ad0ef821eeaaeac76759cd8fe03418?artifact_id=ed104a44-8358-4883-beeb-ac3c8bb7"
+ "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/5122",
- "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5122"
+ "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"
}
}
},
{
"environment_name": "aws-prod",
- "snapshot_index": 5121,
- "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/custom-start-points:790d86b@sha256:8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81",
- "sha256": "8e965dda26af2d2e68032c25d68e792c85e0c7bd9814862de231bc4c6e935b81",
- "description": "1 instance started running (from 0 to 1)",
- "reported_at": 1785241258.6193466,
- "pipeline": "custom-start-points-ci",
+ "snapshot_index": 5129,
+ "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/spooler:92c624e@sha256:a20359795934beb03d992ba5a8f8b95ca637e609284e5a84781bdcbb1b861975",
+ "sha256": "a20359795934beb03d992ba5a8f8b95ca637e609284e5a84781bdcbb1b861975",
+ "description": "1 instance changed",
+ "reported_at": 1785300958.5618691,
+ "pipeline": "spooler-ci",
"deployments": [],
"flows": [
{
- "flow_name": "custom-start-points-ci",
+ "flow_name": "spooler-ci",
"deployments": null
},
{
- "flow_name": "snyk-aws-beta-per-artifact",
+ "flow_name": "production-promotion",
"deployments": null
},
{
- "flow_name": "production-promotion",
+ "flow_name": "snyk-aws-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/custom-start-points/compare/d37aace7598ee943ba0bd5e51f224335cbdf0a3e...790d86b66f4d86ab47f5c521daf5039dc8aeef4d",
+ "type": "updated-provenance",
+ "code_diff": "https://github.com/cyber-dojo/spooler/compare/b592c3af03e9530c1d224686a1745e4a12e1df00...92c624eabb024729fb2af6cdbe354db11ee3882f",
"_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/spooler-ci/fingerprint/a20359795934beb03d992ba5a8f8b95ca637e609284e5a84781bdcbb1b861975",
+ "html": "https://app.kosli.com/cyber-dojo/flows/spooler-ci/artifacts/a20359795934beb03d992ba5a8f8b95ca637e609284e5a84781bdcbb1b861975?artifact_id=42025c9c-2608-4ef0-b140-84548282"
},
"snapshot": {
- "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5121",
- "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5121"
+ "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"
}
}
},
{
"environment_name": "aws-prod",
- "snapshot_index": 5121,
- "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:0fb0be4@sha256:c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98",
- "sha256": "c7481eac72e01e25aa4f1dda5e8fa1f8c89215d32c32891762e3fc0b99fbfe98",
- "description": "1 instance started running (from 0 to 1)",
- "reported_at": 1785241258.6193466,
- "pipeline": "dashboard-ci",
+ "snapshot_index": 5129,
+ "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/languages-start-points:6a7f7be@sha256:b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b",
+ "sha256": "b1ee961719fe5dabc18f85450c26719c67a4f9ac3959ba836465ceb14bc67e7b",
+ "description": "1 instance changed",
+ "reported_at": 1785300958.5618691,
+ "pipeline": "languages-start-points-ci",
"deployments": [],
"flows": [
{
- "flow_name": "dashboard-ci",
+ "flow_name": "languages-start-points-ci",
"deployments": null
},
{
- "flow_name": "snyk-aws-beta-per-artifact",
+ "flow_name": "production-promotion",
"deployments": null
},
{
- "flow_name": "production-promotion",
+ "flow_name": "snyk-aws-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/dashboard/compare/5407827a19ff32c8d0e7ff2e8f18665e86e64f01...0fb0be439480821efb926a5079e39ce5941eaa48",
+ "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/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/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/5121",
- "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5121"
+ "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"
}
}
},
{
"environment_name": "aws-prod",
- "snapshot_index": 5121,
- "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:258b6d0@sha256:c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea",
- "sha256": "c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea",
- "description": "1 instance started running (from 0 to 1)",
- "reported_at": 1785241258.6193466,
- "pipeline": "exercises-start-points-ci",
+ "snapshot_index": 5129,
+ "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/differ:1b7ea87@sha256:c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12",
+ "sha256": "c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12",
+ "description": "1 instance changed",
+ "reported_at": 1785300958.5618691,
+ "pipeline": "differ-ci",
"deployments": [],
"flows": [
{
- "flow_name": "exercises-start-points-ci",
+ "flow_name": "differ-ci",
"deployments": null
},
{
- "flow_name": "snyk-aws-beta-per-artifact",
+ "flow_name": "production-promotion",
"deployments": null
},
{
- "flow_name": "production-promotion",
+ "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/exercises-start-points/compare/804f248d832dc34e564507b009c246dfb4f0c657...258b6d07d2b28ad5cb2ce6d29934997f72380f1a",
+ "type": "updated-provenance",
+ "code_diff": "https://github.com/cyber-dojo/differ/compare/335ddfa139708c37908dd594a0502bc6d88f8615...1b7ea87a174a1a290600b469dc1029ec4c974320",
"_links": {
"artifact": {
- "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/exercises-start-points-ci/fingerprint/c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea",
- "html": "https://app.kosli.com/cyber-dojo/flows/exercises-start-points-ci/artifacts/c7b7fd69d904329f9264e111bd3dc63cf98724cce567bae719e79a171e6925ea?artifact_id=ffb671be-6388-4f6a-ae64-8ba95d82"
+ "self": "https://app.kosli.com/api/v2/artifacts/cyber-dojo/differ-ci/fingerprint/c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12",
+ "html": "https://app.kosli.com/cyber-dojo/flows/differ-ci/artifacts/c6c87ec582111b0e0da745ca18867d57fd042c4ce961c8494e4d6a89b4543d12?artifact_id=53b144c7-33a3-4d8a-b416-37aea745"
},
"snapshot": {
- "self": "https://app.kosli.com/api/v2/snapshots/cyber-dojo/aws-prod/5121",
- "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5121"
+ "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"
}
}
},
{
"environment_name": "aws-prod",
- "snapshot_index": 5120,
- "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:3f0b997@sha256:0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972",
- "sha256": "0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972",
- "description": "3 instances stopped running (from 3 to 0)",
- "reported_at": 1785240718.5257201,
- "pipeline": "web-ci",
+ "snapshot_index": 5128,
+ "artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:c29db2c@sha256:680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4",
+ "sha256": "680e9bb851165e8a6e3bc52c1be106286fa910b57c17d844ee052fd3e104e9b4",
+ "description": "1 instance changed",
+ "reported_at": 1785300898.3949952,
+ "pipeline": "saver-ci",
"deployments": [],
"flows": [
{
- "flow_name": "web-ci",
- "deployments": null
- },
- {
- "flow_name": "snyk-aws-beta-per-artifact",
+ "flow_name": "saver-ci",
"deployments": null
},
{
@@ -647,16 +659,16 @@ kosli log environment aws-prod --output=json
],
"artifact_compliance": true,
"snapshot_compliance": true,
- "type": "exited",
- "code_diff": "https://github.com/cyber-dojo/web/compare/bdf01beca687a34db9689499bd805cfc752a1747...3f0b9975f96b7f4e4aae0b4409cebda3209be164",
+ "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/web-ci/fingerprint/0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972",
- "html": "https://app.kosli.com/cyber-dojo/flows/web-ci/artifacts/0eaa303537220d95ba656b829c1d9c85e2865c986c4736962b85f4df5adb8972?artifact_id=0f00c8a9-1489-416c-b64f-5819890f"
+ "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/5120",
- "html": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/5120"
+ "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"
}
}
}
diff --git a/client_reference/kosli_tag.md b/client_reference/kosli_tag.md
index bff183c..3517ed1 100644
--- a/client_reference/kosli_tag.md
+++ b/client_reference/kosli_tag.md
@@ -52,7 +52,7 @@ name as-is, whereas a real run sends the resolved ID.
View an example of the `kosli tag` command in GitHub.
- In [this YAML file](https://github.com/cyber-dojo/aws-prod-co-promotion/blob/81c216a55b2cb1787645e699ceaceca868cad253/.github/workflows/promote_one.yml#L74)
+ In [this YAML file](https://github.com/cyber-dojo/aws-prod-co-promotion/blob/7494758f8bbc4e66cb5df90ef4cd6b72d75ca584/.github/workflows/promote_one.yml#L74)
View an example of the `kosli tag` command in GitLab.
diff --git a/client_reference/overview.md b/client_reference/overview.md
index d3073bb..22a3c29 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.0**.
+ This reference was generated from Kosli CLI **v2.36.1**.
The Kosli CLI allows you to interact with Kosli from your terminal and CI/CD pipelines.