MCPcopy Create free account

hub / github.com/alpha-omega-security/scrutineer / functions

Functions2,165 in github.com/alpha-omega-security/scrutineer

↓ 2 callersFunctionresolveDataDir
resolveDataDir mirrors the server's precedence: an explicit flag wins over the config file's data key, which wins over the ./data default.
cmd/scrutineer/backup.go:216
↓ 2 callersFunctionresolveEgressSidecar
resolveEgressSidecar builds the egress proxy sidecar config for a rootless --hardened run. It resolves the default-network host-gateway the sidecar di
cmd/scrutineer/main.go:783
↓ 2 callersMethodresolveMaxTurns
resolveMaxTurns picks a scan's turn cap: the skill's own cap when it sets one, else the operator-configured default read live from settings so a chang
internal/worker/worker.go:329
↓ 2 callersMethodresumeScan
(ctx context.Context, scan *db.Scan)
internal/web/scans.go:317
↓ 2 callersMethodrunClaudeOnce
runClaudeOnce starts one `claude -p` invocation in work, streams its output through emit, and reports the wait error, whether the run hit the max-turn
internal/worker/claude.go:203
↓ 2 callersMethodrunContainerOnce
runContainerOnce launches one container for the given skill job, appending the in-container `claude` command to runBase, streaming its output through
internal/worker/container.go:321
↓ 2 callersFunctionrunDependenciesScript
(t *testing.T, mode string)
internal/worker/dependencies_script_test.go:51
↓ 2 callersFunctionrunProbeOutput
(t *testing.T, rt ContainerRuntime, args []string)
internal/worker/podman_integration_test.go:56
↓ 2 callersFunctionsarifSeverity
sarifSeverity maps a result.level plus the GitHub-convention properties.security-severity score onto scrutineer's critical/high/medium/low scale. The
internal/ingest/sarif.go:178
↓ 2 callersMethodscanCancel
(w http.ResponseWriter, r *http.Request)
internal/web/scans.go:355
↓ 2 callersMethodscanListStats
()
internal/web/scans.go:75
↓ 2 callersMethodscansCancelAll
scansCancelAll cancels every queued or running scan on a repository — the bulk companion to the per-row Cancel button, so an operator who fired off a
internal/web/scans.go:436
↓ 2 callersMethodscheduleAccountResumeAt
(resetAt time.Time)
internal/worker/worker.go:823
↓ 2 callersMethodscheduleAutoResumeAt
(when time.Time)
internal/worker/worker.go:841
↓ 2 callersMethodscheduleNextAccountResume
()
internal/worker/worker.go:873
↓ 2 callersFunctionseedExposureFinding
(t *testing.T, s *Server)
internal/web/finding_exposure_test.go:14
↓ 2 callersFunctionseedListPagePerfFixtures
(t testing.TB, s *Server, rows int)
internal/web/list_performance_test.go:149
↓ 2 callersFunctionseedRichFinding
richFinding seeds one finding with every field the enriched bundle carries, against a fresh repo, and returns the repo. Shared by the bundle-content a
internal/web/api_export_test.go:815
↓ 2 callersFunctionseedScanWithFindings
seedScanWithFindings creates a repo + a findings-kind skill + a completed scan with two findings. Used to exercise the findings dispatch path of scanR
internal/web/scan_report_test.go:17
↓ 2 callersMethodsetupHardenedNetwork
setupHardenedNetwork creates the per-scan --internal network for a hardened scan, resolves its host-gateway once, and (on rootless podman) verifies it
internal/worker/container.go:762
↓ 2 callersFunctionseverityLabel
severityLabel derives the CVSS base severity from the numeric score per the FIRST spec. The textual Finding.Severity is intentionally ignored: analyst
internal/web/finding_csaf.go:724
↓ 2 callersFunctionseverityLine
severityLine renders "Findings: X critical, Y high, Z medium, W low severity", omitting zero-count buckets only for Critical (which most scans never p
internal/web/org_summary.go:107
↓ 2 callersFunctionseverityWeight
severityWeight ranks a repo by the worst severity it carries, so the summary lists the most urgent repos first. Ties broken on total count.
internal/web/org_summary.go:150
↓ 2 callersMethodsidecarLogTail
sidecarLogTail returns the tail of the sidecar's logs for error enrichment.
internal/worker/container.go:1098
↓ 2 callersMethodsidecarNetworkIP
sidecarNetworkIP returns the sidecar's IP on the per-scan --internal network. The scan addresses the sidecar by this IP because that network is create
internal/worker/container.go:871
↓ 2 callersFunctionsidecarReachArgs
sidecarReachArgs builds the `run` args for the sidecar variant of probe (b): a throwaway container on the per-scan --internal network that must reach
internal/worker/container.go:1147
↓ 2 callersFunctionsourceForToken
sourceForToken routes a request through the API auth middleware so the scan context is populated, then reports what sourceFromRequest sees.
internal/web/api_finding_writes_test.go:258
↓ 2 callersFunctionsourceFromRequest
sourceFromRequest attributes API PATCH writes: model_suggested when the bearer token scan has a skill, analyst otherwise. Browser form edits do not co
internal/web/api_finding_writes.go:194
↓ 2 callersFunctionsplitAllow
splitAllow turns a comma-separated allowlist into a trimmed, empty-free slice.
cmd/scrutineer/proxy.go:69
↓ 2 callersMethodstartProxySidecar
startProxySidecar launches the egress proxy as a detached container on the per-scan --internal network, then connects the default (egress) network as
internal/worker/container.go:832
↓ 2 callersMethodstartRunnerLocked
startRunnerLocked builds a fresh goqite runner at the current concurrency, registers the known handlers, and starts it on a child of parentCtx. The ca
internal/queue/queue.go:105
↓ 2 callersFunctionstringSlice
(v any)
internal/web/repo_report.go:665
↓ 2 callersFunctionstripAutoResume
stripAutoResume removes existing auto-resume metadata before rewriting it.
internal/worker/worker.go:686
↓ 2 callersFunctionstripGitSuffix
stripGitSuffix returns u with any trailing slash and ".git" removed. All major forges clone fine without it and ecosyste.ms / web UIs emit the bare fo
internal/web/parse_repo_url.go:147
↓ 2 callersMethodsupportsNoNewPrivileges
supportsNoNewPrivileges reports whether the runtime accepts Docker/Podman's `--security-opt no-new-privileges` hardening flag.
internal/worker/runtime.go:115
↓ 2 callersMethodtoFinding
(scanID, repoID uint, commit, subPath string)
internal/worker/findings.go:112
↓ 2 callersFunctionupdateDependentsTable
(gdb *gorm.DB, repoID uint, payload []byte)
internal/worker/ecosystems.go:252
↓ 2 callersFunctionvalidateOutputFile
(f string)
internal/web/skills_handlers.go:20
↓ 2 callersFunctionvalidateSkillName
(name string)
internal/web/skills_handlers.go:16
↓ 2 callersFunctionvalidateSkillPaths
(name, outputFile string)
internal/worker/skill.go:903
↓ 2 callersMethodverifyHardenedNetwork
verifyHardenedNetwork fails closed when the per-scan --internal network does not deliver the isolation --hardened promises. It is used on podman, wher
internal/worker/container.go:1012
↓ 2 callersFunctionvidSinks
vidSinks turns a finding's newline-joined Locations into the file:line arguments the vid CLI expects, keeping only entries that resolve to a real file
internal/worker/vid.go:28
↓ 2 callersFunctionwithPragmas
withPragmas appends connectionPragmas to dsn, joining with ? or & depending on whether dsn already carries a query string (the in-memory test DSNs do)
internal/db/db.go:1066
↓ 2 callersFunctionworkspaceScanID
workspaceScanID returns the scan id whose workspace path a run should use. A fresh scan uses its own id; a retry that resumes a session reuses the lin
internal/worker/worker.go:341
↓ 2 callersFunctionwriteNumberedFile
(t *testing.T, srcDir, rel string, lines int)
internal/worker/snippet_test.go:11
↓ 2 callersFunctionwriteScanReportJSONBlock
(b *strings.Builder, raw, kind string)
internal/web/scan_report.go:221
↓ 1 callersFunctionBackfillFindings
BackfillFindings re-parses stored report JSON to fill columns that were added after the findings were originally created. Safe to call repeatedly; onl
internal/db/db.go:1264
↓ 1 callersFunctionBackfillStatusPriority
(gdb *gorm.DB)
internal/db/db.go:1234
↓ 1 callersMethodBinary
Binary is the executable on the runner image's PATH.
internal/worker/harness.go:23
↓ 1 callersFunctionDetectProfile
DetectProfile runs `brief` against the cloned source inside the default runner image (which already ships brief) and returns the matching profile. Fal
internal/worker/profile.go:445
↓ 1 callersMethodEnqueueRetry
EnqueueRetry re-puts a job on the queue with an attempt count and a delay before it becomes visible. Used by the prereq gate to back off a scan whose
internal/queue/queue.go:167
↓ 1 callersFunctionFetchPackagesByPURL
FetchPackagesByPURL resolves a dep's PURL to its upstream package records via packages.ecosyste.ms. Used by the web handler's "import dependency" butt
internal/worker/metadata.go:27
↓ 1 callersMethodGuideFilename
GuideFilename is the workspace-relative path the harness auto-loads as project memory, where injectProfileGuide writes the profile's PROFILE.md. claud
internal/worker/harness.go:47
↓ 1 callersMethodHasExportableReport
HasExportableReport tells the UI whether to offer a "download as markdown" button for this scan. A scan that has produced findings is always worth exp
internal/db/db.go:985
↓ 1 callersMethodHostGatewaySupported
HostGatewaySupported reports whether the detected runtime is known to honour `--add-host host.docker.internal:host-gateway`, which the egress path nee
internal/worker/runtime.go:329
↓ 1 callersFunctionListRemoteBranches
ListRemoteBranches returns the branch names a remote advertises, for the add-repo form's branch picker. https-only (validated like clone) and best-eff
internal/worker/clone.go:191
↓ 1 callersFunctionModelTierValues
(gdb *gorm.DB, fallback string)
internal/web/models.go:141
↓ 1 callersMethodNeedsKeepID
NeedsKeepID is the exported form of needsKeepID for callers outside the package. The startup path uses it to log a "warming" notice before the keep-id
internal/worker/runtime.go:69
↓ 1 callersFunctionNewAPIToken
NewAPIToken returns a 32-byte hex token suitable for bearer auth.
internal/web/api.go:28
↓ 1 callersMethodRemoveScanArtifacts
RemoveScanArtifacts deletes the on-disk per-scan workspace and claude session store for scanID. Normal terminal cleanup removes workspaces, while resu
internal/worker/worker.go:375
↓ 1 callersMethodRunSkill
RunSkill runs a skill inside an ephemeral container. The whole workspace (clone + staged .claude/skills + context.json + output) is mounted at work re
internal/worker/container.go:214
↓ 1 callersMethodRunnerImageRef
RunnerImageRef is the runner image annotated with the git commit it was built from, e.g. "ghcr.io/.../scrutineer-runner @ abc123def456", for the setti
internal/web/theme.go:158
↓ 1 callersFunctionRunnerImageRevision
RunnerImageRevision returns the git commit the runner image was built from, read from the org.opencontainers.image.revision OCI label that docker/meta
internal/worker/versions.go:75
↓ 1 callersFunctionSetModels
SetModels replaces the pick list. Called at startup from config; no-op for an empty list so a config with only default_model set keeps the built-in li
internal/web/models.go:51
↓ 1 callersFunctionSetTheme
(name string)
internal/web/theme.go:31
↓ 1 callersMethodSkillDir
SkillDir is where the worker stages SKILL.md/schema.json before calling RunSkill, so the runner's harness discovers it. The path varies per harness (.
internal/worker/claude.go:37
↓ 1 callersMethodSkillDir
SkillDir delegates to the harness so the worker stages SKILL.md where this runner's agent CLI will discover it.
internal/worker/container.go:579
↓ 1 callersMethodSubscribe
(scanID, repoID uint)
internal/web/sse.go:44
↓ 1 callersFunctionSweepOrphanHardenedNetworks
SweepOrphanHardenedNetworks removes per-scan hardened networks left over by previous scrutineer processes (typically after a crash mid-scan). The runt
internal/worker/container.go:1176
↓ 1 callersFunctionSweepOrphanProxySidecars
SweepOrphanProxySidecars force-removes egress proxy sidecar containers left behind by a previous scrutineer process (name prefix proxySidecarPrefix),
internal/worker/container.go:1229
↓ 1 callersFunctionSweepRunning
SweepRunning marks any scans still flagged running as failed. Call once at startup: a running row with no worker attached means the previous process d
internal/db/db.go:1291
↓ 1 callersMethodUnsubscribe
(c *client)
internal/web/sse.go:56
↓ 1 callersFunctionUpsert
Upsert inserts a new Skill row or updates the existing row with matching name. If the existing row's SourceHash differs from the parsed one, the row's
internal/skills/load.go:98
↓ 1 callersFunctionValidExposureJustification
ValidExposureJustification reports whether j is one of the CSAF VEX flag labels. Empty is valid (no flag attached).
internal/db/db.go:786
↓ 1 callersFunctionValidExposureStatus
ValidExposureStatus reports whether s is one of the CSAF product_status buckets FindingDependent stores. Empty is treated as under_investigation by th
internal/db/db.go:776
↓ 1 callersFunctionVerifyKeepID
VerifyKeepID smoke-tests `--userns=keep-id` for rootless podman so a missing or too-small /etc/subuid range fails once at startup with an actionable m
internal/worker/runtime.go:357
↓ 1 callersFunctionVerifyUpstreamDNS
VerifyUpstreamDNS fails closed when the sidecar cannot resolve its allowlisted upstreams. Under rootless --hardened, upstream names (e.g. api.anthropi
internal/worker/egress.go:467
↓ 1 callersMethodaddDedupNote
(duplicateID, canonicalID uint, reason string)
internal/worker/skill_parsers.go:1075
↓ 1 callersFunctionallScalars
(xs []any)
internal/web/jsontree.go:85
↓ 1 callersFunctionanyMarkersMatch
anyMarkersMatch reports whether at least one marker is present (OR). An empty list matches (the profile imposes no AnyMarkers constraint); a non-empty
internal/worker/profile.go:328
↓ 1 callersFunctionanyPackageHasScope
anyPackageHasScope reports whether at least one package carries a direct/transitive scope value; flat-list SBOMs leave them all blank, in which case t
internal/web/sboms.go:98
↓ 1 callersMethodapiExportRepoBundle
(w http.ResponseWriter, r *http.Request, repo *db.Repository)
internal/web/api_export.go:189
↓ 1 callersMethodapiHandler
()
internal/web/api.go:87
↓ 1 callersMethodapiHosts
()
internal/worker/egress.go:343
↓ 1 callersFunctionapplyFindingStatusFilter
(q *gorm.DB, status string)
internal/web/server.go:1042
↓ 1 callersMethodautoResumeBuffer
()
internal/worker/worker.go:279
↓ 1 callersFunctionbalanceSpansAtNewlines
(s)
internal/web/static/code_browser.js:33
↓ 1 callersFunctionbearer
(h string)
internal/web/api.go:64
↓ 1 callersFunctionbuildAuditNotes
(f db.Finding)
internal/web/finding_csaf.go:606
↓ 1 callersFunctionbuildCWE
(id string)
internal/web/finding_csaf.go:596
↓ 1 callersFunctionbuildCommit
buildCommit reports the commit scrutineer was built from. It prefers the ldflags-injected value (set in the container image build, where .git is exclu
cmd/scrutineer/main.go:45
↓ 1 callersFunctionbuildFlags
(f db.Finding, productIDs []string, fdRows []db.FindingDependent, deps map[uint]db.Dependent)
internal/web/finding_csaf.go:451
↓ 1 callersFunctionbuildMarkdownDescription
(sections map[string]string)
internal/ingest/markdown.go:122
↓ 1 callersFunctionbuildProductStatusMulti
(f db.Finding, productIDs []string, fdRows []db.FindingDependent, deps map[uint]db.Dependent)
internal/web/finding_csaf.go:481
↓ 1 callersFunctionbuildProductTree
(productName, productVersion, baseProductID string, pkgs []db.Package, fdRows []db.FindingDependent, deps map[
internal/web/finding_csaf.go:392
↓ 1 callersFunctionbuildReferences
(refs []db.FindingReference)
internal/web/finding_csaf.go:636
↓ 1 callersFunctionbuildRemediationsMulti
(f db.Finding, repo db.Repository, productIDs []string)
internal/web/finding_csaf.go:533
↓ 1 callersFunctionbuildSchemaRepairPrompt
(skill *db.Skill, detail, report string)
internal/worker/skill.go:263
↓ 1 callersFunctionbuildScoreMulti
buildScoreMulti derives the CVSS block from the vector itself. The stored f.CVSSScore is intentionally ignored: rows written before the auto-sync land
internal/web/finding_csaf.go:518
↓ 1 callersFunctionbuildSinkDispositions
buildSinkDispositions maps each inventory sink id to its outcome. The deep-dive skill guarantees every inventory entry lands in either a finding's Sin
internal/web/repo_report.go:203
← previousnext →601–700 of 2,165, ranked by callers