{
  "repositoryName": "achieveradarsh/schedula-app-model",
  "overallScore": 69,
  "scanDate": "2026-07-20T16:43:40.509Z",
  "totalTests": 18,
  "summary": {
    "passed": 5,
    "warnings": 9,
    "failed": 4,
    "errors": 0
  },
  "results": [
    {
      "testSuiteId": "build-verification",
      "status": "FAIL",
      "message": "Build failed with compilation or runtime build errors.",
      "severity": "high",
      "details": {
        "output": "> schedula-project@0.1.0 build C:\\Users\\Sunny\\Downloads\\Engineering-validation-platform\\uploaded-repositories\\github-achieveradarsh-schedula-app-model-main-409f78b6\n> next build\n\n  ▲ Next.js 14.2.16 (turbo)\n\n   Creating an optimized production build ...\n ELIFECYCLE  Command failed with exit code 1.\n\n ⚠ You are using a non-standard \"NODE_ENV\" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env\n\n> Build error occurred\nError: next build doesn't support turbopack yet\n    at turbopackBuild (C:\\Users\\Sunny\\Downloads\\Engineering-validation-platform\\uploaded-repositories\\github-achieveradarsh-schedula-app-model-main-409f78b6\\node_modules\\.pnpm\\next@14.2.16_react-dom@18.3.1_react@18.3.1__react@18.3.1\\node_modules\\next\\src\\build\\index.ts:1343:17)\n    at <anonymous> (C:\\Users\\Sunny\\Downloads\\Engineering-validation-platform\\uploaded-repositories\\github-achieveradarsh-schedula-app-model-main-409f78b6\\node_modules\\.pnpm\\next@14.2.16_react-dom@18.3.1_react@18.3.1__react@18.3.1\\node_modules\\next\\src\\build\\index.ts:1682:21)\n    at async Span.traceAsyncFn (C:\\Users\\Sunny\\Downloads\\Engineering-validation-platform\\uploaded-repositories\\github-achieveradarsh-schedula-app-model-main-409f78b6\\node_modules\\.pnpm\\next@14.2.16_react-dom@18.3.1_react@18.3.1__react@18.3.1\\node_modules\\next\\src\\trace\\trace.ts:141:14)\n    at async build (C:\\Users\\Sunny\\Downloads\\Engineering-validation-platform\\uploaded-repositories\\github-achieveradarsh-schedula-app-model-main-409f78b6\\node_modules\\.pnpm\\next@14.2.16_react-dom@18.3.1_react@18.3.1__react@18.3.1\\node_modules\\next\\src\\build\\index.ts:708:5)",
        "runner": "pnpm",
        "command": "pnpm run build",
        "aiDiagnosis": {
          "reason": "openai/gpt-oss-120b: fetch failed | google/gemma-4-31B-it: fetch failed | deepseek-ai/DeepSeek-R1-Distill-Qwen-32B: fetch failed",
          "available": false,
          "modelsAttempted": [
            "openai/gpt-oss-120b",
            "google/gemma-4-31B-it",
            "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B"
          ]
        },
        "runtimeDependencyInstall": {
          "output": "Progress: resolved 1, reused 0, downloaded 0, added 0\n WARN  deprecated next@14.2.16: This version has a security vulnerability. Please upgrade to a patched version. See https://nextjs.org/blog/security-update-2025-12-11 for more details.\nProgress: resolved 38, reused 2, downloaded 1, added 0\n WARN  deprecated recharts@2.15.0: 1.x and 2.x branches are no longer active. Bump to Recharts v3 to receive latest features and bugfixes. See https://github.com/recharts/recharts/wiki/3.0-migration-guide\n\n   ╭──────────────────────────────────────────╮\n   │                                          │\n   │   Update available! 10.31.0 → 11.15.1.   │\n   │   Changelog: https://pnpm.io/v/11.15.1   │\n   │     To update, run: pnpm add -g pnpm     │\n   │                                          │\n   ╰──────────────────────────────────────────╯\n\nProgress: resolved 52, reused 5, downloaded 30, added 0\n WARN  Tarball download average speed 41 KiB/s (size 66 KiB) is below 50 KiB/s: https://registry.npmjs.org/@radix-ui/react-select/-/react-select-2.1.4.tgz (GET)\n WARN  Tarball download average speed 36 KiB/s (size 45 KiB) is below 50 KiB/s: https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.5.4.tgz (GET)\nProgress: resolved 65, reused 10, downloaded 39, added 0\n WARN  Tarball download average speed 6 KiB/s (size 13 KiB) is below 50 KiB/s: https://registry.npmjs.org/@radix-ui/react-hover-card/-/react-hover-card-1.1.4.tgz (GET)\nProgress: resolved 115, reused 26, downloaded 68, added 0\nProgress: resolved 142, reused 35, downloaded 88, added 0\nProgress: resolved 175, reused 46, downloaded 98, added 0\nProgress: resolved 207, reused 70, downloaded 104, added 0\nProgress: resolved 248, reused 99, downloaded 124, added 0\nProgress: resolved 276, reused 122, downloaded 134, added 0\nProgress: resolved 305, reused 149, downloaded 143, added 0\nPackages: +297\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\nProgress: resolved 306, reused 150, downloaded 143, added 5\nProgress: resolved 306, reused 150, downloaded 143, added 50\nProgress: resolved 306, reused 150, downloaded 144, added 85\nProgress: resolved 306, reused 150, downloaded 144, added 120\nProgress: resolved 306, reused 150, downloaded 144, added 193\nProgress: resolved 306, reused 150, downloaded 144, added 198\nProgress: resolved 306, reused 150, downloaded 145, added 205\nProgress: resolved 306, reused 150, downloaded 145, added 222\nProgress: resolved 306, reused 150, downloaded 145, added 225\nProgress: resolved 306, reused 150, downloaded 145, added 229\nProgress: resolved 306, reused 150, downloaded 145, added 233\nProgress: resolved 306, reused 150, downloaded 145, added 245\nProgress: resolved 306, reused 150, downloaded 146, added 252\nProgress: resolved 306, reused 150, downloaded 146, added 261\nProgress: resolved 306, reused 150, downloaded 146, added 290\nProgress: resolved 306, reused 150, downloaded 146, added 291\nProgress: resolved 306, reused 150, downloaded 146, added 293\nProgress: resolved 306, reused 150, downloaded 146, added 294\nProgress: resolved 306, reused 150, downloaded 146, added 295\nProgress: resolved 306, reused 150, downloaded 147, added 295\nProgress: resolved 306, reused 150, downloaded 147, added 296\nProgress: resolved 306, reused 150, downloaded 147, added 297\nProgress: resolved 306, reused 150, downloaded 147, added 297, done\n\ndependencies:\n+ @emotion/is-prop-valid 1.4.0\n+ @hookform/resolvers 3.10.0 (5.4.0 is available)\n+ @radix-ui/react-accordion 1.2.2 (1.2.16 is available)\n+ @radix-ui/react-alert-dialog 1.1.4 (1.1.19 is available)\n+ @radix-ui/react-aspect-ratio 1.1.1 (1.1.11 is available)\n+ @radix-ui/react-avatar 1.1.2 (1.2.2 is available)\n+ @radix-ui/react-checkbox 1.1.3 (1.3.7 is available)\n+ @radix-ui/react-collapsible 1.1.2 (1.1.16 is available)\n+ @radix-ui/react-context-menu 2.2.4 (2.3.3 is available)\n+ @radix-ui/react-dialog 1.1.4 (1.1.19 is available)\n+ @radix-ui/react-dropdown-menu 2.1.4 (2.1.20 is available)\n+ @radix-ui/react-hover-card",
          "command": "pnpm install --ignore-scripts --no-frozen-lockfile",
          "attempted": true,
          "installed": true,
          "missingTool": false
        }
      },
      "executionTime": 49806,
      "testName": "Suite 1 - Build Verification",
      "sectionName": "Quality"
    },
    {
      "testSuiteId": "static-code-quality",
      "status": "WARN",
      "message": "Lint script failed. TypeScript compiler reported errors. Fallback static scan found elevated smell, any-type, or duplicate-symbol counts.",
      "severity": "medium",
      "details": {
        "lint": "> schedula-project@0.1.0 lint C:\\Users\\Sunny\\Downloads\\Engineering-validation-platform\\uploaded-repositories\\github-achieveradarsh-schedula-app-model-main-409f78b6\n> next lint\n\n? How would you like to configure ESLint? https://nextjs.org/docs/basic-features/eslint\n\u001b[?25l❯  Strict (recommended)\n   Base\n   Cancel ELIFECYCLE  Command failed with exit code 1.\n\n ⚠ If you set up ESLint yourself, we recommend adding the Next.js ESLint plugin. See https://nextjs.org/docs/basic-features/eslint#migrating-existing-config",
        "staticScan": {
          "scannedFiles": 106,
          "codeSmellCount": 13,
          "unsafeAnyCount": 65,
          "duplicatedSymbolCount": 126
        },
        "typescript": "app/doctor/calendar/page.tsx(7,76): error TS7016: Could not find a declaration file for module 'react-big-calendar'. 'C:/Users/Sunny/Downloads/Engineering-validation-platform/uploaded-repositories/github-achieveradarsh-schedula-app-model-main-409f78b6/node_modules/.pnpm/react-big-calendar@1.20.0_r_a515fc9d64452ab63fd67ca4ce84daf0/node_modules/react-big-calendar/lib/index.js' implicitly has an 'any' type.\r\n  Try `npm i --save-dev @types/react-big-calendar` if it exists or add a new declaration (.d.ts) file containing `declare module 'react-big-calendar';`\r\napp/doctor/calendar/page.tsx(10,29): error TS7016: Could not find a declaration file for module 'react-big-calendar/lib/addons/dragAndDrop'. 'C:/Users/Sunny/Downloads/Engineering-validation-platform/uploaded-repositories/github-achieveradarsh-schedula-app-model-main-409f78b6/node_modules/.pnpm/react-big-calendar@1.20.0_r_a515fc9d64452ab63fd67ca4ce84daf0/node_modules/react-big-calendar/lib/addons/dragAndDrop/index.js' implicitly has an 'any' type.\r\n  Try `npm i --save-dev @types/react-big-calendar` if it exists or add a new declaration (.d.ts) file containing `declare module 'react-big-calendar/lib/addons/dragAndDrop';`\r\napp/otp/page.tsx(165,21): error TS2783: 'ref' is specified more than once, so this usage will be overwritten.\r\napp/records/prescription/[id]/page.tsx(81,53): error TS2339: Property 'doctorName' does not exist on type 'Prescription'.\r\napp/records/prescription/[id]/page.tsx(175,66): error TS2339: Property 'doctorName' does not exist on type 'Prescription'.\r\napp/records/prescription/[id]/page.tsx(271,80): error TS2339: Property 'doctorName' does not exist on type 'Prescription'.\r\ncomponents/PaymentInvoice.tsx(65,27): error TS2339: Property 'discount' does not exist on type 'PaymentDetails'.\r\ncomponents/PaymentInvoice.tsx(68,82): error TS2339: Property 'discount' does not exist on type 'PaymentDetails'.\r\ncomponents/ui/alert-dialog.tsx(7,10): error TS2305: Module '\"@/components/ui/button\"' has no exported member 'buttonVariants'.\r\ncomponents/ui/alert-dialog.tsx(7,32): error TS1149: File name 'C:/Users/Sunny/Downloads/Engineering-validation-platform/uploaded-repositories/github-achieveradarsh-schedula-app-model-main-409f78b6/components/ui/button.tsx' differs from already included file name 'C:/Users/Sunny/Downloads/Engineering-validation-platform/uploaded-repositories/github-achieveradarsh-schedula-app-model-main-409f78b6/components/ui/Button.tsx' only in casing.\r\n  The file is in the program because:\r\n    Imported via \"@/components/ui/Button\" from file 'C:/Users/Sunny/Downloads/Engineering-validation-platform/uploaded-repositories/github-achieveradarsh-schedula-app-model-main-409f78b6/app/page.tsx'\r\n    Imported via \"@/components/ui/Button\" from file 'C:/Users/Sunny/Downloads/Engineering-validation-platform/uploaded-repositories/github-achieveradarsh-schedula-app-model-main-409f78b6/app/appointment-success/page.tsx'\r\n    Imported via \"@/components/ui/Button\" from file 'C:/Users/Sunny/Downloads/Engineering-validation-platform/uploaded-repositories/github-achieveradarsh-schedula-app-model-main-409f78b6/app/appointments/page.tsx'\r\n    Imported via \"@/components/ui/Button\" from file 'C:/Users/Sunny/Downloads/Engineering-validation-platform/uploaded-repositories/github-achieveradarsh-schedula-app-model-main-409f78b6/components/CancelReasonModal.tsx'\r\n    Imported via \"@/components/ui/Button\" from file 'C:/Users/Sunny/Downloads/Engineering-validation-platform/uploaded-repositories/github-achieveradarsh-schedula-app-model-main-409f78b6/components/RescheduleModal.tsx'\r\n    Imported via '@/components/ui/Button' from file 'C:/Users/Sunny/Downloads/Engineering-validation-platform/uploaded-repositories/github-achieveradarsh-schedula-app-model-main-409f78b6/app/appointments/[id]/review/page.tsx'\r\n    Imported via \"@/components/ui/Button\" from file 'C:/Users/Sunny/Downloads/Engineering-validation-platform/uploaded-repositories/github-achieveradarsh-schedula-app-model-main-409f78"
      },
      "executionTime": 18845,
      "testName": "Suite 2 - Static Code Quality",
      "sectionName": "Quality"
    },
    {
      "testSuiteId": "testing",
      "status": "WARN",
      "message": "No runnable test script was found for Jest, Vitest, Playwright, Cypress, or coverage.",
      "severity": "medium",
      "details": {
        "availableScripts": [
          "build",
          "dev",
          "lint",
          "start"
        ]
      },
      "executionTime": 1,
      "testName": "Suite 3 - Testing",
      "sectionName": "Quality"
    },
    {
      "testSuiteId": "sast",
      "status": "FAIL",
      "message": "Fallback SAST scan found high-risk code patterns.",
      "severity": "critical",
      "details": {
        "findings": [
          {
            "name": "Unsafe eval",
            "count": 0,
            "severity": "high"
          },
          {
            "name": "Command execution",
            "count": 0,
            "severity": "high"
          },
          {
            "name": "SQL string construction",
            "count": 22,
            "severity": "high"
          },
          {
            "name": "Weak crypto",
            "count": 0,
            "severity": "medium"
          },
          {
            "name": "Prototype pollution sink",
            "count": 0,
            "severity": "medium"
          },
          {
            "name": "Path traversal risk",
            "count": 0,
            "severity": "medium"
          }
        ],
        "scannedFiles": 104
      },
      "executionTime": 163,
      "testName": "Suite 4 - SAST",
      "sectionName": "Security"
    },
    {
      "testSuiteId": "secret-detection",
      "status": "PASS",
      "message": "Fallback secret scan did not find known secret patterns.",
      "severity": "medium",
      "details": {
        "envFiles": [],
        "findings": [
          {
            "name": "AWS access key",
            "count": 0
          },
          {
            "name": "OpenAI key",
            "count": 0
          },
          {
            "name": "Private key",
            "count": 0
          },
          {
            "name": "JWT",
            "count": 0
          },
          {
            "name": "Generic secret assignment",
            "count": 0
          }
        ],
        "scannedFiles": 110,
        "includeGitHistory": false
      },
      "executionTime": 171,
      "testName": "Suite 5 - Secret Detection",
      "sectionName": "Security"
    },
    {
      "testSuiteId": "dependency-security",
      "status": "FAIL",
      "message": "Dependency audit reported vulnerable packages.",
      "severity": "critical",
      "details": {
        "tool": "pnpm audit",
        "output": "{\n  \"actions\": [],\n  \"advisories\": {\n    \"1101438\": {\n      \"findings\": [\n        {\n          \"version\": \"14.2.16\",\n          \"paths\": [\n            \".>next\"\n          ]\n        }\n      ],\n      \"found_by\": null,\n      \"deleted\": null,\n      \"references\": \"- https://github.com/vercel/next.js/security/advisories/GHSA-7m27-7ghc-44w9\\n- https://nvd.nist.gov/vuln/detail/CVE-2024-56332\\n- https://github.com/advisories/GHSA-7m27-7ghc-44w9\",\n      \"created\": \"2025-01-03T20:19:29.000Z\",\n      \"id\": 1101438,\n      \"npm_advisory_id\": null,\n      \"overview\": \"### Impact\\nA Denial of Service (DoS) attack allows attackers to construct requests that leaves requests to Server Actions hanging until the hosting provider cancels the function execution.\\n\\n_Note: Next.js server is idle during that time and only keeps the connection open. CPU and memory footprint are low during that time._\\n\\nDeployments without any protection against long running Server Action invocations are especially vulnerable. Hosting providers like Vercel or Netlify set a default maximum duration on function execution to reduce the risk of excessive billing.\\n\\nThis is the same issue as if the incoming HTTP request has an invalid `Content-Length` header or never closes. If the host has no other mitigations to those then this vulnerability is novel.\\n\\nThis vulnerability affects only Next.js deployments using Server Actions.\\n\\n### Patches\\n\\nThis vulnerability was resolved in Next.js 14.2.21, 15.1.2, and 13.5.8. We recommend that users upgrade to a safe version.\\n\\n### Workarounds\\n\\nThere are no official workarounds for this vulnerability.\\n\\n### Credits\\n\\nThanks to the PackDraw team for responsibly disclosing this vulnerability.\",\n      \"reported_by\": null,\n      \"title\": \"Next.js Allows a Denial of Service (DoS) with Server Actions\",\n      \"metadata\": null,\n      \"cves\": [\n        \"CVE-2024-56332\"\n      ],\n      \"access\": \"public\",\n      \"severity\": \"moderate\",\n      \"module_name\": \"next\",\n      \"vulnerable_versions\": \">=14.0.0 <14.2.21\",\n      \"github_advisory_id\": \"GHSA-7m27-7ghc-44w9\",\n      \"recommendation\": \"Upgrade to version 14.2.21 or later\",\n      \"patched_versions\": \">=14.2.21\",\n      \"updated\": \"2025-01-07T16:24:09.000Z\",\n      \"cvss\": {\n        \"score\": 5.3,\n        \"vectorString\": \"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L\"\n      },\n      \"cwe\": [\n        \"CWE-770\"\n      ],\n      \"url\": \"https://github.com/advisories/GHSA-7m27-7ghc-44w9\"\n    },\n    \"1105461\": {\n      \"findings\": [\n        {\n          \"version\": \"14.2.16\",\n          \"paths\": [\n            \".>next\"\n          ]\n        }\n      ],\n      \"found_by\": null,\n      \"deleted\": null,\n      \"references\": \"- https://github.com/vercel/next.js/security/advisories/GHSA-3h52-269p-cp9r\\n- https://vercel.com/changelog/cve-2025-48068\\n- https://nvd.nist.gov/vuln/detail/CVE-2025-48068\\n- https://github.com/advisories/GHSA-3h52-269p-cp9r\",\n      \"created\": \"2025-05-28T21:52:13.000Z\",\n      \"id\": 1105461,\n      \"npm_advisory_id\": null,\n      \"overview\": \"## Summary\\n\\nA low-severity vulnerability in **Next.js** has been fixed in **version 15.2.2**. This issue may have allowed limited source code exposure when the dev server was running with the App Router enabled. The vulnerability only affects local development environments and requires the user to visit a malicious webpage while `npm run dev` is active.\\n\\nBecause the mitigation is potentially a breaking change for some development setups, to opt-in to the fix, you must configure `allowedDevOrigins` in your next config after upgrading to a patched version. [Learn more](https://nextjs.org/docs/app/api-reference/config/next-config-js/allowedDevOrigins).\\n\\nLearn more: https://vercel.com/changelog/cve-2025-48068\\n\\n## Credit\\n\\nThanks to [sapphi-red](https://github.com/sapphi-red) and [Radman Siddiki](https://github.com/R4356th) for responsibly disclosing this issue.\",\n      \"reported_by\": null,\n      \"title\": \"Information exposure in Next.js dev server due to"
      },
      "executionTime": 1041,
      "testName": "Suite 6 - Dependency Security",
      "sectionName": "Security"
    },
    {
      "testSuiteId": "web-application-security",
      "status": "WARN",
      "message": "Custom web security rules found missing or undiscovered controls.",
      "severity": "medium",
      "details": {
        "hasCsp": false,
        "missing": [
          "hasCsp",
          "hasCorsConfig",
          "hasCsrfToken",
          "hasRateLimit",
          "hasSecureCookie"
        ],
        "hasCsrfToken": false,
        "hasRateLimit": false,
        "scannedFiles": 109,
        "hasCorsConfig": false,
        "hasAuthzChecks": true,
        "hasSecureCookie": false
      },
      "executionTime": 115,
      "testName": "Suite 7 - Web Application Security",
      "sectionName": "Security"
    },
    {
      "testSuiteId": "api-security",
      "status": "PASS",
      "message": "API security rules found core validation and authorization signals.",
      "severity": "medium",
      "details": {
        "missing": [
          "hasGraphql"
        ],
        "hasGraphql": false,
        "openApiFiles": [],
        "scannedFiles": 110,
        "hasJwtValidation": true,
        "hasInputValidation": true,
        "hasObjectAuthorization": true
      },
      "executionTime": 78,
      "testName": "Suite 8 - API Security",
      "sectionName": "Security"
    },
    {
      "testSuiteId": "git-history-secrets",
      "status": "WARN",
      "message": "No .git directory found, so historical secret scanning could not run.",
      "severity": "medium",
      "executionTime": 0,
      "testName": "Suite 9 - Secrets in Git History",
      "sectionName": "Security"
    },
    {
      "testSuiteId": "container-security",
      "status": "WARN",
      "message": "No Dockerfile was found, so container security checks could not run.",
      "severity": "low",
      "details": {
        "dockerfiles": []
      },
      "executionTime": 9,
      "testName": "Suite 10 - Container Security",
      "sectionName": "Infrastructure"
    },
    {
      "testSuiteId": "infrastructure-as-code",
      "status": "PASS",
      "message": "Fallback IaC scan found no obvious infrastructure risks.",
      "severity": "medium",
      "details": {
        "helmFiles": [],
        "composeFiles": [],
        "scannedFiles": 1,
        "riskyPatterns": [
          {
            "name": "Privileged containers",
            "count": 0
          },
          {
            "name": "Host networking",
            "count": 0
          },
          {
            "name": "Latest image tags",
            "count": 0
          },
          {
            "name": "Public ingress CIDR",
            "count": 0
          },
          {
            "name": "Plaintext secret resources",
            "count": 0
          }
        ],
        "terraformFiles": [],
        "kubernetesFiles": []
      },
      "executionTime": 97,
      "testName": "Suite 11 - Infrastructure as Code",
      "sectionName": "Infrastructure"
    },
    {
      "testSuiteId": "ci-cd-security",
      "status": "WARN",
      "message": "No GitHub Actions, Azure DevOps, Jenkins, or GitLab CI definitions were found.",
      "severity": "low",
      "executionTime": 10,
      "testName": "Suite 12 - CI/CD Security",
      "sectionName": "Infrastructure"
    },
    {
      "testSuiteId": "network-readiness",
      "status": "PASS",
      "message": "Static network readiness scan found no obvious network risks.",
      "severity": "medium",
      "details": {
        "note": "Runtime Nmap or SSL analysis requires an explicit authorized target.",
        "weakTls": false,
        "openPorts": [],
        "hasDnsConfig": true,
        "scannedFiles": [
          "pnpm-lock.yaml"
        ],
        "publicExposure": false,
        "hasReverseProxy": false,
        "hasCertificateFiles": false
      },
      "executionTime": 13,
      "testName": "Suite 13 - Network Readiness",
      "sectionName": "Infrastructure"
    },
    {
      "testSuiteId": "repository-architecture",
      "status": "PASS",
      "message": "Architecture scan found organized repository structure and no obvious layer violations.",
      "severity": "medium",
      "details": {
        "dddSignals": [],
        "scannedFiles": 104,
        "topLevelDirs": [
          "app",
          "components",
          "hooks",
          "lib",
          "public",
          "services",
          "store",
          "styles",
          "types"
        ],
        "layerViolations": [],
        "microserviceSignals": [],
        "cleanArchitectureSignals": [
          "application"
        ]
      },
      "executionTime": 74,
      "testName": "Suite 14 - Repository Architecture",
      "sectionName": "Architecture"
    },
    {
      "testSuiteId": "frontend-security",
      "status": "FAIL",
      "message": "Frontend scan found exposed env, public secret, or dangerous DOM API risks.",
      "severity": "high",
      "details": {
        "hasCsp": false,
        "envFiles": [],
        "backendUrls": 0,
        "scannedFiles": 95,
        "debugEndpoints": 0,
        "exposedEnvFiles": [],
        "dangerousDomApis": 1,
        "publicSecretNames": 0,
        "sourceMapsEnabled": false
      },
      "executionTime": 76,
      "testName": "Suite 15 - Frontend Security",
      "sectionName": "Architecture"
    },
    {
      "testSuiteId": "backend-security",
      "status": "WARN",
      "message": "Backend scan found missing or undiscovered security controls.",
      "severity": "medium",
      "details": {
        "missing": [
          "hasMiddleware",
          "hasAuthentication",
          "hasAuthorization",
          "hasRateLimiting"
        ],
        "hasLogging": true,
        "scannedFiles": 5,
        "hasMiddleware": false,
        "hasValidation": true,
        "hasRateLimiting": false,
        "hasAuthorization": false,
        "hasAuthentication": false,
        "hasExceptionHandling": true
      },
      "executionTime": 59,
      "testName": "Suite 16 - Backend Security",
      "sectionName": "Architecture"
    },
    {
      "testSuiteId": "data-layer",
      "status": "WARN",
      "message": "Data layer scan found missing ORM, pooling, or encryption signals.",
      "severity": "medium",
      "details": {
        "hasOrm": false,
        "hasPooling": false,
        "scannedFiles": 106,
        "hasEncryption": true,
        "databaseExposure": 0,
        "rawSqlConstruction": 0
      },
      "executionTime": 72,
      "testName": "Suite 17 - Data Layer",
      "sectionName": "Architecture"
    },
    {
      "testSuiteId": "cloud-architecture",
      "status": "WARN",
      "message": "No AWS, Azure, or GCP architecture artifacts were found.",
      "severity": "low",
      "executionTime": 9,
      "testName": "Suite 18 - Cloud Architecture",
      "sectionName": "Architecture"
    }
  ]
}