AI Slop Code Risk Monitor

supertokens/supertokens-core

SlopCodeMonitor badge for supertokens/supertokens-core Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

Open source alternative to Auth0 / Firebase Auth / AWS Cognito

4.3 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for supertokens/supertokens-core, a Java project with 15,340 GitHub stars. SynthScan examined 276,118 lines of code across 988 source files, recording 375 pattern matches distributed across 10 syntactic categories. The legacy adjusted pattern signal is 4.3 (Low pattern signal); it is not an authorship estimate.

Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.

4.3
Adjusted Signal
4.3
Raw Pattern Score
100%
Time Factor
2026-10-28
Last Push
15.3K
Stars
Java
Language
276.1K
Lines of Code
988
Files
375
Pattern Hits
2026-10-31
Scan Date
0.07
HC Hit Rate

Risk Review · Payload v1

Use each vector to guide manual verification of the underlying findings.

Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.

Cognitive Ownership Risk 2.3/100 · LOW

Can maintainers explain intent, assumptions, and trade-offs? 99 finding(s).

Hallucinated Dependency & Supply Chain Risk 14.5/100 · LOW

Are imports declared and package/API names verified? 208 finding(s).

Agent Over-Engineering Ratio 3.7/100 · LOW

Are wrappers, guards, and repeated structures necessary? 71 finding(s).

PR Review Velocity Impact 18.4/100 · LOW

Which changes need focused human review? 375 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.

Severity Breakdown

Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.

CRITICAL 67HIGH 2MEDIUM 69LOW 237

Directory Score Breakdown

This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.

Pattern Findings

The scanner identified 375 distinct pattern matches across 10 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. 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 configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.

