| Default | 7402 | 1507 | 8909 | 26355 | 83% | | 4890 | 6875 | 71.1% | |
| src/accountlinking/classifier.js | 57 | 1 | 58 | 130 | 98.2% | | 74 | 90 | 82.2% | |
| src/accountlinking/defaultRules.js | 1 | 0 | 1 | 22 | 100% | | 0 | 0 | | |
| src/accountlinking/engine.js | 110 | 20 | 130 | 315 | 84.6% | | 68 | 112 | 60.7% | |
| src/app.js | 78 | 21 | 99 | 404 | 78.7% | | 23 | 63 | 36.5% | |
| src/auth/permissionManifest.js | 3 | 0 | 3 | 57 | 100% | | 0 | 0 | | |
| src/auth/permissions.js | 17 | 0 | 17 | 85 | 100% | | 10 | 10 | 100% | |
| src/auth/readTokens.js | 17 | 10 | 27 | 109 | 62.9% | | 10 | 19 | 52.6% | |
| src/bootstrap.js | 48 | 94 | 142 | 410 | 33.8% | | 19 | 55 | 34.5% | |
| src/cli/auth-config.js | 75 | 7 | 82 | 208 | 91.4% | | 56 | 60 | 93.3% | |
| src/config/authConfig.js | 48 | 8 | 56 | 217 | 85.7% | | 40 | 54 | 74% | |
| src/contexts/contextFilters.js | 35 | 1 | 36 | 131 | 97.2% | | 26 | 32 | 81.2% | |
| src/contexts/cycleGuard.js | 6 | 0 | 6 | 73 | 100% | | 4 | 4 | 100% | |
| src/contexts/memberCounts.js | 10 | 0 | 10 | 53 | 100% | | 4 | 4 | 100% | |
| src/contexts/plugins/ad-ou-from-dn.js | 19 | 28 | 47 | 129 | 40.4% | | 11 | 26 | 42.3% | |
| src/contexts/plugins/department-from-principal.js | 19 | 0 | 19 | 71 | 100% | | 14 | 14 | 100% | |
| src/contexts/plugins/entra-group-category-tree.js | 26 | 0 | 26 | 73 | 100% | | 19 | 21 | 90.4% | |
| src/contexts/plugins/manager-hierarchy.js | 70 | 0 | 70 | 233 | 100% | | 61 | 66 | 92.4% | |
| src/contexts/plugins/orphaned-accounts.js | 18 | 1 | 19 | 77 | 94.7% | | 4 | 6 | 66.6% | |
| src/contexts/plugins/principal-type-tree.js | 28 | 0 | 28 | 83 | 100% | | 27 | 30 | 90% | |
| src/contexts/plugins/registry.js | 2 | 0 | 2 | 36 | 100% | | 2 | 2 | 100% | |
| src/contexts/plugins/resource-cluster/index.js | 30 | 0 | 30 | 133 | 100% | | 16 | 18 | 88.8% | |
| src/contexts/plugins/resource-cluster/tokenize.js | 28 | 0 | 28 | 128 | 100% | | 19 | 20 | 95% | |
| src/contexts/plugins/resource-type-tree.js | 28 | 35 | 63 | 140 | 44.4% | | 17 | 49 | 34.6% | |
| src/contexts/plugins/risky-consent.js | 68 | 4 | 72 | 213 | 94.4% | | 43 | 56 | 76.7% | |
| src/contexts/plugins/riskyAppFeed.js | 31 | 0 | 31 | 69 | 100% | | 24 | 26 | 92.3% | |
| src/contexts/plugins/riskyConsentRiskMap.js | 16 | 0 | 16 | 106 | 100% | | 21 | 23 | 91.3% | |
| src/contexts/plugins/runner.js | 91 | 24 | 115 | 401 | 79.1% | | 63 | 95 | 66.3% | |
| src/contexts/plugins/scope-hierarchy.js | 34 | 2 | 36 | 112 | 94.4% | | 28 | 34 | 82.3% | |
| src/contexts/plugins/types.js | 0 | 0 | 0 | 0 | | | 0 | 0 | | |
| src/contexts/seedAlgorithms.js | 8 | 0 | 8 | 48 | 100% | | 6 | 10 | 60% | |
| src/crawlerManifests.js | 28 | 1 | 29 | 98 | 96.5% | | 22 | 25 | 88% | |
| src/db/columnCache.js | 83 | 2 | 85 | 213 | 97.6% | | 26 | 36 | 72.2% | |
| src/db/connection.js | 31 | 27 | 58 | 156 | 53.4% | | 23 | 49 | 46.9% | |
| src/db/matrixHelpers.js | 17 | 0 | 17 | 70 | 100% | | 28 | 28 | 100% | |
| src/db/migrate.js | 16 | 29 | 45 | 155 | 35.5% | | 5 | 11 | 45.4% | |
| src/db/queryHelpers.js | 5 | 0 | 5 | 43 | 100% | | 0 | 0 | | |
| src/db/schemaErrors.js | 2 | 0 | 2 | 19 | 100% | | 2 | 2 | 100% | |
| src/db/sqlParams.js | 3 | 0 | 3 | 22 | 100% | | 0 | 0 | | |
| src/effectiveAccess/engine.js | 168 | 9 | 177 | 507 | 94.9% | | 101 | 143 | 70.6% | |
| src/effectiveAccess/policies.js | 23 | 0 | 23 | 88 | 100% | | 24 | 28 | 85.7% | |
| src/export/excelWorkbook.js | 62 | 0 | 62 | 151 | 100% | | 6 | 6 | 100% | |
| src/export/exportBaseUrl.js | 17 | 0 | 17 | 63 | 100% | | 20 | 21 | 95.2% | |
| src/export/queryTemplates.js | 8 | 0 | 8 | 152 | 100% | | 2 | 2 | 100% | |
| src/ingest/crawlerPresence.js | 9 | 0 | 9 | 42 | 100% | | 8 | 8 | 100% | |
| src/ingest/engine.js | 24 | 53 | 77 | 254 | 31.1% | | 20 | 69 | 28.9% | |
| src/ingest/normalization.js | 46 | 3 | 49 | 183 | 93.8% | | 58 | 66 | 87.8% | |
| src/ingest/sessions.js | 4 | 63 | 67 | 163 | 5.9% | | 0 | 37 | 0% | |
| src/ingest/tempTableHelpers.js | 18 | 0 | 18 | 43 | 100% | | 10 | 10 | 100% | |
| src/ingest/tombstonePurge.js | 7 | 0 | 7 | 28 | 100% | | 6 | 6 | 100% | |
| src/ingest/validation.js | 71 | 4 | 75 | 549 | 94.6% | | 107 | 112 | 95.5% | |
| src/lib/capabilityId.js | 7 | 0 | 7 | 51 | 100% | | 8 | 8 | 100% | |
| src/lib/jsonb.js | 5 | 0 | 5 | 19 | 100% | | 4 | 4 | 100% | |
| src/lib/listSort.js | 4 | 0 | 4 | 24 | 100% | | 5 | 5 | 100% | |
| src/lib/principalTypes.js | 1 | 0 | 1 | 6 | 100% | | 0 | 0 | | |
| src/lib/ssrfGuard.js | 47 | 1 | 48 | 96 | 97.9% | | 69 | 75 | 92% | |
| src/lib/syncVersion.js | 7 | 0 | 7 | 46 | 100% | | 6 | 8 | 75% | |
| src/llm/providers.js | 71 | 90 | 161 | 404 | 44% | | 75 | 184 | 40.7% | |
| src/llm/riskPrompts.js | 35 | 2 | 37 | 250 | 94.5% | | 21 | 26 | 80.7% | |
| src/llm/scraper.js | 67 | 10 | 77 | 209 | 87% | | 45 | 57 | 78.9% | |
| src/llm/service.js | 15 | 38 | 53 | 162 | 28.3% | | 12 | 47 | 25.5% | |
| src/matrix/attrExpr.js | 10 | 0 | 10 | 32 | 100% | | 14 | 14 | 100% | |
| src/matrix/attributeCut.js | 33 | 0 | 33 | 138 | 100% | | 22 | 25 | 88% | |
| src/matrix/contextRollup.js | 35 | 0 | 35 | 263 | 100% | | 42 | 44 | 95.4% | |
| src/matrix/filterSql.js | 72 | 10 | 82 | 228 | 87.8% | | 59 | 80 | 73.7% | |
| src/matrix/inheritedAccess.js | 171 | 9 | 180 | 397 | 95% | | 96 | 164 | 58.5% | |
| src/matrix/rollupBuilders.js | 22 | 0 | 22 | 130 | 100% | | 24 | 24 | 100% | |
| src/matrix/scopeHistory.js | 62 | 11 | 73 | 305 | 84.9% | | 44 | 71 | 61.9% | |
| src/middleware/auth.js | 59 | 5 | 64 | 191 | 92.1% | | 45 | 52 | 86.5% | |
| src/middleware/crawlerAuth.js | 19 | 52 | 71 | 163 | 26.7% | | 8 | 54 | 14.8% | |
| src/middleware/perfMetrics.js | 1 | 21 | 22 | 72 | 4.5% | | 1 | 10 | 10% | |
| src/mock/data.js | 55 | 0 | 55 | 185 | 100% | | 17 | 18 | 94.4% | |
| src/perf/collector.js | 6 | 47 | 53 | 131 | 11.3% | | 0 | 16 | 0% | |
| src/perf/sqlTimer.js | 12 | 0 | 12 | 35 | 100% | | 9 | 11 | 81.8% | |
| src/postCrawlJobs.js | 1 | 7 | 8 | 28 | 12.5% | | 0 | 1 | 0% | |
| src/riskscoring/engine.js | 281 | 50 | 331 | 944 | 84.8% | | 155 | 227 | 68.2% | |
| src/riskscoring/tiers.js | 6 | 0 | 6 | 17 | 100% | | 10 | 10 | 100% | |
| src/routes/accountLinking.js | 52 | 1 | 53 | 122 | 98.1% | | 29 | 36 | 80.5% | |
| src/routes/admin.js | 6 | 0 | 6 | 28 | 100% | | 0 | 0 | | |
| src/routes/admin/curatedData.js | 124 | 13 | 137 | 371 | 90.5% | | 68 | 103 | 66% | |
| src/routes/admin/dashboard.js | 25 | 2 | 27 | 131 | 92.5% | | 16 | 22 | 72.7% | |
| src/routes/admin/maintenance.js | 67 | 7 | 74 | 203 | 90.5% | | 27 | 33 | 81.8% | |
| src/routes/admin/riskConfig.js | 21 | 0 | 21 | 94 | 100% | | 13 | 19 | 68.4% | |
| src/routes/admin/settings.js | 17 | 2 | 19 | 59 | 89.4% | | 19 | 22 | 86.3% | |
| src/routes/authRoles.js | 53 | 3 | 56 | 193 | 94.6% | | 34 | 48 | 70.8% | |
| src/routes/bulkLists.js | 84 | 4 | 88 | 286 | 95.4% | | 36 | 38 | 94.7% | |
| src/routes/categories.js | 146 | 2 | 148 | 395 | 98.6% | | 104 | 115 | 90.4% | |
| src/routes/contextPlugins.js | 83 | 0 | 83 | 204 | 100% | | 39 | 53 | 73.5% | |
| src/routes/contexts.js | 4 | 0 | 4 | 25 | 100% | | 0 | 0 | | |
| src/routes/contexts/crud.js | 101 | 3 | 104 | 238 | 97.1% | | 101 | 124 | 81.4% | |
| src/routes/contexts/members.js | 56 | 0 | 56 | 135 | 100% | | 47 | 58 | 81% | |
| src/routes/contexts/read.js | 88 | 1 | 89 | 265 | 98.8% | | 71 | 82 | 86.5% | |
| src/routes/contexts/shared.js | 4 | 0 | 4 | 15 | 100% | | 0 | 0 | | |
| src/routes/crawlerFiles.js | 119 | 10 | 129 | 294 | 92.2% | | 55 | 67 | 82% | |
| src/routes/crawlers.js | 0 | 0 | 0 | 0 | | | 0 | 0 | | |
| src/routes/crawlers/admin.js | 86 | 18 | 104 | 263 | 82.6% | | 50 | 76 | 65.7% | |
| src/routes/crawlers/selfService.js | 133 | 29 | 162 | 387 | 82% | | 97 | 153 | 63.3% | |
| src/routes/crawlers/shared.js | 6 | 0 | 6 | 24 | 100% | | 0 | 0 | | |
| src/routes/dataExport.js | 44 | 0 | 44 | 109 | 100% | | 27 | 28 | 96.4% | |
| src/routes/details.js | 4 | 0 | 4 | 25 | 100% | | 0 | 0 | | |
| src/routes/details/accessPackage.js | 134 | 5 | 139 | 348 | 96.4% | | 60 | 87 | 68.9% | |
| src/routes/details/group.js | 61 | 0 | 61 | 155 | 100% | | 17 | 28 | 60.7% | |
| src/routes/details/shared.js | 15 | 0 | 15 | 61 | 100% | | 10 | 10 | 100% | |
| src/routes/details/user.js | 124 | 1 | 125 | 366 | 99.2% | | 39 | 68 | 57.3% | |
| src/routes/effectiveAccess.js | 25 | 4 | 29 | 71 | 86.2% | | 31 | 35 | 88.5% | |
| src/routes/governance.js | 20 | 28 | 48 | 188 | 41.6% | | 14 | 30 | 46.6% | |
| src/routes/identities.js | 4 | 0 | 4 | 24 | 100% | | 0 | 0 | | |
| src/routes/identities/detail.js | 81 | 6 | 87 | 316 | 93.1% | | 24 | 38 | 63.1% | |
| src/routes/identities/list.js | 85 | 8 | 93 | 273 | 91.3% | | 46 | 60 | 76.6% | |
| src/routes/identities/overrides.js | 23 | 4 | 27 | 67 | 85.1% | | 16 | 18 | 88.8% | |
| src/routes/identities/shared.js | 18 | 0 | 18 | 43 | 100% | | 8 | 8 | 100% | |
| src/routes/ingest.js | 3 | 0 | 3 | 24 | 100% | | 0 | 0 | | |
| src/routes/ingest/handlers.js | 90 | 8 | 98 | 228 | 91.8% | | 50 | 62 | 80.6% | |
| src/routes/ingest/helpers.js | 54 | 4 | 58 | 180 | 93.1% | | 75 | 82 | 91.4% | |
| src/routes/ingest/matrixViews.js | 34 | 23 | 57 | 206 | 59.6% | | 11 | 30 | 36.6% | |
| src/routes/jobs.js | 3 | 0 | 3 | 21 | 100% | | 0 | 0 | | |
| src/routes/jobs/configs.js | 72 | 14 | 86 | 170 | 83.7% | | 33 | 55 | 60% | |
| src/routes/jobs/helpers.js | 69 | 0 | 69 | 172 | 100% | | 81 | 88 | 92% | |
| src/routes/jobs/runs.js | 104 | 22 | 126 | 304 | 82.5% | | 51 | 69 | 73.9% | |
| src/routes/llm.js | 27 | 35 | 62 | 142 | 43.5% | | 13 | 38 | 34.2% | |
| src/routes/matrix.js | 9 | 66 | 75 | 223 | 12% | | 0 | 48 | 0% | |
| src/routes/matrix/data.js | 277 | 9 | 286 | 762 | 96.8% | | 145 | 184 | 78.8% | |
| src/routes/matrix/savedFilters.js | 55 | 12 | 67 | 128 | 82% | | 43 | 59 | 72.8% | |
| src/routes/matrix/scope.js | 20 | 72 | 92 | 259 | 21.7% | | 6 | 64 | 9.3% | |
| src/routes/matrix/shared.js | 66 | 26 | 92 | 317 | 71.7% | | 78 | 104 | 75% | |
| src/routes/orgChart.js | 26 | 0 | 26 | 75 | 100% | | 13 | 16 | 81.2% | |
| src/routes/perf.js | 28 | 0 | 28 | 82 | 100% | | 15 | 18 | 83.3% | |
| src/routes/permissions.js | 5 | 0 | 5 | 26 | 100% | | 0 | 0 | | |
| src/routes/permissions/accessPackages.js | 19 | 2 | 21 | 115 | 90.4% | | 5 | 8 | 62.5% | |
| src/routes/permissions/grid.js | 149 | 25 | 174 | 540 | 85.6% | | 81 | 120 | 67.5% | |
| src/routes/permissions/nestedGroups.js | 33 | 0 | 33 | 153 | 100% | | 18 | 20 | 90% | |
| src/routes/permissions/shared.js | 4 | 0 | 4 | 15 | 100% | | 2 | 2 | 100% | |
| src/routes/permissions/syncLog.js | 28 | 0 | 28 | 87 | 100% | | 14 | 14 | 100% | |
| src/routes/preferences.js | 5 | 26 | 31 | 78 | 16.1% | | 0 | 18 | 0% | |
| src/routes/recentChanges.js | 3 | 0 | 3 | 22 | 100% | | 0 | 0 | | |
| src/routes/recentChanges/changes.js | 125 | 16 | 141 | 266 | 88.6% | | 79 | 132 | 59.8% | |
| src/routes/recentChanges/shared.js | 23 | 6 | 29 | 76 | 79.3% | | 25 | 38 | 65.7% | |
| src/routes/recentChanges/timeline.js | 129 | 10 | 139 | 325 | 92.8% | | 131 | 175 | 74.8% | |
| src/routes/resources.js | 104 | 87 | 191 | 492 | 54.4% | | 45 | 112 | 40.1% | |
| src/routes/riskProfiles.js | 251 | 0 | 251 | 520 | 100% | | 179 | 220 | 81.3% | |
| src/routes/riskScores.js | 3 | 0 | 3 | 20 | 100% | | 0 | 0 | | |
| src/routes/riskScores/entity.js | 86 | 9 | 95 | 225 | 90.5% | | 56 | 68 | 82.3% | |
| src/routes/riskScores/list.js | 57 | 2 | 59 | 222 | 96.6% | | 63 | 68 | 92.6% | |
| src/routes/riskScores/shared.js | 27 | 3 | 30 | 67 | 90% | | 23 | 26 | 88.4% | |
| src/routes/riskScoringRuns.js | 34 | 1 | 35 | 80 | 97.1% | | 17 | 21 | 80.9% | |
| src/routes/systems.js | 84 | 0 | 84 | 214 | 100% | | 40 | 46 | 86.9% | |
| src/routes/tags.js | 3 | 0 | 3 | 22 | 100% | | 0 | 0 | | |
| src/routes/tags/crud.js | 142 | 0 | 142 | 297 | 100% | | 96 | 116 | 82.7% | |
| src/routes/tags/entities.js | 132 | 6 | 138 | 342 | 95.6% | | 69 | 78 | 88.4% | |
| src/routes/tags/shared.js | 24 | 0 | 24 | 65 | 100% | | 14 | 14 | 100% | |
| src/routes/updates.js | 48 | 12 | 60 | 192 | 80% | | 35 | 46 | 76% | |
| src/scheduler.js | 40 | 38 | 78 | 289 | 51.2% | | 45 | 71 | 63.3% | |
| src/secrets/crawlerSecrets.js | 21 | 7 | 28 | 68 | 75% | | 10 | 16 | 62.5% | |
| src/secrets/migrateCrawlerSecrets.js | 14 | 2 | 16 | 48 | 87.5% | | 4 | 4 | 100% | |
| src/secrets/vault.js | 40 | 13 | 53 | 165 | 75.4% | | 4 | 9 | 44.4% | |
| src/startupState.js | 18 | 0 | 18 | 61 | 100% | | 4 | 4 | 100% | |
| src/updates/channel.js | 12 | 0 | 12 | 35 | 100% | | 20 | 20 | 100% | |
| src/updates/checkForUpdates.js | 26 | 0 | 26 | 96 | 100% | | 25 | 26 | 96.1% | |
| src/updates/componentVersions.js | 19 | 0 | 19 | 93 | 100% | | 36 | 36 | 100% | |
| src/updates/detect.js | 36 | 0 | 36 | 79 | 100% | | 24 | 31 | 77.4% | |
| src/updates/job.js | 7 | 0 | 7 | 19 | 100% | | 0 | 0 | | |
| src/updates/versionCompare.js | 25 | 0 | 25 | 48 | 100% | | 40 | 41 | 97.5% | |
| src/version.js | 9 | 0 | 9 | 31 | 100% | | 6 | 6 | 100% | |