{
  "repositoryName": "achieveradarsh/schedula-app-model",
  "overallScore": 69,
  "scanDate": "2026-07-20T16:51:36.320Z",
  "totalTests": 18,
  "summary": {
    "passed": 5,
    "warnings": 9,
    "failed": 4,
    "errors": 0
  },
  "results": [
    {
      "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": 1111,
      "testName": "Suite 6 - Dependency Security",
      "sectionName": "Security"
    },
    {
      "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 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 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 39, reused 36, downloaded 0, added 0\nProgress: resolved 64, reused 60, downloaded 0, added 0\nProgress: resolved 116, reused 113, downloaded 0, added 0\nProgress: resolved 161, reused 148, downloaded 0, added 0\nProgress: resolved 270, reused 257, downloaded 0, added 0\nProgress: resolved 305, reused 296, downloaded 0, added 0\nPackages: +297\n++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\nProgress: resolved 306, reused 297, downloaded 0, added 45\nProgress: resolved 306, reused 297, downloaded 0, added 92\nProgress: resolved 306, reused 297, downloaded 0, added 151\nProgress: resolved 306, reused 297, downloaded 0, added 195\nProgress: resolved 306, reused 297, downloaded 0, added 200\nProgress: resolved 306, reused 297, downloaded 0, added 207\nProgress: resolved 306, reused 297, downloaded 0, added 216\nProgress: resolved 306, reused 297, downloaded 0, added 220\nProgress: resolved 306, reused 297, downloaded 0, added 226\nProgress: resolved 306, reused 297, downloaded 0, added 227\nProgress: resolved 306, reused 297, downloaded 0, added 231\nProgress: resolved 306, reused 297, downloaded 0, added 236\nProgress: resolved 306, reused 297, downloaded 0, added 239\nProgress: resolved 306, reused 297, downloaded 0, added 241\nProgress: resolved 306, reused 297, downloaded 0, added 251\nProgress: resolved 306, reused 297, downloaded 0, added 256\nProgress: resolved 306, reused 297, downloaded 0, added 270\nProgress: resolved 306, reused 297, downloaded 0, added 292\nProgress: resolved 306, reused 297, downloaded 0, added 294\nProgress: resolved 306, reused 297, downloaded 0, added 295\nProgress: resolved 306, reused 297, downloaded 0, added 296\nProgress: resolved 306, reused 297, downloaded 0, added 297\nProgress: resolved 306, reused 297, downloaded 0, 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.20 is available)\n+ @radix-ui/react-dropdown-menu 2.1.4 (2.1.20 is available)\n+ @radix-ui/react-hover-card 1.1.4 (1.1.19 is available)\n+ @radix-ui/react-label 2.1.1 (2.1.11 is available)\n+ @radix-ui/react-menubar 1.1.4 (1.1.20 is available)\n+ @radix-ui/react-navigation-menu 1.2.3 (1.2.18 is available)\n+ @radix-ui/react-popover 1.1.4 (1.1.19 is available)\n+ @radix-ui/react-progress 1.1.1 (1.1.12 is available)\n+ @radix-ui/react-radio-group 1.2.2 (1.4.3 is available)\n+ @radix-ui/react-scroll-area 1.2.2 (1.2.14 is available)\n+ @radix-ui/react-select 2.1.4 (2.3.3 is available)\n+ @radix-ui/react-separator 1.1.1 (1.1.11 is available)\n+ @radix-ui/react-slider 1.2.2 (1.4.3 is available)\n+ @radix-ui/react-slot 1.1.1 (1.3.0 is available)\n+ @radix-ui/react-switch 1.1.2 (1.3.3 is available)\n+ @radix-ui/react-tabs 1.1.2 (1.1.17 is available)\n+ @radix-ui/react-toast 1.2.4 (1.2.19 is available)\n+ @radix-ui/react-toggle 1.1.1 (1.1.14 is available)\n+ @radix-ui/react-toggle-group 1.1.1 (1.1.15 is available)\n+ @radix-ui/react-tooltip 1.1.6 (1.2.12 is available)\n+ @types/hoist-non-react-statics 3.3.7\n+ autoprefixer 10.5.4\n+ axios 1.18.1\n+ class-variance-authority 0.7.1\n+ clsx 2.1.1\n+ cmdk 1.0.4 (1.1.1 is av",
          "command": "pnpm install --ignore-scripts --no-frozen-lockfile",
          "attempted": true,
          "installed": true,
          "missingTool": false
        }
      },
      "executionTime": 35038,
      "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": 16585,
      "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": 143,
      "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": 140,
      "testName": "Suite 5 - Secret Detection",
      "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": 99,
      "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": 73,
      "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": 8,
      "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": 76,
      "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": 7,
      "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": 10,
      "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": 71,
      "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": 71,
      "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": 67,
      "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": 7,
      "testName": "Suite 18 - Cloud Architecture",
      "sectionName": "Architecture"
    }
  ]
}