{
  "generated_at": "2026-10-23T19:16:37.985520+00:00",
  "pipeline_url": "https://gitlab.com/gitlab-ai-hackathon/transcend-october-2026/42360051/showcase/-/pipelines/2982651790",
  "commit": "e1d22ae610aebb2275eb740d34b4d3d6b98bd427",
  "issue": null,
  "merge_request": null,
  "approvals": null,
  "jobs": [
    {
      "name": "govern:pages-receipt",
      "stage": "govern",
      "status": "created",
      "lifecycle_stage": "Govern",
      "started_at": null,
      "finished_at": null,
      "duration": null,
      "web_url": "https://gitlab.com/gitlab-ai-hackathon/transcend-october-2026/42360051/showcase/-/jobs/17426742923"
    },
    {
      "name": "govern:audit-report",
      "stage": "govern",
      "status": "running",
      "lifecycle_stage": "Govern",
      "started_at": "2026-10-23T19:15:59.828Z",
      "finished_at": null,
      "duration": 41.357602574,
      "web_url": "https://gitlab.com/gitlab-ai-hackathon/transcend-october-2026/42360051/showcase/-/jobs/17426742922"
    },
    {
      "name": "rollback:production",
      "stage": "monitor",
      "status": "skipped",
      "lifecycle_stage": "Monitor",
      "started_at": null,
      "finished_at": null,
      "duration": null,
      "web_url": "https://gitlab.com/gitlab-ai-hackathon/transcend-october-2026/42360051/showcase/-/jobs/17426742921"
    },
    {
      "name": "monitor:production-health",
      "stage": "monitor",
      "status": "success",
      "lifecycle_stage": "Monitor",
      "started_at": "2026-10-23T19:15:19.832Z",
      "finished_at": "2026-10-23T19:15:58.134Z",
      "duration": 38.301562,
      "web_url": "https://gitlab.com/gitlab-ai-hackathon/transcend-october-2026/42360051/showcase/-/jobs/17426742920"
    },
    {
      "name": "rollback:production-canary",
      "stage": "release-production",
      "status": "skipped",
      "lifecycle_stage": "Release",
      "started_at": null,
      "finished_at": null,
      "duration": null,
      "web_url": "https://gitlab.com/gitlab-ai-hackathon/transcend-october-2026/42360051/showcase/-/jobs/17426742919"
    },
    {
      "name": "release:gitlab-release",
      "stage": "release-production",
      "status": "success",
      "lifecycle_stage": "Release",
      "started_at": "2026-10-23T19:15:19.766Z",
      "finished_at": "2026-10-23T19:15:31.335Z",
      "duration": 11.568775,
      "web_url": "https://gitlab.com/gitlab-ai-hackathon/transcend-october-2026/42360051/showcase/-/jobs/17426742918"
    },
    {
      "name": "release:production",
      "stage": "release-production",
      "status": "success",
      "lifecycle_stage": "Release",
      "started_at": "2026-10-23T19:14:45.212Z",
      "finished_at": "2026-10-23T19:15:18.179Z",
      "duration": 32.967232,
      "web_url": "https://gitlab.com/gitlab-ai-hackathon/transcend-october-2026/42360051/showcase/-/jobs/17426742917"
    },
    {
      "name": "canary:production-health",
      "stage": "release-production",
      "status": "success",
      "lifecycle_stage": "Release",
      "started_at": "2026-10-23T19:14:06.554Z",
      "finished_at": "2026-10-23T19:14:43.498Z",
      "duration": 36.94372,
      "web_url": "https://gitlab.com/gitlab-ai-hackathon/transcend-october-2026/42360051/showcase/-/jobs/17426742916"
    },
    {
      "name": "release:production-canary",
      "stage": "canary",
      "status": "success",
      "lifecycle_stage": "Release",
      "started_at": "2026-10-23T19:13:33.485Z",
      "finished_at": "2026-10-23T19:14:04.875Z",
      "duration": 31.389883,
      "web_url": "https://gitlab.com/gitlab-ai-hackathon/transcend-october-2026/42360051/showcase/-/jobs/17426742915"
    },
    {
      "name": "canary:staging-health",
      "stage": "canary",
      "status": "success",
      "lifecycle_stage": "Release",
      "started_at": "2026-10-23T19:12:46.376Z",
      "finished_at": "2026-10-23T19:13:31.655Z",
      "duration": 45.279123,
      "web_url": "https://gitlab.com/gitlab-ai-hackathon/transcend-october-2026/42360051/showcase/-/jobs/17426742914"
    },
    {
      "name": "release:staging",
      "stage": "release-staging",
      "status": "success",
      "lifecycle_stage": "Release",
      "started_at": "2026-10-23T19:12:13.653Z",
      "finished_at": "2026-10-23T19:12:44.578Z",
      "duration": 30.92492,
      "web_url": "https://gitlab.com/gitlab-ai-hackathon/transcend-october-2026/42360051/showcase/-/jobs/17426742913"
    },
    {
      "name": "configure:iac-validate",
      "stage": "configure",
      "status": "success",
      "lifecycle_stage": "Configure",
      "started_at": "2026-10-23T19:09:33.196Z",
      "finished_at": "2026-10-23T19:10:14.947Z",
      "duration": 41.750676,
      "web_url": "https://gitlab.com/gitlab-ai-hackathon/transcend-october-2026/42360051/showcase/-/jobs/17426742912"
    },
    {
      "name": "configure:production",
      "stage": "configure",
      "status": "success",
      "lifecycle_stage": "Configure",
      "started_at": "2026-10-23T19:09:33.102Z",
      "finished_at": "2026-10-23T19:09:59.648Z",
      "duration": 26.54549,
      "web_url": "https://gitlab.com/gitlab-ai-hackathon/transcend-october-2026/42360051/showcase/-/jobs/17426742911"
    },
    {
      "name": "configure:staging",
      "stage": "configure",
      "status": "success",
      "lifecycle_stage": "Configure",
      "started_at": "2026-10-23T19:09:33.047Z",
      "finished_at": "2026-10-23T19:10:05.478Z",
      "duration": 32.431684,
      "web_url": "https://gitlab.com/gitlab-ai-hackathon/transcend-october-2026/42360051/showcase/-/jobs/17426742910"
    },
    {
      "name": "package:sbom",
      "stage": "package",
      "status": "success",
      "lifecycle_stage": "Package",
      "started_at": "2026-10-23T19:09:32.988Z",
      "finished_at": "2026-10-23T19:12:22.980Z",
      "duration": 169.991697,
      "web_url": "https://gitlab.com/gitlab-ai-hackathon/transcend-october-2026/42360051/showcase/-/jobs/17426742909"
    },
    {
      "name": "package:image",
      "stage": "package",
      "status": "success",
      "lifecycle_stage": "Package",
      "started_at": "2026-10-23T19:11:18.387Z",
      "finished_at": "2026-10-23T19:12:11.770Z",
      "duration": 53.383116,
      "web_url": "https://gitlab.com/gitlab-ai-hackathon/transcend-october-2026/42360051/showcase/-/jobs/17426742908"
    },
    {
      "name": "container_scanning",
      "stage": "package",
      "status": "success",
      "lifecycle_stage": "Secure",
      "started_at": "2026-10-23T19:12:13.449Z",
      "finished_at": "2026-10-23T19:13:02.740Z",
      "duration": 49.290961,
      "web_url": "https://gitlab.com/gitlab-ai-hackathon/transcend-october-2026/42360051/showcase/-/jobs/17426742907"
    },
    {
      "name": "secure:osv-recheck",
      "stage": "secure",
      "status": "success",
      "lifecycle_stage": "Monitor (watch)",
      "started_at": "2026-10-23T19:10:41.872Z",
      "finished_at": "2026-10-23T19:11:16.808Z",
      "duration": 34.935896,
      "web_url": "https://gitlab.com/gitlab-ai-hackathon/transcend-october-2026/42360051/showcase/-/jobs/17426742906"
    },
    {
      "name": "dependency-scanning",
      "stage": "secure",
      "status": "success",
      "lifecycle_stage": "Secure",
      "started_at": "2026-10-23T19:10:41.809Z",
      "finished_at": "2026-10-23T19:11:04.046Z",
      "duration": 22.236857,
      "web_url": "https://gitlab.com/gitlab-ai-hackathon/transcend-october-2026/42360051/showcase/-/jobs/17426742905"
    },
    {
      "name": "secret_detection",
      "stage": "secure",
      "status": "success",
      "lifecycle_stage": "Secure",
      "started_at": "2026-10-23T19:10:40.835Z",
      "finished_at": "2026-10-23T19:10:57.467Z",
      "duration": 16.631318,
      "web_url": "https://gitlab.com/gitlab-ai-hackathon/transcend-october-2026/42360051/showcase/-/jobs/17426742904"
    },
    {
      "name": "semgrep-sast",
      "stage": "secure",
      "status": "success",
      "lifecycle_stage": "Secure",
      "started_at": "2026-10-23T19:10:40.692Z",
      "finished_at": "2026-10-23T19:11:15.598Z",
      "duration": 34.906468,
      "web_url": "https://gitlab.com/gitlab-ai-hackathon/transcend-october-2026/42360051/showcase/-/jobs/17426742903"
    },
    {
      "name": "verify:static-checks",
      "stage": "verify",
      "status": "success",
      "lifecycle_stage": "Verify",
      "started_at": "2026-10-23T19:10:00.464Z",
      "finished_at": "2026-10-23T19:10:38.793Z",
      "duration": 38.329075,
      "web_url": "https://gitlab.com/gitlab-ai-hackathon/transcend-october-2026/42360051/showcase/-/jobs/17426742902"
    },
    {
      "name": "verify:unit-tests",
      "stage": "verify",
      "status": "success",
      "lifecycle_stage": "Verify",
      "started_at": "2026-10-23T19:10:00.400Z",
      "finished_at": "2026-10-23T19:10:37.721Z",
      "duration": 37.320922,
      "web_url": "https://gitlab.com/gitlab-ai-hackathon/transcend-october-2026/42360051/showcase/-/jobs/17426742901"
    },
    {
      "name": "dependency-scanning:python-resolution",
      "stage": ".pre",
      "status": "success",
      "lifecycle_stage": "Secure",
      "started_at": "2026-10-23T19:09:32.869Z",
      "finished_at": "2026-10-23T19:09:58.849Z",
      "duration": 25.979245,
      "web_url": "https://gitlab.com/gitlab-ai-hackathon/transcend-october-2026/42360051/showcase/-/jobs/17426742900"
    }
  ],
  "stages_covered": [
    "Configure",
    "Monitor",
    "Monitor (watch)",
    "Package",
    "Release",
    "Secure",
    "Verify"
  ],
  "timeline": [
    {
      "stage": "Monitor (watch)",
      "status": "success",
      "jobs": [
        {
          "name": "secure:osv-recheck",
          "status": "success",
          "duration_s": 34.935896
        }
      ],
      "started_at": "2026-10-23T19:10:41.872000+00:00",
      "finished_at": "2026-10-23T19:11:16.808000+00:00",
      "duration_s": 34.936
    },
    {
      "stage": "Verify",
      "status": "success",
      "jobs": [
        {
          "name": "verify:static-checks",
          "status": "success",
          "duration_s": 38.329075
        },
        {
          "name": "verify:unit-tests",
          "status": "success",
          "duration_s": 37.320922
        }
      ],
      "started_at": "2026-10-23T19:10:00.400000+00:00",
      "finished_at": "2026-10-23T19:10:38.793000+00:00",
      "duration_s": 38.393
    },
    {
      "stage": "Secure",
      "status": "success",
      "jobs": [
        {
          "name": "container_scanning",
          "status": "success",
          "duration_s": 49.290961
        },
        {
          "name": "dependency-scanning",
          "status": "success",
          "duration_s": 22.236857
        },
        {
          "name": "secret_detection",
          "status": "success",
          "duration_s": 16.631318
        },
        {
          "name": "semgrep-sast",
          "status": "success",
          "duration_s": 34.906468
        },
        {
          "name": "dependency-scanning:python-resolution",
          "status": "success",
          "duration_s": 25.979245
        }
      ],
      "started_at": "2026-10-23T19:09:32.869000+00:00",
      "finished_at": "2026-10-23T19:13:02.740000+00:00",
      "duration_s": 209.871
    },
    {
      "stage": "Package",
      "status": "success",
      "jobs": [
        {
          "name": "package:sbom",
          "status": "success",
          "duration_s": 169.991697
        },
        {
          "name": "package:image",
          "status": "success",
          "duration_s": 53.383116
        }
      ],
      "started_at": "2026-10-23T19:09:32.988000+00:00",
      "finished_at": "2026-10-23T19:12:22.980000+00:00",
      "duration_s": 169.992
    },
    {
      "stage": "Configure",
      "status": "success",
      "jobs": [
        {
          "name": "configure:iac-validate",
          "status": "success",
          "duration_s": 41.750676
        },
        {
          "name": "configure:production",
          "status": "success",
          "duration_s": 26.54549
        },
        {
          "name": "configure:staging",
          "status": "success",
          "duration_s": 32.431684
        }
      ],
      "started_at": "2026-10-23T19:09:33.047000+00:00",
      "finished_at": "2026-10-23T19:10:14.947000+00:00",
      "duration_s": 41.9
    },
    {
      "stage": "Release",
      "status": "success",
      "jobs": [
        {
          "name": "rollback:production-canary",
          "status": "skipped",
          "duration_s": null
        },
        {
          "name": "release:gitlab-release",
          "status": "success",
          "duration_s": 11.568775
        },
        {
          "name": "release:production",
          "status": "success",
          "duration_s": 32.967232
        },
        {
          "name": "canary:production-health",
          "status": "success",
          "duration_s": 36.94372
        },
        {
          "name": "release:production-canary",
          "status": "success",
          "duration_s": 31.389883
        },
        {
          "name": "canary:staging-health",
          "status": "success",
          "duration_s": 45.279123
        },
        {
          "name": "release:staging",
          "status": "success",
          "duration_s": 30.92492
        }
      ],
      "started_at": "2026-10-23T19:12:13.653000+00:00",
      "finished_at": "2026-10-23T19:15:31.335000+00:00",
      "duration_s": 197.682
    },
    {
      "stage": "Monitor",
      "status": "success",
      "jobs": [
        {
          "name": "rollback:production",
          "status": "skipped",
          "duration_s": null
        },
        {
          "name": "monitor:production-health",
          "status": "success",
          "duration_s": 38.301562
        }
      ],
      "started_at": "2026-10-23T19:15:19.832000+00:00",
      "finished_at": "2026-10-23T19:15:58.134000+00:00",
      "duration_s": 38.302
    },
    {
      "stage": "Govern",
      "status": "running",
      "jobs": [
        {
          "name": "govern:pages-receipt",
          "status": "created",
          "duration_s": null
        },
        {
          "name": "govern:audit-report",
          "status": "running",
          "duration_s": 41.357602574
        }
      ],
      "started_at": "2026-10-23T19:15:59.828000+00:00",
      "finished_at": null,
      "duration_s": null
    }
  ],
  "security": {
    "sast": {
      "present": true,
      "counts": {
        "MEDIUM": 1,
        "LOW": 1
      }
    },
    "secret_detection": {
      "present": true,
      "counts": {}
    },
    "dependency_scanning": {
      "present": true,
      "counts": {
        "CRITICAL": 1,
        "MEDIUM": 3
      }
    },
    "container_scanning": {
      "present": true,
      "counts": {},
      "counts_os": {}
    }
  },
  "osv": {
    "total": 4,
    "packages": [
      {
        "package": "certifi",
        "installed": "2026.7.22",
        "lockfile": "requirements.txt",
        "line": 7,
        "findings": [
          {
            "vuln_id": "GHSA-6q48-6c7w-9gw2",
            "aliases": [
              "PYSEC-2026-4320"
            ],
            "summary": "certifi bundles emSign root CAs with compromised intermediate CA keys",
            "severity": "CRITICAL",
            "cvss_score": null,
            "cvss_vector": null,
            "package": "certifi",
            "installed": "2026.7.22",
            "fixed_versions": [
              "2026.10.19"
            ],
            "lockfile": "requirements.txt",
            "line": 7,
            "references": [
              "https://github.com/certifi/python-certifi/security/advisories/GHSA-6q48-6c7w-9gw2",
              "https://discuss.python.org/t/information-for-python-users-regarding-emudhra-emsign-ca-certificate-security-incident/109576",
              "https://emudhra.we-have-a-problem.com",
              "https://github.com/certifi/python-certifi"
            ],
            "published": "2026-10-20T19:35:05Z",
            "cve": "GHSA-6q48-6c7w-9gw2"
          }
        ],
        "recommended_version": "2026.10.19",
        "max_severity": "CRITICAL"
      },
      {
        "package": "requests",
        "installed": "2.31.0",
        "lockfile": "requirements.txt",
        "line": 16,
        "findings": [
          {
            "vuln_id": "GHSA-9hjg-9r4m-mvj7",
            "aliases": [
              "CVE-2024-47081",
              "PYSEC-2026-1872"
            ],
            "summary": "Requests vulnerable to .netrc credentials leak via malicious URLs",
            "severity": "MODERATE",
            "cvss_score": 5.3,
            "cvss_vector": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:N/A:N",
            "package": "requests",
            "installed": "2.31.0",
            "fixed_versions": [
              "2.32.4"
            ],
            "lockfile": "requirements.txt",
            "line": 16,
            "references": [
              "https://github.com/psf/requests/security/advisories/GHSA-9hjg-9r4m-mvj7",
              "https://nvd.nist.gov/vuln/detail/CVE-2024-47081",
              "https://github.com/psf/requests/pull/6965",
              "https://github.com/psf/requests/commit/96ba401c1296ab1dda74a2365ef36d88f7d144ef",
              "https://github.com/advisories/GHSA-9hjg-9r4m-mvj7"
            ],
            "published": "2025-06-09T19:06:08Z",
            "cve": "CVE-2024-47081"
          },
          {
            "vuln_id": "GHSA-9wx4-h78v-vm56",
            "aliases": [
              "CVE-2024-35195",
              "PYSEC-2026-1873"
            ],
            "summary": "Requests `Session` object does not verify requests after making first request with verify=False",
            "severity": "MODERATE",
            "cvss_score": 5.6,
            "cvss_vector": "CVSS:3.1/AV:L/AC:H/PR:H/UI:R/S:U/C:H/I:H/A:N",
            "package": "requests",
            "installed": "2.31.0",
            "fixed_versions": [
              "2.32.0"
            ],
            "lockfile": "requirements.txt",
            "line": 16,
            "references": [
              "https://github.com/psf/requests/security/advisories/GHSA-9wx4-h78v-vm56",
              "https://nvd.nist.gov/vuln/detail/CVE-2024-35195",
              "https://github.com/psf/requests/pull/6655",
              "https://github.com/psf/requests/commit/a58d7f2ffb4d00b46dca2d70a3932a0b37e22fac",
              "https://github.com/psf/requests"
            ],
            "published": "2024-05-20T20:15:00Z",
            "cve": "CVE-2024-35195"
          },
          {
            "vuln_id": "GHSA-gc5v-m9x4-r6x2",
            "aliases": [
              "CVE-2026-25645",
              "PYSEC-2026-2275"
            ],
            "summary": "Requests has Insecure Temp File Reuse in its extract_zipped_paths() utility function",
            "severity": "MODERATE",
            "cvss_score": 4.4,
            "cvss_vector": "CVSS:3.1/AV:L/AC:H/PR:L/UI:R/S:U/C:N/I:H/A:N",
            "package": "requests",
            "installed": "2.31.0",
            "fixed_versions": [
              "2.33.0"
            ],
            "lockfile": "requirements.txt",
            "line": 16,
            "references": [
              "https://github.com/psf/requests/security/advisories/GHSA-gc5v-m9x4-r6x2",
              "https://nvd.nist.gov/vuln/detail/CVE-2026-25645",
              "https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7",
              "https://github.com/psf/requests",
              "https://github.com/psf/requests/releases/tag/v2.33.0"
            ],
            "published": "2026-03-25T16:56:28Z",
            "cve": "CVE-2026-25645"
          }
        ],
        "recommended_version": "2.33.0",
        "max_severity": "MODERATE"
      }
    ]
  },
  "gate": null,
  "canary": {
    "staging": {
      "environment": "staging",
      "url": "http://notes-api:8080",
      "healthy": true,
      "version": "e1d22ae6",
      "requests": 60,
      "errors": 0,
      "error_rate": 0.0,
      "avg_latency_ms": 2.19,
      "server_metrics": {
        "requests": 60,
        "errors": 0,
        "error_rate": 0.0,
        "avg_latency_ms": 1.0,
        "uptime_s": 24.2
      },
      "problems": [],
      "verdict": "healthy"
    },
    "production-canary": {
      "environment": "production-canary",
      "url": "http://notes-api:8080",
      "healthy": true,
      "version": "e1d22ae6",
      "requests": 60,
      "errors": 0,
      "error_rate": 0.0,
      "avg_latency_ms": 2.02,
      "server_metrics": {
        "requests": 60,
        "errors": 0,
        "error_rate": 0.0,
        "avg_latency_ms": 0.92,
        "uptime_s": 22.8
      },
      "problems": [],
      "verdict": "healthy"
    },
    "production": {
      "environment": "production",
      "url": "http://notes-api:8080",
      "healthy": true,
      "version": "e1d22ae6",
      "requests": 60,
      "errors": 0,
      "error_rate": 0.0,
      "avg_latency_ms": 2.18,
      "server_metrics": {
        "requests": 60,
        "errors": 0,
        "error_rate": 0.0,
        "avg_latency_ms": 0.98,
        "uptime_s": 23.6
      },
      "problems": [],
      "verdict": "healthy"
    }
  },
  "rollback": null,
  "config": {
    "staging": "c2131abb499b552187cc412ef88a89f05ab18bdc73988228940e1194de7c8cab",
    "production": "a9565d5834295e69ad632456075e7cb8bb38b740efbe14053683a16c2e86dca4"
  },
  "sbom_diff": {
    "added": [],
    "removed": [],
    "changed": []
  },
  "time_to_remediate_s": null
}