Hallucination Indicators67 hits · 705 pts
SeverityFileLineSnippetContext
CRITICAL…/io/supertokens/test/TransactionCountBaselineTest.java192 prepareWebAuthnSignIn(process, io.supertokens.test.webauthn.Utils.registerUserWithCredentials(CODE
CRITICAL…/io/supertokens/test/TransactionCountBaselineTest.java195 JsonObject user = io.supertokens.test.webauthn.Utils.registerUserWithCredentials(process.getProcess(),CODE
CRITICAL⚡…/io/supertokens/test/TransactionCountBaselineTest.java392 JsonObject options = io.supertokens.test.webauthn.Utils.signInOptions(process.getProcess());CODE
CRITICAL⚡…/io/supertokens/test/TransactionCountBaselineTest.java394 credentials = io.supertokens.test.webauthn.Utils.createPublicKeyRequestOptions(options,CODE
CRITICAL⚡…/io/supertokens/test/TransactionCountBaselineTest.java400 JsonObject response = io.supertokens.test.webauthn.Utils.signIn(process.getProcess(),CODE
CRITICALsrc/test/java/io/supertokens/test/AuthRecipeTest.java738 List<JsonObject> webauthnUsers = io.supertokens.test.webauthn.Utils.registerUsers(main, 1);CODE
CRITICAL…ountlinking/ListPrimaryUsersTransactionParityTest.java143 String webauthnUserId = io.supertokens.test.webauthn.Utils.registerUserWithCredentials(main, sharedEmail)CODE
CRITICAL…kens/test/accountlinking/GetUserByAccountInfoTest.java106 JsonObject responseUser = io.supertokens.test.webauthn.Utils.registerUserWithCredentials(main, email).getAsJsonOCODE
CRITICAL…ns/test/accountlinking/LifecycleMutationEventTest.java548 JsonObject signUpResponse = io.supertokens.test.webauthn.Utils.registerUserWithCredentials(CODE
CRITICAL…kens/test/webauthn/WebauthNAccountLinkingFlowTest.java217 JsonObject signInResponse = io.supertokens.test.webauthn.Utils.signInWithUser(process.getProcess(), users.get(0)CODE
CRITICAL…kens/test/webauthn/WebauthNAccountLinkingFlowTest.java338 JsonObject signInResponse = io.supertokens.test.webauthn.Utils.signInWithUser(process.getProcess(), users.get(0)CODE
CRITICAL…ava/io/supertokens/test/webauthn/WebAuthNFlowTest.java72 List<JsonObject> users = io.supertokens.test.webauthn.Utils.registerUsers(process.getProcess(), numberOfUsers);CODE
CRITICAL…ava/io/supertokens/test/webauthn/WebAuthNFlowTest.java92 JsonObject signInResponse = io.supertokens.test.webauthn.Utils.signInWithUser(process.getProcess(), users.get(0)CODE
CRITICAL…ava/io/supertokens/test/webauthn/WebAuthNFlowTest.java125 List<JsonObject> users = io.supertokens.test.webauthn.Utils.registerUsers(process.getProcess(), numberOfUsers);CODE
CRITICAL…ava/io/supertokens/test/webauthn/WebAuthNFlowTest.java146 JsonObject signInResponse = io.supertokens.test.webauthn.Utils.signInWithUser(process.getProcess(),CODE
CRITICAL…kens/test/webauthn/api/TestUpdateUserEmailAPI_5_3.java156 Map<String, PublicKeyCredentialCreationOptions> options = io.supertokens.test.webauthn.Utils.createPublicKeyCreaCODE
CRITICAL…kens/test/webauthn/api/TestUpdateUserEmailAPI_5_3.java158 PublicKeyCredential<AuthenticatorAttestationResponse, RegistrationExtensionClientOutput> credential = io.supertoCODE
CRITICAL…authn/api/TestSignUpWithCredentialRegisterAPI_5_3.java239 Map<String, PublicKeyCredentialCreationOptions> options = io.supertokens.test.webauthn.Utils.createPublicKeyCreaCODE
CRITICAL…authn/api/TestSignUpWithCredentialRegisterAPI_5_3.java241 PublicKeyCredential<AuthenticatorAttestationResponse, RegistrationExtensionClientOutput> credential = io.supertoCODE
CRITICAL…kens/test/webauthn/api/TestListCredentialsAPI_5_3.java193 Map<String, PublicKeyCredentialCreationOptions> options = io.supertokens.test.webauthn.Utils.createPublicKeyCreaCODE
CRITICAL…kens/test/webauthn/api/TestListCredentialsAPI_5_3.java195 PublicKeyCredential<AuthenticatorAttestationResponse, RegistrationExtensionClientOutput> credential = io.supertoCODE
CRITICAL…est/webauthn/api/TestSignInOptionsConsumption_5_5.java79 JsonObject user = io.supertokens.test.webauthn.Utils.registerUserWithCredentials(main,CODE
CRITICAL…est/webauthn/api/TestSignInOptionsConsumption_5_5.java114 JsonObject user = io.supertokens.test.webauthn.Utils.registerUserWithCredentials(main,CODE
CRITICAL…est/webauthn/api/TestSignInOptionsConsumption_5_5.java146 JsonObject user = io.supertokens.test.webauthn.Utils.registerUserWithCredentials(main,CODE
CRITICAL…est/webauthn/api/TestSignInOptionsConsumption_5_5.java184 JsonObject signInOptionsResponse = io.supertokens.test.webauthn.Utils.signInOptions(main);CODE
CRITICAL…est/webauthn/api/TestSignInOptionsConsumption_5_5.java186 io.supertokens.test.webauthn.Utils.createPublicKeyRequestOptions(signInOptionsResponse, clientPlatform,CODE
CRITICAL…tokens/test/webauthn/api/TestGetCredentialAPI_5_3.java232 Map<String, PublicKeyCredentialCreationOptions> options = io.supertokens.test.webauthn.Utils.createPublicKeyCreaCODE
CRITICAL…tokens/test/webauthn/api/TestGetCredentialAPI_5_3.java234 PublicKeyCredential<AuthenticatorAttestationResponse, RegistrationExtensionClientOutput> credential = io.supertoCODE
CRITICAL…o/supertokens/test/webauthn/api/TestSignInAPI_5_3.java307 Map<String, PublicKeyCredentialCreationOptions> options = io.supertokens.test.webauthn.Utils.createPublicKeyCreaCODE
CRITICAL…o/supertokens/test/webauthn/api/TestSignInAPI_5_3.java309 PublicKeyCredential<AuthenticatorAttestationResponse, RegistrationExtensionClientOutput> credential = io.supertoCODE
CRITICAL…o/supertokens/test/webauthn/api/TestSignInAPI_5_3.java331 Map<String, PublicKeyCredential<AuthenticatorAssertionResponse, AuthenticationExtensionClientOutput>> options = CODE
CRITICAL…ens/test/webauthn/api/TestRemoveCredentialAPI_5_3.java237 Map<String, PublicKeyCredentialCreationOptions> options = io.supertokens.test.webauthn.Utils.createPublicKeyCreaCODE
CRITICAL…ens/test/webauthn/api/TestRemoveCredentialAPI_5_3.java239 PublicKeyCredential<AuthenticatorAttestationResponse, RegistrationExtensionClientOutput> credential = io.supertoCODE
CRITICAL…/test/webauthn/api/TestCredentialsRegisterAPI_5_3.java323 Map<String, PublicKeyCredentialCreationOptions> options = io.supertokens.test.webauthn.Utils.createPublicKeyCreaCODE
CRITICAL…/test/webauthn/api/TestCredentialsRegisterAPI_5_3.java325 PublicKeyCredential<AuthenticatorAttestationResponse, RegistrationExtensionClientOutput> credential = io.supertoCODE
CRITICAL⚡…st/webauthn/api/TestWebAuthNCrossTenantSignIn_5_3.java113 io.supertokens.test.webauthn.Utils.createPublicKeyCreationOptions(registerOptions);CODE
CRITICAL⚡…st/webauthn/api/TestWebAuthNCrossTenantSignIn_5_3.java116 io.supertokens.test.webauthn.Utils.createPasskey(authenticator, creationOptions.values().iterator().nextCODE
CRITICAL⚡…st/webauthn/api/TestWebAuthNCrossTenantSignIn_5_3.java125 io.supertokens.test.webauthn.Utils.createPublicKeyRequestOptions(t2SignInOptions, authenticator, credentCODE
CRITICAL⚡…st/webauthn/api/TestWebAuthNCrossTenantSignIn_5_3.java134 io.supertokens.test.webauthn.Utils.createPublicKeyRequestOptions(t1SignInOptions, authenticator, credentCODE
CRITICALsrc/test/java/io/supertokens/test/saml/MockSAML.java240 org.opensaml.core.xml.schema.impl.XSStringBuilder sb = new org.opensaml.core.xml.schema.impl.XSStrinCODE
CRITICAL…va/io/supertokens/test/saml/api/SAMLConfigTest5_4.java409 String urlDecoded = java.net.URLDecoder.decode(encoded, java.nio.charset.StandardCharsets.UTF_8.name());CODE
CRITICAL…va/io/supertokens/test/saml/api/SAMLConfigTest5_4.java421 return baos.toString(java.nio.charset.StandardCharsets.UTF_8.name());CODE
CRITICALsrc/main/java/io/supertokens/bulkimport/BulkImport.java574 new io.supertokens.pluginInterface.authRecipe.LoginMethod.ThirdParty(lM.thirdPartyId, lM.thiCODE
CRITICALsrc/main/java/io/supertokens/inmemorydb/Start.java1453 throw new io.supertokens.pluginInterface.thirdparty.exception.DuplicateUserIdException();CODE
CRITICALsrc/main/java/io/supertokens/inmemorydb/Start.java1504 throw new io.supertokens.pluginInterface.thirdparty.exception.DuplicateUserIdException();CODE
CRITICALsrc/main/java/io/supertokens/inmemorydb/Start.java3135 throw new io.supertokens.pluginInterface.dashboard.exceptions.DuplicateEmailException();CODE
CRITICALsrc/main/java/io/supertokens/inmemorydb/Start.java3194 throw new io.supertokens.pluginInterface.dashboard.exceptions.DuplicateUserIdException();CODE
CRITICALsrc/main/java/io/supertokens/inmemorydb/Start.java3198 throw new io.supertokens.pluginInterface.dashboard.exceptions.DuplicateEmailException();CODE
CRITICALsrc/main/java/io/supertokens/inmemorydb/Start.java4115 throw new io.supertokens.pluginInterface.webauthn.exceptions.DuplicateCredentialException();CODE
CRITICALsrc/main/java/io/supertokens/inmemorydb/Start.java4241 throw new io.supertokens.pluginInterface.webauthn.exceptions.DuplicateUserIdException();CODE
CRITICALsrc/main/java/io/supertokens/inmemorydb/Start.java4290 throw new io.supertokens.pluginInterface.webauthn.exceptions.DuplicateUserIdException();CODE
CRITICALsrc/main/java/io/supertokens/inmemorydb/Start.java4514 String table = io.supertokens.inmemorydb.config.Config.getConfig(this).getSAMLClientsTable();CODE
CRITICALsrc/main/java/io/supertokens/inmemorydb/Start.java4516 throw new io.supertokens.pluginInterface.saml.exception.DuplicateEntityIdException();CODE
CRITICALsrc/main/java/io/supertokens/webserver/Webserver.java344 addAPI(new RecipeRouter(main, new UserAPI(main), new io.supertokens.webserver.api.thirdparty.UserAPI(main),CODE
CRITICALsrc/main/java/io/supertokens/webserver/Webserver.java345 new io.supertokens.webserver.api.passwordless.UserAPI(main)));CODE
CRITICALsrc/main/java/io/supertokens/webserver/Webserver.java482 addAPI(new io.supertokens.webserver.api.webauthn.SignInAPI(main));CODE
CRITICAL…supertokens/webserver/api/emailpassword/SignInAPI.java80 io.supertokens.webserver.api.emailpassword.Utils.assertIfEmailPasswordIsEnabledForTenant(main,CODE
CRITICAL…r/api/emailpassword/ImportUserWithPasswordHashAPI.java101 io.supertokens.webserver.api.emailpassword.Utils.assertIfEmailPasswordIsEnabledForTenant(main,CODE
CRITICAL…r/api/emailpassword/GeneratePasswordResetTokenAPI.java71 io.supertokens.webserver.api.emailpassword.Utils.assertIfEmailPasswordIsEnabledForTenant(main,CODE
CRITICAL…supertokens/webserver/api/emailpassword/SignUpAPI.java82 io.supertokens.webserver.api.emailpassword.Utils.assertIfEmailPasswordIsEnabledForTenant(main,CODE
7 more matches not shown…
Decorative Section Separators68 hits · 204 pts
SeverityFileLineSnippetContext
MEDIUM…ress-tests/src/migrationBehavior/testModeTransition.ts45// ── Full blue-green migration lifecycle ─────────────────────────────────────COMMENT
MEDIUM…ress-tests/src/migrationBehavior/testModeTransition.ts50 // ─── Phase 1: LEGACY ───────────────────────────────────────────────COMMENT
MEDIUM…ress-tests/src/migrationBehavior/testModeTransition.ts67 // ─── Phase 2: DUAL_WRITE_READ_OLD ─────────────────────────────────COMMENT
MEDIUM…ress-tests/src/migrationBehavior/testModeTransition.ts106 // ─── Phase 3: DUAL_WRITE_READ_NEW ─────────────────────────────────COMMENT
MEDIUM…ress-tests/src/migrationBehavior/testModeTransition.ts131 // ─── Phase 4: MIGRATED ────────────────────────────────────────────COMMENT
MEDIUM…ress-tests/src/migrationBehavior/testModeTransition.ts164// ── Concurrent operations during mode switch ────────────────────────────────COMMENT
MEDIUM…ress-tests/src/migrationBehavior/testModeTransition.ts197// ── Rollback scenario: forward then back ────────────────────────────────────COMMENT
MEDIUM…ress-tests/src/migrationBehavior/testModeTransition.ts238// ── Email conflict detection across modes ───────────────────────────────────COMMENT
MEDIUMstress-tests/src/migrationBehavior/testConcurrency.ts32// ── Concurrent link + email update ──────────────────────────────────────────COMMENT
MEDIUMstress-tests/src/migrationBehavior/testConcurrency.ts79// ── Concurrent link + unlink ────────────────────────────────────────────────COMMENT
MEDIUMstress-tests/src/migrationBehavior/testConcurrency.ts129// ── Concurrent deleteUser + linkAccounts ────────────────────────────────────COMMENT
MEDIUMstress-tests/src/migrationBehavior/testConcurrency.ts171// ── Bulk concurrent user creation + linking ─────────────────────────────────COMMENT
MEDIUMstress-tests/src/migrationBehavior/testConcurrency.ts211// ── Mixed recipe concurrent operations ──────────────────────────────────────COMMENT
MEDIUMstress-tests/src/migrationBehavior/testMultitenancy.ts26// ── Helper: create a tenant ─────────────────────────────────────────────────COMMENT
MEDIUMstress-tests/src/migrationBehavior/testMultitenancy.ts38// ── Tenant association tests ────────────────────────────────────────────────COMMENT
MEDIUMstress-tests/src/migrationBehavior/testMultitenancy.ts94// ── Linking + tenant interaction ────────────────────────────────────────────COMMENT
MEDIUMstress-tests/src/migrationBehavior/setup.ts16// ── Config ──────────────────────────────────────────────────────────────────COMMENT
MEDIUMstress-tests/src/migrationBehavior/setup.ts23// ── Types ───────────────────────────────────────────────────────────────────COMMENT
MEDIUMstress-tests/src/migrationBehavior/setup.ts42// ── SDK Init ────────────────────────────────────────────────────────────────COMMENT
MEDIUMstress-tests/src/migrationBehavior/setup.ts88// ── Test Runner ─────────────────────────────────────────────────────────────COMMENT
MEDIUMstress-tests/src/migrationBehavior/setup.ts135// ── Assertions ──────────────────────────────────────────────────────────────COMMENT
MEDIUMstress-tests/src/migrationBehavior/setup.ts161// ── User Helpers ────────────────────────────────────────────────────────────COMMENT
MEDIUMstress-tests/src/migrationBehavior/setup.ts235// ── Core API Helpers (direct HTTP) ──────────────────────────────────────────COMMENT
MEDIUMstress-tests/src/migrationBehavior/setup.ts262// ── App-scoped helpers (direct HTTP for blue-green tests) ───────────────────COMMENT
MEDIUMstress-tests/src/migrationBehavior/setup.ts479// ── Reporting ───────────────────────────────────────────────────────────────COMMENT
MEDIUMstress-tests/src/migrationBehavior/testEmailUpdates.ts26// ── EmailPassword email updates ─────────────────────────────────────────────COMMENT
MEDIUMstress-tests/src/migrationBehavior/testEmailUpdates.ts109// ── ThirdParty email updates (via signInUp) ─────────────────────────────────COMMENT
MEDIUMstress-tests/src/migrationBehavior/testEmailUpdates.ts153// ── Password updates ────────────────────────────────────────────────────────COMMENT
MEDIUMstress-tests/src/migrationBehavior/testLinkAccounts.ts31// ── Test: createPrimaryUser ─────────────────────────────────────────────────COMMENT
MEDIUMstress-tests/src/migrationBehavior/testLinkAccounts.ts80// ── Test: linkAccounts ──────────────────────────────────────────────────────COMMENT
MEDIUMstress-tests/src/migrationBehavior/testLinkAccounts.ts166// ── Test: unlinkAccounts ────────────────────────────────────────────────────COMMENT
MEDIUMstress-tests/src/migrationBehavior/testLinkAccounts.ts209// ── Test: canLinkAccounts ───────────────────────────────────────────────────COMMENT
MEDIUMstress-tests/src/migrationBehavior/testLinkAccounts.ts244// ── Test: deleteUser interaction with linking ───────────────────────────────COMMENT
MEDIUMstress-tests/src/migrationBehavior/testLinkAccounts.ts278// ── Test: multiple links ────────────────────────────────────────────────────COMMENT
MEDIUM.github/workflows/batch-generate-jars.yml22 # ── Parse the free-text version list into a JSON matrix ──────────────COMMENT
MEDIUM.github/workflows/batch-generate-jars.yml39 # ── Fan out: one generate-jars run per version ────────────────────────COMMENT
MEDIUM.github/workflows/do-release-java15.yml59 # ── Validate inputs ───────────────────────────────────────────────COMMENT
MEDIUM.github/workflows/do-release-java15.yml74 # ── Resolve branches for the given versions ───────────────────────COMMENT
MEDIUM.github/workflows/do-release-java15.yml92 # ── Update dependency manifests if needed ─────────────────────────COMMENT
MEDIUM.github/workflows/do-release-java15.yml193 # ── Register new versions with the SuperTokens API ────────────────COMMENT
MEDIUM.github/workflows/do-release-java15.yml268 # ── Run unit tests (sqlite + postgresql) ──────────────────────────COMMENT
MEDIUM.github/workflows/do-release-java15.yml431 # ── Mark test results on the SuperTokens API ──────────────────────COMMENT
MEDIUM.github/workflows/do-release-java15.yml499 # ── Stress tests ──────────────────────────────────────────────────COMMENT
MEDIUM.github/workflows/do-release-java15.yml508 # ── Tag and publish the release Docker image ──────────────────────COMMENT
MEDIUM.github/workflows/do-release-java15.yml523 # ── Tag all repos with release versions ───────────────────────────COMMENT
MEDIUM.github/workflows/do-release-java15.yml641 # ── Build and commit the release JARs ─────────────────────────────COMMENT
MEDIUM.github/workflows/do-release-java15.yml654 # ── Notify Slack about the successful release ─────────────────────COMMENT
MEDIUM.github/workflows/generate-jars.yml120 # ── plugin-interface ────────────────────────────────────────────────COMMENT
MEDIUM.github/workflows/generate-jars.yml186 # ── postgresql-plugin ───────────────────────────────────────────────COMMENT
MEDIUM.github/workflows/generate-jars.yml252 # ── core ────────────────────────────────────────────────────────────COMMENT
MEDIUM.github/workflows/release-tests.yml29 # ── Update dependency manifests if needed ────────────────────────COMMENT
MEDIUM.github/workflows/release-tests.yml120 # ── Unit tests (sqlite + postgresql) ──────────────────────────────COMMENT
MEDIUM.github/workflows/release-tests.yml247 # ── Wait for the dev Docker image to be published ─────────────────COMMENT
MEDIUM.github/workflows/release-tests.yml280 # ── Stress tests (uses the published Docker image) ────────────────COMMENT
MEDIUM…rtokens/test/saml/api/SAMLClaimsExtractionTest5_4.java77 // ── shared constants ──────────────────────────────────────────────────────COMMENT
MEDIUM…rtokens/test/saml/api/SAMLClaimsExtractionTest5_4.java84 // ── test helpers ─────────────────────────────────────────────────────────COMMENT
MEDIUM…rtokens/test/saml/api/SAMLClaimsExtractionTest5_4.java141 // ── Bug 1: XSString attribute extraction ─────────────────────────────────COMMENT
MEDIUM…rtokens/test/saml/api/SAMLClaimsExtractionTest5_4.java218 // ── Bug 2: email attribute fallback chain ─────────────────────────────────COMMENT
MEDIUMsrc/main/java/io/supertokens/oauth/OAuth.java64 // ── Test-only OAuth-provider stub hook (PLAN-017 / CORE-2) ───────────────────────────────────────COMMENT
MEDIUM…ain/java/io/supertokens/inmemorydb/ConnectionPool.java37 // ── Test-only connection-borrow instrumentation (PLAN-017 / CORE-2) ──────────────────────────────COMMENT
8 more matches not shown…
Fake / Example Data141 hits · 158 pts
SeverityFileLineSnippetContext
LOW…java/io/supertokens/test/ApproximateUserCountTest.java291 EmailPassword.signUp(process.getProcess(), "user@example.com", "password");CODE
LOWsrc/test/java/io/supertokens/test/FeatureFlagTest.java528 tenantIdentifier, storage, process.getProcess(), "user@example.com",CODE
LOWsrc/test/java/io/supertokens/test/FeatureFlagTest.java702 tenantIdentifier, storage, process.getProcess(), "user@example.com",CODE
LOWsrc/test/java/io/supertokens/test/FeatureFlagTest.java834 tenantIdentifier, storage, process.getProcess(), "user@example.com",CODE
LOW…/java/io/supertokens/test/multitenant/TestAppData.java193 "user@example.com", "password");CODE
LOW…/java/io/supertokens/test/multitenant/TestAppData.java195 "user@example.com", "password");CODE
LOW⚡…ltitenant/api/TestTenantIdIsNotPresentForOlderCDI.java232 JsonObject user1 = epSignUp(t1, "user@example.com", "password1");CODE
LOW⚡…ltitenant/api/TestTenantIdIsNotPresentForOlderCDI.java233 JsonObject user2 = epSignUp(t2, "user@example.com", "password2");CODE
LOW⚡…ltitenant/api/TestTenantIdIsNotPresentForOlderCDI.java234 JsonObject user3 = epSignUp(t3, "user@example.com", "password3");CODE
LOW⚡…ltitenant/api/TestTenantIdIsNotPresentForOlderCDI.java241 JsonObject nuser1 = epSignIn(t1, "user@example.com", "password1");CODE
LOW⚡…ltitenant/api/TestTenantIdIsNotPresentForOlderCDI.java242 JsonObject nuser2 = epSignIn(t2, "user@example.com", "password2");CODE
LOW⚡…ltitenant/api/TestTenantIdIsNotPresentForOlderCDI.java243 JsonObject nuser3 = epSignIn(t3, "user@example.com", "password3");CODE
LOW⚡…ltitenant/api/TestTenantIdIsNotPresentForOlderCDI.java261 JsonObject nuser1 = epGetUserUsingEmail(t1, "user@example.com");CODE
LOW⚡…ltitenant/api/TestTenantIdIsNotPresentForOlderCDI.java262 JsonObject nuser2 = epGetUserUsingEmail(t2, "user@example.com");CODE
LOW⚡…ltitenant/api/TestTenantIdIsNotPresentForOlderCDI.java263 JsonObject nuser3 = epGetUserUsingEmail(t3, "user@example.com");CODE
LOW…rtokens/test/multitenant/api/TestLicenseBehaviour.java104 "user@example.com", "password", process.getProcess());CODE
LOW…rtokens/test/multitenant/api/TestLicenseBehaviour.java293 "user@example.com", "password", process.getProcess());CODE
LOW…ns/test/multitenant/api/TestTenantUserAssociation.java141 JsonObject user = TestMultitenancyAPIHelper.epSignUp(new TenantIdentifier(null, "a1", "t1"), "user@example.com",CODE
LOW…ns/test/multitenant/api/TestTenantUserAssociation.java163 JsonObject user = TestMultitenancyAPIHelper.epSignUp(new TenantIdentifier(null, "a1", "t1"), "user@example.com",CODE
LOW…ns/test/multitenant/api/TestTenantUserAssociation.java243 JsonObject user = TestMultitenancyAPIHelper.epSignUp(new TenantIdentifier(null, "a1", "t1"), "user@example.com",CODE
LOW…ns/test/multitenant/api/TestTenantUserAssociation.java269 JsonObject user = TestMultitenancyAPIHelper.epSignUp(new TenantIdentifier(null, "a1", "t1"), "user@example.com",CODE
LOW…ns/test/multitenant/api/TestTenantUserAssociation.java293 process.getProcess(), "user@example.com", "password");CODE
LOW…ns/test/multitenant/api/TestTenantUserAssociation.java325 process.getProcess(), "user@example.com", null, null, null);CODE
LOW…ns/test/multitenant/api/TestTenantUserAssociation.java403 "googleid", "user@example.com");CODE
LOW…ns/test/multitenant/api/TestTenantUserAssociation.java434 JsonObject user = TestMultitenancyAPIHelper.epSignUp(new TenantIdentifier(null, "a1", "t1"), "user@example.com",CODE
LOW…ns/test/multitenant/api/TestTenantUserAssociation.java451 JsonObject user = TestMultitenancyAPIHelper.epSignUp(new TenantIdentifier(null, "a1", "t1"), "user@example.com",CODE
LOW…ns/test/multitenant/api/TestTenantUserAssociation.java471 JsonObject user = TestMultitenancyAPIHelper.epSignUp(new TenantIdentifier(null, "a1", "t1"), "user@example.com",CODE
LOW…ns/test/multitenant/api/TestTenantUserAssociation.java497 JsonObject user = TestMultitenancyAPIHelper.epSignUp(new TenantIdentifier(null, "a1", "t1"), "user@example.com",CODE
LOW…ns/test/multitenant/api/TestTenantUserAssociation.java536 "user@example.com",CODE
LOW…ns/test/multitenant/api/TestTenantUserAssociation.java540 TestMultitenancyAPIHelper.epSignUp(new TenantIdentifier(null, "a1", "t2"), "user@example.com",CODE
LOW…ns/test/multitenant/api/TestTenantUserAssociation.java556 "google-user", "user@example.com",CODE
LOW…ns/test/multitenant/api/TestTenantUserAssociation.java561 "user@example.com",CODE
LOW…ns/test/multitenant/api/TestTenantUserAssociation.java577 "user@example.com",CODE
LOW…ns/test/multitenant/api/TestTenantUserAssociation.java581 TestMultitenancyAPIHelper.plSignInUpEmail(new TenantIdentifier(null, "a1", "t2"), "user@example.com",CODE
LOW…ns/test/accountlinking/LifecycleMutationEventTest.java410 * A fake-email sign-up is pre-verified on the same audited connection as the user creation (the fake-emailCOMMENT
LOW⚡…rtokens/test/userIdMapping/api/MultitenantAPITest.java276 JsonObject user1 = emailPasswordSignUp(t1, "user@example.com", "password1");CODE
LOW⚡…rtokens/test/userIdMapping/api/MultitenantAPITest.java277 JsonObject user2 = emailPasswordSignUp(t2, "user@example.com", "password2");CODE
LOW⚡…rtokens/test/userIdMapping/api/MultitenantAPITest.java278 JsonObject user3 = emailPasswordSignUp(t3, "user@example.com", "password3");CODE
LOW…rtokens/test/userIdMapping/api/MultitenantAPITest.java401 JsonObject user1 = emailPasswordSignUp(t1, "user@example.com", "password1");CODE
LOW…rtokens/test/userIdMapping/api/MultitenantAPITest.java402 JsonObject user2 = emailPasswordSignUp(t2, "user@example.com", "password2");CODE
LOW…rtokens/test/userIdMapping/api/MultitenantAPITest.java443 JsonObject user1 = emailPasswordSignUp(t1, "user@example.com", "password1");CODE
LOW…rtokens/test/userIdMapping/api/MultitenantAPITest.java444 JsonObject user2 = emailPasswordSignUp(t2, "user@example.com", "password2");CODE
LOW…rtokens/test/userIdMapping/api/MultitenantAPITest.java487 JsonObject user1 = emailPasswordSignUp(t1, "user@example.com", "password1");CODE
LOW…io/supertokens/test/authRecipe/MultitenantAPITest.java202 "user@example.com",CODE
LOW…io/supertokens/test/authRecipe/MultitenantAPITest.java231 "user@example.com",CODE
LOW…io/supertokens/test/authRecipe/MultitenantAPITest.java302 process.getProcess(), "google", "googleid1", "user@example.com");CODE
LOW…io/supertokens/test/authRecipe/MultitenantAPITest.java314 process.getProcess(), "facebook", "facebookid1", "user@example.com");CODE
LOW⚡…s/test/emailpassword/MultitenantEmailPasswordTest.java215 EmailPassword.signUp(t1, t1storage, process.getProcess(), "user@example.com", "password1");CODE
LOW⚡…s/test/emailpassword/MultitenantEmailPasswordTest.java216 EmailPassword.signUp(t2, t2storage, process.getProcess(), "user@example.com", "password2");CODE
LOW⚡…s/test/emailpassword/MultitenantEmailPasswordTest.java217 EmailPassword.signUp(t3, t3storage, process.getProcess(), "user@example.com", "password3");CODE
LOW⚡…s/test/emailpassword/MultitenantEmailPasswordTest.java220 AuthRecipeUserInfo userInfo = EmailPassword.signIn(t1, t1storage, process.getProcess(), "user@example.com",CODE
LOW⚡…s/test/emailpassword/MultitenantEmailPasswordTest.java222 assertEquals("user@example.com", userInfo.loginMethods[0].email);CODE
LOW⚡…s/test/emailpassword/MultitenantEmailPasswordTest.java226 AuthRecipeUserInfo userInfo = EmailPassword.signIn(t2, t2storage, process.getProcess(), "user@example.com",CODE
LOW⚡…s/test/emailpassword/MultitenantEmailPasswordTest.java228 assertEquals("user@example.com", userInfo.loginMethods[0].email);CODE
LOW⚡…s/test/emailpassword/MultitenantEmailPasswordTest.java232 AuthRecipeUserInfo userInfo = EmailPassword.signIn(t3, t3storage, process.getProcess(), "user@example.com",CODE
LOW⚡…s/test/emailpassword/MultitenantEmailPasswordTest.java234 assertEquals("user@example.com", userInfo.loginMethods[0].email);CODE
LOW⚡…s/test/emailpassword/MultitenantEmailPasswordTest.java337 AuthRecipeUserInfo user1 = EmailPassword.signUp(t1, t1storage, process.getProcess(), "user@example.com",CODE
LOW⚡…s/test/emailpassword/MultitenantEmailPasswordTest.java339 AuthRecipeUserInfo user2 = EmailPassword.signUp(t2, t2storage, process.getProcess(), "user@example.com",CODE
LOW⚡…s/test/emailpassword/MultitenantEmailPasswordTest.java341 AuthRecipeUserInfo user3 = EmailPassword.signUp(t3, t3storage, process.getProcess(), "user@example.com",CODE
LOW⚡…s/test/emailpassword/MultitenantEmailPasswordTest.java392 AuthRecipeUserInfo user1 = EmailPassword.signUp(t1, t1storage, process.getProcess(), "user@example.com",CODE
81 more matches not shown…
Over-Commented Block67 hits · 67 pts
SeverityFileLineSnippetContext
LOWdevConfig.yaml1# Config for SuperTokens service. Here you will set the config params forCOMMENT
LOWdevConfig.yaml21# access_token_validity:COMMENT
LOWdevConfig.yaml41COMMENT
LOWdevConfig.yaml61COMMENT
LOWdevConfig.yaml81# (DIFFERENT_ACROSS_TENANTS | OPTIONAL | Default: 3600000) long value. Time in milliseconds for how long a passwordCOMMENT
LOWdevConfig.yaml101# totp_max_attempts:COMMENT
LOWdevConfig.yaml121COMMENT
LOWdevConfig.yaml141# again. Telemetry's user count, the license-usage stats and the unfiltered tenant count of /users/count on CDI 5.7COMMENT
LOWdevConfig.yaml161# used when admin_port is set.COMMENT
LOWdevConfig.yaml181COMMENT
LOWdevConfig.yaml201# (OPTIONAL | Default: 87795 (85 mb)). Amount of memory in kb for argon2 password hashingCOMMENT
LOWdevConfig.yaml221# the value. For example, use the value of 127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1 to allow only localhost to query theCOMMENT
LOWdevConfig.yaml241# core are accepted.COMMENT
LOWdevConfig.yaml261# the oauth provider when the oauth provider's internal address differs from the known public provider address.COMMENT
LOWdevConfig.yaml281# activity_log_retention_days:COMMENT
LOWdevConfig.yaml301# (OPTIONAL | Default: null) string value. If specified, uses this URL as ACS URL for handling legacy SAML clientsCOMMENT
LOWconfig.yaml1# Config for SuperTokens service. Here you will set the config params forCOMMENT
LOWconfig.yaml21# access_token_validity:COMMENT
LOWconfig.yaml41# (DIFFERENT_ACROSS_APPS | OPTIONAL | Default: 144000) double value. Time in mins for how long a refresh token is validCOMMENT
LOWconfig.yaml61# (OPTIONAL | Default: true) boolean value. If true, the core refuses to start when the base database is missingCOMMENT
LOWconfig.yaml81# reset token / link is valid for.COMMENT
LOWconfig.yaml101COMMENT
LOWconfig.yaml121COMMENT
LOWconfig.yaml141# (or 5.6 with allowApproximate) are the last full count plus the sign-ups, deletions and links logged since; the fullCOMMENT
LOWconfig.yaml161# admin_max_server_pool_size:COMMENT
LOWconfig.yaml181COMMENT
LOWconfig.yaml201# argon2_memory_kb:COMMENT
LOWconfig.yaml221# core. Comment it out to allow requests from any IP address.COMMENT
LOWconfig.yaml241# core are accepted.COMMENT
LOWconfig.yaml261# (OPTIONAL | Default: oauth_provider_public_service_url) If specified, the core uses this URL to parse responses fromCOMMENT
LOWconfig.yaml281# by a periodic cleanup. Must be the same for all apps/tenants under a connection URI domain.COMMENT
LOWconfig.yaml301COMMENT
LOWstress-tests/src/common/utils.ts381// apart from pathological scaling. The read-path steps are therefore measuredCOMMENT
LOWstress-tests/src/common/migrationMode.ts1// ---------------------------------------------------------------------------COMMENT
LOWstress-tests/src/oneMillionUsers/pgStatStatements.ts1import { Client } from 'pg';COMMENT
LOWstress-tests/src/oneMillionUsers/index.ts241COMMENT
LOWstress-tests/src/oneMillionUsers/oauthPaths.ts21// the OAuth-dependent paths, so they land in the same summary table / ratio /COMMENT
LOWtest-data/playground/src/setupTests.js1// jest-dom adds custom jest matchers for asserting on DOM nodes.COMMENT
LOWee/src/main/java/io/supertokens/ee/EEFeatureFlag.java221 // for (Storage storage : storages) {COMMENT
LOWee/src/main/java/io/supertokens/ee/EEFeatureFlag.java321 if (((AuthRecipeStorage) storage).checkIfUsesAccountLinking(this.appIdentifier)) {COMMENT
LOWee/src/main/java/io/supertokens/ee/EEFeatureFlag.java341 // }COMMENT
LOW.github/workflows/_release-derive-db-migration.yml1name: Release – Derive has-db-migrationCOMMENT
LOW.github/workflows/backport.yml1# Backports one or more commits onto older release branches by cherry-pick andCOMMENT
LOW.github/workflows/do-release.yml261 # code-generated from the plugin's canonical scriptCOMMENT
LOW.github/workflows/do-release.yml281 # the migration PR simply lands earlier (at canary time) rather than beingCOMMENT
LOW.github/workflows/embargo-build.yml1name: Embargo buildCOMMENT
LOW.github/helpers/verify-prebuilt-image.sh1#!/usr/bin/env bashCOMMENT
LOWsrc/test/java/io/supertokens/test/PluginTest.java201// String installDir = "../";COMMENT
LOWsrc/test/java/io/supertokens/test/PluginTest.java221// process.kill();COMMENT
LOWsrc/test/java/io/supertokens/test/FeatureFlagTest.java321 // the direct write left user2's row in place (this internal linkAccounts path never deleted it),COMMENT
LOW…est/java/io/supertokens/test/multitenant/LoadTest.java101 }COMMENT
LOW…est/java/io/supertokens/test/multitenant/LoadTest.java121// assertNotNull(process.checkOrWaitForEvent(ProcessState.PROCESS_STATE.STARTED));COMMENT
LOW…est/java/io/supertokens/test/multitenant/LoadTest.java141// for (ResourceDistributor.SingletonResource resource : map.values()) {COMMENT
LOW…n/java/io/supertokens/useridmapping/UserIdMapping.java161 // if the userId is used in email verification, then we do an exception and update theCOMMENT
LOW…n/java/io/supertokens/useridmapping/UserIdMapping.java281 if (storageClasses.size() == 1 &&COMMENT
LOW…ava/io/supertokens/inmemorydb/TransactionCounters.java21import java.sql.Connection;COMMENT
LOW…/io/supertokens/inmemorydb/queries/GeneralQueries.java1341COMMENT
LOW…supertokens/inmemorydb/queries/AccountInfoQueries.java121 + Config.getConfig(start).getRecipeUserAccountInfosTable() + "(app_id, recipe_user_id);";COMMENT
LOW…va/io/supertokens/authRecipe/ApproximateUserCount.java101 // anchors instead of being re-read by every call. Matches the shadow audit's burst cap.COMMENT
LOWsrc/main/java/io/supertokens/authRecipe/AuthRecipe.java181 primaryUser.getSupertokensUserId(), recipeUserId);COMMENT
7 more matches not shown…
Structural Annotation Overuse15 hits · 22 pts
SeverityFileLineSnippetContext
LOWdocs/CUTOVER-PROCEDURE.md21## Step 1: Deploy with `DUAL_WRITE_READ_OLD`COMMENT
LOWdocs/CUTOVER-PROCEDURE.md52## Step 2: Run BackfillCOMMENT
LOWdocs/CUTOVER-PROCEDURE.md81## Step 3: Validate Data ConsistencyCOMMENT
LOWdocs/CUTOVER-PROCEDURE.md116## Step 4: Switch to `DUAL_WRITE_READ_NEW`COMMENT
LOWdocs/CUTOVER-PROCEDURE.md138## Step 5: Monitor in ProductionCOMMENT
LOWdocs/CUTOVER-PROCEDURE.md148## Step 6: Switch to `MIGRATED`COMMENT
LOWdocs/CUTOVER-PROCEDURE.md165## Step 7: Drop Deprecated Tables (Future Release)COMMENT
LOWsrc/test/java/io/supertokens/test/saml/MockSAML.java90// NOTE: This class provides helpers to mimic a minimal SAML IdP for tests.COMMENT
LOW…supertokens/inmemorydb/queries/AccountInfoQueries.java831 // Step 1: Get all tenant/account combinations to insertCOMMENT
LOW…supertokens/inmemorydb/queries/AccountInfoQueries.java922 // Step 1: Get all account info records to be insertedCOMMENT
LOW…supertokens/inmemorydb/queries/AccountInfoQueries.java945 // Step 2: Check for conflictsCOMMENT
LOW…supertokens/inmemorydb/queries/AccountInfoQueries.java992 // Step 3: Insert new rows using INSERT OR IGNORE; track if any row was newly addedCOMMENT
LOW…supertokens/inmemorydb/queries/AccountInfoQueries.java1055 // Step 1: Get ALL account info records for the entire primary user group.COMMENT
LOW…supertokens/inmemorydb/queries/AccountInfoQueries.java1078 // Step 2: Check for conflictsCOMMENT
LOW…supertokens/inmemorydb/queries/AccountInfoQueries.java1122 // Step 3: Insert new rows using INSERT OR IGNORECOMMENT
Synthetic Comment Markers2 hits · 15 pts
SeverityFileLineSnippetContext
HIGH.github/workflows/_image-promote.yml6# (<version> or <version>-canary; plus <major>.<minor>, <major>, latest as requested).COMMENT
HIGH…supertokens/inmemorydb/queries/UserLockingQueries.java153 // Build result list in the same order as requested, verifying all users were foundCOMMENT
Verbosity Indicators10 hits · 15 pts
SeverityFileLineSnippetContext
LOW…n/java/io/supertokens/useridmapping/UserIdMapping.java527 // we need to check if db is in A3 or A4.COMMENT
LOW…supertokens/inmemorydb/queries/AccountInfoQueries.java572 // now we need to check if the user can become primary by checking if there are conflicting account infoCOMMENT
LOW…supertokens/inmemorydb/queries/AccountInfoQueries.java831 // Step 1: Get all tenant/account combinations to insertCOMMENT
LOW…supertokens/inmemorydb/queries/AccountInfoQueries.java922 // Step 1: Get all account info records to be insertedCOMMENT
LOW…supertokens/inmemorydb/queries/AccountInfoQueries.java945 // Step 2: Check for conflictsCOMMENT
LOW…supertokens/inmemorydb/queries/AccountInfoQueries.java992 // Step 3: Insert new rows using INSERT OR IGNORE; track if any row was newly addedCOMMENT
LOW…supertokens/inmemorydb/queries/AccountInfoQueries.java1055 // Step 1: Get ALL account info records for the entire primary user group.COMMENT
LOW…supertokens/inmemorydb/queries/AccountInfoQueries.java1078 // Step 2: Check for conflictsCOMMENT
LOW…supertokens/inmemorydb/queries/AccountInfoQueries.java1122 // Step 3: Insert new rows using INSERT OR IGNORECOMMENT
LOW…c/main/java/io/supertokens/webserver/RequestStats.java106 // appIdentifier parameter is coming from the API request and hence we need to check if the app existsCOMMENT
AI Slop Vocabulary1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMstress-tests/src/oneMillionUsers/pagination.ts149 // and that comparison is robust to account-linking math.COMMENT
Hyper-Verbose Identifiers3 hits · 3 pts
SeverityFileLineSnippetContext
LOWstress-tests/src/oneMillionUsers/generateUsers.ts51function createThirdPartyLoginMethod(email: string, tenantIds: string[]): LoginMethod {CODE
LOWstress-tests/src/oneMillionUsers/generateUsers.ts66function createPasswordlessLoginMethod(CODE
LOWstress-tests/src/oneMillionUsers/generateUsers.ts106function generateRandomPhoneNumber(): string {CODE
TODO Padding1 hit · 2 pts
SeverityFileLineSnippetContext
LOW…test/java/io/supertokens/test/totp/TOTPRecipeTest.java60// TODO: Add test for UsedCodeAlreadyExistsException once we implement time mockingCOMMENT