The all-in-one, open-source backend platform for agentic coding. InsForge gives your coding agent database, auth, storage, compute, hosting, and AI gateway to ship full-stack apps end-to-end.
This report presents the forensic synthetic code analysis of InsForge/InsForge, a TypeScript project with 12,268 GitHub stars. SynthScan v2.0 examined 235,278 lines of code across 1116 source files, recording 417 pattern matches distributed across 18 syntactic categories. The overall adjusted score of 3.4 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 417 distinct pattern matches across 18 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 |
|---|---|---|---|---|
| MEDIUM | …nd/tests/unit/schedules-http-timeout-migration.test.ts | 20 | // ── idempotency ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …nd/tests/unit/schedules-http-timeout-migration.test.ts | 38 | // ── HTTP timeouts are configured ───────────────────────────────────── | COMMENT |
| MEDIUM | …nd/tests/unit/schedules-http-timeout-migration.test.ts | 56 | // ── still uses the existing http extension (not pg_net) ────────────── | COMMENT |
| MEDIUM | …nd/tests/unit/schedules-http-timeout-migration.test.ts | 68 | // ── preserves the existing exception path ──────────────────────────── | COMMENT |
| MEDIUM | …nd/tests/unit/schedules-http-timeout-migration.test.ts | 73 | // ── ordering ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …/unit/secrets-deduplicate-and-unique-migration.test.ts | 55 | // ── Step 1: Dedupe ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …/unit/secrets-deduplicate-and-unique-migration.test.ts | 104 | // ── Step 2: UNIQUE(key) constraint ──────────────────────────────────── | COMMENT |
| MEDIUM | …/unit/secrets-deduplicate-and-unique-migration.test.ts | 150 | // ── Safety: no destructive operations ───────────────────────────────── | COMMENT |
| MEDIUM | …ests/unit/consolidate-retention-jobs-migration.test.ts | 29 | // ── schedules config table ──────────────────────────────────────── | COMMENT |
| MEDIUM | …ests/unit/consolidate-retention-jobs-migration.test.ts | 39 | // ── cleanup function ────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ests/unit/consolidate-retention-jobs-migration.test.ts | 64 | // ── idempotency ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …ests/unit/consolidate-retention-jobs-migration.test.ts | 93 | // ── schedule configuration ──────────────────────────────────────── | COMMENT |
| MEDIUM | …ests/unit/consolidate-retention-jobs-migration.test.ts | 118 | // ── ordering ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | backend/tests/unit/database-backups-migration.test.ts | 19 | // ── Idempotency guards ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | backend/tests/unit/database-backups-migration.test.ts | 38 | // ── Structure ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …nd/tests/unit/redirect-url-whitelist-migration.test.ts | 19 | // ── Idempotent rename ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | …nd/tests/unit/redirect-url-whitelist-migration.test.ts | 32 | // ── Trigger idempotency ────────────────────────────────────────────── | COMMENT |
| MEDIUM | …nd/tests/unit/redirect-url-whitelist-migration.test.ts | 45 | // ── allowed_redirect_urls column ───────────────────────────────────── | COMMENT |
| MEDIUM | …nd/tests/unit/redirect-url-whitelist-migration.test.ts | 52 | // ── sign_in_redirect_to migration is guarded ───────────────────────── | COMMENT |
| MEDIUM | …nd/tests/unit/redirect-url-whitelist-migration.test.ts | 64 | // ── email_otps redirect_to column ──────────────────────────────────── | COMMENT |
| MEDIUM | …nd/tests/unit/redirect-url-whitelist-migration.test.ts | 71 | // ── Ordering ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | backend/tests/unit/app.config.test.ts | 49 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM⚡ | backend/tests/unit/app.config.test.ts | 51 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | backend/tests/unit/app.config.test.ts | 77 | // ── PORT regression ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | backend/tests/unit/app.config.test.ts | 91 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | backend/tests/unit/app.config.test.ts | 93 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | backend/tests/unit/app.config.test.ts | 133 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | backend/tests/unit/app.config.test.ts | 135 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | backend/tests/unit/app.config.test.ts | 174 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | backend/tests/unit/app.config.test.ts | 176 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | backend/tests/unit/app.config.test.ts | 206 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | backend/tests/unit/app.config.test.ts | 208 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | backend/tests/unit/app.config.test.ts | 232 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | backend/tests/unit/app.config.test.ts | 234 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | backend/tests/unit/app.config.test.ts | 320 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | backend/tests/unit/app.config.test.ts | 322 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | backend/tests/unit/app.config.test.ts | 370 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | backend/tests/unit/app.config.test.ts | 372 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | backend/tests/unit/app.config.test.ts | 420 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | backend/tests/unit/app.config.test.ts | 422 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | backend/tests/unit/app.config.test.ts | 456 | // ── storage.appKey regression ───────────────────────────────────────────── | COMMENT |
| MEDIUM | backend/tests/unit/app.config.test.ts | 535 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | backend/tests/unit/app.config.test.ts | 537 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | backend/tests/unit/app.config.test.ts | 551 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | backend/tests/unit/app.config.test.ts | 553 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | backend/tests/unit/app.config.test.ts | 602 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | backend/tests/unit/app.config.test.ts | 604 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | backend/tests/unit/app.config.test.ts | 618 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | backend/tests/unit/app.config.test.ts | 620 | // ═══════════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | …/tests/unit/storage-third-party-auth-migration.test.ts | 19 | // ── FK drop is idempotent ──────────────────────────────────────────── | COMMENT |
| MEDIUM | …/tests/unit/storage-third-party-auth-migration.test.ts | 26 | // ── Column widen is idempotent ─────────────────────────────────────── | COMMENT |
| MEDIUM | …/tests/unit/storage-third-party-auth-migration.test.ts | 41 | // ── Path helpers use CREATE OR REPLACE ─────────────────────────────── | COMMENT |
| MEDIUM | …/tests/unit/storage-third-party-auth-migration.test.ts | 54 | // ── auth.jwt() helper ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | …/tests/unit/storage-third-party-auth-migration.test.ts | 68 | // ── RLS enablement ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …/tests/unit/storage-third-party-auth-migration.test.ts | 73 | // ── Policy install is idempotent and gated on existing projects ────── | COMMENT |
| MEDIUM | …/tests/unit/storage-third-party-auth-migration.test.ts | 105 | // ── Grants ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …/tests/unit/storage-third-party-auth-migration.test.ts | 122 | // ── Ordering ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | backend/tests/unit/database-advance.test.ts | 97 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | backend/tests/unit/database-advance.test.ts | 99 | // ───────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | backend/tests/unit/mime-guard.test.ts | 22 | // ─── Helpers ────────────────────────────────────────────────────────────────── | COMMENT |
| 77 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …d/tests/unit/payments-multi-provider-migration.test.ts | 46 | function getCandidateProviderObject(row: LegacyPaymentHistoryRow): { | CODE |
| LOW | …d/tests/unit/payments-multi-provider-migration.test.ts | 81 | function compareLegacyPaymentHistoryRows(a: LegacyPaymentHistoryRow, b: LegacyPaymentHistoryRow) { | CODE |
| LOW | …d/tests/unit/payments-multi-provider-migration.test.ts | 98 | function simulatePaymentHistoryBackfill( | CODE |
| LOW | …d/tests/unit/payments-multi-provider-migration.test.ts | 154 | function simulateWebhookEventBackfillAndCleanup(rows: LegacyWebhookEventRow[]) { | CODE |
| LOW⚡ | backend/tests/unit/razorpay-config.service.test.ts | 77 | function expectRazorpayScopedDelete(tableName: string, params: unknown[]) { | CODE |
| LOW⚡ | backend/tests/unit/razorpay-config.service.test.ts | 86 | function expectRazorpayRuntimeDelete(tableName: string, params: unknown[]) { | CODE |
| LOW⚡ | backend/tests/unit/razorpay-config.service.test.ts | 93 | function expectRazorpayTransactionDelete() { | CODE |
| LOW | backend/tests/unit/stripe-services.test.ts | 97 | function expectStripeRuntimeDelete( | CODE |
| LOW | backend/tests/unit/stripe-services.test.ts | 110 | function expectProviderRuntimeDelete( | CODE |
| LOW | …ckend/tests/unit/razorpay-subscription.service.test.ts | 88 | function buildProviderSubscription( | CODE |
| LOW | backend/src/providers/payments/stripe.provider.ts | 32 | function getExpectedStripeKeyPrefix(environment: StripeEnvironment): string { | CODE |
| LOW | backend/src/providers/payments/razorpay.provider.ts | 14 | function getExpectedRazorpayKeyPrefix(environment: RazorpayEnvironment): string { | CODE |
| LOW | backend/src/utils/environment.ts | 17 | export function isOAuthSharedKeysAvailable(): boolean { | CODE |
| LOW | backend/src/utils/utils.ts | 9 | export function getPasswordRequirementsMessage(config: AuthConfigSchema): string { | CODE |
| LOW | backend/src/utils/validations.ts | 133 | export function getIdentifierErrorMessage(identifier: string, type: string = 'identifier'): string { | CODE |
| LOW | backend/src/utils/cookies.ts | 22 | export function setAdminRefreshTokenCookie(res: Response, value: string): void { | CODE |
| LOW | backend/src/utils/cookies.ts | 49 | export function clearAdminRefreshTokenCookie(res: Response): void { | CODE |
| LOW | backend/src/api/middlewares/rate-limiters.ts | 38 | export function destroyEmailCooldownInterval(): void { | CODE |
| LOW | backend/src/api/middlewares/rate-limiters.ts | 272 | function getWriteEndpointLimitsUrl(): string { | CODE |
| LOW | backend/src/api/middlewares/rate-limiters.ts | 310 | export function resetWriteEndpointLimitsToDefaults(): void { | CODE |
| LOW | backend/src/api/middlewares/rate-limiters.ts | 314 | async function fetchWriteEndpointLimitsConfig(): Promise<Partial< | CODE |
| LOW | backend/src/api/middlewares/rate-limiters.ts | 363 | function getWriteEndpointLimitsRefreshMs(): number { | CODE |
| LOW | backend/src/api/middlewares/rate-limiters.ts | 389 | export function startWriteEndpointLimitsRefresh(): void { | CODE |
| LOW | backend/src/api/middlewares/rate-limiters.ts | 412 | export function destroyWriteEndpointLimitsRefresh(): void { | CODE |
| LOW | backend/src/api/middlewares/rate-limiters.ts | 425 | function createWriteEndpointLimiter(category: WriteLimiterCategory) { | CODE |
| LOW | backend/src/api/routes/database/advance.routes.ts | 29 | function invalidateColumnTypeCacheFromChanges(changes: DatabaseResourceUpdate[]): void { | CODE |
| LOW | backend/src/api/routes/webhooks/stripe.routes.ts | 9 | export function normalizeStripeWebhookError(error: unknown) { | CODE |
| LOW | backend/src/services/database/helpers.ts | 13 | export function isInternalDashboardSchema(schemaName: string): boolean { | CODE |
| LOW | backend/src/services/database/helpers.ts | 17 | export function normalizeDatabaseSchemaName(schemaName: unknown): string { | CODE |
| LOW | backend/src/services/database/helpers.ts | 49 | export function postgrestProfileHeaderName(method: string): 'accept-profile' | 'content-profile' { | CODE |
| LOW | backend/src/services/database/helpers.ts | 127 | export function splitQualifiedTableReference( | CODE |
| LOW | backend/src/services/database/user-context.service.ts | 151 | async function setTransactionLocalConfig( | CODE |
| LOW | backend/src/services/database/database-table.service.ts | 42 | function getSafeDollarQuotedLiteral(s: string) { | CODE |
| LOW | backend/src/services/payments/helpers.ts | 28 | function formatPaymentValidationIssues(error: { | CODE |
| LOW | backend/src/services/payments/helpers.ts | 52 | export function getBillingSubjectFromProviderAttributes( | CODE |
| LOW | backend/src/services/payments/helpers.ts | 65 | export function addBillingSubjectToProviderAttributes( | CODE |
| LOW | backend/src/services/payments/helpers.ts | 112 | export function buildStripeIdempotencyKey( | CODE |
| LOW | backend/src/services/payments/helpers.ts | 124 | export function isPostgresPermissionError(error: unknown): boolean { | CODE |
| LOW | backend/src/services/payments/helpers.ts | 165 | export function normalizePaymentTransactionRow(row: PaymentTransactionRow): PaymentTransaction { | CODE |
| LOW | …ckend/src/services/payments/razorpay/config.service.ts | 57 | function getRazorpayWebhookSecretName(environment: RazorpayEnvironment): string { | CODE |
| LOW | backend/src/services/payments/stripe/constants.ts | 17 | export function getStripeWebhookSecretName(environment: StripeEnvironment): string { | CODE |
| LOW | backend/src/services/telemetry/telemetry.service.ts | 89 | function isTelemetryRuntimeDisabled(): boolean { | CODE |
| LOW | packages/dashboard/src/layout/AppLayout.tsx | 58 | function getEmbeddedDashboardRoute(path: string): string | null { | CODE |
| LOW | packages/dashboard/src/features/database/helpers.ts | 256 | export function buildDatabaseSchemaSearch(schemaName: string): string { | CODE |
| LOW | packages/dashboard/src/features/database/helpers.ts | 262 | export function parseDatabaseTableReference( | CODE |
| LOW | …d/src/features/database/components/DatabaseSidebar.tsx | 80 | function DatabaseStudioSidebarItem({ label, href, sectionEnd }: DatabaseStudioSidebarItemProps) { | CODE |
| LOW | …d/src/features/database/components/DatabaseSidebar.tsx | 113 | export function DatabaseStudioSidebarPanel({ onBack }: DatabaseStudioSidebarPanelProps) { | CODE |
| LOW | …/src/features/database/components/DatabaseDataGrid.tsx | 64 | function DatabaseBooleanCellEditor({ | CODE |
| LOW | …/features/database/hooks/useDatabaseSchemaSelection.ts | 10 | export function useDatabaseSchemaSelection() { | CODE |
| LOW | …ard/src/features/database/hooks/useTablePreferences.ts | 23 | function createEmptyTablePreferences(): StoredTablePreferences { | CODE |
| LOW | …ard/src/features/database/hooks/useTablePreferences.ts | 55 | function sanitizeStoredTablePreferences(value: unknown): StoredTablePreferences { | CODE |
| LOW | …ard/src/features/database/hooks/useTablePreferences.ts | 66 | function setStoredTablePreferences( | CODE |
| LOW | …ard/src/features/database/hooks/useTablePreferences.ts | 212 | function getStoredTablePreferences( | CODE |
| LOW | …board/src/features/database/hooks/useDatabaseBackup.ts | 27 | async function fetchSelfHostingBackupInfo(): Promise<DashboardBackupInfo> { | CODE |
| LOW | …board/src/features/database/hooks/useDatabaseBackup.ts | 102 | export function useDatabaseBackupInstanceInfo() { | CODE |
| LOW | …dashboard/src/features/database/pages/PoliciesPage.tsx | 34 | function parsePoliciesFromResponse(response: DatabasePoliciesResponse | undefined): PolicyRow[] { | CODE |
| LOW | …ashboard/src/features/database/pages/SQLEditorPage.tsx | 34 | function convertRowsToDataGridFormat(rows: Record<string, unknown>[]) { | CODE |
| LOW | …ashboard/src/features/database/pages/FunctionsPage.tsx | 31 | function parseFunctionsFromResponse( | CODE |
| LOW | …dashboard/src/features/database/pages/TriggersPage.tsx | 33 | function parseTriggersFromResponse(response: DatabaseTriggersResponse | undefined): TriggerRow[] { | CODE |
| LOW | …shboard/src/features/database/pages/MigrationsPage.tsx | 28 | function formatMigrationStatements(statements: string[]): string { | CODE |
| 36 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .archive/docs/deprecated/insforge-auth-api.md | 16 | Body: `{"email": "user@example.com", "password": "password", "name": "User Name"}` | CODE |
| LOW | .archive/docs/deprecated/insforge-auth-api.md | 25 | Body: `{"email": "user@example.com", "password": "password"}` | CODE |
| LOW | .archive/docs/deprecated/insforge-db-api.md | 90 | "name": "John Doe", | CODE |
| LOW | .archive/docs/deprecated/insforge-db-api.md | 106 | "name": "John Doe", | CODE |
| LOW | backend/tests/unit/auth-create-user-route.test.ts | 127 | const validBody = { email: 'test@test.com', password: 'Pass1234', name: 'Test' }; | CODE |
| LOW | …end/tests/unit/auth-oauth-unsupported-provider.test.ts | 55 | email: 'test@test.com', | CODE |
| LOW | …end/tests/unit/auth-oauth-unsupported-provider.test.ts | 63 | email: 'test@test.com', | CODE |
| LOW⚡ | backend/tests/unit/smtp-link-validation.test.ts | 69 | await provider.sendWithTemplate('user@example.com', 'App', 'email-verification-link', { | CODE |
| LOW⚡ | backend/tests/unit/smtp-link-validation.test.ts | 78 | await provider.sendWithTemplate('user@example.com', 'App', 'email-verification-link', { | CODE |
| LOW⚡ | backend/tests/unit/smtp-link-validation.test.ts | 87 | await provider.sendWithTemplate('user@example.com', 'App', 'email-verification-link', { | CODE |
| LOW⚡ | backend/tests/unit/smtp-link-validation.test.ts | 97 | await provider.sendWithTemplate('user@example.com', 'App', 'email-verification-link', { | CODE |
| LOW⚡ | backend/tests/unit/smtp-link-validation.test.ts | 107 | await provider.sendWithTemplate('user@example.com', 'App', 'email-verification-link', { | CODE |
| LOW⚡ | backend/tests/unit/smtp-link-validation.test.ts | 116 | await provider.sendWithTemplate('user@example.com', 'App', 'email-verification-link', { | CODE |
| LOW | backend/tests/unit/email.test.ts | 73 | 'user@example.com', | CODE |
| LOW | backend/tests/unit/email.test.ts | 74 | 'John Doe', | CODE |
| LOW | backend/tests/unit/email.test.ts | 86 | email: 'user@example.com', | CODE |
| LOW | backend/tests/unit/email.test.ts | 87 | name: 'John Doe', | CODE |
| LOW | backend/tests/unit/email.test.ts | 107 | 'user@example.com', | CODE |
| LOW | backend/tests/unit/email.test.ts | 108 | 'John Doe', | CODE |
| LOW | backend/tests/unit/email.test.ts | 128 | await emailService.sendWithTemplate('user@example.com', 'Jane Smith', 'reset-password-code', { | CODE |
| LOW | backend/tests/unit/email.test.ts | 147 | await emailService.sendWithTemplate('user@example.com', 'Jane Smith', 'reset-password-link', { | CODE |
| LOW | backend/tests/unit/email.test.ts | 166 | emailService.sendWithTemplate('user@example.com', 'John', 'email-verification-code', { | CODE |
| LOW | backend/tests/unit/email.test.ts | 172 | emailService.sendWithTemplate('user@example.com', 'John', 'email-verification-code', { | CODE |
| LOW | backend/tests/unit/email.test.ts | 186 | emailService.sendWithTemplate('user@example.com', 'John', 'email-verification-code', { | CODE |
| LOW | backend/tests/unit/email.test.ts | 192 | emailService.sendWithTemplate('user@example.com', 'John', 'email-verification-code', { | CODE |
| LOW | backend/tests/unit/email.test.ts | 207 | emailService.sendWithTemplate('user@example.com', '', 'email-verification-code') | CODE |
| LOW | backend/tests/unit/email.test.ts | 214 | 'user@example.com', | CODE |
| LOW | backend/tests/unit/email.test.ts | 229 | emailService.sendWithTemplate('user@example.com', 'John', 'email-verification-code', { | CODE |
| LOW | backend/tests/unit/email.test.ts | 248 | emailService.sendWithTemplate('user@example.com', 'John', 'email-verification-code', { | CODE |
| LOW | backend/tests/unit/email.test.ts | 267 | emailService.sendWithTemplate('user@example.com', 'John', 'email-verification-code', { | CODE |
| LOW | backend/tests/unit/email.test.ts | 286 | emailService.sendWithTemplate('user@example.com', 'John', 'email-verification-code', { | CODE |
| LOW | backend/tests/unit/email.test.ts | 305 | emailService.sendWithTemplate('user@example.com', 'John', 'email-verification-code', { | CODE |
| LOW | backend/tests/unit/email.test.ts | 324 | emailService.sendWithTemplate('user@example.com', 'John', 'email-verification-code', { | CODE |
| LOW | backend/tests/unit/email.test.ts | 339 | emailService.sendWithTemplate('user@example.com', 'John', 'email-verification-code', { | CODE |
| LOW | backend/tests/unit/email.test.ts | 349 | emailService.sendWithTemplate('user@example.com', 'John', 'email-verification-code', { | CODE |
| LOW | backend/tests/unit/email.test.ts | 363 | 'user@example.com', | CODE |
| LOW | backend/tests/unit/email.test.ts | 364 | 'John Doe', | CODE |
| LOW | backend/tests/unit/smtp-schemas.test.ts | 45 | senderEmail: 'test@test.com', | CODE |
| LOW | backend/tests/unit/smtp-schemas.test.ts | 59 | senderEmail: 'test@test.com', | CODE |
| LOW | backend/tests/unit/smtp-schemas.test.ts | 71 | senderEmail: 'test@test.com', | CODE |
| LOW | backend/tests/unit/smtp-schemas.test.ts | 83 | senderEmail: 'test@test.com', | CODE |
| LOW | backend/tests/unit/smtp-schemas.test.ts | 107 | senderEmail: 'test@test.com', | CODE |
| LOW | backend/tests/unit/smtp-schemas.test.ts | 119 | senderEmail: 'test@test.com', | CODE |
| LOW | backend/tests/unit/smtp-provider.test.ts | 85 | await provider.sendWithTemplate('user@example.com', 'Test App', 'email-verification-code', { | CODE |
| LOW | backend/tests/unit/smtp-provider.test.ts | 92 | to: 'user@example.com', | CODE |
| LOW | backend/tests/unit/smtp-provider.test.ts | 125 | provider.sendWithTemplate('user@example.com', 'App', 'email-verification-code', { | CODE |
| LOW | backend/tests/unit/smtp-provider.test.ts | 181 | to: 'user@example.com', | CODE |
| LOW | backend/tests/unit/realtime-auth.service.test.ts | 51 | email: 'user@example.com', | CODE |
| LOW | backend/tests/unit/realtime-auth.service.test.ts | 74 | email: 'user@example.com', | CODE |
| LOW | backend/tests/unit/database-advance.test.ts | 142 | { id: '2', name: 'Bob', phone: '555-0001' }, | CODE |
| LOW | backend/tests/unit/database-advance.test.ts | 143 | { id: '3', name: 'Carol', phone: '555-0002' }, | CODE |
| LOW | backend/tests/unit/database-advance.test.ts | 161 | expect(query2).toContain('555-0001'); | CODE |
| LOW | backend/tests/unit/database-advance.test.ts | 162 | expect(query2).toContain('555-0002'); | CODE |
| LOW⚡ | backend/tests/unit/database-advance.test.ts | 181 | { id: '1', name: 'Alice', phone: '555-0001' }, | CODE |
| LOW⚡ | backend/tests/unit/database-advance.test.ts | 182 | { id: '2', name: 'Bob', phone: '555-0002' }, | CODE |
| LOW⚡ | backend/tests/unit/database-advance.test.ts | 191 | expect(sql).toContain('555-0001'); | CODE |
| LOW⚡ | backend/tests/unit/database-advance.test.ts | 192 | expect(sql).toContain('555-0002'); | CODE |
| LOW | backend/tests/unit/database-advance.test.ts | 208 | { id: '2', name: 'Bob', phone: '555-0001' }, | CODE |
| LOW | backend/tests/unit/database-advance.test.ts | 256 | { id: '2', name: 'Bob', phone: '555-0001' }, | CODE |
| LOW | backend/tests/manual/seed-large-table.sql | 25 | repeat('Lorem ipsum dolor sit amet, consectetur adipiscing elit. ', 1 + floor(random() * 10)::int) || | CODE |
| 11 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | GITHUB_OAUTH_SETUP.md | 5 | ## Step 1: Create a GitHub OAuth Application | COMMENT |
| LOW | GITHUB_OAUTH_SETUP.md | 14 | ## Step 2: Fill in Application Information | COMMENT |
| LOW | GITHUB_OAUTH_SETUP.md | 29 | ## Step 3: Get Client ID and Client Secret | COMMENT |
| LOW | GITHUB_OAUTH_SETUP.md | 37 | ## Step 4: Configure Environment Variables | COMMENT |
| LOW | .archive/docs/deprecated/insforge-storage-api.md | 192 | // Step 1: Upload object with known key | COMMENT |
| LOW | .archive/docs/deprecated/insforge-storage-api.md | 201 | // Step 2: Store metadata | COMMENT |
| LOW | .archive/docs/deprecated/insforge-storage-api.md | 218 | // Step 1: Upload object with auto-generated key | COMMENT |
| LOW | .archive/docs/deprecated/insforge-storage-api.md | 228 | // Step 2: Store metadata with generated key | COMMENT |
| LOW⚡ | deploy/docker-deploy.md | 9 | ### Step 1: Download the Docker Compose file | COMMENT |
| LOW⚡ | deploy/docker-deploy.md | 17 | ### Step 2: Start InsForge | COMMENT |
| LOW⚡ | deploy/docker-deploy.md | 23 | ### Step 3: Access InsForge | COMMENT |
| LOW | deploy/docker-deploy.md | 35 | ### Step 1: Create a separate env file for each project | COMMENT |
| LOW | deploy/docker-deploy.md | 42 | ### Step 2: Edit each env file with unique ports | COMMENT |
| LOW | deploy/docker-deploy.md | 64 | ### Step 3: Start each project with a unique name | COMMENT |
| LOW⚡ | .agents/docs/insforge-instructions-sdk.md | 23 | ### Step 1: Download Template | COMMENT |
| LOW⚡ | .agents/docs/insforge-instructions-sdk.md | 27 | ### Step 2: Install SDK | COMMENT |
| LOW⚡ | .agents/docs/insforge-instructions-sdk.md | 33 | ### Step 3: Create SDK Client | COMMENT |
| LOW | backend/tests/local/test-public-bucket.sh | 48 | # Step 1: Create a public bucket | COMMENT |
| LOW | backend/tests/local/test-public-bucket.sh | 71 | # Step 2: Create a private bucket | COMMENT |
| LOW | backend/tests/local/test-public-bucket.sh | 93 | # Step 3: Upload a test file to public bucket | COMMENT |
| LOW | backend/tests/local/test-public-bucket.sh | 119 | # Step 4: Upload a test file to private bucket | COMMENT |
| LOW | backend/tests/local/test-public-bucket.sh | 145 | # Step 5: Test accessing PUBLIC file WITHOUT API key | COMMENT |
| LOW⚡ | backend/tests/local/test-public-bucket.sh | 156 | # Step 6: Test accessing PRIVATE file WITHOUT API key | COMMENT |
| LOW⚡ | backend/tests/local/test-public-bucket.sh | 166 | # Step 7: Test accessing PRIVATE file WITH API key | COMMENT |
| LOW | backend/tests/local/test-public-bucket.sh | 178 | # Step 8: List all buckets | COMMENT |
| LOW | backend/tests/local/test-public-bucket.sh | 196 | # Step 9: Test PUT upload with specified key | COMMENT |
| LOW | backend/tests/local/test-public-bucket.sh | 230 | # Step 10: Update bucket visibility | COMMENT |
| LOW | backend/tests/manual/test-universal-storage.sh | 27 | # Step 1: Login to get auth token | COMMENT |
| LOW | backend/tests/manual/test-universal-storage.sh | 42 | # Step 2: Create bucket | COMMENT |
| LOW | backend/tests/manual/test-universal-storage.sh | 55 | # Step 3: Request upload strategy | COMMENT |
| LOW | backend/tests/manual/test-universal-storage.sh | 88 | # Step 4: Upload based on strategy | COMMENT |
| LOW | backend/tests/manual/test-universal-storage.sh | 152 | # Step 5: Confirm upload if required | COMMENT |
| LOW | backend/tests/manual/test-universal-storage.sh | 179 | # Step 6: Get download URL | COMMENT |
| LOW | backend/tests/manual/test-universal-storage.sh | 200 | # Step 7: Test download | COMMENT |
| LOW | backend/tests/manual/test-universal-storage.sh | 225 | # Step 8: List objects | COMMENT |
| LOW⚡ | backend/tests/manual/test-rawsql-export-import.sh | 105 | # Step 1: Create the basic table | COMMENT |
| LOW | backend/tests/manual/test-rawsql-export-import.sh | 130 | # Step 2: Add indexes, triggers and RLS | COMMENT |
| LOW⚡ | backend/src/services/auth/auth-otp.service.ts | 384 | // Step 1: Verify the numeric code (consumes it atomically) | COMMENT |
| LOW⚡ | backend/src/services/auth/auth-otp.service.ts | 387 | // Step 2: Generate a long-lived hash token | COMMENT |
| LOW⚡ | backend/src/services/auth/auth-otp.service.ts | 392 | // Step 3: Insert the new token (replaces the consumed numeric code) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | backend/tests/local/test-public-bucket.sh | 48 | # Step 1: Create a public bucket | COMMENT |
| LOW | backend/tests/local/test-public-bucket.sh | 71 | # Step 2: Create a private bucket | COMMENT |
| LOW | backend/tests/local/test-public-bucket.sh | 93 | # Step 3: Upload a test file to public bucket | COMMENT |
| LOW | backend/tests/local/test-public-bucket.sh | 119 | # Step 4: Upload a test file to private bucket | COMMENT |
| LOW | backend/tests/local/test-public-bucket.sh | 145 | # Step 5: Test accessing PUBLIC file WITHOUT API key | COMMENT |
| LOW⚡ | backend/tests/local/test-public-bucket.sh | 156 | # Step 6: Test accessing PRIVATE file WITHOUT API key | COMMENT |
| LOW⚡ | backend/tests/local/test-public-bucket.sh | 166 | # Step 7: Test accessing PRIVATE file WITH API key | COMMENT |
| LOW | backend/tests/local/test-public-bucket.sh | 178 | # Step 8: List all buckets | COMMENT |
| LOW | backend/tests/local/test-public-bucket.sh | 196 | # Step 9: Test PUT upload with specified key | COMMENT |
| LOW | backend/tests/local/test-public-bucket.sh | 230 | # Step 10: Update bucket visibility | COMMENT |
| LOW | backend/tests/manual/test-universal-storage.sh | 27 | # Step 1: Login to get auth token | COMMENT |
| LOW | backend/tests/manual/test-universal-storage.sh | 42 | # Step 2: Create bucket | COMMENT |
| LOW | backend/tests/manual/test-universal-storage.sh | 55 | # Step 3: Request upload strategy | COMMENT |
| LOW | backend/tests/manual/test-universal-storage.sh | 88 | # Step 4: Upload based on strategy | COMMENT |
| LOW | backend/tests/manual/test-universal-storage.sh | 152 | # Step 5: Confirm upload if required | COMMENT |
| LOW | backend/tests/manual/test-universal-storage.sh | 179 | # Step 6: Get download URL | COMMENT |
| LOW | backend/tests/manual/test-universal-storage.sh | 200 | # Step 7: Test download | COMMENT |
| LOW | backend/tests/manual/test-universal-storage.sh | 225 | # Step 8: List objects | COMMENT |
| LOW⚡ | backend/tests/manual/test-rawsql-export-import.sh | 105 | # Step 1: Create the basic table | COMMENT |
| LOW | backend/tests/manual/test-rawsql-export-import.sh | 130 | # Step 2: Add indexes, triggers and RLS | COMMENT |
| LOW⚡ | backend/src/services/auth/auth-otp.service.ts | 384 | // Step 1: Verify the numeric code (consumes it atomically) | COMMENT |
| LOW⚡ | backend/src/services/auth/auth-otp.service.ts | 387 | // Step 2: Generate a long-lived hash token | COMMENT |
| LOW⚡ | backend/src/services/auth/auth-otp.service.ts | 392 | // Step 3: Insert the new token (replaces the consumed numeric code) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | .archive/docs/deprecated/insforge-instructions.md | 101 | -H "x-api-key: your-api-key" \ | CODE |
| HIGH | .archive/docs/deprecated/insforge-instructions.md | 109 | -H "x-api-key: your-api-key" \ | CODE |
| HIGH⚡ | backend/tests/unit/app.config.test.ts | 60 | expect(c.app.apiKey).toBe('your_api_key'); | CODE |
| HIGH | backend/src/infra/config/app.config.ts | 141 | apiKey: process.env.ACCESS_API_KEY || 'your_api_key', | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | deploy/docker-init/logs/vector.yml | 86 | # Check if this is a request log (has duration field) | COMMENT |
| LOW | backend/tests/test-config.sh | 81 | # Check if required tools are installed | COMMENT |
| LOW | backend/tests/run-all-tests.sh | 60 | # Check if root admin credentials are set | COMMENT |
| LOW | backend/tests/run-all-tests.sh | 69 | # Check if running cloud tests | COMMENT |
| LOW | backend/tests/cleanup-all-test-data.sh | 110 | # Check if table matches any test pattern | COMMENT |
| LOW | backend/tests/cleanup-all-test-data.sh | 154 | # Check if bucket matches any test pattern | COMMENT |
| LOW | backend/tests/local/test-traditional-rest.sh | 96 | # Check if registration was successful | COMMENT |
| LOW | backend/tests/manual/test-ai-model-plugins.sh | 44 | # Check if annotations are present in the response | COMMENT |
| LOW | backend/tests/manual/test-database-advance.sh | 118 | # Check if file exists | COMMENT |
| LOW⚡ | backend/tests/manual/test-rawsql-export-import.sh | 90 | # Check if login was successful | COMMENT |
| LOW | backend/tests/manual/test-rawsql-export-import.sh | 211 | # Check if response contains success information | COMMENT |
| LOW⚡ | backend/scripts/test-deno-subhosting.sh | 52 | # Check if API is reachable | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | backend/tests/local/test-secrets.sh | 165 | # Create a simple function that returns the secret | COMMENT |
| MEDIUM | backend/tests/local/test-secrets.sh | 182 | # Create the function | COMMENT |
| MEDIUM | backend/tests/local/test-id-field.sh | 109 | # Create a test table | COMMENT |
| MEDIUM | backend/tests/local/test-traditional-rest.sh | 183 | # Create a test bucket | COMMENT |
| MEDIUM | backend/tests/manual/test-database-advance.sh | 247 | # Define the path to the SQL file | COMMENT |
| MEDIUM | backend/tests/cloud/test-s3-multitenant.sh | 38 | # Create a test bucket | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .archive/docs/deprecated/insforge-auth-sdk.md | 41 | // After OAuth, user returns to redirectTo URL already authenticated | COMMENT |
| LOW | backend/tests/local/test-schedules.sh | 1 | #!/bin/bash | COMMENT |
| LOW | backend/tests/local/test-storage-rls.sh | 1 | #!/bin/bash | COMMENT |
| LOW | backend/tests/local/test-e2e.sh | 241 | # Note: All test resources will be cleaned up automatically on exit | COMMENT |
| LOW | backend/tests/cloud/test-s3-gateway.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | backend/src/providers/payments/razorpay-errors.ts | 61 | COMMENT | |
| LOW | backend/src/providers/compute/fly.provider.ts | 241 | COMMENT | |
| LOW | backend/src/services/storage/storage.service.ts | 221 | this.validateBucketName(bucket); | COMMENT |
| LOW | backend/src/services/compute/services.service.ts | 201 | // Cloud-mode providers wrap the cloud's structured error body verbatim into | COMMENT |
| LOW | scripts/sync-skills.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | scripts/update-mintlify-skill.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | packages/dashboard/src/features/compute/lib/health.ts | 1 | // Derive a simple crash-loop signal from Fly machine lifecycle events. | COMMENT |
| LOW | functions/worker-template.js | 61 | // the handler AFTER the top-level `await import(...)` below (cold import can | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | backend/src/infra/socket/socket.manager.ts | 555 | return this.io.sockets.adapter.rooms.get(room)?.size || 0; | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | .claude/skills/doc-author/INSFORGE.md | 43 | ## Sound human, not AI-generated | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | examples/python-ml-experiment-tracker/tracker/config.py | 1 | CODE | |
| LOW | examples/python-ml-experiment-tracker/tracker/models.py | 1 | CODE | |
| LOW | examples/python-ml-experiment-tracker/tracker/client.py | 1 | CODE | |
| LOW | examples/python-ml-experiment-tracker/tracker/serve.py | 1 | CODE | |
| LOW | examples/python-ml-experiment-tracker/tracker/cli.py | 1 | CODE | |
| LOW | examples/python-ml-experiment-tracker/tracker/cli.py | 14 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | packages/dashboard/src/features/ai/constants.ts | 47 | print(completion.choices[0].message)`, | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | .claude/skills/doc-author/SKILL.md | 238 | ## Verification guardrails | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | examples/python-ml-experiment-tracker/tracker/client.py | 65 | except Exception: | CODE |
| LOW | examples/python-ml-experiment-tracker/tracker/serve.py | 129 | except Exception: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/sync-skills.sh | 14 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | examples/python-ml-experiment-tracker/tracker/config.py | 57 | def update_tokens(access_token: str, refresh_token: str) -> None: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | examples/python-ml-experiment-tracker/tracker/cli.py | 74 | CODE |