{
    "index": 3088,
    "is_latest": true,
    "next_snapshot_timestamp": null,
    "artifact_compliance_count": {
        "true": 10,
        "false": 0,
        "null": 0
    },
    "timestamp": 1729329658.554001,
    "type": "ECS",
    "compliant": true,
    "html_url": "https://app.kosli.com/cyber-dojo/environments/aws-prod/snapshots/3088",
    "artifacts": [
        {
            "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:3ac62c8",
            "deployments": [],
            "compliant": true,
            "policy_decisions": [
                {
                    "policy_id": "bb56942a-ebbc-4a51-ad7b-b1f83903",
                    "policy_version": 1,
                    "status": "COMPLIANT",
                    "rule_evaluations": [
                        {
                            "rule": {
                                "type": "provenance",
                                "definition": {
                                    "required": true,
                                    "exceptions": []
                                }
                            },
                            "satisfied": true,
                            "ignored": false,
                            "resolutions": [
                                {
                                    "type": "rule_satisfied",
                                    "context": {
                                        "artifact_id": "0ecddef8-8c33-45d5-8986-fc7b7b73",
                                        "flow_id": "a81e8c6d-bb00-474f-b986-a6cb9b08",
                                        "flow_name": "runner-ci",
                                        "trail_id": "8464af22-c582-486a-a85e-05aca710",
                                        "trail_name": "3ac62c83d48e8e2d26b86fb5d13ca63a2d46c8d2"
                                    }
                                },
                                {
                                    "type": "rule_satisfied",
                                    "context": {
                                        "artifact_id": "75b28a2c-5556-47d7-8a36-1cda4ee4",
                                        "flow_id": "fe044e85-4bd5-44af-b181-950b685e",
                                        "flow_name": "aws-prod-snyk-scan",
                                        "trail_id": "d488d716-7c4c-4348-9c04-bd3b1f6f",
                                        "trail_name": "runner-8349f70f53c2a560124ddb6511f1be67d9743187cdd5e0e5c65467d2dfe3cb37"
                                    }
                                },
                                {
                                    "type": "rule_satisfied",
                                    "context": {
                                        "artifact_id": "57f810e5-c457-49a2-8639-0521b8d1",
                                        "flow_id": "2f2cd910-9bba-446b-a00d-07e6273c",
                                        "flow_name": "aws-beta-snyk-scan",
                                        "trail_id": "1d10712e-c21a-4f2f-b545-4335b2ee",
                                        "trail_name": "runner-8349f70f53c2a560124ddb6511f1be67d9743187cdd5e0e5c65467d2dfe3cb37"
                                    }
                                }
                            ]
                        },
                        {
                            "rule": {
                                "type": "trail-compliance",
                                "definition": {
                                    "required": true,
                                    "exceptions": []
                                }
                            },
                            "satisfied": true,
                            "ignored": false,
                            "resolutions": [
                                {
                                    "type": "rule_satisfied",
                                    "context": {
                                        "artifact_id": "0ecddef8-8c33-45d5-8986-fc7b7b73",
                                        "flow_id": "a81e8c6d-bb00-474f-b986-a6cb9b08",
                                        "flow_name": "runner-ci",
                                        "trail_id": "8464af22-c582-486a-a85e-05aca710",
                                        "trail_name": "3ac62c83d48e8e2d26b86fb5d13ca63a2d46c8d2",
                                        "artifact_status": "COMPLIANT"
                                    }
                                },
                                {
                                    "type": "rule_satisfied",
                                    "context": {
                                        "artifact_id": "75b28a2c-5556-47d7-8a36-1cda4ee4",
                                        "flow_id": "fe044e85-4bd5-44af-b181-950b685e",
                                        "flow_name": "aws-prod-snyk-scan",
                                        "trail_id": "d488d716-7c4c-4348-9c04-bd3b1f6f",
                                        "trail_name": "runner-8349f70f53c2a560124ddb6511f1be67d9743187cdd5e0e5c65467d2dfe3cb37",
                                        "artifact_status": "COMPLIANT"
                                    }
                                },
                                {
                                    "type": "rule_satisfied",
                                    "context": {
                                        "artifact_id": "57f810e5-c457-49a2-8639-0521b8d1",
                                        "flow_id": "2f2cd910-9bba-446b-a00d-07e6273c",
                                        "flow_name": "aws-beta-snyk-scan",
                                        "trail_id": "1d10712e-c21a-4f2f-b545-4335b2ee",
                                        "trail_name": "runner-8349f70f53c2a560124ddb6511f1be67d9743187cdd5e0e5c65467d2dfe3cb37",
                                        "artifact_status": "COMPLIANT"
                                    }
                                }
                            ]
                        }
                    ]
                },
                {
                    "policy_id": "d4f22b17-1fac-4f36-a735-5a39f697",
                    "policy_version": 1,
                    "status": "COMPLIANT",
                    "rule_evaluations": [
                        {
                            "rule": {
                                "type": "provenance",
                                "definition": {
                                    "required": true,
                                    "exceptions": []
                                }
                            },
                            "satisfied": true,
                            "ignored": false,
                            "resolutions": [
                                {
                                    "type": "rule_satisfied",
                                    "context": {
                                        "artifact_id": "0ecddef8-8c33-45d5-8986-fc7b7b73",
                                        "flow_id": "a81e8c6d-bb00-474f-b986-a6cb9b08",
                                        "flow_name": "runner-ci",
                                        "trail_id": "8464af22-c582-486a-a85e-05aca710",
                                        "trail_name": "3ac62c83d48e8e2d26b86fb5d13ca63a2d46c8d2"
                                    }
                                },
                                {
                                    "type": "rule_satisfied",
                                    "context": {
                                        "artifact_id": "75b28a2c-5556-47d7-8a36-1cda4ee4",
                                        "flow_id": "fe044e85-4bd5-44af-b181-950b685e",
                                        "flow_name": "aws-prod-snyk-scan",
                                        "trail_id": "d488d716-7c4c-4348-9c04-bd3b1f6f",
                                        "trail_name": "runner-8349f70f53c2a560124ddb6511f1be67d9743187cdd5e0e5c65467d2dfe3cb37"
                                    }
                                },
                                {
                                    "type": "rule_satisfied",
                                    "context": {
                                        "artifact_id": "57f810e5-c457-49a2-8639-0521b8d1",
                                        "flow_id": "2f2cd910-9bba-446b-a00d-07e6273c",
                                        "flow_name": "aws-beta-snyk-scan",
                                        "trail_id": "1d10712e-c21a-4f2f-b545-4335b2ee",
                                        "trail_name": "runner-8349f70f53c2a560124ddb6511f1be67d9743187cdd5e0e5c65467d2dfe3cb37"
                                    }
                                }
                            ]
                        },
                        {
                            "rule": {
                                "type": "trail-compliance",
                                "definition": {
                                    "required": false,
                                    "exceptions": []
                                }
                            },
                            "satisfied": null,
                            "ignored": true,
                            "resolutions": []
                        },
                        {
                            "rule": {
                                "type": "attestation",
                                "definition": {
                                    "if_condition": null,
                                    "name": "snyk-container-scan",
                                    "type": "snyk",
                                    "must_be_compliant": true
                                }
                            },
                            "satisfied": true,
                            "ignored": false,
                            "resolutions": [
                                {
                                    "type": "rule_satisfied",
                                    "context": {
                                        "artifact_id": "0ecddef8-8c33-45d5-8986-fc7b7b73",
                                        "flow_id": "a81e8c6d-bb00-474f-b986-a6cb9b08",
                                        "flow_name": "runner-ci",
                                        "trail_id": "8464af22-c582-486a-a85e-05aca710",
                                        "trail_name": "3ac62c83d48e8e2d26b86fb5d13ca63a2d46c8d2",
                                        "matching_attestation_id": "5d8bce47-7b15-4260-b076-9bb1649d",
                                        "matching_attestation_name": "snyk-container-scan",
                                        "matching_attestation_type": "snyk",
                                        "matching_attestation_compliance": true
                                    }
                                },
                                {
                                    "type": "rule_satisfied",
                                    "context": {
                                        "artifact_id": "75b28a2c-5556-47d7-8a36-1cda4ee4",
                                        "flow_id": "fe044e85-4bd5-44af-b181-950b685e",
                                        "flow_name": "aws-prod-snyk-scan",
                                        "trail_id": "d488d716-7c4c-4348-9c04-bd3b1f6f",
                                        "trail_name": "runner-8349f70f53c2a560124ddb6511f1be67d9743187cdd5e0e5c65467d2dfe3cb37",
                                        "matching_attestation_id": "585527b6-c77e-4f46-b6d9-b5121f7f",
                                        "matching_attestation_name": "snyk-container-scan",
                                        "matching_attestation_type": "snyk",
                                        "matching_attestation_compliance": true
                                    }
                                },
                                {
                                    "type": "rule_satisfied",
                                    "context": {
                                        "artifact_id": "57f810e5-c457-49a2-8639-0521b8d1",
                                        "flow_id": "2f2cd910-9bba-446b-a00d-07e6273c",
                                        "flow_name": "aws-beta-snyk-scan",
                                        "trail_id": "1d10712e-c21a-4f2f-b545-4335b2ee",
                                        "trail_name": "runner-8349f70f53c2a560124ddb6511f1be67d9743187cdd5e0e5c65467d2dfe3cb37",
                                        "matching_attestation_id": "9d6e6e87-b25d-4501-b84f-e8cd9f21",
                                        "matching_attestation_name": "snyk-container-scan",
                                        "matching_attestation_type": "snyk",
                                        "matching_attestation_compliance": true
                                    }
                                }
                            ]
                        }
                    ]
                }
            ],
            "reasons_for_incompliance": [],
            "fingerprint": "8349f70f53c2a560124ddb6511f1be67d9743187cdd5e0e5c65467d2dfe3cb37",
            "creationTimestamp": [
                1729234222,
                1729234244,
                1729234244
            ],
            "pods": null,
            "annotation": {
                "type": "updated-provenance",
                "was": 3,
                "now": 3
            },
            "flow_name": "runner-ci",
            "git_commit": "3ac62c83d48e8e2d26b86fb5d13ca63a2d46c8d2",
            "commit_url": "https://github.com/cyber-dojo/runner/commit/3ac62c83d48e8e2d26b86fb5d13ca63a2d46c8d2",
            "html_url": "https://app.kosli.com/cyber-dojo/flows/runner-ci/artifacts/8349f70f53c2a560124ddb6511f1be67d9743187cdd5e0e5c65467d2dfe3cb37?artifact_id=0ecddef8-8c33-45d5-8986-fc7b7b73",
            "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/runner-ci",
            "deployment_diff": {
                "diff_url": "https://github.com/cyber-dojo/runner/compare/c7c77b11edde1dc83cd0a947f505015e9aef6f6d...3ac62c83d48e8e2d26b86fb5d13ca63a2d46c8d2",
                "previous_git_commit": "c7c77b11edde1dc83cd0a947f505015e9aef6f6d",
                "previous_fingerprint": "f037e904629a9fa1d4bccab5351b75efe691b765f82224a726fc329de81004a7",
                "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:c7c77b1",
                "previous_artifact_compliance_state": "COMPLIANT",
                "previous_running": false,
                "previous_git_commit_url": "https://github.com/cyber-dojo/runner/commit/c7c77b11edde1dc83cd0a947f505015e9aef6f6d",
                "previous_trail_name": "c7c77b11edde1dc83cd0a947f505015e9aef6f6d",
                "previous_template_reference_name": "runner"
            },
            "commit_lead_time": 606.0,
            "flows": [
                {
                    "flow_name": "runner-ci",
                    "trail_name": "3ac62c83d48e8e2d26b86fb5d13ca63a2d46c8d2",
                    "template_reference_name": "runner",
                    "git_commit": "3ac62c83d48e8e2d26b86fb5d13ca63a2d46c8d2",
                    "commit_url": "https://github.com/cyber-dojo/runner/commit/3ac62c83d48e8e2d26b86fb5d13ca63a2d46c8d2",
                    "git_commit_info": {
                        "sha1": "3ac62c83d48e8e2d26b86fb5d13ca63a2d46c8d2",
                        "message": "Merge pull request #60 from cyber-dojo/update-ci-workflow\n\nRun CI workflow on branch push",
                        "author": "Jon Jagger <jon@kosli.com>",
                        "branch": "main",
                        "timestamp": 1729233616.0,
                        "url": "https://github.com/cyber-dojo/runner/commit/3ac62c83d48e8e2d26b86fb5d13ca63a2d46c8d2"
                    },
                    "html_url": "https://app.kosli.com/cyber-dojo/flows/runner-ci/artifacts/8349f70f53c2a560124ddb6511f1be67d9743187cdd5e0e5c65467d2dfe3cb37?artifact_id=0ecddef8-8c33-45d5-8986-fc7b7b73",
                    "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/runner-ci",
                    "deployment_diff": {
                        "diff_url": "https://github.com/cyber-dojo/runner/compare/c7c77b11edde1dc83cd0a947f505015e9aef6f6d...3ac62c83d48e8e2d26b86fb5d13ca63a2d46c8d2",
                        "previous_git_commit": "c7c77b11edde1dc83cd0a947f505015e9aef6f6d",
                        "previous_fingerprint": "f037e904629a9fa1d4bccab5351b75efe691b765f82224a726fc329de81004a7",
                        "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/runner:c7c77b1",
                        "previous_artifact_compliance_state": "COMPLIANT",
                        "previous_running": false,
                        "previous_git_commit_url": "https://github.com/cyber-dojo/runner/commit/c7c77b11edde1dc83cd0a947f505015e9aef6f6d",
                        "previous_trail_name": "c7c77b11edde1dc83cd0a947f505015e9aef6f6d",
                        "previous_template_reference_name": "runner"
                    },
                    "commit_lead_time": 606.0,
                    "artifact_compliance_in_flow": true,
                    "flow_reasons_for_non_compliance": []
                },
                {
                    "flow_name": "aws-prod-snyk-scan",
                    "trail_name": "runner-8349f70f53c2a560124ddb6511f1be67d9743187cdd5e0e5c65467d2dfe3cb37",
                    "template_reference_name": "runner",
                    "git_commit": "702a8cc62dd76c89ba48ff2d7df5f6a7cbaf339d",
                    "commit_url": "https://github.com/cyber-dojo/live-snyk-scans/commit/702a8cc62dd76c89ba48ff2d7df5f6a7cbaf339d",
                    "git_commit_info": {
                        "sha1": "702a8cc62dd76c89ba48ff2d7df5f6a7cbaf339d",
                        "message": "Restore snyk scan for all Artifacts",
                        "author": "JonJagger <jon@kosli.com>",
                        "branch": "main",
                        "timestamp": 1726298419.0,
                        "url": "https://github.com/cyber-dojo/live-snyk-scans/commit/702a8cc62dd76c89ba48ff2d7df5f6a7cbaf339d"
                    },
                    "html_url": "https://app.kosli.com/cyber-dojo/flows/aws-prod-snyk-scan/artifacts/8349f70f53c2a560124ddb6511f1be67d9743187cdd5e0e5c65467d2dfe3cb37?artifact_id=75b28a2c-5556-47d7-8a36-1cda4ee4",
                    "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/aws-prod-snyk-scan",
                    "deployment_diff": null,
                    "commit_lead_time": 2935803.0,
                    "artifact_compliance_in_flow": true,
                    "flow_reasons_for_non_compliance": []
                },
                {
                    "flow_name": "aws-beta-snyk-scan",
                    "trail_name": "runner-8349f70f53c2a560124ddb6511f1be67d9743187cdd5e0e5c65467d2dfe3cb37",
                    "template_reference_name": "runner",
                    "git_commit": "702a8cc62dd76c89ba48ff2d7df5f6a7cbaf339d",
                    "commit_url": "https://github.com/cyber-dojo/live-snyk-scans/commit/702a8cc62dd76c89ba48ff2d7df5f6a7cbaf339d",
                    "git_commit_info": {
                        "sha1": "702a8cc62dd76c89ba48ff2d7df5f6a7cbaf339d",
                        "message": "Restore snyk scan for all Artifacts",
                        "author": "JonJagger <jon@kosli.com>",
                        "branch": "main",
                        "timestamp": 1726298419.0,
                        "url": "https://github.com/cyber-dojo/live-snyk-scans/commit/702a8cc62dd76c89ba48ff2d7df5f6a7cbaf339d"
                    },
                    "html_url": "https://app.kosli.com/cyber-dojo/flows/aws-beta-snyk-scan/artifacts/8349f70f53c2a560124ddb6511f1be67d9743187cdd5e0e5c65467d2dfe3cb37?artifact_id=57f810e5-c457-49a2-8639-0521b8d1",
                    "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/aws-beta-snyk-scan",
                    "deployment_diff": null,
                    "commit_lead_time": 2935803.0,
                    "artifact_compliance_in_flow": true,
                    "flow_reasons_for_non_compliance": []
                }
            ]
        },
        {
            "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/languages-start-points:728ce43",
            "deployments": [],
            "compliant": true,
            "policy_decisions": [
                {
                    "policy_id": "bb56942a-ebbc-4a51-ad7b-b1f83903",
                    "policy_version": 1,
                    "status": "COMPLIANT",
                    "rule_evaluations": [
                        {
                            "rule": {
                                "type": "provenance",
                                "definition": {
                                    "required": true,
                                    "exceptions": []
                                }
                            },
                            "satisfied": true,
                            "ignored": false,
                            "resolutions": [
                                {
                                    "type": "rule_satisfied",
                                    "context": {
                                        "artifact_id": "219c2a0f-f6de-4c95-ba26-f2828740",
                                        "flow_id": "0b4a3bb0-4f77-41a9-8dea-733d1dc3",
                                        "flow_name": "languages-start-points-ci",
                                        "trail_id": "09df4bb5-297e-4927-8e62-a26221db",
                                        "trail_name": "728ce43c3194c0016c03057ec3cd6d184eeb4458"
                                    }
                                }
                            ]
                        },
                        {
                            "rule": {
                                "type": "trail-compliance",
                                "definition": {
                                    "required": true,
                                    "exceptions": []
                                }
                            },
                            "satisfied": true,
                            "ignored": false,
                            "resolutions": [
                                {
                                    "type": "rule_satisfied",
                                    "context": {
                                        "artifact_id": "219c2a0f-f6de-4c95-ba26-f2828740",
                                        "flow_id": "0b4a3bb0-4f77-41a9-8dea-733d1dc3",
                                        "flow_name": "languages-start-points-ci",
                                        "trail_id": "09df4bb5-297e-4927-8e62-a26221db",
                                        "trail_name": "728ce43c3194c0016c03057ec3cd6d184eeb4458",
                                        "artifact_status": "COMPLIANT"
                                    }
                                }
                            ]
                        }
                    ]
                },
                {
                    "policy_id": "d4f22b17-1fac-4f36-a735-5a39f697",
                    "policy_version": 1,
                    "status": "COMPLIANT",
                    "rule_evaluations": [
                        {
                            "rule": {
                                "type": "provenance",
                                "definition": {
                                    "required": true,
                                    "exceptions": []
                                }
                            },
                            "satisfied": true,
                            "ignored": false,
                            "resolutions": [
                                {
                                    "type": "rule_satisfied",
                                    "context": {
                                        "artifact_id": "219c2a0f-f6de-4c95-ba26-f2828740",
                                        "flow_id": "0b4a3bb0-4f77-41a9-8dea-733d1dc3",
                                        "flow_name": "languages-start-points-ci",
                                        "trail_id": "09df4bb5-297e-4927-8e62-a26221db",
                                        "trail_name": "728ce43c3194c0016c03057ec3cd6d184eeb4458"
                                    }
                                }
                            ]
                        },
                        {
                            "rule": {
                                "type": "trail-compliance",
                                "definition": {
                                    "required": false,
                                    "exceptions": []
                                }
                            },
                            "satisfied": null,
                            "ignored": true,
                            "resolutions": []
                        },
                        {
                            "rule": {
                                "type": "attestation",
                                "definition": {
                                    "if_condition": null,
                                    "name": "snyk-container-scan",
                                    "type": "snyk",
                                    "must_be_compliant": true
                                }
                            },
                            "satisfied": true,
                            "ignored": false,
                            "resolutions": [
                                {
                                    "type": "rule_satisfied",
                                    "context": {
                                        "artifact_id": "219c2a0f-f6de-4c95-ba26-f2828740",
                                        "flow_id": "0b4a3bb0-4f77-41a9-8dea-733d1dc3",
                                        "flow_name": "languages-start-points-ci",
                                        "trail_id": "09df4bb5-297e-4927-8e62-a26221db",
                                        "trail_name": "728ce43c3194c0016c03057ec3cd6d184eeb4458",
                                        "matching_attestation_id": "88a1161a-34e5-4002-81bf-57e28345",
                                        "matching_attestation_name": "snyk-container-scan",
                                        "matching_attestation_type": "snyk",
                                        "matching_attestation_compliance": true
                                    }
                                }
                            ]
                        }
                    ]
                }
            ],
            "reasons_for_incompliance": [],
            "fingerprint": "004329bd0a0c2f7b4804cb137dc1e2fddf41fd28ebff2777948db19f782a8d94",
            "creationTimestamp": [
                1729268282
            ],
            "pods": null,
            "annotation": {
                "type": "unchanged",
                "was": 1,
                "now": 1
            },
            "flow_name": "languages-start-points-ci",
            "git_commit": "728ce43c3194c0016c03057ec3cd6d184eeb4458",
            "commit_url": "https://github.com/cyber-dojo/languages-start-points/commit/728ce43c3194c0016c03057ec3cd6d184eeb4458",
            "html_url": "https://app.kosli.com/cyber-dojo/flows/languages-start-points-ci/artifacts/004329bd0a0c2f7b4804cb137dc1e2fddf41fd28ebff2777948db19f782a8d94?artifact_id=219c2a0f-f6de-4c95-ba26-f2828740",
            "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/languages-start-points-ci",
            "deployment_diff": {
                "diff_url": "https://github.com/cyber-dojo/languages-start-points/compare/18454ebb1ef3f8a5dcede95af769a2671f3d73d7...728ce43c3194c0016c03057ec3cd6d184eeb4458",
                "previous_git_commit": "18454ebb1ef3f8a5dcede95af769a2671f3d73d7",
                "previous_fingerprint": "671634827f21e8b63a5da95c89b15b23b91522839f2f4dc1989dcef9fdd5558b",
                "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/languages-start-points:18454eb",
                "previous_artifact_compliance_state": "COMPLIANT",
                "previous_running": false,
                "previous_git_commit_url": "https://github.com/cyber-dojo/languages-start-points/commit/18454ebb1ef3f8a5dcede95af769a2671f3d73d7",
                "previous_trail_name": "18454ebb1ef3f8a5dcede95af769a2671f3d73d7",
                "previous_template_reference_name": "languages-start-points"
            },
            "commit_lead_time": 5836.0,
            "flows": [
                {
                    "flow_name": "languages-start-points-ci",
                    "trail_name": "728ce43c3194c0016c03057ec3cd6d184eeb4458",
                    "template_reference_name": "languages-start-points",
                    "git_commit": "728ce43c3194c0016c03057ec3cd6d184eeb4458",
                    "commit_url": "https://github.com/cyber-dojo/languages-start-points/commit/728ce43c3194c0016c03057ec3cd6d184eeb4458",
                    "git_commit_info": {
                        "sha1": "728ce43c3194c0016c03057ec3cd6d184eeb4458",
                        "message": "Merge pull request #46 from cyber-dojo/upgrade-kotlin-start-points\n\nUpgrade Kotlin-Kotest start point",
                        "author": "FayeSGW <108031168+FayeSGW@users.noreply.github.com>",
                        "branch": "main",
                        "timestamp": 1729262446.0,
                        "url": "https://github.com/cyber-dojo/languages-start-points/commit/728ce43c3194c0016c03057ec3cd6d184eeb4458"
                    },
                    "html_url": "https://app.kosli.com/cyber-dojo/flows/languages-start-points-ci/artifacts/004329bd0a0c2f7b4804cb137dc1e2fddf41fd28ebff2777948db19f782a8d94?artifact_id=219c2a0f-f6de-4c95-ba26-f2828740",
                    "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/languages-start-points-ci",
                    "deployment_diff": {
                        "diff_url": "https://github.com/cyber-dojo/languages-start-points/compare/18454ebb1ef3f8a5dcede95af769a2671f3d73d7...728ce43c3194c0016c03057ec3cd6d184eeb4458",
                        "previous_git_commit": "18454ebb1ef3f8a5dcede95af769a2671f3d73d7",
                        "previous_fingerprint": "671634827f21e8b63a5da95c89b15b23b91522839f2f4dc1989dcef9fdd5558b",
                        "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/languages-start-points:18454eb",
                        "previous_artifact_compliance_state": "COMPLIANT",
                        "previous_running": false,
                        "previous_git_commit_url": "https://github.com/cyber-dojo/languages-start-points/commit/18454ebb1ef3f8a5dcede95af769a2671f3d73d7",
                        "previous_trail_name": "18454ebb1ef3f8a5dcede95af769a2671f3d73d7",
                        "previous_template_reference_name": "languages-start-points"
                    },
                    "commit_lead_time": 5836.0,
                    "artifact_compliance_in_flow": true,
                    "flow_reasons_for_non_compliance": []
                }
            ]
        },
        {
            "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/differ:ab690af",
            "deployments": [],
            "compliant": true,
            "policy_decisions": [
                {
                    "policy_id": "bb56942a-ebbc-4a51-ad7b-b1f83903",
                    "policy_version": 1,
                    "status": "COMPLIANT",
                    "rule_evaluations": [
                        {
                            "rule": {
                                "type": "provenance",
                                "definition": {
                                    "required": true,
                                    "exceptions": []
                                }
                            },
                            "satisfied": true,
                            "ignored": false,
                            "resolutions": [
                                {
                                    "type": "rule_satisfied",
                                    "context": {
                                        "artifact_id": "15ce92ab-9150-41ec-976b-1891de3e",
                                        "flow_id": "d398561b-b0a9-4f0e-95a3-bbb0e347",
                                        "flow_name": "differ-ci",
                                        "trail_id": "232b18fa-c57a-451c-812e-decac21e",
                                        "trail_name": "ab690afd704ba081db402ec5362a76e5fd0616e0"
                                    }
                                }
                            ]
                        },
                        {
                            "rule": {
                                "type": "trail-compliance",
                                "definition": {
                                    "required": true,
                                    "exceptions": []
                                }
                            },
                            "satisfied": true,
                            "ignored": false,
                            "resolutions": [
                                {
                                    "type": "rule_satisfied",
                                    "context": {
                                        "artifact_id": "15ce92ab-9150-41ec-976b-1891de3e",
                                        "flow_id": "d398561b-b0a9-4f0e-95a3-bbb0e347",
                                        "flow_name": "differ-ci",
                                        "trail_id": "232b18fa-c57a-451c-812e-decac21e",
                                        "trail_name": "ab690afd704ba081db402ec5362a76e5fd0616e0",
                                        "artifact_status": "COMPLIANT"
                                    }
                                }
                            ]
                        }
                    ]
                },
                {
                    "policy_id": "d4f22b17-1fac-4f36-a735-5a39f697",
                    "policy_version": 1,
                    "status": "COMPLIANT",
                    "rule_evaluations": [
                        {
                            "rule": {
                                "type": "provenance",
                                "definition": {
                                    "required": true,
                                    "exceptions": []
                                }
                            },
                            "satisfied": true,
                            "ignored": false,
                            "resolutions": [
                                {
                                    "type": "rule_satisfied",
                                    "context": {
                                        "artifact_id": "15ce92ab-9150-41ec-976b-1891de3e",
                                        "flow_id": "d398561b-b0a9-4f0e-95a3-bbb0e347",
                                        "flow_name": "differ-ci",
                                        "trail_id": "232b18fa-c57a-451c-812e-decac21e",
                                        "trail_name": "ab690afd704ba081db402ec5362a76e5fd0616e0"
                                    }
                                }
                            ]
                        },
                        {
                            "rule": {
                                "type": "trail-compliance",
                                "definition": {
                                    "required": false,
                                    "exceptions": []
                                }
                            },
                            "satisfied": null,
                            "ignored": true,
                            "resolutions": []
                        },
                        {
                            "rule": {
                                "type": "attestation",
                                "definition": {
                                    "if_condition": null,
                                    "name": "snyk-container-scan",
                                    "type": "snyk",
                                    "must_be_compliant": true
                                }
                            },
                            "satisfied": true,
                            "ignored": false,
                            "resolutions": [
                                {
                                    "type": "rule_satisfied",
                                    "context": {
                                        "artifact_id": "15ce92ab-9150-41ec-976b-1891de3e",
                                        "flow_id": "d398561b-b0a9-4f0e-95a3-bbb0e347",
                                        "flow_name": "differ-ci",
                                        "trail_id": "232b18fa-c57a-451c-812e-decac21e",
                                        "trail_name": "ab690afd704ba081db402ec5362a76e5fd0616e0",
                                        "matching_attestation_id": "541c527c-e077-4c92-8db5-8c867465",
                                        "matching_attestation_name": "snyk-container-scan",
                                        "matching_attestation_type": "snyk",
                                        "matching_attestation_compliance": true
                                    }
                                }
                            ]
                        }
                    ]
                }
            ],
            "reasons_for_incompliance": [],
            "fingerprint": "eb3612fe6c71410a3d1917220198907d2e9b869e129b888daeac1699a0bacdec",
            "creationTimestamp": [
                1729239373
            ],
            "pods": null,
            "annotation": {
                "type": "unchanged",
                "was": 1,
                "now": 1
            },
            "flow_name": "differ-ci",
            "git_commit": "ab690afd704ba081db402ec5362a76e5fd0616e0",
            "commit_url": "https://github.com/cyber-dojo/differ/commit/ab690afd704ba081db402ec5362a76e5fd0616e0",
            "html_url": "https://app.kosli.com/cyber-dojo/flows/differ-ci/artifacts/eb3612fe6c71410a3d1917220198907d2e9b869e129b888daeac1699a0bacdec?artifact_id=15ce92ab-9150-41ec-976b-1891de3e",
            "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/differ-ci",
            "deployment_diff": {
                "diff_url": "https://github.com/cyber-dojo/differ/compare/75ca96f151f4f878d270ec5a5ef7b73135a7f91f...ab690afd704ba081db402ec5362a76e5fd0616e0",
                "previous_git_commit": "75ca96f151f4f878d270ec5a5ef7b73135a7f91f",
                "previous_fingerprint": "13d77371642f79ee12995bfd26e8d0aaedd798ed7a2c088b9db5a466cbb100c6",
                "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/differ:75ca96f",
                "previous_artifact_compliance_state": "COMPLIANT",
                "previous_running": false,
                "previous_git_commit_url": "https://github.com/cyber-dojo/differ/commit/75ca96f151f4f878d270ec5a5ef7b73135a7f91f",
                "previous_trail_name": "75ca96f151f4f878d270ec5a5ef7b73135a7f91f",
                "previous_template_reference_name": "differ"
            },
            "commit_lead_time": 1763.0,
            "flows": [
                {
                    "flow_name": "differ-ci",
                    "trail_name": "ab690afd704ba081db402ec5362a76e5fd0616e0",
                    "template_reference_name": "differ",
                    "git_commit": "ab690afd704ba081db402ec5362a76e5fd0616e0",
                    "commit_url": "https://github.com/cyber-dojo/differ/commit/ab690afd704ba081db402ec5362a76e5fd0616e0",
                    "git_commit_info": {
                        "sha1": "ab690afd704ba081db402ec5362a76e5fd0616e0",
                        "message": "Run workflow on pr (#252)",
                        "author": "Jon Jagger <jon@kosli.com>",
                        "branch": "main",
                        "timestamp": 1729237610.0,
                        "url": "https://github.com/cyber-dojo/differ/commit/ab690afd704ba081db402ec5362a76e5fd0616e0"
                    },
                    "html_url": "https://app.kosli.com/cyber-dojo/flows/differ-ci/artifacts/eb3612fe6c71410a3d1917220198907d2e9b869e129b888daeac1699a0bacdec?artifact_id=15ce92ab-9150-41ec-976b-1891de3e",
                    "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/differ-ci",
                    "deployment_diff": {
                        "diff_url": "https://github.com/cyber-dojo/differ/compare/75ca96f151f4f878d270ec5a5ef7b73135a7f91f...ab690afd704ba081db402ec5362a76e5fd0616e0",
                        "previous_git_commit": "75ca96f151f4f878d270ec5a5ef7b73135a7f91f",
                        "previous_fingerprint": "13d77371642f79ee12995bfd26e8d0aaedd798ed7a2c088b9db5a466cbb100c6",
                        "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/differ:75ca96f",
                        "previous_artifact_compliance_state": "COMPLIANT",
                        "previous_running": false,
                        "previous_git_commit_url": "https://github.com/cyber-dojo/differ/commit/75ca96f151f4f878d270ec5a5ef7b73135a7f91f",
                        "previous_trail_name": "75ca96f151f4f878d270ec5a5ef7b73135a7f91f",
                        "previous_template_reference_name": "differ"
                    },
                    "commit_lead_time": 1763.0,
                    "artifact_compliance_in_flow": true,
                    "flow_reasons_for_non_compliance": []
                }
            ]
        },
        {
            "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/custom-start-points:60aae00",
            "deployments": [],
            "compliant": true,
            "policy_decisions": [
                {
                    "policy_id": "bb56942a-ebbc-4a51-ad7b-b1f83903",
                    "policy_version": 1,
                    "status": "COMPLIANT",
                    "rule_evaluations": [
                        {
                            "rule": {
                                "type": "provenance",
                                "definition": {
                                    "required": true,
                                    "exceptions": []
                                }
                            },
                            "satisfied": true,
                            "ignored": false,
                            "resolutions": [
                                {
                                    "type": "rule_satisfied",
                                    "context": {
                                        "artifact_id": "da1e0dcd-a077-433c-b860-7c48b264",
                                        "flow_id": "217f4b82-2fe6-41ef-8214-e34c3a47",
                                        "flow_name": "custom-start-points-ci",
                                        "trail_id": "de200950-a596-4e9e-8020-a8cfc1e5",
                                        "trail_name": "60aae00404ad8f41818e5f71542fbcea31ed4de8"
                                    }
                                }
                            ]
                        },
                        {
                            "rule": {
                                "type": "trail-compliance",
                                "definition": {
                                    "required": true,
                                    "exceptions": []
                                }
                            },
                            "satisfied": true,
                            "ignored": false,
                            "resolutions": [
                                {
                                    "type": "rule_satisfied",
                                    "context": {
                                        "artifact_id": "da1e0dcd-a077-433c-b860-7c48b264",
                                        "flow_id": "217f4b82-2fe6-41ef-8214-e34c3a47",
                                        "flow_name": "custom-start-points-ci",
                                        "trail_id": "de200950-a596-4e9e-8020-a8cfc1e5",
                                        "trail_name": "60aae00404ad8f41818e5f71542fbcea31ed4de8",
                                        "artifact_status": "COMPLIANT"
                                    }
                                }
                            ]
                        }
                    ]
                },
                {
                    "policy_id": "d4f22b17-1fac-4f36-a735-5a39f697",
                    "policy_version": 1,
                    "status": "COMPLIANT",
                    "rule_evaluations": [
                        {
                            "rule": {
                                "type": "provenance",
                                "definition": {
                                    "required": true,
                                    "exceptions": []
                                }
                            },
                            "satisfied": true,
                            "ignored": false,
                            "resolutions": [
                                {
                                    "type": "rule_satisfied",
                                    "context": {
                                        "artifact_id": "da1e0dcd-a077-433c-b860-7c48b264",
                                        "flow_id": "217f4b82-2fe6-41ef-8214-e34c3a47",
                                        "flow_name": "custom-start-points-ci",
                                        "trail_id": "de200950-a596-4e9e-8020-a8cfc1e5",
                                        "trail_name": "60aae00404ad8f41818e5f71542fbcea31ed4de8"
                                    }
                                }
                            ]
                        },
                        {
                            "rule": {
                                "type": "trail-compliance",
                                "definition": {
                                    "required": false,
                                    "exceptions": []
                                }
                            },
                            "satisfied": null,
                            "ignored": true,
                            "resolutions": []
                        },
                        {
                            "rule": {
                                "type": "attestation",
                                "definition": {
                                    "if_condition": null,
                                    "name": "snyk-container-scan",
                                    "type": "snyk",
                                    "must_be_compliant": true
                                }
                            },
                            "satisfied": true,
                            "ignored": false,
                            "resolutions": [
                                {
                                    "type": "rule_satisfied",
                                    "context": {
                                        "artifact_id": "da1e0dcd-a077-433c-b860-7c48b264",
                                        "flow_id": "217f4b82-2fe6-41ef-8214-e34c3a47",
                                        "flow_name": "custom-start-points-ci",
                                        "trail_id": "de200950-a596-4e9e-8020-a8cfc1e5",
                                        "trail_name": "60aae00404ad8f41818e5f71542fbcea31ed4de8",
                                        "matching_attestation_id": "fe24cd0d-1a5a-478b-bfa4-db7c0eb0",
                                        "matching_attestation_name": "snyk-container-scan",
                                        "matching_attestation_type": "snyk",
                                        "matching_attestation_compliance": true
                                    }
                                }
                            ]
                        }
                    ]
                }
            ],
            "reasons_for_incompliance": [],
            "fingerprint": "8dc9a4b5c7d65812fc5eada6a412964ee9983f0d05007a4b46a918d5d4d2c83b",
            "creationTimestamp": [
                1729236828
            ],
            "pods": null,
            "annotation": {
                "type": "unchanged",
                "was": 1,
                "now": 1
            },
            "flow_name": "custom-start-points-ci",
            "git_commit": "60aae00404ad8f41818e5f71542fbcea31ed4de8",
            "commit_url": "https://github.com/cyber-dojo/custom-start-points/commit/60aae00404ad8f41818e5f71542fbcea31ed4de8",
            "html_url": "https://app.kosli.com/cyber-dojo/flows/custom-start-points-ci/artifacts/8dc9a4b5c7d65812fc5eada6a412964ee9983f0d05007a4b46a918d5d4d2c83b?artifact_id=da1e0dcd-a077-433c-b860-7c48b264",
            "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/4affb689da03dd8980426d2fcab065744d2b1490...60aae00404ad8f41818e5f71542fbcea31ed4de8",
                "previous_git_commit": "4affb689da03dd8980426d2fcab065744d2b1490",
                "previous_fingerprint": "cda013c8291d51fdbb6c83095c44c63ebc715c307a68f49ee657f34bf4912b3e",
                "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/custom-start-points:4affb68",
                "previous_artifact_compliance_state": "COMPLIANT",
                "previous_running": false,
                "previous_git_commit_url": "https://github.com/cyber-dojo/custom-start-points/commit/4affb689da03dd8980426d2fcab065744d2b1490",
                "previous_trail_name": "4affb689da03dd8980426d2fcab065744d2b1490",
                "previous_template_reference_name": "custom-start-points"
            },
            "commit_lead_time": 478.0,
            "flows": [
                {
                    "flow_name": "custom-start-points-ci",
                    "trail_name": "60aae00404ad8f41818e5f71542fbcea31ed4de8",
                    "template_reference_name": "custom-start-points",
                    "git_commit": "60aae00404ad8f41818e5f71542fbcea31ed4de8",
                    "commit_url": "https://github.com/cyber-dojo/custom-start-points/commit/60aae00404ad8f41818e5f71542fbcea31ed4de8",
                    "git_commit_info": {
                        "sha1": "60aae00404ad8f41818e5f71542fbcea31ed4de8",
                        "message": "Merge pull request #35 from cyber-dojo/run-workflow-on-all-pushes\n\nRun workflow on all pushes",
                        "author": "Jon Jagger <jon@kosli.com>",
                        "branch": "main",
                        "timestamp": 1729236350.0,
                        "url": "https://github.com/cyber-dojo/custom-start-points/commit/60aae00404ad8f41818e5f71542fbcea31ed4de8"
                    },
                    "html_url": "https://app.kosli.com/cyber-dojo/flows/custom-start-points-ci/artifacts/8dc9a4b5c7d65812fc5eada6a412964ee9983f0d05007a4b46a918d5d4d2c83b?artifact_id=da1e0dcd-a077-433c-b860-7c48b264",
                    "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/4affb689da03dd8980426d2fcab065744d2b1490...60aae00404ad8f41818e5f71542fbcea31ed4de8",
                        "previous_git_commit": "4affb689da03dd8980426d2fcab065744d2b1490",
                        "previous_fingerprint": "cda013c8291d51fdbb6c83095c44c63ebc715c307a68f49ee657f34bf4912b3e",
                        "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/custom-start-points:4affb68",
                        "previous_artifact_compliance_state": "COMPLIANT",
                        "previous_running": false,
                        "previous_git_commit_url": "https://github.com/cyber-dojo/custom-start-points/commit/4affb689da03dd8980426d2fcab065744d2b1490",
                        "previous_trail_name": "4affb689da03dd8980426d2fcab065744d2b1490",
                        "previous_template_reference_name": "custom-start-points"
                    },
                    "commit_lead_time": 478.0,
                    "artifact_compliance_in_flow": true,
                    "flow_reasons_for_non_compliance": []
                }
            ]
        },
        {
            "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:4941b61",
            "deployments": [],
            "compliant": true,
            "policy_decisions": [
                {
                    "policy_id": "bb56942a-ebbc-4a51-ad7b-b1f83903",
                    "policy_version": 1,
                    "status": "COMPLIANT",
                    "rule_evaluations": [
                        {
                            "rule": {
                                "type": "provenance",
                                "definition": {
                                    "required": true,
                                    "exceptions": []
                                }
                            },
                            "satisfied": true,
                            "ignored": false,
                            "resolutions": [
                                {
                                    "type": "rule_satisfied",
                                    "context": {
                                        "artifact_id": "20f7245b-978b-40c1-b738-50e5c6ba",
                                        "flow_id": "c1bb83be-5195-4814-9fae-eac6bf67",
                                        "flow_name": "exercises-start-points-ci",
                                        "trail_id": "21d54112-622a-42a3-98d0-3fbf90bb",
                                        "trail_name": "4941b611620ab270d27f7b52f1510227e5703aa2"
                                    }
                                }
                            ]
                        },
                        {
                            "rule": {
                                "type": "trail-compliance",
                                "definition": {
                                    "required": true,
                                    "exceptions": []
                                }
                            },
                            "satisfied": true,
                            "ignored": false,
                            "resolutions": [
                                {
                                    "type": "rule_satisfied",
                                    "context": {
                                        "artifact_id": "20f7245b-978b-40c1-b738-50e5c6ba",
                                        "flow_id": "c1bb83be-5195-4814-9fae-eac6bf67",
                                        "flow_name": "exercises-start-points-ci",
                                        "trail_id": "21d54112-622a-42a3-98d0-3fbf90bb",
                                        "trail_name": "4941b611620ab270d27f7b52f1510227e5703aa2",
                                        "artifact_status": "COMPLIANT"
                                    }
                                }
                            ]
                        }
                    ]
                },
                {
                    "policy_id": "d4f22b17-1fac-4f36-a735-5a39f697",
                    "policy_version": 1,
                    "status": "COMPLIANT",
                    "rule_evaluations": [
                        {
                            "rule": {
                                "type": "provenance",
                                "definition": {
                                    "required": true,
                                    "exceptions": []
                                }
                            },
                            "satisfied": true,
                            "ignored": false,
                            "resolutions": [
                                {
                                    "type": "rule_satisfied",
                                    "context": {
                                        "artifact_id": "20f7245b-978b-40c1-b738-50e5c6ba",
                                        "flow_id": "c1bb83be-5195-4814-9fae-eac6bf67",
                                        "flow_name": "exercises-start-points-ci",
                                        "trail_id": "21d54112-622a-42a3-98d0-3fbf90bb",
                                        "trail_name": "4941b611620ab270d27f7b52f1510227e5703aa2"
                                    }
                                }
                            ]
                        },
                        {
                            "rule": {
                                "type": "trail-compliance",
                                "definition": {
                                    "required": false,
                                    "exceptions": []
                                }
                            },
                            "satisfied": null,
                            "ignored": true,
                            "resolutions": []
                        },
                        {
                            "rule": {
                                "type": "attestation",
                                "definition": {
                                    "if_condition": null,
                                    "name": "snyk-container-scan",
                                    "type": "snyk",
                                    "must_be_compliant": true
                                }
                            },
                            "satisfied": true,
                            "ignored": false,
                            "resolutions": [
                                {
                                    "type": "rule_satisfied",
                                    "context": {
                                        "artifact_id": "20f7245b-978b-40c1-b738-50e5c6ba",
                                        "flow_id": "c1bb83be-5195-4814-9fae-eac6bf67",
                                        "flow_name": "exercises-start-points-ci",
                                        "trail_id": "21d54112-622a-42a3-98d0-3fbf90bb",
                                        "trail_name": "4941b611620ab270d27f7b52f1510227e5703aa2",
                                        "matching_attestation_id": "d98f9015-d94a-49c4-8d93-c82a0c7a",
                                        "matching_attestation_name": "snyk-container-scan",
                                        "matching_attestation_type": "snyk",
                                        "matching_attestation_compliance": true
                                    }
                                }
                            ]
                        }
                    ]
                }
            ],
            "reasons_for_incompliance": [],
            "fingerprint": "c352870e65cac4c5b30c499bb3d0f6b895b08f02d734ddb046f6acc12608b993",
            "creationTimestamp": [
                1729236696
            ],
            "pods": null,
            "annotation": {
                "type": "unchanged",
                "was": 1,
                "now": 1
            },
            "flow_name": "exercises-start-points-ci",
            "git_commit": "4941b611620ab270d27f7b52f1510227e5703aa2",
            "commit_url": "https://github.com/cyber-dojo/exercises-start-points/commit/4941b611620ab270d27f7b52f1510227e5703aa2",
            "html_url": "https://app.kosli.com/cyber-dojo/flows/exercises-start-points-ci/artifacts/c352870e65cac4c5b30c499bb3d0f6b895b08f02d734ddb046f6acc12608b993?artifact_id=20f7245b-978b-40c1-b738-50e5c6ba",
            "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/0becb7d32beab02239efa4dc52708f0c8f4d2a40...4941b611620ab270d27f7b52f1510227e5703aa2",
                "previous_git_commit": "0becb7d32beab02239efa4dc52708f0c8f4d2a40",
                "previous_fingerprint": "3083b47bf9fe5117d1c8eb78b9bd3eb567b9cf260923caf8c17fa4b36a1af975",
                "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:0becb7d",
                "previous_artifact_compliance_state": "COMPLIANT",
                "previous_running": false,
                "previous_git_commit_url": "https://github.com/cyber-dojo/exercises-start-points/commit/0becb7d32beab02239efa4dc52708f0c8f4d2a40",
                "previous_trail_name": "0becb7d32beab02239efa4dc52708f0c8f4d2a40",
                "previous_template_reference_name": "exercises-start-points"
            },
            "commit_lead_time": 499.0,
            "flows": [
                {
                    "flow_name": "exercises-start-points-ci",
                    "trail_name": "4941b611620ab270d27f7b52f1510227e5703aa2",
                    "template_reference_name": "exercises-start-points",
                    "git_commit": "4941b611620ab270d27f7b52f1510227e5703aa2",
                    "commit_url": "https://github.com/cyber-dojo/exercises-start-points/commit/4941b611620ab270d27f7b52f1510227e5703aa2",
                    "git_commit_info": {
                        "sha1": "4941b611620ab270d27f7b52f1510227e5703aa2",
                        "message": "Merge pull request #37 from cyber-dojo/fix-build-image\n\nIn workflow, git fetch is only needed on pr branch",
                        "author": "Jon Jagger <jon@kosli.com>",
                        "branch": "main",
                        "timestamp": 1729236197.0,
                        "url": "https://github.com/cyber-dojo/exercises-start-points/commit/4941b611620ab270d27f7b52f1510227e5703aa2"
                    },
                    "html_url": "https://app.kosli.com/cyber-dojo/flows/exercises-start-points-ci/artifacts/c352870e65cac4c5b30c499bb3d0f6b895b08f02d734ddb046f6acc12608b993?artifact_id=20f7245b-978b-40c1-b738-50e5c6ba",
                    "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/0becb7d32beab02239efa4dc52708f0c8f4d2a40...4941b611620ab270d27f7b52f1510227e5703aa2",
                        "previous_git_commit": "0becb7d32beab02239efa4dc52708f0c8f4d2a40",
                        "previous_fingerprint": "3083b47bf9fe5117d1c8eb78b9bd3eb567b9cf260923caf8c17fa4b36a1af975",
                        "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/exercises-start-points:0becb7d",
                        "previous_artifact_compliance_state": "COMPLIANT",
                        "previous_running": false,
                        "previous_git_commit_url": "https://github.com/cyber-dojo/exercises-start-points/commit/0becb7d32beab02239efa4dc52708f0c8f4d2a40",
                        "previous_trail_name": "0becb7d32beab02239efa4dc52708f0c8f4d2a40",
                        "previous_template_reference_name": "exercises-start-points"
                    },
                    "commit_lead_time": 499.0,
                    "artifact_compliance_in_flow": true,
                    "flow_reasons_for_non_compliance": []
                }
            ]
        },
        {
            "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:e59fdb9",
            "deployments": [],
            "compliant": true,
            "policy_decisions": [
                {
                    "policy_id": "bb56942a-ebbc-4a51-ad7b-b1f83903",
                    "policy_version": 1,
                    "status": "COMPLIANT",
                    "rule_evaluations": [
                        {
                            "rule": {
                                "type": "provenance",
                                "definition": {
                                    "required": true,
                                    "exceptions": []
                                }
                            },
                            "satisfied": true,
                            "ignored": false,
                            "resolutions": [
                                {
                                    "type": "rule_satisfied",
                                    "context": {
                                        "artifact_id": "72ceb41e-cc45-41bd-b113-9eae837f",
                                        "flow_id": "fd583a48-28de-4b5c-b4a7-b6356e94",
                                        "flow_name": "web-ci",
                                        "trail_id": "5e4a8987-c1a2-4274-b99b-d67e57d9",
                                        "trail_name": "e59fdb9b2d03a9476722bb807cd3345b413722fd"
                                    }
                                }
                            ]
                        },
                        {
                            "rule": {
                                "type": "trail-compliance",
                                "definition": {
                                    "required": true,
                                    "exceptions": []
                                }
                            },
                            "satisfied": true,
                            "ignored": false,
                            "resolutions": [
                                {
                                    "type": "rule_satisfied",
                                    "context": {
                                        "artifact_id": "72ceb41e-cc45-41bd-b113-9eae837f",
                                        "flow_id": "fd583a48-28de-4b5c-b4a7-b6356e94",
                                        "flow_name": "web-ci",
                                        "trail_id": "5e4a8987-c1a2-4274-b99b-d67e57d9",
                                        "trail_name": "e59fdb9b2d03a9476722bb807cd3345b413722fd",
                                        "artifact_status": "COMPLIANT"
                                    }
                                }
                            ]
                        }
                    ]
                },
                {
                    "policy_id": "d4f22b17-1fac-4f36-a735-5a39f697",
                    "policy_version": 1,
                    "status": "COMPLIANT",
                    "rule_evaluations": [
                        {
                            "rule": {
                                "type": "provenance",
                                "definition": {
                                    "required": true,
                                    "exceptions": []
                                }
                            },
                            "satisfied": true,
                            "ignored": false,
                            "resolutions": [
                                {
                                    "type": "rule_satisfied",
                                    "context": {
                                        "artifact_id": "72ceb41e-cc45-41bd-b113-9eae837f",
                                        "flow_id": "fd583a48-28de-4b5c-b4a7-b6356e94",
                                        "flow_name": "web-ci",
                                        "trail_id": "5e4a8987-c1a2-4274-b99b-d67e57d9",
                                        "trail_name": "e59fdb9b2d03a9476722bb807cd3345b413722fd"
                                    }
                                }
                            ]
                        },
                        {
                            "rule": {
                                "type": "trail-compliance",
                                "definition": {
                                    "required": false,
                                    "exceptions": []
                                }
                            },
                            "satisfied": null,
                            "ignored": true,
                            "resolutions": []
                        },
                        {
                            "rule": {
                                "type": "attestation",
                                "definition": {
                                    "if_condition": null,
                                    "name": "snyk-container-scan",
                                    "type": "snyk",
                                    "must_be_compliant": true
                                }
                            },
                            "satisfied": true,
                            "ignored": false,
                            "resolutions": [
                                {
                                    "type": "rule_satisfied",
                                    "context": {
                                        "artifact_id": "72ceb41e-cc45-41bd-b113-9eae837f",
                                        "flow_id": "fd583a48-28de-4b5c-b4a7-b6356e94",
                                        "flow_name": "web-ci",
                                        "trail_id": "5e4a8987-c1a2-4274-b99b-d67e57d9",
                                        "trail_name": "e59fdb9b2d03a9476722bb807cd3345b413722fd",
                                        "matching_attestation_id": "fbbbe8f2-0064-4fb5-8f9e-266f539a",
                                        "matching_attestation_name": "snyk-container-scan",
                                        "matching_attestation_type": "snyk",
                                        "matching_attestation_compliance": true
                                    }
                                }
                            ]
                        }
                    ]
                }
            ],
            "reasons_for_incompliance": [],
            "fingerprint": "3b2c3458c75a42af7dd598aeef9bcc06271b7dac6d2ba5578910839f6bad50f4",
            "creationTimestamp": [
                1729235175,
                1729235182,
                1729235183
            ],
            "pods": null,
            "annotation": {
                "type": "unchanged",
                "was": 3,
                "now": 3
            },
            "flow_name": "web-ci",
            "git_commit": "e59fdb9b2d03a9476722bb807cd3345b413722fd",
            "commit_url": "https://github.com/cyber-dojo/web/commit/e59fdb9b2d03a9476722bb807cd3345b413722fd",
            "html_url": "https://app.kosli.com/cyber-dojo/flows/web-ci/artifacts/3b2c3458c75a42af7dd598aeef9bcc06271b7dac6d2ba5578910839f6bad50f4?artifact_id=72ceb41e-cc45-41bd-b113-9eae837f",
            "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/web-ci",
            "deployment_diff": {
                "diff_url": "https://github.com/cyber-dojo/web/compare/bc17b5b291cd9ee76942d5d7e0f9fba950fa25a4...e59fdb9b2d03a9476722bb807cd3345b413722fd",
                "previous_git_commit": "bc17b5b291cd9ee76942d5d7e0f9fba950fa25a4",
                "previous_fingerprint": "312bb3fd31c5c89cfe28fc9261068c835580b74e84dc478d283c0ff8b8a0ab7f",
                "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:bc17b5b",
                "previous_artifact_compliance_state": "COMPLIANT",
                "previous_running": false,
                "previous_git_commit_url": "https://github.com/cyber-dojo/web/commit/bc17b5b291cd9ee76942d5d7e0f9fba950fa25a4",
                "previous_trail_name": "bc17b5b291cd9ee76942d5d7e0f9fba950fa25a4",
                "previous_template_reference_name": "web"
            },
            "commit_lead_time": 528.0,
            "flows": [
                {
                    "flow_name": "web-ci",
                    "trail_name": "e59fdb9b2d03a9476722bb807cd3345b413722fd",
                    "template_reference_name": "web",
                    "git_commit": "e59fdb9b2d03a9476722bb807cd3345b413722fd",
                    "commit_url": "https://github.com/cyber-dojo/web/commit/e59fdb9b2d03a9476722bb807cd3345b413722fd",
                    "git_commit_info": {
                        "sha1": "e59fdb9b2d03a9476722bb807cd3345b413722fd",
                        "message": "Run workflow on all pushes (#125)",
                        "author": "Jon Jagger <jon@kosli.com>",
                        "branch": "main",
                        "timestamp": 1729234647.0,
                        "url": "https://github.com/cyber-dojo/web/commit/e59fdb9b2d03a9476722bb807cd3345b413722fd"
                    },
                    "html_url": "https://app.kosli.com/cyber-dojo/flows/web-ci/artifacts/3b2c3458c75a42af7dd598aeef9bcc06271b7dac6d2ba5578910839f6bad50f4?artifact_id=72ceb41e-cc45-41bd-b113-9eae837f",
                    "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/web-ci",
                    "deployment_diff": {
                        "diff_url": "https://github.com/cyber-dojo/web/compare/bc17b5b291cd9ee76942d5d7e0f9fba950fa25a4...e59fdb9b2d03a9476722bb807cd3345b413722fd",
                        "previous_git_commit": "bc17b5b291cd9ee76942d5d7e0f9fba950fa25a4",
                        "previous_fingerprint": "312bb3fd31c5c89cfe28fc9261068c835580b74e84dc478d283c0ff8b8a0ab7f",
                        "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/web:bc17b5b",
                        "previous_artifact_compliance_state": "COMPLIANT",
                        "previous_running": false,
                        "previous_git_commit_url": "https://github.com/cyber-dojo/web/commit/bc17b5b291cd9ee76942d5d7e0f9fba950fa25a4",
                        "previous_trail_name": "bc17b5b291cd9ee76942d5d7e0f9fba950fa25a4",
                        "previous_template_reference_name": "web"
                    },
                    "commit_lead_time": 528.0,
                    "artifact_compliance_in_flow": true,
                    "flow_reasons_for_non_compliance": []
                }
            ]
        },
        {
            "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:d529418",
            "deployments": [],
            "compliant": true,
            "policy_decisions": [
                {
                    "policy_id": "bb56942a-ebbc-4a51-ad7b-b1f83903",
                    "policy_version": 1,
                    "status": "COMPLIANT",
                    "rule_evaluations": [
                        {
                            "rule": {
                                "type": "provenance",
                                "definition": {
                                    "required": true,
                                    "exceptions": []
                                }
                            },
                            "satisfied": true,
                            "ignored": false,
                            "resolutions": [
                                {
                                    "type": "rule_satisfied",
                                    "context": {
                                        "artifact_id": "44aa3a7c-f871-42ce-828e-8606e0f9",
                                        "flow_id": "28447c7d-904b-4594-8b05-88d5d938",
                                        "flow_name": "nginx-ci",
                                        "trail_id": "94b8d7ca-3a4c-4309-8914-e1d06a24",
                                        "trail_name": "d529418ddc760f199014bd5396ae2893497aaa98"
                                    }
                                }
                            ]
                        },
                        {
                            "rule": {
                                "type": "trail-compliance",
                                "definition": {
                                    "required": true,
                                    "exceptions": []
                                }
                            },
                            "satisfied": true,
                            "ignored": false,
                            "resolutions": [
                                {
                                    "type": "rule_satisfied",
                                    "context": {
                                        "artifact_id": "44aa3a7c-f871-42ce-828e-8606e0f9",
                                        "flow_id": "28447c7d-904b-4594-8b05-88d5d938",
                                        "flow_name": "nginx-ci",
                                        "trail_id": "94b8d7ca-3a4c-4309-8914-e1d06a24",
                                        "trail_name": "d529418ddc760f199014bd5396ae2893497aaa98",
                                        "artifact_status": "COMPLIANT"
                                    }
                                }
                            ]
                        }
                    ]
                },
                {
                    "policy_id": "d4f22b17-1fac-4f36-a735-5a39f697",
                    "policy_version": 1,
                    "status": "COMPLIANT",
                    "rule_evaluations": [
                        {
                            "rule": {
                                "type": "provenance",
                                "definition": {
                                    "required": true,
                                    "exceptions": []
                                }
                            },
                            "satisfied": true,
                            "ignored": false,
                            "resolutions": [
                                {
                                    "type": "rule_satisfied",
                                    "context": {
                                        "artifact_id": "44aa3a7c-f871-42ce-828e-8606e0f9",
                                        "flow_id": "28447c7d-904b-4594-8b05-88d5d938",
                                        "flow_name": "nginx-ci",
                                        "trail_id": "94b8d7ca-3a4c-4309-8914-e1d06a24",
                                        "trail_name": "d529418ddc760f199014bd5396ae2893497aaa98"
                                    }
                                }
                            ]
                        },
                        {
                            "rule": {
                                "type": "trail-compliance",
                                "definition": {
                                    "required": false,
                                    "exceptions": []
                                }
                            },
                            "satisfied": null,
                            "ignored": true,
                            "resolutions": []
                        },
                        {
                            "rule": {
                                "type": "attestation",
                                "definition": {
                                    "if_condition": null,
                                    "name": "snyk-container-scan",
                                    "type": "snyk",
                                    "must_be_compliant": true
                                }
                            },
                            "satisfied": true,
                            "ignored": false,
                            "resolutions": [
                                {
                                    "type": "rule_satisfied",
                                    "context": {
                                        "artifact_id": "44aa3a7c-f871-42ce-828e-8606e0f9",
                                        "flow_id": "28447c7d-904b-4594-8b05-88d5d938",
                                        "flow_name": "nginx-ci",
                                        "trail_id": "94b8d7ca-3a4c-4309-8914-e1d06a24",
                                        "trail_name": "d529418ddc760f199014bd5396ae2893497aaa98",
                                        "matching_attestation_id": "3d21cc38-989d-4844-a03f-50272540",
                                        "matching_attestation_name": "snyk-container-scan",
                                        "matching_attestation_type": "snyk",
                                        "matching_attestation_compliance": true
                                    }
                                }
                            ]
                        }
                    ]
                }
            ],
            "reasons_for_incompliance": [],
            "fingerprint": "7615d5a81eadf771f6b1bb7b82547d850d85c1a0687e647455d4700488a74148",
            "creationTimestamp": [
                1729235140
            ],
            "pods": null,
            "annotation": {
                "type": "unchanged",
                "was": 1,
                "now": 1
            },
            "flow_name": "nginx-ci",
            "git_commit": "d529418ddc760f199014bd5396ae2893497aaa98",
            "commit_url": "https://github.com/cyber-dojo/nginx/commit/d529418ddc760f199014bd5396ae2893497aaa98",
            "html_url": "https://app.kosli.com/cyber-dojo/flows/nginx-ci/artifacts/7615d5a81eadf771f6b1bb7b82547d850d85c1a0687e647455d4700488a74148?artifact_id=44aa3a7c-f871-42ce-828e-8606e0f9",
            "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/nginx-ci",
            "deployment_diff": {
                "diff_url": "https://github.com/cyber-dojo/nginx/compare/3fa2a5f2e9d023a840dec478cc10c632204dc9ae...d529418ddc760f199014bd5396ae2893497aaa98",
                "previous_git_commit": "3fa2a5f2e9d023a840dec478cc10c632204dc9ae",
                "previous_fingerprint": "4ae7331e24aa1b671e1c4e3f7bdfcb8ad54af31f6ab00adef9b96d3213ae86e6",
                "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:3fa2a5f",
                "previous_artifact_compliance_state": "COMPLIANT",
                "previous_running": false,
                "previous_git_commit_url": "https://github.com/cyber-dojo/nginx/commit/3fa2a5f2e9d023a840dec478cc10c632204dc9ae",
                "previous_trail_name": "3fa2a5f2e9d023a840dec478cc10c632204dc9ae",
                "previous_template_reference_name": "nginx"
            },
            "commit_lead_time": 751.0,
            "flows": [
                {
                    "flow_name": "nginx-ci",
                    "trail_name": "d529418ddc760f199014bd5396ae2893497aaa98",
                    "template_reference_name": "nginx",
                    "git_commit": "d529418ddc760f199014bd5396ae2893497aaa98",
                    "commit_url": "https://github.com/cyber-dojo/nginx/commit/d529418ddc760f199014bd5396ae2893497aaa98",
                    "git_commit_info": {
                        "sha1": "d529418ddc760f199014bd5396ae2893497aaa98",
                        "message": "Merge pull request #31 from cyber-dojo/run-workflow-on-all-pushes\n\nRun workflow on all pushes",
                        "author": "Jon Jagger <jon@kosli.com>",
                        "branch": "main",
                        "timestamp": 1729234389.0,
                        "url": "https://github.com/cyber-dojo/nginx/commit/d529418ddc760f199014bd5396ae2893497aaa98"
                    },
                    "html_url": "https://app.kosli.com/cyber-dojo/flows/nginx-ci/artifacts/7615d5a81eadf771f6b1bb7b82547d850d85c1a0687e647455d4700488a74148?artifact_id=44aa3a7c-f871-42ce-828e-8606e0f9",
                    "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/nginx-ci",
                    "deployment_diff": {
                        "diff_url": "https://github.com/cyber-dojo/nginx/compare/3fa2a5f2e9d023a840dec478cc10c632204dc9ae...d529418ddc760f199014bd5396ae2893497aaa98",
                        "previous_git_commit": "3fa2a5f2e9d023a840dec478cc10c632204dc9ae",
                        "previous_fingerprint": "4ae7331e24aa1b671e1c4e3f7bdfcb8ad54af31f6ab00adef9b96d3213ae86e6",
                        "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/nginx:3fa2a5f",
                        "previous_artifact_compliance_state": "COMPLIANT",
                        "previous_running": false,
                        "previous_git_commit_url": "https://github.com/cyber-dojo/nginx/commit/3fa2a5f2e9d023a840dec478cc10c632204dc9ae",
                        "previous_trail_name": "3fa2a5f2e9d023a840dec478cc10c632204dc9ae",
                        "previous_template_reference_name": "nginx"
                    },
                    "commit_lead_time": 751.0,
                    "artifact_compliance_in_flow": true,
                    "flow_reasons_for_non_compliance": []
                }
            ]
        },
        {
            "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:f6565a5",
            "deployments": [],
            "compliant": true,
            "policy_decisions": [
                {
                    "policy_id": "bb56942a-ebbc-4a51-ad7b-b1f83903",
                    "policy_version": 1,
                    "status": "COMPLIANT",
                    "rule_evaluations": [
                        {
                            "rule": {
                                "type": "provenance",
                                "definition": {
                                    "required": true,
                                    "exceptions": []
                                }
                            },
                            "satisfied": true,
                            "ignored": false,
                            "resolutions": [
                                {
                                    "type": "rule_satisfied",
                                    "context": {
                                        "artifact_id": "8c9421e8-325d-41ea-a89a-3e56b8ca",
                                        "flow_id": "e54bdf65-de27-448f-807a-08e09590",
                                        "flow_name": "saver-ci",
                                        "trail_id": "cb90d3f8-6f54-40e8-82ff-3efd233c",
                                        "trail_name": "f6565a5dcd07819bfffbc034213ec00a5968b4c0"
                                    }
                                }
                            ]
                        },
                        {
                            "rule": {
                                "type": "trail-compliance",
                                "definition": {
                                    "required": true,
                                    "exceptions": []
                                }
                            },
                            "satisfied": true,
                            "ignored": false,
                            "resolutions": [
                                {
                                    "type": "rule_satisfied",
                                    "context": {
                                        "artifact_id": "8c9421e8-325d-41ea-a89a-3e56b8ca",
                                        "flow_id": "e54bdf65-de27-448f-807a-08e09590",
                                        "flow_name": "saver-ci",
                                        "trail_id": "cb90d3f8-6f54-40e8-82ff-3efd233c",
                                        "trail_name": "f6565a5dcd07819bfffbc034213ec00a5968b4c0",
                                        "artifact_status": "COMPLIANT"
                                    }
                                }
                            ]
                        }
                    ]
                },
                {
                    "policy_id": "d4f22b17-1fac-4f36-a735-5a39f697",
                    "policy_version": 1,
                    "status": "COMPLIANT",
                    "rule_evaluations": [
                        {
                            "rule": {
                                "type": "provenance",
                                "definition": {
                                    "required": true,
                                    "exceptions": []
                                }
                            },
                            "satisfied": true,
                            "ignored": false,
                            "resolutions": [
                                {
                                    "type": "rule_satisfied",
                                    "context": {
                                        "artifact_id": "8c9421e8-325d-41ea-a89a-3e56b8ca",
                                        "flow_id": "e54bdf65-de27-448f-807a-08e09590",
                                        "flow_name": "saver-ci",
                                        "trail_id": "cb90d3f8-6f54-40e8-82ff-3efd233c",
                                        "trail_name": "f6565a5dcd07819bfffbc034213ec00a5968b4c0"
                                    }
                                }
                            ]
                        },
                        {
                            "rule": {
                                "type": "trail-compliance",
                                "definition": {
                                    "required": false,
                                    "exceptions": []
                                }
                            },
                            "satisfied": null,
                            "ignored": true,
                            "resolutions": []
                        },
                        {
                            "rule": {
                                "type": "attestation",
                                "definition": {
                                    "if_condition": null,
                                    "name": "snyk-container-scan",
                                    "type": "snyk",
                                    "must_be_compliant": true
                                }
                            },
                            "satisfied": true,
                            "ignored": false,
                            "resolutions": [
                                {
                                    "type": "rule_satisfied",
                                    "context": {
                                        "artifact_id": "8c9421e8-325d-41ea-a89a-3e56b8ca",
                                        "flow_id": "e54bdf65-de27-448f-807a-08e09590",
                                        "flow_name": "saver-ci",
                                        "trail_id": "cb90d3f8-6f54-40e8-82ff-3efd233c",
                                        "trail_name": "f6565a5dcd07819bfffbc034213ec00a5968b4c0",
                                        "matching_attestation_id": "db8f3f98-fc3a-4bf2-a97f-d4c1ae1a",
                                        "matching_attestation_name": "snyk-container-scan",
                                        "matching_attestation_type": "snyk",
                                        "matching_attestation_compliance": true
                                    }
                                }
                            ]
                        }
                    ]
                }
            ],
            "reasons_for_incompliance": [],
            "fingerprint": "bbd34a4d5dc2ff5f5a82fde0b4ebba65954b7077db81228df574287a0e607035",
            "creationTimestamp": [
                1729234525
            ],
            "pods": null,
            "annotation": {
                "type": "unchanged",
                "was": 1,
                "now": 1
            },
            "flow_name": "saver-ci",
            "git_commit": "f6565a5dcd07819bfffbc034213ec00a5968b4c0",
            "commit_url": "https://github.com/cyber-dojo/saver/commit/f6565a5dcd07819bfffbc034213ec00a5968b4c0",
            "html_url": "https://app.kosli.com/cyber-dojo/flows/saver-ci/artifacts/bbd34a4d5dc2ff5f5a82fde0b4ebba65954b7077db81228df574287a0e607035?artifact_id=8c9421e8-325d-41ea-a89a-3e56b8ca",
            "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/saver-ci",
            "deployment_diff": {
                "diff_url": "https://github.com/cyber-dojo/saver/compare/5d0dab2a7ba1f36ff04ece871c5f2a6136eef877...f6565a5dcd07819bfffbc034213ec00a5968b4c0",
                "previous_git_commit": "5d0dab2a7ba1f36ff04ece871c5f2a6136eef877",
                "previous_fingerprint": "19ab7651e20e923edd9fc7146459e5cfc218a609d2612b2a947453f89f36207b",
                "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:5d0dab2",
                "previous_artifact_compliance_state": "COMPLIANT",
                "previous_running": false,
                "previous_git_commit_url": "https://github.com/cyber-dojo/saver/commit/5d0dab2a7ba1f36ff04ece871c5f2a6136eef877",
                "previous_trail_name": "5d0dab2a7ba1f36ff04ece871c5f2a6136eef877",
                "previous_template_reference_name": "saver"
            },
            "commit_lead_time": 544.0,
            "flows": [
                {
                    "flow_name": "saver-ci",
                    "trail_name": "f6565a5dcd07819bfffbc034213ec00a5968b4c0",
                    "template_reference_name": "saver",
                    "git_commit": "f6565a5dcd07819bfffbc034213ec00a5968b4c0",
                    "commit_url": "https://github.com/cyber-dojo/saver/commit/f6565a5dcd07819bfffbc034213ec00a5968b4c0",
                    "git_commit_info": {
                        "sha1": "f6565a5dcd07819bfffbc034213ec00a5968b4c0",
                        "message": "Merge pull request #83 from cyber-dojo/run-workflow-on-all-pushes\n\nRun workflow on all pushes",
                        "author": "Jon Jagger <jon@kosli.com>",
                        "branch": "main",
                        "timestamp": 1729233981.0,
                        "url": "https://github.com/cyber-dojo/saver/commit/f6565a5dcd07819bfffbc034213ec00a5968b4c0"
                    },
                    "html_url": "https://app.kosli.com/cyber-dojo/flows/saver-ci/artifacts/bbd34a4d5dc2ff5f5a82fde0b4ebba65954b7077db81228df574287a0e607035?artifact_id=8c9421e8-325d-41ea-a89a-3e56b8ca",
                    "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/saver-ci",
                    "deployment_diff": {
                        "diff_url": "https://github.com/cyber-dojo/saver/compare/5d0dab2a7ba1f36ff04ece871c5f2a6136eef877...f6565a5dcd07819bfffbc034213ec00a5968b4c0",
                        "previous_git_commit": "5d0dab2a7ba1f36ff04ece871c5f2a6136eef877",
                        "previous_fingerprint": "19ab7651e20e923edd9fc7146459e5cfc218a609d2612b2a947453f89f36207b",
                        "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/saver:5d0dab2",
                        "previous_artifact_compliance_state": "COMPLIANT",
                        "previous_running": false,
                        "previous_git_commit_url": "https://github.com/cyber-dojo/saver/commit/5d0dab2a7ba1f36ff04ece871c5f2a6136eef877",
                        "previous_trail_name": "5d0dab2a7ba1f36ff04ece871c5f2a6136eef877",
                        "previous_template_reference_name": "saver"
                    },
                    "commit_lead_time": 544.0,
                    "artifact_compliance_in_flow": true,
                    "flow_reasons_for_non_compliance": []
                }
            ]
        },
        {
            "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:b550f62",
            "deployments": [],
            "compliant": true,
            "policy_decisions": [
                {
                    "policy_id": "bb56942a-ebbc-4a51-ad7b-b1f83903",
                    "policy_version": 1,
                    "status": "COMPLIANT",
                    "rule_evaluations": [
                        {
                            "rule": {
                                "type": "provenance",
                                "definition": {
                                    "required": true,
                                    "exceptions": []
                                }
                            },
                            "satisfied": true,
                            "ignored": false,
                            "resolutions": [
                                {
                                    "type": "rule_satisfied",
                                    "context": {
                                        "artifact_id": "bfe7cb7e-5f3c-411f-b954-2447dd9e",
                                        "flow_id": "f60c8f3f-67cd-4496-8e17-ed6fdb1e",
                                        "flow_name": "dashboard-ci",
                                        "trail_id": "ef3c2476-1d2a-49ea-8592-57750eb0",
                                        "trail_name": "b550f626d5e78e52842d84cf2a81af7dd1988b82"
                                    }
                                }
                            ]
                        },
                        {
                            "rule": {
                                "type": "trail-compliance",
                                "definition": {
                                    "required": true,
                                    "exceptions": []
                                }
                            },
                            "satisfied": true,
                            "ignored": false,
                            "resolutions": [
                                {
                                    "type": "rule_satisfied",
                                    "context": {
                                        "artifact_id": "bfe7cb7e-5f3c-411f-b954-2447dd9e",
                                        "flow_id": "f60c8f3f-67cd-4496-8e17-ed6fdb1e",
                                        "flow_name": "dashboard-ci",
                                        "trail_id": "ef3c2476-1d2a-49ea-8592-57750eb0",
                                        "trail_name": "b550f626d5e78e52842d84cf2a81af7dd1988b82",
                                        "artifact_status": "COMPLIANT"
                                    }
                                }
                            ]
                        }
                    ]
                },
                {
                    "policy_id": "d4f22b17-1fac-4f36-a735-5a39f697",
                    "policy_version": 1,
                    "status": "COMPLIANT",
                    "rule_evaluations": [
                        {
                            "rule": {
                                "type": "provenance",
                                "definition": {
                                    "required": true,
                                    "exceptions": []
                                }
                            },
                            "satisfied": true,
                            "ignored": false,
                            "resolutions": [
                                {
                                    "type": "rule_satisfied",
                                    "context": {
                                        "artifact_id": "bfe7cb7e-5f3c-411f-b954-2447dd9e",
                                        "flow_id": "f60c8f3f-67cd-4496-8e17-ed6fdb1e",
                                        "flow_name": "dashboard-ci",
                                        "trail_id": "ef3c2476-1d2a-49ea-8592-57750eb0",
                                        "trail_name": "b550f626d5e78e52842d84cf2a81af7dd1988b82"
                                    }
                                }
                            ]
                        },
                        {
                            "rule": {
                                "type": "trail-compliance",
                                "definition": {
                                    "required": false,
                                    "exceptions": []
                                }
                            },
                            "satisfied": null,
                            "ignored": true,
                            "resolutions": []
                        },
                        {
                            "rule": {
                                "type": "attestation",
                                "definition": {
                                    "if_condition": null,
                                    "name": "snyk-container-scan",
                                    "type": "snyk",
                                    "must_be_compliant": true
                                }
                            },
                            "satisfied": true,
                            "ignored": false,
                            "resolutions": [
                                {
                                    "type": "rule_satisfied",
                                    "context": {
                                        "artifact_id": "bfe7cb7e-5f3c-411f-b954-2447dd9e",
                                        "flow_id": "f60c8f3f-67cd-4496-8e17-ed6fdb1e",
                                        "flow_name": "dashboard-ci",
                                        "trail_id": "ef3c2476-1d2a-49ea-8592-57750eb0",
                                        "trail_name": "b550f626d5e78e52842d84cf2a81af7dd1988b82",
                                        "matching_attestation_id": "f666f535-484c-4841-9139-87966281",
                                        "matching_attestation_name": "snyk-container-scan",
                                        "matching_attestation_type": "snyk",
                                        "matching_attestation_compliance": true
                                    }
                                }
                            ]
                        }
                    ]
                }
            ],
            "reasons_for_incompliance": [],
            "fingerprint": "8fd8bba06e8453ed5326465c4ca9839ac82c10b60e4978c2cb60769c7ef02d6c",
            "creationTimestamp": [
                1729233600
            ],
            "pods": null,
            "annotation": {
                "type": "unchanged",
                "was": 1,
                "now": 1
            },
            "flow_name": "dashboard-ci",
            "git_commit": "b550f626d5e78e52842d84cf2a81af7dd1988b82",
            "commit_url": "https://github.com/cyber-dojo/dashboard/commit/b550f626d5e78e52842d84cf2a81af7dd1988b82",
            "html_url": "https://app.kosli.com/cyber-dojo/flows/dashboard-ci/artifacts/8fd8bba06e8453ed5326465c4ca9839ac82c10b60e4978c2cb60769c7ef02d6c?artifact_id=bfe7cb7e-5f3c-411f-b954-2447dd9e",
            "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/dashboard-ci",
            "deployment_diff": {
                "diff_url": "https://github.com/cyber-dojo/dashboard/compare/3377575b90a02225fca689aaa44416d9d6fb21de...b550f626d5e78e52842d84cf2a81af7dd1988b82",
                "previous_git_commit": "3377575b90a02225fca689aaa44416d9d6fb21de",
                "previous_fingerprint": "b122392fd2038bd2a9ed3faabcffff27573c1a5108a205721b1934e9378dc70f",
                "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:3377575",
                "previous_artifact_compliance_state": "COMPLIANT",
                "previous_running": false,
                "previous_git_commit_url": "https://github.com/cyber-dojo/dashboard/commit/3377575b90a02225fca689aaa44416d9d6fb21de",
                "previous_trail_name": "3377575b90a02225fca689aaa44416d9d6fb21de",
                "previous_template_reference_name": "dashboard"
            },
            "commit_lead_time": 807.0,
            "flows": [
                {
                    "flow_name": "dashboard-ci",
                    "trail_name": "b550f626d5e78e52842d84cf2a81af7dd1988b82",
                    "template_reference_name": "dashboard",
                    "git_commit": "b550f626d5e78e52842d84cf2a81af7dd1988b82",
                    "commit_url": "https://github.com/cyber-dojo/dashboard/commit/b550f626d5e78e52842d84cf2a81af7dd1988b82",
                    "git_commit_info": {
                        "sha1": "b550f626d5e78e52842d84cf2a81af7dd1988b82",
                        "message": "Simplify pull-request workflow job (#228)",
                        "author": "Jon Jagger <jon@kosli.com>",
                        "branch": "main",
                        "timestamp": 1729232793.0,
                        "url": "https://github.com/cyber-dojo/dashboard/commit/b550f626d5e78e52842d84cf2a81af7dd1988b82"
                    },
                    "html_url": "https://app.kosli.com/cyber-dojo/flows/dashboard-ci/artifacts/8fd8bba06e8453ed5326465c4ca9839ac82c10b60e4978c2cb60769c7ef02d6c?artifact_id=bfe7cb7e-5f3c-411f-b954-2447dd9e",
                    "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/dashboard-ci",
                    "deployment_diff": {
                        "diff_url": "https://github.com/cyber-dojo/dashboard/compare/3377575b90a02225fca689aaa44416d9d6fb21de...b550f626d5e78e52842d84cf2a81af7dd1988b82",
                        "previous_git_commit": "3377575b90a02225fca689aaa44416d9d6fb21de",
                        "previous_fingerprint": "b122392fd2038bd2a9ed3faabcffff27573c1a5108a205721b1934e9378dc70f",
                        "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/dashboard:3377575",
                        "previous_artifact_compliance_state": "COMPLIANT",
                        "previous_running": false,
                        "previous_git_commit_url": "https://github.com/cyber-dojo/dashboard/commit/3377575b90a02225fca689aaa44416d9d6fb21de",
                        "previous_trail_name": "3377575b90a02225fca689aaa44416d9d6fb21de",
                        "previous_template_reference_name": "dashboard"
                    },
                    "commit_lead_time": 807.0,
                    "artifact_compliance_in_flow": true,
                    "flow_reasons_for_non_compliance": []
                }
            ]
        },
        {
            "name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/creator:fbc4a4c",
            "deployments": [],
            "compliant": true,
            "policy_decisions": [
                {
                    "policy_id": "bb56942a-ebbc-4a51-ad7b-b1f83903",
                    "policy_version": 1,
                    "status": "COMPLIANT",
                    "rule_evaluations": [
                        {
                            "rule": {
                                "type": "provenance",
                                "definition": {
                                    "required": true,
                                    "exceptions": []
                                }
                            },
                            "satisfied": true,
                            "ignored": false,
                            "resolutions": [
                                {
                                    "type": "rule_satisfied",
                                    "context": {
                                        "artifact_id": "81645304-afb7-42e6-9dd5-3d9ab6f7",
                                        "flow_id": "e4e08b57-e36e-4724-acc8-04e7e437",
                                        "flow_name": "creator-ci",
                                        "trail_id": "6e5df21a-d139-4440-b437-98af7946",
                                        "trail_name": "fbc4a4c30f8cdccd153b359df1be86bcb0b75f51"
                                    }
                                }
                            ]
                        },
                        {
                            "rule": {
                                "type": "trail-compliance",
                                "definition": {
                                    "required": true,
                                    "exceptions": []
                                }
                            },
                            "satisfied": true,
                            "ignored": false,
                            "resolutions": [
                                {
                                    "type": "rule_satisfied",
                                    "context": {
                                        "artifact_id": "81645304-afb7-42e6-9dd5-3d9ab6f7",
                                        "flow_id": "e4e08b57-e36e-4724-acc8-04e7e437",
                                        "flow_name": "creator-ci",
                                        "trail_id": "6e5df21a-d139-4440-b437-98af7946",
                                        "trail_name": "fbc4a4c30f8cdccd153b359df1be86bcb0b75f51",
                                        "artifact_status": "COMPLIANT"
                                    }
                                }
                            ]
                        }
                    ]
                },
                {
                    "policy_id": "d4f22b17-1fac-4f36-a735-5a39f697",
                    "policy_version": 1,
                    "status": "COMPLIANT",
                    "rule_evaluations": [
                        {
                            "rule": {
                                "type": "provenance",
                                "definition": {
                                    "required": true,
                                    "exceptions": []
                                }
                            },
                            "satisfied": true,
                            "ignored": false,
                            "resolutions": [
                                {
                                    "type": "rule_satisfied",
                                    "context": {
                                        "artifact_id": "81645304-afb7-42e6-9dd5-3d9ab6f7",
                                        "flow_id": "e4e08b57-e36e-4724-acc8-04e7e437",
                                        "flow_name": "creator-ci",
                                        "trail_id": "6e5df21a-d139-4440-b437-98af7946",
                                        "trail_name": "fbc4a4c30f8cdccd153b359df1be86bcb0b75f51"
                                    }
                                }
                            ]
                        },
                        {
                            "rule": {
                                "type": "trail-compliance",
                                "definition": {
                                    "required": false,
                                    "exceptions": []
                                }
                            },
                            "satisfied": null,
                            "ignored": true,
                            "resolutions": []
                        },
                        {
                            "rule": {
                                "type": "attestation",
                                "definition": {
                                    "if_condition": null,
                                    "name": "snyk-container-scan",
                                    "type": "snyk",
                                    "must_be_compliant": true
                                }
                            },
                            "satisfied": true,
                            "ignored": false,
                            "resolutions": [
                                {
                                    "type": "rule_satisfied",
                                    "context": {
                                        "artifact_id": "81645304-afb7-42e6-9dd5-3d9ab6f7",
                                        "flow_id": "e4e08b57-e36e-4724-acc8-04e7e437",
                                        "flow_name": "creator-ci",
                                        "trail_id": "6e5df21a-d139-4440-b437-98af7946",
                                        "trail_name": "fbc4a4c30f8cdccd153b359df1be86bcb0b75f51",
                                        "matching_attestation_id": "7f14b6e1-f6da-4e30-bf3c-c3323a5f",
                                        "matching_attestation_name": "snyk-container-scan",
                                        "matching_attestation_type": "snyk",
                                        "matching_attestation_compliance": true
                                    }
                                }
                            ]
                        }
                    ]
                }
            ],
            "reasons_for_incompliance": [],
            "fingerprint": "c82ef46fe9ad37d29b4ed51294526a3f18ed17705c6f454d0392ba016ee69912",
            "creationTimestamp": [
                1729123399
            ],
            "pods": null,
            "annotation": {
                "type": "unchanged",
                "was": 1,
                "now": 1
            },
            "flow_name": "creator-ci",
            "git_commit": "fbc4a4c30f8cdccd153b359df1be86bcb0b75f51",
            "commit_url": "https://gitlab.com/cyber-dojo/creator/-/commit/fbc4a4c30f8cdccd153b359df1be86bcb0b75f51",
            "html_url": "https://app.kosli.com/cyber-dojo/flows/creator-ci/artifacts/c82ef46fe9ad37d29b4ed51294526a3f18ed17705c6f454d0392ba016ee69912?artifact_id=81645304-afb7-42e6-9dd5-3d9ab6f7",
            "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/creator-ci",
            "deployment_diff": {
                "diff_url": "https://gitlab.com/cyber-dojo/creator/-/compare/7ff46c28521c9dfe4aafb0d22a401a714b45fa26...fbc4a4c30f8cdccd153b359df1be86bcb0b75f51",
                "previous_git_commit": "7ff46c28521c9dfe4aafb0d22a401a714b45fa26",
                "previous_fingerprint": "ea1c8dbb1ce312c27fa9a91c3943815c3293da8cecf8f97527c56d66259242f9",
                "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/creator:7ff46c2",
                "previous_artifact_compliance_state": "COMPLIANT",
                "previous_running": false,
                "previous_git_commit_url": "https://gitlab.com/cyber-dojo/creator/-/commit/7ff46c28521c9dfe4aafb0d22a401a714b45fa26",
                "previous_trail_name": "7ff46c28521c9dfe4aafb0d22a401a714b45fa26",
                "previous_template_reference_name": "creator"
            },
            "commit_lead_time": 1810.0,
            "flows": [
                {
                    "flow_name": "creator-ci",
                    "trail_name": "fbc4a4c30f8cdccd153b359df1be86bcb0b75f51",
                    "template_reference_name": "creator",
                    "git_commit": "fbc4a4c30f8cdccd153b359df1be86bcb0b75f51",
                    "commit_url": "https://gitlab.com/cyber-dojo/creator/-/commit/fbc4a4c30f8cdccd153b359df1be86bcb0b75f51",
                    "git_commit_info": {
                        "sha1": "fbc4a4c30f8cdccd153b359df1be86bcb0b75f51",
                        "message": "Merge branch 'update-container-startup-check' into 'main'\n\nUpdate container startup check\n\nSee merge request cyber-dojo/creator!146",
                        "author": "Jon Jagger <jrbjagger@googlemail.com>",
                        "branch": "main",
                        "timestamp": 1728306291.0,
                        "url": "https://gitlab.com/cyber-dojo/creator/-/commit/fbc4a4c30f8cdccd153b359df1be86bcb0b75f51"
                    },
                    "html_url": "https://app.kosli.com/cyber-dojo/flows/creator-ci/artifacts/c82ef46fe9ad37d29b4ed51294526a3f18ed17705c6f454d0392ba016ee69912?artifact_id=81645304-afb7-42e6-9dd5-3d9ab6f7",
                    "flow_html_url": "https://app.kosli.com/cyber-dojo/flows/creator-ci",
                    "deployment_diff": {
                        "diff_url": "https://gitlab.com/cyber-dojo/creator/-/compare/7ff46c28521c9dfe4aafb0d22a401a714b45fa26...fbc4a4c30f8cdccd153b359df1be86bcb0b75f51",
                        "previous_git_commit": "7ff46c28521c9dfe4aafb0d22a401a714b45fa26",
                        "previous_fingerprint": "ea1c8dbb1ce312c27fa9a91c3943815c3293da8cecf8f97527c56d66259242f9",
                        "previous_artifact_name": "244531986313.dkr.ecr.eu-central-1.amazonaws.com/creator:7ff46c2",
                        "previous_artifact_compliance_state": "COMPLIANT",
                        "previous_running": false,
                        "previous_git_commit_url": "https://gitlab.com/cyber-dojo/creator/-/commit/7ff46c28521c9dfe4aafb0d22a401a714b45fa26",
                        "previous_trail_name": "7ff46c28521c9dfe4aafb0d22a401a714b45fa26",
                        "previous_template_reference_name": "creator"
                    },
                    "commit_lead_time": 1810.0,
                    "artifact_compliance_in_flow": true,
                    "flow_reasons_for_non_compliance": []
                }
            ]
        }
    ],
    "applied_policies": [
        {
            "id": "bb56942a-ebbc-4a51-ad7b-b1f83903",
            "name": "default-policy",
            "version": 1,
            "policy_dump": {
                "schema_version": "1",
                "artifacts": {
                    "provenance": {
                        "required": true,
                        "exceptions": []
                    },
                    "trail_compliance": {
                        "required": true,
                        "exceptions": []
                    },
                    "attestations": []
                }
            },
            "failing_artifacts": []
        },
        {
            "id": "d4f22b17-1fac-4f36-a735-5a39f697",
            "name": "snyk-policy",
            "version": 1,
            "policy_dump": {
                "schema_version": "1",
                "artifacts": {
                    "provenance": {
                        "required": true,
                        "exceptions": []
                    },
                    "trail_compliance": {
                        "required": false,
                        "exceptions": []
                    },
                    "attestations": [
                        {
                            "if_condition": null,
                            "name": "snyk-container-scan",
                            "type": "snyk",
                            "must_be_compliant": true
                        }
                    ]
                }
            },
            "failing_artifacts": []
        }
    ]
}