The Developer Platform for Modern APIs
This report presents the forensic synthetic code analysis of unkeyed/unkey, a Go project with 5,391 GitHub stars. SynthScan v2.0 examined 539,626 lines of code across 5413 source files, recording 1682 pattern matches distributed across 11 syntactic categories. The overall adjusted score of 4.6 places this repository in the Likely human-written band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 1682 distinct pattern matches across 11 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | cmd/dev/github/setup.go | 1 | package github | COMMENT |
| LOW | tools/generate-rpc-clients/main.go | 1 | // generate-rpc-clients generates simplified client wrappers for Connect RPC service interfaces. | COMMENT |
| LOW | tools/pricing/pricing.go | 1 | // Package pricing declares the Unkey Stripe billing catalog as typed Go data. | COMMENT |
| LOW | tools/pricing/pricing.go | 21 | // | COMMENT |
| LOW | tools/pricing/cmd/pricing/main.go | 1 | // Command pricing reconciles the Unkey Stripe billing catalog (declared in the | COMMENT |
| LOW | tools/pricing/internal/stripeenv/client.go | 21 | // (`{"api_key":"..."}`). Override with STRIPE_SECRET_ID. | COMMENT |
| LOW | tools/pricing/internal/stripeenv/client.go | 81 | // Client is a configured Stripe client bound to the environment it targets. | COMMENT |
| LOW | web/tools/local/tsconfig.json | 21 | // "jsxFactory": "", /* Specify the JSX factory function used when targeting React J | COMMENT |
| LOW | web/tools/local/tsconfig.json | 41 | /* JavaScript Support */ | COMMENT |
| LOW | web/tools/local/tsconfig.json | 61 | // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of outpu | COMMENT |
| LOW | web/tools/local/tsconfig.json | 81 | "strictPropertyInitialization": true /* Check for class properties that are declared but not set in the constructor. | COMMENT |
| LOW | web/tools/local/src/audit-log-benchmark.ts | 41 | const DEFAULT_COUNT = 1_000_000; | COMMENT |
| LOW | web/tools/migrate/ch_logs.ts | 1 | import { createClient } from "@clickhouse/client-web"; | COMMENT |
| LOW | web/tools/migrate/ch_copy.ts | 1 | import { createClient } from "@clickhouse/client-web"; | COMMENT |
| LOW | web/internal/encryption/tsconfig.json | 1 | { | COMMENT |
| LOW | web/internal/encryption/tsconfig.json | 21 | // "noLib": true, /* Disable including any library files, including the default l | COMMENT |
| LOW | web/internal/encryption/tsconfig.json | 41 | /* Emit */ | COMMENT |
| LOW | web/internal/encryption/tsconfig.json | 61 | // "noEmitOnError": true, /* Disable emitting files if any type checking errors are repor | COMMENT |
| LOW | web/internal/encryption/tsconfig.json | 81 | // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ | COMMENT |
| LOW | web/internal/clickhouse/src/resources.ts | 121 | // ─── Hybrid timeseries (MV for cold tail + raw for live bucket) ─────── | COMMENT |
| LOW | web/internal/clickhouse/src/resources.ts | 181 | windowStartMs: windowStartSec * 1000, | COMMENT |
| LOW | web/internal/clickhouse/src/resources.ts | 261 | rawAgg: "sum(container_value) / {bucketSeconds: UInt32}", | COMMENT |
| LOW | web/internal/clickhouse/src/resources.ts | 301 | AND ts >= {tMs: Int64} | COMMENT |
| LOW | web/internal/clickhouse/src/instance-events.ts | 21 | // Optional time bounds. Logs viewer passes a tight range; the events | COMMENT |
| LOW | web/internal/hash/tsconfig.json | 1 | { | COMMENT |
| LOW | web/internal/hash/tsconfig.json | 21 | // "noLib": true, /* Disable including any library files, including the default l | COMMENT |
| LOW | web/internal/hash/tsconfig.json | 41 | /* Emit */ | COMMENT |
| LOW | web/internal/hash/tsconfig.json | 61 | // "noEmitOnError": true, /* Disable emitting files if any type checking errors are repor | COMMENT |
| LOW | web/internal/hash/tsconfig.json | 81 | // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ | COMMENT |
| LOW | web/internal/encoding/tsconfig.json | 1 | { | COMMENT |
| LOW | web/internal/encoding/tsconfig.json | 21 | // "noLib": true, /* Disable including any library files, including the default l | COMMENT |
| LOW | web/internal/encoding/tsconfig.json | 41 | /* Emit */ | COMMENT |
| LOW | web/internal/encoding/tsconfig.json | 61 | // "noEmitOnError": true, /* Disable emitting files if any type checking errors are repor | COMMENT |
| LOW | web/internal/encoding/tsconfig.json | 81 | // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ | COMMENT |
| LOW | web/internal/icons/src/icons/clock-rotate-clockwise.tsx | 61 | // <polyline | COMMENT |
| LOW | web/internal/icons/src/icons/clock-rotate-clockwise.tsx | 81 | // strokeLinecap="round" | COMMENT |
| LOW | web/internal/db/src/schema/acme_users.ts | 21 | // Relations defined but no foreign keys enforced | COMMENT |
| LOW | web/internal/db/src/schema/frontline_routes.ts | 21 | // sticky determines whether a fullyQualifiedDomainName should get reassigned to the latest deployment | COMMENT |
| LOW | web/internal/db/src/schema/instances.ts | 21 | // migration. The flat lifecycle enum on `status` is a separate concern — | COMMENT |
| LOW | web/internal/db/src/schema/clickhouse_outbox.ts | 1 | import { bigint, index, json, mysqlTable, varchar } from "drizzle-orm/mysql-core"; | COMMENT |
| LOW | web/internal/keys/tsconfig.json | 1 | { | COMMENT |
| LOW | web/internal/keys/tsconfig.json | 21 | // "noLib": true, /* Disable including any library files, including the default l | COMMENT |
| LOW | web/internal/keys/tsconfig.json | 41 | /* Emit */ | COMMENT |
| LOW | web/internal/keys/tsconfig.json | 61 | // "noEmitOnError": true, /* Disable emitting files if any type checking errors are repor | COMMENT |
| LOW | web/internal/keys/tsconfig.json | 81 | // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ | COMMENT |
| LOW | web/internal/error/tsconfig.json | 1 | { | COMMENT |
| LOW | web/internal/error/tsconfig.json | 21 | // "noLib": true, /* Disable including any library files, including the default l | COMMENT |
| LOW | web/internal/error/tsconfig.json | 41 | /* Emit */ | COMMENT |
| LOW | web/internal/error/tsconfig.json | 61 | // "noEmitOnError": true, /* Disable emitting files if any type checking errors are repor | COMMENT |
| LOW | web/internal/error/tsconfig.json | 81 | // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ | COMMENT |
| LOW | web/internal/resend/scripts/sync-templates.tsx | 1 | // Renders the emails that the Go control plane sends (by Resend template | COMMENT |
| LOW | web/apps/dashboard/proxy.ts | 41 | "/api/auth/refresh", | COMMENT |
| LOW | …ps/dashboard/app/(app)/[workspaceSlug]/apis/actions.ts | 1 | // Both functions in this file are pure server-side helpers consumed only by | COMMENT |
| LOW | …view)/sentinel-policies/components/add-panel/schema.ts | 121 | // client-only `override` toggle. Discriminated on `override` so the two states | COMMENT |
| LOW | …ts/[namespaceId]/_overview/components/charts/index.tsx | 61 | // const formatLatency = (value: number) => | COMMENT |
| LOW | …ts/[namespaceId]/_overview/components/charts/index.tsx | 81 | // { | COMMENT |
| LOW | web/apps/dashboard/components/charts/chart-domain.ts | 1 | // When the caller opts into contraction and non-zero data covers less than | COMMENT |
| LOW | web/apps/dashboard/components/charts/chart-domain.ts | 21 | COMMENT | |
| LOW | web/apps/dashboard/lib/trpc/routers/github.ts | 321 | // victim org's installation id under their workspace, and use the | COMMENT |
| LOW | …c/routers/deploy/metrics/environment-requests-query.ts | 41 | // the resolution; the ClickHouse package resolves it to a table. `now` is a | COMMENT |
| 1199 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | …/add-panel/match-condition-editor/condition-fields.tsx | 241 | const generateRegex = trpc.deploy.environmentSettings.sentinel.generateRegex.useMutation({ | CODE |
| CRITICAL | …onents/charts/line-chart/hooks/use-fetch-timeseries.ts | 59 | trpc.ratelimit.overview.logs.queryRatelimitLatencyTimeseries.useQuery(queryParams, { | CODE |
| CRITICAL | …rt-role/components/assign-key/hooks/use-search-keys.ts | 15 | const { data, isLoading, error } = trpc.authorization.roles.keys.search.useQuery( | CODE |
| CRITICAL | …ert-role/components/assign-key/hooks/use-fetch-keys.ts | 11 | trpc.authorization.roles.keys.query.useInfiniteQuery( | CODE |
| CRITICAL | …ents/assign-permission/hooks/use-search-permissions.ts | 15 | const { data, isLoading, error } = trpc.authorization.roles.permissions.search.useQuery( | CODE |
| CRITICAL | …nents/assign-permission/hooks/use-fetch-permissions.ts | 11 | trpc.authorization.roles.permissions.query.useInfiniteQuery( | CODE |
| CRITICAL | …view-table/hooks/use-ratelimits-overview-list-query.ts | 110 | const { data, isLoading, isFetching } = trpc.ratelimit.overview.logs.query.useQuery(queryParams, { | CODE |
| CRITICAL | …view-table/hooks/use-ratelimits-overview-list-query.ts | 132 | utils.ratelimit.overview.logs.query.prefetch(params, { staleTime: Number.POSITIVE_INFINITY }), | CODE |
| CRITICAL | …onents/actions/keys-table-action.popover.constants.tsx | 50 | trpcUtils.authorization.roles.keys.query.prefetchInfinite({ | CODE |
| CRITICAL | …onents/actions/keys-table-action.popover.constants.tsx | 53 | trpcUtils.authorization.roles.permissions.query.prefetchInfinite({ | CODE |
| CRITICAL⚡ | …onents/actions/keys-table-action.popover.constants.tsx | 161 | trpcUtils.key.update.rbac.permissions.query.prefetchInfinite({ | CODE |
| CRITICAL⚡ | …onents/actions/keys-table-action.popover.constants.tsx | 164 | trpcUtils.key.update.rbac.roles.query.prefetchInfinite({ | CODE |
| CRITICAL⚡ | …onents/actions/keys-table-action.popover.constants.tsx | 167 | trpcUtils.authorization.roles.keys.query.prefetchInfinite({ | CODE |
| CRITICAL⚡ | …onents/actions/keys-table-action.popover.constants.tsx | 170 | trpcUtils.authorization.roles.permissions.query.prefetchInfinite({ | CODE |
| CRITICAL⚡ | …onents/actions/keys-table-action.popover.constants.tsx | 180 | trpcUtils.key.update.rbac.permissions.query.prefetchInfinite({ | CODE |
| CRITICAL⚡ | …onents/actions/keys-table-action.popover.constants.tsx | 183 | trpcUtils.key.update.rbac.roles.query.prefetchInfinite({ | CODE |
| CRITICAL⚡ | …onents/actions/keys-table-action.popover.constants.tsx | 186 | trpcUtils.authorization.roles.keys.query.prefetchInfinite({ | CODE |
| CRITICAL⚡ | …onents/actions/keys-table-action.popover.constants.tsx | 189 | trpcUtils.authorization.roles.permissions.query.prefetchInfinite({ | CODE |
| CRITICAL | …c/components/assign-role/hooks/use-fetch-keys-roles.ts | 10 | trpc.key.update.rbac.roles.query.useInfiniteQuery( | CODE |
| CRITICAL | …/components/assign-role/hooks/use-search-keys-roles.ts | 15 | const { data, isLoading, error } = trpc.key.update.rbac.roles.search.useQuery( | CODE |
| CRITICAL | …/assign-permission/hooks/use-fetch-keys-permissions.ts | 10 | trpc.key.update.rbac.permissions.query.useInfiniteQuery( | CODE |
| CRITICAL | …assign-permission/hooks/use-search-keys-permissions.ts | 15 | const { data, isLoading, error } = trpc.authorization.roles.permissions.search.useQuery( | CODE |
| CRITICAL⚡ | …shboard/lib/collections/deploy/environment-settings.ts | 174 | trpcClient.deploy.environmentSettings.build.updateAutoDeploy.mutate({ | CODE |
| CRITICAL⚡ | …shboard/lib/collections/deploy/environment-settings.ts | 183 | trpcClient.deploy.environmentSettings.build.updateDockerfile.mutate({ | CODE |
| CRITICAL⚡ | …shboard/lib/collections/deploy/environment-settings.ts | 192 | trpcClient.deploy.environmentSettings.build.updateDockerContext.mutate({ | CODE |
| CRITICAL⚡ | …shboard/lib/collections/deploy/environment-settings.ts | 201 | trpcClient.deploy.environmentSettings.build.updateBuildCommand.mutate({ | CODE |
| CRITICAL⚡ | …shboard/lib/collections/deploy/environment-settings.ts | 210 | trpcClient.deploy.environmentSettings.build.updateWatchPaths.mutate({ | CODE |
| CRITICAL⚡ | …shboard/lib/collections/deploy/environment-settings.ts | 219 | trpcClient.deploy.environmentSettings.runtime.updatePort.mutate({ | CODE |
| CRITICAL⚡ | …shboard/lib/collections/deploy/environment-settings.ts | 228 | trpcClient.deploy.environmentSettings.runtime.updateCpu.mutate({ | CODE |
| CRITICAL⚡ | …shboard/lib/collections/deploy/environment-settings.ts | 237 | trpcClient.deploy.environmentSettings.runtime.updateMemory.mutate({ | CODE |
| CRITICAL⚡ | …shboard/lib/collections/deploy/environment-settings.ts | 246 | trpcClient.deploy.environmentSettings.runtime.updateStorage.mutate({ | CODE |
| CRITICAL⚡ | …shboard/lib/collections/deploy/environment-settings.ts | 255 | trpcClient.deploy.environmentSettings.runtime.updateCommand.mutate({ | CODE |
| CRITICAL⚡ | …shboard/lib/collections/deploy/environment-settings.ts | 264 | trpcClient.deploy.environmentSettings.runtime.updateHealthcheck.mutate({ | CODE |
| CRITICAL | …shboard/lib/collections/deploy/environment-settings.ts | 277 | trpcClient.deploy.environmentSettings.runtime.updateRegions.mutate({ | CODE |
| CRITICAL⚡ | …shboard/lib/collections/deploy/environment-settings.ts | 295 | trpcClient.deploy.environmentSettings.runtime.updateInstances.mutate({ | CODE |
| CRITICAL⚡ | …shboard/lib/collections/deploy/environment-settings.ts | 305 | trpcClient.deploy.environmentSettings.runtime.updateUpstreamProtocol.mutate({ | CODE |
| CRITICAL⚡ | …shboard/lib/collections/deploy/environment-settings.ts | 314 | trpcClient.deploy.environmentSettings.runtime.updateOpenapiSpecPath.mutate({ | CODE |
| CRITICAL | …/dashboard/lib/collections/deploy/sentinel-policies.ts | 26 | trpcClient.deploy.environmentSettings.sentinel.reorder.mutate({ | CODE |
| CRITICAL | …/dashboard/lib/collections/deploy/sentinel-policies.ts | 91 | const result = await trpcClient.deploy.environmentSettings.sentinel.list.query({ | CODE |
| CRITICAL⚡ | …/dashboard/lib/collections/deploy/sentinel-policies.ts | 201 | trpcClient.deploy.environmentSettings.sentinel.keyauth.create.mutate({ | CODE |
| CRITICAL⚡ | …/dashboard/lib/collections/deploy/sentinel-policies.ts | 207 | trpcClient.deploy.environmentSettings.sentinel.ratelimit.create.mutate({ | CODE |
| CRITICAL⚡ | …/dashboard/lib/collections/deploy/sentinel-policies.ts | 213 | trpcClient.deploy.environmentSettings.sentinel.firewall.create.mutate({ | CODE |
| CRITICAL⚡ | …/dashboard/lib/collections/deploy/sentinel-policies.ts | 219 | trpcClient.deploy.environmentSettings.sentinel.openapi.create.mutate({ | CODE |
| CRITICAL⚡ | …/dashboard/lib/collections/deploy/sentinel-policies.ts | 230 | trpcClient.deploy.environmentSettings.sentinel.keyauth.update.mutate({ | CODE |
| CRITICAL⚡ | …/dashboard/lib/collections/deploy/sentinel-policies.ts | 236 | trpcClient.deploy.environmentSettings.sentinel.ratelimit.update.mutate({ | CODE |
| CRITICAL⚡ | …/dashboard/lib/collections/deploy/sentinel-policies.ts | 242 | trpcClient.deploy.environmentSettings.sentinel.firewall.update.mutate({ | CODE |
| CRITICAL⚡ | …/dashboard/lib/collections/deploy/sentinel-policies.ts | 248 | trpcClient.deploy.environmentSettings.sentinel.openapi.update.mutate({ | CODE |
| CRITICAL⚡ | …/dashboard/lib/collections/deploy/sentinel-policies.ts | 259 | trpcClient.deploy.environmentSettings.sentinel.keyauth.delete.mutate({ | CODE |
| CRITICAL⚡ | …/dashboard/lib/collections/deploy/sentinel-policies.ts | 265 | trpcClient.deploy.environmentSettings.sentinel.ratelimit.delete.mutate({ | CODE |
| CRITICAL⚡ | …/dashboard/lib/collections/deploy/sentinel-policies.ts | 271 | trpcClient.deploy.environmentSettings.sentinel.firewall.delete.mutate({ | CODE |
| CRITICAL⚡ | …/dashboard/lib/collections/deploy/sentinel-policies.ts | 277 | trpcClient.deploy.environmentSettings.sentinel.openapi.delete.mutate({ | CODE |
| CRITICAL | …apps/dashboard/lib/collections/ratelimit/namespaces.ts | 56 | const mutation = trpcClient.ratelimit.namespace.update.name.mutate({ | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tools/pricing/internal/reconcile/reconcile.go | 99 | // ── Plans ──────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/pricing/internal/reconcile/reconcile.go | 143 | // ── Meters + metered prices ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/pricing/internal/reconcile/reconcile.go | 198 | // ── API products ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/pricing/internal/reconcile/reconcile.go | 254 | // ── Webhooks ───────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/pricing/internal/reconcile/reconcile.go | 292 | // ── Orphan detection ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/pricing/internal/reconcile/reconcile.go | 344 | // ── helpers ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/pricing/internal/reconcile/stripe.go | 20 | // ── Snapshot ───────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tools/pricing/internal/reconcile/stripe.go | 106 | // ── Queries (in-memory, against the snapshot) ──────────────────────────────── | COMMENT |
| MEDIUM | tools/pricing/internal/reconcile/stripe.go | 139 | // ── Writes ─────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/internal/clickhouse/src/sentinel.ts | 67 | // ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/internal/clickhouse/src/sentinel.ts | 69 | // ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/internal/clickhouse/src/sentinel.ts | 209 | // ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/internal/clickhouse/src/sentinel.ts | 211 | // ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | web/internal/clickhouse/src/sentinel.ts | 273 | // ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | web/internal/clickhouse/src/sentinel.ts | 275 | // ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | web/internal/clickhouse/src/sentinel.ts | 310 | // ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | web/internal/clickhouse/src/sentinel.ts | 312 | // ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/internal/clickhouse/src/resources.ts | 4 | // ─── Time window config ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/internal/clickhouse/src/resources.ts | 121 | // ─── Hybrid timeseries (MV for cold tail + raw for live bucket) ─────── | COMMENT |
| MEDIUM | web/internal/clickhouse/src/resources.ts | 187 | // ─── Metric registry ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/internal/clickhouse/src/resources.ts | 364 | // ─── Current Resource Summary (latest window from raw FINAL view) ───── | COMMENT |
| MEDIUM | web/internal/clickhouse/src/build-steps.ts | 7 | // ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/internal/clickhouse/src/build-steps.ts | 9 | // ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/internal/clickhouse/src/build-steps.ts | 22 | // ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/internal/clickhouse/src/build-steps.ts | 24 | // ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | web/internal/clickhouse/src/build-steps.ts | 42 | // ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | web/internal/clickhouse/src/build-steps.ts | 44 | // ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | web/internal/clickhouse/src/build-steps.ts | 51 | // ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | web/internal/clickhouse/src/build-steps.ts | 53 | // ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/internal/match/src/types.ts | 12 | // ── Narrowing ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | web/internal/match/src/types.ts | 77 | // ── Exhaustiveness subtraction ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | …view)/sentinel-policies/components/add-panel/schema.ts | 108 | // ── Policy form schema ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …view)/sentinel-policies/components/add-panel/schema.ts | 302 | // ── Form → canonical (protojson) conversion ───────────────────────────── | COMMENT |
| MEDIUM | …view)/sentinel-policies/components/add-panel/schema.ts | 439 | // ── Canonical → form conversion (inverse of toSentinelPolicy) ─────────── | COMMENT |
| MEDIUM | …lay/node-details-panel/components/resource-metrics.tsx | 87 | // ─── main ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …lay/node-details-panel/components/resource-metrics.tsx | 267 | // ─── formatting ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …lay/node-details-panel/components/resource-metrics.tsx | 269 | // ─── display ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ard/lib/collections/deploy/sentinel-policies.schema.ts | 16 | // ── Limits ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ard/lib/collections/deploy/sentinel-policies.schema.ts | 28 | // ── String match (protojson oneof: exact | prefix | regex) ────────────── | COMMENT |
| MEDIUM | …ard/lib/collections/deploy/sentinel-policies.schema.ts | 75 | // ── Key location (protojson oneof: bearer | header | queryParam) ──────── | COMMENT |
| MEDIUM | …ard/lib/collections/deploy/sentinel-policies.schema.ts | 97 | // ── Common policy fields ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ard/lib/collections/deploy/sentinel-policies.schema.ts | 106 | // ── KeyAuth policy ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ard/lib/collections/deploy/sentinel-policies.schema.ts | 146 | // ── RateLimit policy ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ard/lib/collections/deploy/sentinel-policies.schema.ts | 175 | // ── Firewall policy ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ard/lib/collections/deploy/sentinel-policies.schema.ts | 199 | // ── OpenAPI Validation policy ────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …/dashboard/lib/collections/deploy/sentinel-policies.ts | 192 | // ── Per-type dispatch ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | svc/heimdall/internal/network/bpf/network_helpers.h | 17 | // ─── primitive types ────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | svc/heimdall/internal/network/bpf/network_helpers.h | 27 | // ─── BPF program section macro ──────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | svc/heimdall/internal/network/bpf/network_helpers.h | 32 | // ─── BPF map definition macros (libbpf-style) ───────────────────────── | COMMENT |
| MEDIUM⚡ | svc/heimdall/internal/network/bpf/network_helpers.h | 40 | // ─── BPF map type constants ─────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | svc/heimdall/internal/network/bpf/network_helpers.h | 47 | // ─── BPF map flags ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | svc/heimdall/internal/network/bpf/network_helpers.h | 51 | // ─── libbpf-style map pinning ──────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | svc/heimdall/internal/network/bpf/network_helpers.h | 61 | // ─── tc action codes ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | svc/heimdall/internal/network/bpf/network_helpers.h | 78 | // ─── BPF helper function numbers + declarations ─────────────────────── | COMMENT |
| MEDIUM | svc/heimdall/internal/network/bpf/network_helpers.h | 85 | // ─── Endian conversion ──────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | svc/heimdall/internal/network/bpf/network_helpers.h | 98 | // ─── Ethernet protocol constants ───────────────────────────────────── | COMMENT |
| MEDIUM⚡ | svc/heimdall/internal/network/bpf/network_helpers.h | 105 | // ─── Compiler hint ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | svc/heimdall/internal/network/bpf/network_helpers.h | 111 | // ─── Kernel struct subsets ──────────────────────────────────────────── | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | web/tools/local/src/cmd/seed/utils.ts | 750 | export function getNormallyDistributedIndex( | CODE |
| LOW | web/tools/local/src/cmd/seed/utils.ts | 775 | export function initializeIdentifierPools() { | CODE |
| LOW | web/tools/local/src/cmd/seed/batch-helper.ts | 123 | export async function promptForApiRequestGeneration(): Promise<boolean> { | CODE |
| LOW | web/tools/local/src/cmd/seed/event-generator.ts | 62 | export function selectKeyWithNormalDistribution(keys: KeyInfo[]): KeyInfo { | CODE |
| LOW | web/tools/local/src/cmd/seed/event-generator.ts | 111 | export function generateVerificationEvent( | CODE |
| LOW | web/tools/local/src/cmd/seed/event-generator.ts | 269 | export function generateMatchingApiRequestForVerification( | CODE |
| LOW | web/tools/local/src/cmd/seed/event-generator.ts | 330 | export function generateMatchingApiRequestForRatelimit( | CODE |
| LOW | …al/ui/src/components/date-time/components/calendar.tsx | 10 | function CustomMonthCaptionComponent({ calendarMonth }: { calendarMonth: { date: Date } }) { | CODE |
| LOW⚡ | web/internal/clickhouse/src/sentinel.ts | 280 | export function getDeploymentRpsTimeseries(ch: Querier) { | CODE |
| LOW⚡ | web/internal/clickhouse/src/sentinel.ts | 320 | export function getDeploymentLatencyWithTimeseries(ch: Querier) { | CODE |
| LOW | web/internal/clickhouse/src/logs.ts | 345 | function getLogsTimeseriesWhereClause( | CODE |
| LOW | web/internal/clickhouse/src/ratelimits.ts | 164 | function getRatelimitLogsTimeseriesWhereClause( | CODE |
| LOW | web/internal/clickhouse/src/ratelimits.ts | 246 | function createBatchTimeseriesQuery(interval: TimeInterval) { | CODE |
| LOW | web/internal/clickhouse/src/ratelimits.ts | 277 | function createBatchTimeseriesQuerier(interval: TimeInterval) { | CODE |
| LOW | web/internal/clickhouse/src/ratelimits.ts | 554 | export function getRatelimitLogEnrichment(ch: Querier) { | CODE |
| LOW | web/internal/clickhouse/src/ratelimits.ts | 944 | function createLatencyTimeseriesQuery(interval: TimeInterval, whereClause: string) { | CODE |
| LOW | web/internal/clickhouse/src/ratelimits.ts | 986 | function getRatelimitLatencyTimeseriesWhereClause(params: RatelimitLatencyTimeseriesParams): { | CODE |
| LOW | web/internal/clickhouse/src/ratelimits.ts | 1015 | function createLatencyTimeseriesQuerier(interval: TimeInterval) { | CODE |
| LOW | web/internal/clickhouse/src/success.ts | 7 | export function getActiveWorkspacesPerMonth(ch: Querier) { | CODE |
| LOW | web/internal/clickhouse/src/verifications.ts | 514 | function createVerificationTimeseriesQuery(interval: TimeInterval, whereClause: string) { | CODE |
| LOW | web/internal/clickhouse/src/verifications.ts | 553 | function getVerificationTimeseriesWhereClause( | CODE |
| LOW | web/internal/clickhouse/src/verifications.ts | 646 | function createVerificationTimeseriesQuerier(interval: TimeInterval) { | CODE |
| LOW | web/internal/clickhouse/src/verifications.ts | 737 | async function batchVerificationTimeseries( | CODE |
| LOW | web/internal/clickhouse/src/verifications.ts | 785 | function mergeVerificationTimeseriesResults( | CODE |
| LOW | web/internal/clickhouse/src/verifications.ts | 908 | function createIdentityTimeseriesQuery(interval: TimeInterval, whereClause: string) { | CODE |
| LOW | web/internal/clickhouse/src/verifications.ts | 947 | function getIdentityTimeseriesWhereClause( | CODE |
| LOW | web/internal/clickhouse/src/verifications.ts | 1024 | function createIdentityTimeseriesQuerier(interval: TimeInterval) { | CODE |
| LOW | web/internal/clickhouse/src/keys/active_keys.ts | 144 | function createActiveKeysTimeseriesQuery(interval: TimeInterval, whereClause: string) { | CODE |
| LOW | web/internal/clickhouse/src/keys/active_keys.ts | 184 | function getActiveKeysTimeseriesWhereClause( | CODE |
| LOW | web/internal/clickhouse/src/keys/active_keys.ts | 249 | function createActiveKeysTimeseriesQuerier(interval: TimeInterval) { | CODE |
| LOW | …/icons/src/icons/arrow-dotted-rotate-anticlockwise.tsx | 15 | export function ArrowDottedRotateAnticlockwise({ iconSize = "xl-thin", ...props }: IconProps) { | CODE |
| LOW | …nternal/resend/emails/secret_scanning_key_detected.tsx | 18 | export function SecretScanningKeyDetected({ date, source, url }: Props) { | CODE |
| LOW | …tings/root-keys/components/dialog/utils/permissions.ts | 49 | export function getCategoryPermissionNames( | CODE |
| LOW | …d]/(project)/components/environment-filter-options.tsx | 9 | export function useEnvironmentFilterOptions(): EnvironmentFilterOption[] { | CODE |
| LOW | …/runtime-logs-filters/runtime-logs-severity-filter.tsx | 50 | export function RuntimeLogsSeverityFilter() { | CODE |
| LOW | …view)/settings/hooks/use-multi-environment-settings.ts | 14 | export function useMultiEnvironmentSettings(): MultiEnvironmentSettings | null { | CODE |
| LOW | …erview)/sentinel-policies/components/list/skeleton.tsx | 8 | export function SentinelPoliciesListSkeleton({ rows = 10 }: { rows?: number }) { | CODE |
| LOW | …erview)/sentinel-policies/components/list/skeleton.tsx | 21 | function SentinelPolicyRowSkeleton({ index, isLast }: { index: number; isLast: boolean }) { | CODE |
| LOW | …)/overview/components/production-card-actions-menu.tsx | 26 | export function ProductionCardActionsMenu({ | CODE |
| LOW | …overview)/overview/components/card-rollback-banner.tsx | 7 | export function ProductionCardRollbackBanner() { | CODE |
| LOW | …iew/components/production-deployment-card-skeleton.tsx | 10 | export function ProductionDeploymentCardSkeleton() { | CODE |
| LOW | …ew)/env-vars/components/add/add-env-var-expandable.tsx | 123 | function purgeLegacyPersistedDraft() { | CODE |
| LOW | …/(overview)/env-vars/components/list/env-vars-list.tsx | 205 | function useCloseEditOnGroupCollapse( | CODE |
| LOW⚡ | …le/components/actions/deployment-action-eligibility.ts | 36 | export function isCancellableDeploymentStatus(status: DeploymentStatus): boolean { | CODE |
| LOW⚡ | …le/components/actions/deployment-action-eligibility.ts | 42 | export function isRedeployableDeploymentStatus(status: DeploymentStatus): boolean { | CODE |
| LOW⚡ | …le/components/actions/deployment-action-eligibility.ts | 52 | export function getDeploymentActionEligibility( | CODE |
| LOW | …eployments/[deploymentId]/deployment-detail-header.tsx | 48 | function DeploymentDetailHeaderContent({ deployment }: { deployment: Deployment }) { | CODE |
| LOW | …d]/apps/[appId]/components/pending-redeploy-banner.tsx | 54 | function getDismissedAutomatically() { | CODE |
| LOW | …yment-card/components/active-deployment-card-empty.tsx | 13 | export function ActiveDeploymentCardEmpty({ | CODE |
| LOW | …ponents/active-deployment-card/components/skeleton.tsx | 6 | export function ActiveDeploymentCardSkeleton() { | CODE |
| LOW | …/[namespaceId]/_overview/components/controls/index.tsx | 11 | export function RatelimitOverviewLogsControls() { | CODE |
| LOW | …/identities/[identityId]/components/controls/index.tsx | 19 | export function IdentityDetailsLogsControls({ | CODE |
| LOW | web/apps/dashboard/app/auth/actions.ts | 562 | export async function completeAuthRadarEmailChallenge(params: { | CODE |
| LOW | web/apps/dashboard/app/auth/actions.ts | 622 | export async function completeAuthRadarSmsChallenge(params: { | CODE |
| LOW | …/apps/dashboard/app/new/components/onboarding-card.tsx | 24 | export function OnboardingCardDescription({ | CODE |
| LOW | web/apps/dashboard/app/api/webhooks/stripe/route.ts | 51 | async function resolveApiSubscriptionContext( | CODE |
| LOW | web/apps/dashboard/app/api/webhooks/stripe/route.ts | 88 | async function deactivateNonCreatorMemberships(orgId: string): Promise<void> { | CODE |
| LOW | web/apps/dashboard/components/ui/chart.tsx | 331 | function getPayloadConfigFromPayload(config: ChartConfig, payload: unknown, key: string) { | CODE |
| LOW | …view-table/hooks/use-ratelimits-overview-list-query.ts | 25 | export function useRatelimitsOverviewListPaginated({ | CODE |
| LOW | …board/components/auth/post-auth-invitation-handler.tsx | 25 | export function PostAuthInvitationHandler({ | CODE |
| 51 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | cmd/dev/github/README.md | 15 | ### Step 1: Create the GitHub App | COMMENT |
| LOW⚡ | cmd/dev/github/README.md | 28 | ### Step 2: Start the dev environment | COMMENT |
| LOW⚡ | cmd/dev/github/README.md | 36 | ### Step 3: Seed the database | COMMENT |
| LOW⚡ | cmd/dev/github/README.md | 42 | ### Step 4: Trigger a deployment | COMMENT |
| LOW⚡ | internal/services/ratelimit/db/generate.go | 5 | // Step 1: remove stale *_generated.go files so renamed or deleted queries | COMMENT |
| LOW⚡ | internal/services/ratelimit/db/generate.go | 9 | // Step 2: build the shared sqlc bulk-insert plugin used by sqlc.json. | COMMENT |
| LOW⚡ | internal/services/ratelimit/db/generate.go | 12 | // Step 3: run sqlc, which reads sqlc.json, parses queries/, and emits | COMMENT |
| LOW⚡ | internal/services/ratelimit/db/generate.go | 16 | // Step 4: delete deleteme.go because database.go already provides the | COMMENT |
| LOW⚡ | internal/services/keys/db/generate.go | 5 | // Step 1: remove stale *_generated.go files so renamed or deleted queries | COMMENT |
| LOW⚡ | internal/services/keys/db/generate.go | 9 | // Step 2: run sqlc, which reads sqlc.json, parses queries/, and emits | COMMENT |
| LOW⚡ | internal/services/keys/db/generate.go | 13 | // Step 3: delete deleteme.go because database.go already provides the | COMMENT |
| LOW⚡ | .claude/skills/gen-api-cli/SKILL.md | 33 | ## Step 1: Update the SDK to latest | COMMENT |
| LOW⚡ | .claude/skills/gen-api-cli/SKILL.md | 42 | ## Step 2: Read the inputs | COMMENT |
| LOW⚡ | .claude/skills/gen-api-cli/SKILL.md | 48 | ## Step 3: Group endpoints | COMMENT |
| LOW | .claude/skills/gen-api-cli/SKILL.md | 62 | ## Step 4: Directory structure | COMMENT |
| LOW | .claude/skills/gen-api-cli/SKILL.md | 304 | ## Step 5: Generate documentation | COMMENT |
| LOW | .claude/skills/gen-api-cli/SKILL.md | 435 | ## Step 6: Write tests | COMMENT |
| LOW | .claude/skills/gen-api-cli/SKILL.md | 514 | ## Step 7: Verify | COMMENT |
| LOW⚡ | svc/frontline/internal/db/generate.go | 5 | // Step 1: remove stale *_generated.go files so renamed or deleted queries | COMMENT |
| LOW⚡ | svc/frontline/internal/db/generate.go | 9 | // Step 2: run sqlc, which reads sqlc.json, parses queries/, and emits | COMMENT |
| LOW⚡ | svc/frontline/internal/db/generate.go | 13 | // Step 3: delete deleteme.go because database.go already provides the | COMMENT |
| LOW⚡ | …c/ctrl/worker/certificate/process_challenge_handler.go | 68 | // Step 1: Resolve domain | COMMENT |
| LOW⚡ | …c/ctrl/worker/certificate/process_challenge_handler.go | 76 | // Step 2: Claim the challenge | COMMENT |
| LOW | …c/ctrl/worker/certificate/process_challenge_handler.go | 95 | // Step 3: Obtain certificate via DNS-01 challenge | COMMENT |
| LOW⚡ | …c/ctrl/worker/certificate/process_challenge_handler.go | 165 | // Step 5: Persist certificate to DB | COMMENT |
| LOW⚡ | …c/ctrl/worker/certificate/process_challenge_handler.go | 173 | // Step 6: Mark challenge as verified | COMMENT |
| LOW | svc/ctrl/worker/customdomain/verify_handler.go | 91 | // Step 1: Try CNAME verification. This works for subdomains with a real CNAME record. | COMMENT |
| LOW | svc/ctrl/worker/customdomain/verify_handler.go | 102 | // Step 2: Check if TXT verification is needed. | COMMENT |
| LOW | svc/api/integration/cluster/cache/e2e_test.go | 36 | // Step 1: Populate cache on all nodes by making API calls | COMMENT |
| LOW⚡ | svc/api/integration/cluster/cache/e2e_test.go | 54 | // Step 2: Delete API from first node (this should trigger distributed invalidation) | COMMENT |
| LOW⚡ | svc/api/integration/cluster/cache/e2e_test.go | 63 | // Step 3: Verify cache invalidation propagates to all nodes within 5 seconds | COMMENT |
| LOW | svc/api/integration/cluster/cache/e2e_test.go | 115 | // Step 4: Verify all nodes consistently return 404 for the deleted API | COMMENT |
| LOW | svc/api/integration/multi_node_ratelimiting/run.go | 33 | // Step 1: Set up test resources | COMMENT |
| LOW | svc/api/integration/multi_node_ratelimiting/run.go | 59 | // Step 2: Calculate test parameters | COMMENT |
| LOW | svc/api/integration/multi_node_ratelimiting/run.go | 80 | // Step 3: Calculate expected limits | COMMENT |
| LOW | svc/api/integration/multi_node_ratelimiting/run.go | 115 | // Step 4: Run the load test | COMMENT |
| LOW | svc/api/integration/multi_node_ratelimiting/run.go | 162 | // Step 5: Verify results | COMMENT |
| LOW | svc/api/integration/multi_node_ratelimiting/run.go | 183 | // Step 6: Verify ClickHouse Ratelimit data | COMMENT |
| LOW | svc/api/integration/multi_node_ratelimiting/run.go | 219 | // Step 6: Verify Clickhouse Metrics Data | COMMENT |
| LOW | svc/api/integration/multi_node_usagelimiting/run.go | 32 | // Step 1: Set up test resources | COMMENT |
| LOW | svc/api/integration/multi_node_usagelimiting/run.go | 59 | // Step 2: Calculate test parameters | COMMENT |
| LOW | svc/api/integration/multi_node_usagelimiting/run.go | 83 | // Step 3: Calculate expected limits | COMMENT |
| LOW | svc/api/integration/multi_node_usagelimiting/run.go | 96 | // Step 4: Run the load test | COMMENT |
| LOW | svc/api/integration/multi_node_usagelimiting/run.go | 134 | // Step 5: Verify results | COMMENT |
| LOW | svc/api/integration/multi_node_usagelimiting/run.go | 159 | // Step 6: Verify ClickHouse Verification data | COMMENT |
| LOW | svc/api/integration/multi_node_usagelimiting/run.go | 196 | // Step 7: Verify Clickhouse Metrics Data | COMMENT |
| LOW | …ion/multi_node_usagelimiting/accuracy/accuracy_test.go | 122 | // Step 1: Set up test resources | COMMENT |
| LOW | …ion/multi_node_usagelimiting/accuracy/accuracy_test.go | 138 | // Step 2: Run concurrent load test | COMMENT |
| LOW | …ion/multi_node_usagelimiting/accuracy/accuracy_test.go | 213 | // Step 3: Verify accuracy | COMMENT |
| LOW | …ion/multi_node_usagelimiting/accuracy/accuracy_test.go | 258 | // Step 4: Verify final state in database with polling-based wait | COMMENT |
| LOW⚡ | svc/api/openapi/generate_bundle.go | 41 | // Step 1: Preprocess paths to inline external references | COMMENT |
| LOW⚡ | svc/api/openapi/generate_bundle.go | 48 | // Step 2: Configure libopenapi for bundling | COMMENT |
| LOW | svc/api/openapi/generate_bundle.go | 67 | // Step 3: Bundle all references into a single document | COMMENT |
| LOW | svc/api/routes/v2_keys_update_key/three_state_test.go | 604 | // Step 1: Add credits with refill | COMMENT |
| LOW | svc/api/routes/v2_keys_update_key/three_state_test.go | 619 | // Step 2: Clear refill only | COMMENT |
| LOW | svc/api/routes/v2_keys_update_key/three_state_test.go | 635 | // Step 3: Add back refill without changing remaining | COMMENT |
| LOW | svc/api/routes/v2_keys_update_key/three_state_test.go | 655 | // Step 4: Clear everything | COMMENT |
| LOW | …c/api/routes/v2_identities_delete_identity/200_test.go | 252 | // Step 1: Create initial identity with "Advanced" tier ratelimit (300k/month) | COMMENT |
| LOW⚡ | …c/api/routes/v2_identities_delete_identity/200_test.go | 267 | // Step 2: Delete old identity (tier downgrade starts) | COMMENT |
| LOW⚡ | …c/api/routes/v2_identities_delete_identity/200_test.go | 272 | // Step 3: Create new identity with "Starter" tier ratelimit (20k/month) | COMMENT |
| 1 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | internal/services/ratelimit/db/generate.go | 5 | // Step 1: remove stale *_generated.go files so renamed or deleted queries | COMMENT |
| LOW⚡ | internal/services/ratelimit/db/generate.go | 9 | // Step 2: build the shared sqlc bulk-insert plugin used by sqlc.json. | COMMENT |
| LOW⚡ | internal/services/ratelimit/db/generate.go | 12 | // Step 3: run sqlc, which reads sqlc.json, parses queries/, and emits | COMMENT |
| LOW⚡ | internal/services/ratelimit/db/generate.go | 16 | // Step 4: delete deleteme.go because database.go already provides the | COMMENT |
| LOW⚡ | internal/services/keys/db/generate.go | 5 | // Step 1: remove stale *_generated.go files so renamed or deleted queries | COMMENT |
| LOW⚡ | internal/services/keys/db/generate.go | 9 | // Step 2: run sqlc, which reads sqlc.json, parses queries/, and emits | COMMENT |
| LOW⚡ | internal/services/keys/db/generate.go | 13 | // Step 3: delete deleteme.go because database.go already provides the | COMMENT |
| LOW⚡ | svc/frontline/internal/db/generate.go | 5 | // Step 1: remove stale *_generated.go files so renamed or deleted queries | COMMENT |
| LOW⚡ | svc/frontline/internal/db/generate.go | 9 | // Step 2: run sqlc, which reads sqlc.json, parses queries/, and emits | COMMENT |
| LOW⚡ | svc/frontline/internal/db/generate.go | 13 | // Step 3: delete deleteme.go because database.go already provides the | COMMENT |
| LOW⚡ | …c/ctrl/worker/certificate/process_challenge_handler.go | 68 | // Step 1: Resolve domain | COMMENT |
| LOW⚡ | …c/ctrl/worker/certificate/process_challenge_handler.go | 76 | // Step 2: Claim the challenge | COMMENT |
| LOW | …c/ctrl/worker/certificate/process_challenge_handler.go | 95 | // Step 3: Obtain certificate via DNS-01 challenge | COMMENT |
| LOW⚡ | …c/ctrl/worker/certificate/process_challenge_handler.go | 165 | // Step 5: Persist certificate to DB | COMMENT |
| LOW⚡ | …c/ctrl/worker/certificate/process_challenge_handler.go | 173 | // Step 6: Mark challenge as verified | COMMENT |
| LOW | svc/ctrl/worker/customdomain/verify_handler.go | 91 | // Step 1: Try CNAME verification. This works for subdomains with a real CNAME record. | COMMENT |
| LOW | svc/ctrl/worker/customdomain/verify_handler.go | 102 | // Step 2: Check if TXT verification is needed. | COMMENT |
| LOW | svc/api/integration/cluster/cache/e2e_test.go | 36 | // Step 1: Populate cache on all nodes by making API calls | COMMENT |
| LOW⚡ | svc/api/integration/cluster/cache/e2e_test.go | 54 | // Step 2: Delete API from first node (this should trigger distributed invalidation) | COMMENT |
| LOW⚡ | svc/api/integration/cluster/cache/e2e_test.go | 63 | // Step 3: Verify cache invalidation propagates to all nodes within 5 seconds | COMMENT |
| LOW | svc/api/integration/cluster/cache/e2e_test.go | 115 | // Step 4: Verify all nodes consistently return 404 for the deleted API | COMMENT |
| LOW | svc/api/integration/multi_node_ratelimiting/run.go | 33 | // Step 1: Set up test resources | COMMENT |
| LOW | svc/api/integration/multi_node_ratelimiting/run.go | 59 | // Step 2: Calculate test parameters | COMMENT |
| LOW | svc/api/integration/multi_node_ratelimiting/run.go | 80 | // Step 3: Calculate expected limits | COMMENT |
| LOW | svc/api/integration/multi_node_ratelimiting/run.go | 115 | // Step 4: Run the load test | COMMENT |
| LOW | svc/api/integration/multi_node_ratelimiting/run.go | 162 | // Step 5: Verify results | COMMENT |
| LOW | svc/api/integration/multi_node_ratelimiting/run.go | 183 | // Step 6: Verify ClickHouse Ratelimit data | COMMENT |
| LOW | svc/api/integration/multi_node_ratelimiting/run.go | 219 | // Step 6: Verify Clickhouse Metrics Data | COMMENT |
| LOW | svc/api/integration/multi_node_usagelimiting/run.go | 32 | // Step 1: Set up test resources | COMMENT |
| LOW | svc/api/integration/multi_node_usagelimiting/run.go | 59 | // Step 2: Calculate test parameters | COMMENT |
| LOW | svc/api/integration/multi_node_usagelimiting/run.go | 83 | // Step 3: Calculate expected limits | COMMENT |
| LOW | svc/api/integration/multi_node_usagelimiting/run.go | 96 | // Step 4: Run the load test | COMMENT |
| LOW | svc/api/integration/multi_node_usagelimiting/run.go | 134 | // Step 5: Verify results | COMMENT |
| LOW | svc/api/integration/multi_node_usagelimiting/run.go | 159 | // Step 6: Verify ClickHouse Verification data | COMMENT |
| LOW | svc/api/integration/multi_node_usagelimiting/run.go | 196 | // Step 7: Verify Clickhouse Metrics Data | COMMENT |
| LOW | …ion/multi_node_usagelimiting/accuracy/accuracy_test.go | 122 | // Step 1: Set up test resources | COMMENT |
| LOW | …ion/multi_node_usagelimiting/accuracy/accuracy_test.go | 138 | // Step 2: Run concurrent load test | COMMENT |
| LOW | …ion/multi_node_usagelimiting/accuracy/accuracy_test.go | 213 | // Step 3: Verify accuracy | COMMENT |
| LOW | …ion/multi_node_usagelimiting/accuracy/accuracy_test.go | 258 | // Step 4: Verify final state in database with polling-based wait | COMMENT |
| LOW⚡ | svc/api/openapi/generate_bundle.go | 41 | // Step 1: Preprocess paths to inline external references | COMMENT |
| LOW⚡ | svc/api/openapi/generate_bundle.go | 48 | // Step 2: Configure libopenapi for bundling | COMMENT |
| LOW | svc/api/openapi/generate_bundle.go | 67 | // Step 3: Bundle all references into a single document | COMMENT |
| LOW | svc/api/routes/v2_keys_update_key/three_state_test.go | 604 | // Step 1: Add credits with refill | COMMENT |
| LOW | svc/api/routes/v2_keys_update_key/three_state_test.go | 619 | // Step 2: Clear refill only | COMMENT |
| LOW | svc/api/routes/v2_keys_update_key/three_state_test.go | 635 | // Step 3: Add back refill without changing remaining | COMMENT |
| LOW | svc/api/routes/v2_keys_update_key/three_state_test.go | 655 | // Step 4: Clear everything | COMMENT |
| LOW | …c/api/routes/v2_identities_delete_identity/200_test.go | 252 | // Step 1: Create initial identity with "Advanced" tier ratelimit (300k/month) | COMMENT |
| LOW⚡ | …c/api/routes/v2_identities_delete_identity/200_test.go | 267 | // Step 2: Delete old identity (tier downgrade starts) | COMMENT |
| LOW⚡ | …c/api/routes/v2_identities_delete_identity/200_test.go | 272 | // Step 3: Create new identity with "Starter" tier ratelimit (20k/month) | COMMENT |
| LOW | …c/api/routes/v2_identities_delete_identity/200_test.go | 287 | // Step 4: Delete new identity (this is where the bug used to happen) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | internal/services/ratelimit/metrics/prometheus.go | 49 | // Example usage: | COMMENT |
| LOW | internal/services/ratelimit/metrics/prometheus.go | 64 | // Example usage: | COMMENT |
| LOW | internal/services/ratelimit/metrics/prometheus.go | 79 | // Example usage: | COMMENT |
| LOW | internal/services/ratelimit/metrics/prometheus.go | 101 | // Example usage: | COMMENT |
| LOW | internal/services/ratelimit/metrics/prometheus.go | 119 | // Example usage: | COMMENT |
| LOW | internal/services/ratelimit/metrics/prometheus.go | 139 | // Example usage: | COMMENT |
| LOW | internal/services/ratelimit/metrics/prometheus.go | 168 | // Example usage: | COMMENT |
| LOW | internal/services/ratelimit/metrics/prometheus.go | 184 | // Example usage: | COMMENT |
| LOW | internal/services/ratelimit/metrics/prometheus.go | 224 | // Example usage: | COMMENT |
| LOW | internal/services/ratelimit/metrics/prometheus.go | 241 | // Example usage: | COMMENT |
| LOW | internal/services/ratelimit/metrics/prometheus.go | 258 | // Example usage: | COMMENT |
| LOW | internal/services/ratelimit/metrics/prometheus.go | 273 | // Example usage: | COMMENT |
| LOW | internal/services/ratelimit/metrics/prometheus.go | 289 | // Example usage: | COMMENT |
| LOW | internal/services/ratelimit/metrics/prometheus.go | 305 | // Example usage: | COMMENT |
| LOW | internal/services/keys/metrics/prometheus.go | 24 | // Example usage: | COMMENT |
| LOW | internal/services/keys/metrics/prometheus.go | 41 | // Example usage: | COMMENT |
| LOW | internal/services/usagelimiter/metrics/prometheus.go | 38 | // Example usage: | COMMENT |
| LOW | internal/services/usagelimiter/metrics/prometheus.go | 54 | // Example usage: | COMMENT |
| LOW | internal/services/usagelimiter/metrics/prometheus.go | 70 | // Example usage: | COMMENT |
| LOW | svc/ctrl/internal/db/custom_types.go | 52 | // Example usage: | COMMENT |
| LOW | dev/k8s/topolvm/setup-vg.sh | 7 | # Usage: | COMMENT |
| LOW | pkg/clickhouse/doc.go | 16 | // Example usage: | COMMENT |
| LOW | pkg/rbac/lexer.go | 103 | // Example usage: | COMMENT |
| LOW | pkg/rbac/parser.go | 51 | // Example usage: | COMMENT |
| LOW | pkg/cache/metrics/prometheus.go | 12 | // Example usage: | COMMENT |
| LOW | pkg/cache/metrics/prometheus.go | 28 | // Example usage: | COMMENT |
| LOW | pkg/cache/metrics/prometheus.go | 45 | // Example usage: | COMMENT |
| LOW | pkg/cache/metrics/prometheus.go | 61 | // Example usage: | COMMENT |
| LOW | pkg/cache/metrics/prometheus.go | 76 | // Example usage: | COMMENT |
| LOW | pkg/cache/metrics/prometheus.go | 91 | // Example usage: | COMMENT |
| LOW | pkg/cache/metrics/prometheus.go | 106 | // Example usage: | COMMENT |
| LOW | pkg/cache/metrics/prometheus.go | 121 | // Example usage: | COMMENT |
| LOW | pkg/hash/doc.go | 12 | // Example usage: | COMMENT |
| LOW | pkg/zen/context.go | 9 | // Example usage: | COMMENT |
| LOW | pkg/zen/context.go | 56 | // Usage example: | COMMENT |
| LOW | pkg/zen/context.go | 88 | // Usage example: | COMMENT |
| LOW | pkg/zen/metrics/prometheus.go | 53 | // Example usage: | COMMENT |
| LOW | pkg/zen/metrics/prometheus.go | 72 | // Example usage: | COMMENT |
| LOW | pkg/zen/metrics/prometheus.go | 87 | // Example usage: | COMMENT |
| LOW | pkg/zen/metrics/prometheus.go | 103 | // Example usage: | COMMENT |
| LOW | pkg/batch/metrics/prometheus.go | 29 | // Example usage: | COMMENT |
| LOW | pkg/batch/metrics/prometheus.go | 55 | // Example usage: | COMMENT |
| LOW | pkg/batch/metrics/prometheus.go | 73 | // Example usage: | COMMENT |
| LOW | pkg/batch/metrics/prometheus.go | 89 | // Example usage: | COMMENT |
| LOW | pkg/ptr/deref.go | 29 | // Example usage: | COMMENT |
| LOW | pkg/db/custom_types.go | 52 | // Example usage: | COMMENT |
| LOW | pkg/prometheus/server.go | 44 | // Example usage: | COMMENT |
| LOW | pkg/prometheus/server.go | 126 | // Example usage: | COMMENT |
| LOW | pkg/prometheus/metrics/panic.go | 17 | // Example usage: | COMMENT |
| LOW | pkg/fault/wrapped.go | 148 | // Example usage: | COMMENT |
| LOW | pkg/circuitbreaker/doc.go | 16 | // Example usage: | COMMENT |
| LOW | pkg/circuitbreaker/metrics/prometheus.go | 12 | // Example usage: | COMMENT |
| LOW | pkg/circuitbreaker/metrics/prometheus.go | 24 | // Example usage: | COMMENT |
| LOW | pkg/testutil/containers/s3.go | 39 | // Example usage: | COMMENT |
| LOW | pkg/buffer/metrics/prometheus.go | 22 | // Example usage: | COMMENT |
| LOW | pkg/buffer/metrics/prometheus.go | 37 | // Example usage: | COMMENT |
| LOW | pkg/buffer/metrics/prometheus.go | 52 | // Example usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | internal/services/ratelimit/db/generate.go | 13 | // typed Go code plus a scaffold db file named "deleteme.go". | COMMENT |
| MEDIUM | internal/services/ratelimit/db/doc.go | 14 | // pkg/mysql/schema and queries in queries/, and removes the scaffold db file | COMMENT |
| MEDIUM⚡ | internal/services/keys/db/generate.go | 10 | // typed Go code plus a scaffold db file named "deleteme.go". | COMMENT |
| MEDIUM⚡ | svc/frontline/internal/db/generate.go | 10 | // typed Go code plus a scaffold db file named "deleteme.go". | COMMENT |
| MEDIUM | svc/frontline/internal/db/doc.go | 24 | // the temporary db scaffold file that sqlc emits (see generate.go and | COMMENT |
| MEDIUM | svc/ctrl/worker/deploy/build.go | 197 | // gitBuildContext carries the inputs that the shared git-build scaffold | COMMENT |
| MEDIUM | svc/ctrl/worker/deploy/railpack.go | 132 | // Names are already validated by the scaffold; the template only | COMMENT |
| MEDIUM | svc/ctrl/services/ops/rebuild_deployment.go | 12 | // authentication. See the proto doc for semantics and guardrails. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | web/internal/resend/emails/api_v1_migration.tsx | 81 | username: "John Doe", | CODE |
| LOW | web/internal/resend/emails/api_v1_migration.tsx | 82 | workspaceName: "Acme Corp", | CODE |
| LOW | web/internal/resend/emails/compute_budget_alert.tsx | 73 | workspaceName: "Acme Inc", | CODE |
| LOW | web/internal/resend/emails/compute_budget_stopped.tsx | 66 | workspaceName: "Acme Inc", | CODE |
| LOW | web/apps/portal/src/routes/dave-initial-design/-seed.ts | 348 | appName: "Acme Inc", | CODE |
| LOW | web/apps/dashboard/lib/auth/local.ts | 58 | email: "admin@example.com", | CODE |
| LOW | web/apps/dashboard/lib/auth/tests/workos-auth.test.ts | 843 | email: "user@example.com", | CODE |
| LOW | …/routers/deploy/deployment/deployment-query-helpers.ts | 62 | deployment.gitCommitAuthorAvatarUrl ?? "https://github.com/identicons/dummy-user.png", | CODE |
| LOW | demo_api/main.go | 1140 | example: "John Doe" | CODE |
| LOW | demo_api/main.go | 1193 | example: "John Doe" | CODE |
| LOW | demo_api/main.go | 1238 | example: "John Doe" | CODE |
| LOW | svc/api/routes/v2_keys_whoami/200_test.go | 174 | "created_by": "admin@example.com", | CODE |
| LOW | svc/api/routes/v2_identities_get_identity/200_test.go | 178 | strings.Repeat("Lorem ipsum dolor sit amet ", 50), | CODE |
| LOW | svc/api/routes/v2_identities_get_identity/200_test.go | 178 | strings.Repeat("Lorem ipsum dolor sit amet ", 50), | CODE |
| LOW | svc/api/routes/v2_keys_get_key/200_test.go | 190 | "created_by": "admin@example.com", | CODE |
| LOW | …c/api/routes/v2_identities_create_identity/200_test.go | 269 | "name": "John Doe", | CODE |
| LOW | svc/vault/internal/vault/corruption_detection_test.go | 424 | "fake-key-id", | CODE |
| LOW | pkg/zen/session_bind_query_test.go | 217 | queryValues.Add("name", "John Doe") | CODE |
| LOW | pkg/zen/session_bind_query_test.go | 230 | assert.Equal(t, "John Doe", target.Name) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …ot-keys/components/dialog/hooks/use-root-key-dialog.ts | 7 | // Utility function for robust permission array comparison using Set-based equality check | COMMENT |
| MEDIUM | web/apps/dashboard/components/logs/parse-timestamp.ts | 42 | // Parse timestamp to number with robust validation | COMMENT |
| MEDIUM | web/apps/dashboard/components/logs/utils.tsx | 166 | // Normalize timestamps to numeric for robust comparison | COMMENT |
| MEDIUM | pkg/fault/doc.go | 2 | // building robust applications with rich error context and secure user messaging. | COMMENT |
| MEDIUM | pkg/circuitbreaker/lib.go | 65 | // tiny sample can't trip it. This is robust to traffic volume — a brief | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | cmd/healthcheck/main.go | 27 | unkey healthcheck https://api.unkey.dev/health # Check if a service is healthy | CODE |
| LOW | dev/setup-wildcard-dns.sh | 24 | # Check if dnsmasq is installed | COMMENT |