Bitwarden infrastructure/backend (API, database, Docker, etc).
This report summarizes scanner evidence for bitwarden/server, a C# project with 20,531 GitHub stars. SynthScan examined 2,403,837 lines of code across 7921 source files, recording 1004 pattern matches distributed across 11 syntactic categories. The legacy adjusted pattern signal is 0.5 (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.
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.
Can maintainers explain intent, assumptions, and trade-offs? 841 finding(s).
Are imports declared and package/API names verified? 158 finding(s).
Are wrappers, guards, and repeated structures necessary? 5 finding(s).
Which changes need focused human review? 1004 finding(s).
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.
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.
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.
The scanner identified 1004 distinct pattern matches across 11 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.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …warden_license/test/SSO.Test/Utilities/Saml2TestXml.cs | 41 | document.DocumentElement!.Sign(signingCertificate, includeKeyInfo: false); | COMMENT |
| LOW | …/Sso.IntegrationTest/Utilities/SuccessfulAuthResult.cs | 1 | using System.Security.Claims; | COMMENT |
| LOW | …/IdentityServer/DistributedCachePersistedGrantStore.cs | 1 | using Bit.Sso.Utilities; | COMMENT |
| LOW | …xceptions/SsoAuthnRequiresInviteAcceptanceException.cs | 1 | namespace Bit.Sso.Exceptions; | COMMENT |
| LOW | …AuthnStagedOrgUserRequiresInviteAcceptanceException.cs | 1 | namespace Bit.Sso.Exceptions; | COMMENT |
| LOW | …o/Exceptions/SsoAuthnRequiresOrgMembershipException.cs | 1 | namespace Bit.Sso.Exceptions; | COMMENT |
| LOW | …den_license/src/Sso/Utilities/SsoRedirectUrlBuilder.cs | 1 | namespace Bit.Sso.Utilities; | COMMENT |
| LOW | …den_license/src/Sso/Utilities/SsoRedirectUrlBuilder.cs | 21 | public const string OrgMembershipRequired = "ssoOrgMembershipRequired"; | COMMENT |
| LOW | …den_license/src/Sso/Utilities/SsoRedirectUrlBuilder.cs | 41 | /// constant and is not encoded. | COMMENT |
| LOW | …cense/src/Sso/Utilities/ServiceCollectionExtensions.cs | 61 | /// /sso/prevalidate, so on cloud the backchannel is an SSRF sink and is wrapped in the same | COMMENT |
| LOW | …arden_license/src/Sso/Utilities/OpenIdConnectScopes.cs | 1 | namespace Bit.Sso.Utilities; | COMMENT |
| LOW | …arden_license/src/Sso/Utilities/OpenIdConnectScopes.cs | 21 | /// OPTIONAL. This scope value requests access to the End-User's default | COMMENT |
| LOW | …arden_license/src/Sso/Utilities/OpenIdConnectScopes.cs | 41 | /// phone_number_verified Claims. | COMMENT |
| LOW | …/Sso/Utilities/Saml2/ISaml2Rsa15DeprecationNotifier.cs | 1 | namespace Bit.Sso.Utilities.Saml2; | COMMENT |
| LOW | …so/Utilities/Saml2/Saml2EncryptedAssertionInspector.cs | 1 | using System.Xml; | COMMENT |
| LOW | …arden_license/src/Sso/Controllers/AccountController.cs | 561 | /// This handles three different scenarios: | COMMENT |
| LOW | …arden_license/src/Sso/Controllers/AccountController.cs | 881 | COMMENT | |
| LOW | …/Queries/Interfaces/IListRuleBypassableCiphersQuery.cs | 1 | namespace Bit.Services.Pam.OrganizationFeatures.Queries.Interfaces; | COMMENT |
| LOW | …arden_license/src/Services/Pam/Models/GoverningRule.cs | 21 | /// </summary> | COMMENT |
| LOW | …Services/Pam/Models/Conditions/IpAllowlistCondition.cs | 1 | using System.Net; | COMMENT |
| LOW | …den_license/src/Services/Pam/Utilities/PamPlanGuard.cs | 1 | using Bit.Core.AdminConsole.AbilitiesCache; | COMMENT |
| LOW | …c/Services/Pam/Api/Endpoints/PamEndpointsExtensions.cs | 61 | /// Public so <c>Bit.Api</c> can map the rotation cipher routes with the same policy, feature gate and heartbeat. | COMMENT |
| LOW | …ces/Pam/Api/Models/Response/AccessRuleResponseModel.cs | 41 | COMMENT | |
| LOW | …Pam/Api/Models/Response/AccessPreCheckResponseModel.cs | 41 | public bool HasActiveLease { get; set; } | COMMENT |
| LOW | …ces/Pam/AccessConnector/IRotationScheduleCalculator.cs | 1 | namespace Bit.Services.Pam.AccessConnector; | COMMENT |
| LOW | …s/Pam/AccessConnector/Jobs/IPamRotationSweepService.cs | 1 | namespace Bit.Services.Pam.AccessConnector.Jobs; | COMMENT |
| LOW | …/Api/Models/Response/PamRotationConfigResponseModel.cs | 61 | /// <summary> | COMMENT |
| LOW | …/Notifications.Test/PushNotificationWireFormatTests.cs | 21 | using Microsoft.Extensions.Time.Testing; | COMMENT |
| LOW | …/Notifications.Test/PushNotificationWireFormatTests.cs | 41 | /// <see cref="NotificationsApiPushEngine"/> currently posts must be a listed endpoint format.</item> | COMMENT |
| LOW | …/Notifications.Test/PushNotificationWireFormatTests.cs | 81 | COMMENT | |
| LOW | …/Notifications.Test/PushNotificationWireFormatTests.cs | 101 | /// <param name="ExpectedDestination">The destination, as <c>User:{id}</c> or <c>Group:{name}</c>.</param> | COMMENT |
| LOW | …/Notifications.Test/PushNotificationWireFormatTests.cs | 261 | "D702960180C0AE526563656976654D6573736167659183A45479706514A75061796C6F61648EA24964D92463636363636363632D636 | COMMENT |
| LOW | test/Notifications.Test/ChannelQueueClient.cs | 1 | using System.Diagnostics.CodeAnalysis; | COMMENT |
| LOW | test/Notifications.Test/ChannelQueueClient.cs | 21 | /// exact bytes -- base64-encoded text, for instance -- and not only what a string overload would | COMMENT |
| LOW | test/Notifications.Test/HubInvocationRecorder.cs | 1 | using System.Collections.Concurrent; | COMMENT |
| LOW | test/Notifications.Test/HubInvocationRecorder.cs | 21 | /// through them. All contexts created by one recorder share a single queue, so a test can await the | COMMENT |
| LOW | …/Repositories/TwoFactorRememberTokenRepositoryTests.cs | 101 | Assert.NotNull(updated); | COMMENT |
| LOW | …grationTest/Auth/Repositories/DeviceRepositoryTests.cs | 581 | // Act | COMMENT |
| LOW | …grationTest/Auth/Repositories/DeviceRepositoryTests.cs | 801 | COMMENT | |
| LOW | …/Repositories/OrganizationDeleteTaskRepositoryTests.cs | 241 | /// Removes tasks left behind by earlier runs, across providers. | COMMENT |
| LOW | test/SharedWeb.Test/DataProtectionServicesTests.cs | 381 | [Fact] | COMMENT |
| LOW | test/IntegrationTestCommon/ExternalCookieTestHelpers.cs | 21 | namespace Bit.IntegrationTestCommon; | COMMENT |
| LOW | …tionTestCommon/Factories/IdentityApplicationFactory.cs | 241 | /// <summary> | COMMENT |
| LOW | …ationTestCommon/Factories/WebApplicationFactoryBase.cs | 81 | COMMENT | |
| LOW | …ationTestCommon/Factories/WebApplicationFactoryBase.cs | 101 | _configureAppConfiguration.Add(configure); | COMMENT |
| LOW | …OrganizationDuoUniversalTwoFactorTokenProviderTests.cs | 241 | // Assert | COMMENT |
| LOW | …s/EmergencyAccess/DeleteEmergencyAccessCommandTests.cs | 361 | mail.ToEmails.Contains(bobAliceRecord.GrantorEmail) && | COMMENT |
| LOW | test/Core.Test/AutoFixture/AutoFixtureExtensions.cs | 1 | using System.Linq.Expressions; | COMMENT |
| LOW | test/Core.Test/AutoFixture/AutoFixtureExtensions.cs | 21 | var rnd = new Random(seed); | COMMENT |
| LOW | …igration/ValueObjects/MigrationPathIdsSnapshotTests.cs | 1 | using Bit.Core.Billing.Enums; | COMMENT |
| LOW | …ntity.Test/IdentityServer/BaseRequestValidatorTests.cs | 921 | .Returns(Task.FromResult(true)); | COMMENT |
| LOW | …ntity.Test/IdentityServer/BaseRequestValidatorTests.cs | 1081 | await _eventService.Received(1).LogUserEventAsync(user.Id, EventType.User_FailedLogIn2fa); | COMMENT |
| LOW | …ty.IntegrationTest/Endpoints/IdentityServerSsoTests.cs | 61 | // "UserDecryptionOptions": { | COMMENT |
| LOW | …ty.IntegrationTest/Endpoints/IdentityServerSsoTests.cs | 141 | // Assert | COMMENT |
| LOW | …ty.IntegrationTest/Endpoints/IdentityServerSsoTests.cs | 181 | COMMENT | |
| LOW | …tionTest/Endpoints/DevicesLastActivityDateBumpTests.cs | 121 | // within the same UTC day is a no-op vs. the warm-up bump, but the row stays set). | COMMENT |
| LOW | …tegrationTest/Grants/AccessTokenGrantInventoryTests.cs | 21 | /// access tokens therefore needs integration tests that assert: | COMMENT |
| LOW | …ion/VaultAccess/ResourceOwnerPasswordValidatorTests.cs | 121 | /// I would have liked to spy into the IUserService but by spying into the IUserService it | COMMENT |
| LOW | …grationTest/PreservingDiscountsThroughScheduleTests.cs | 1 | using System.Net.Http.Json; | COMMENT |
| LOW | test/Billing.IntegrationTest/StripeWebhookTests.cs | 41 | [BillingFact] | COMMENT |
| 745 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | …StagedOrgUserRequiresInviteAcceptanceExceptionTests.cs | 13 | organizationDisplayName: "Acme Corp", | CODE |
| LOW⚡ | …StagedOrgUserRequiresInviteAcceptanceExceptionTests.cs | 17 | Assert.Equal("Acme Corp", ex.OrganizationDisplayName); | CODE |
| LOW⚡ | …StagedOrgUserRequiresInviteAcceptanceExceptionTests.cs | 26 | organizationDisplayName: "Acme Corp", | CODE |
| LOW⚡ | …StagedOrgUserRequiresInviteAcceptanceExceptionTests.cs | 31 | Assert.Contains("Acme Corp", ex.Message); | CODE |
| LOW⚡ | …eptions/SsoAuthnRequiresOrgMembershipExceptionTests.cs | 13 | organizationDisplayName: "Acme Corp", | CODE |
| LOW⚡ | …eptions/SsoAuthnRequiresOrgMembershipExceptionTests.cs | 14 | userEmail: "user@example.com"); | CODE |
| LOW⚡ | …eptions/SsoAuthnRequiresOrgMembershipExceptionTests.cs | 17 | Assert.Equal("Acme Corp", ex.OrganizationDisplayName); | CODE |
| LOW⚡ | …eptions/SsoAuthnRequiresOrgMembershipExceptionTests.cs | 18 | Assert.Equal("user@example.com", ex.UserEmail); | CODE |
| LOW⚡ | …eptions/SsoAuthnRequiresOrgMembershipExceptionTests.cs | 26 | organizationDisplayName: "Acme Corp", | CODE |
| LOW⚡ | …eptions/SsoAuthnRequiresOrgMembershipExceptionTests.cs | 27 | userEmail: "user@example.com"); | CODE |
| LOW⚡ | …eptions/SsoAuthnRequiresOrgMembershipExceptionTests.cs | 31 | Assert.Contains("Acme Corp", ex.Message); | CODE |
| LOW⚡ | …ions/SsoAuthnRequiresInviteAcceptanceExceptionTests.cs | 13 | organizationDisplayName: "Acme Corp", | CODE |
| LOW⚡ | …ions/SsoAuthnRequiresInviteAcceptanceExceptionTests.cs | 17 | Assert.Equal("Acme Corp", ex.OrganizationDisplayName); | CODE |
| LOW⚡ | …ions/SsoAuthnRequiresInviteAcceptanceExceptionTests.cs | 26 | organizationDisplayName: "Acme Corp", | CODE |
| LOW⚡ | …ions/SsoAuthnRequiresInviteAcceptanceExceptionTests.cs | 31 | Assert.Contains("Acme Corp", ex.Message); | CODE |
| LOW | …/test/SSO.Test/Utilities/SsoRedirectUrlBuilderTests.cs | 19 | email: "user@example.com", | CODE |
| LOW | …/test/SSO.Test/Utilities/SsoRedirectUrlBuilderTests.cs | 53 | email: "user@example.com", | CODE |
| LOW | …/test/SSO.Test/Utilities/SsoRedirectUrlBuilderTests.cs | 55 | organizationDisplayName: "Acme Corp", | CODE |
| LOW | …/test/SSO.Test/Utilities/SsoRedirectUrlBuilderTests.cs | 70 | email: "user@example.com", | CODE |
| LOW | …/test/SSO.Test/Utilities/SsoRedirectUrlBuilderTests.cs | 84 | email: "user@example.com", | CODE |
| LOW | …/test/SSO.Test/Utilities/SsoRedirectUrlBuilderTests.cs | 99 | email: "user@example.com", | CODE |
| LOW | …/test/SSO.Test/Utilities/SsoRedirectUrlBuilderTests.cs | 120 | email: "user@example.com", | CODE |
| LOW | …/test/SSO.Test/Utilities/SsoRedirectUrlBuilderTests.cs | 136 | email: "user@example.com", | CODE |
| LOW | …/test/SSO.Test/Utilities/SsoRedirectUrlBuilderTests.cs | 199 | email: "user@example.com", | CODE |
| LOW | …nse/test/SSO.Test/Controllers/AccountControllerTest.cs | 181 | var authResult = BuildSuccessfulExternalAuth(Guid.NewGuid(), "ext-user", "user@example.com"); | CODE |
| LOW | …nse/test/SSO.Test/Controllers/AccountControllerTest.cs | 193 | var authResult = BuildSuccessfulExternalAuth(Guid.NewGuid(), "ext-user", "user@example.com"); | CODE |
| LOW | …nse/test/SSO.Test/Controllers/AccountControllerTest.cs | 489 | var organization = new Organization { Id = orgId, Name = "Acme Corp" }; | CODE |
| LOW | …nse/test/SSO.Test/Controllers/AccountControllerTest.cs | 640 | var user = new User { Id = Guid.NewGuid(), Email = "user@example.com" }; | CODE |
| LOW | …nse/test/SSO.Test/Controllers/AccountControllerTest.cs | 884 | var email = "user@example.com"; | CODE |
| LOW | …nse/test/SSO.Test/Controllers/AccountControllerTest.cs | 947 | var email = "user@example.com"; | CODE |
| LOW | …nse/test/SSO.Test/Controllers/AccountControllerTest.cs | 1011 | var email = "user@example.com"; | CODE |
| LOW | test/Billing.Test/Controllers/BitPayControllerTests.cs | 233 | var user = new User { Id = userId, Email = "user@example.com" }; | CODE |
| LOW | test/Billing.Test/Controllers/BitPayControllerTests.cs | 248 | await _mailService.Received(1).SendAddedCreditAsync("user@example.com", 100.00m); | CODE |
| LOW | …t/Billing.Test/Services/UpcomingInvoiceHandlerTests.cs | 642 | var user = new User { Id = _userId, Email = "user@example.com", Premium = true }; | CODE |
| LOW | …t/Billing.Test/Services/UpcomingInvoiceHandlerTests.cs | 978 | var user = new User { Id = _userId, Email = "user@example.com", Premium = true }; | CODE |
| LOW | …t/Billing.Test/Services/UpcomingInvoiceHandlerTests.cs | 1106 | var organization = new Organization { Id = _organizationId, PlanType = PlanType.TeamsAnnually, BillingEmail = "t | CODE |
| LOW | …t/Billing.Test/Services/UpcomingInvoiceHandlerTests.cs | 1202 | var organization = new Organization { Id = _organizationId, PlanType = PlanType.TeamsAnnually, BillingEmail = "t | CODE |
| LOW | …t/Billing.Test/Services/UpcomingInvoiceHandlerTests.cs | 1286 | var organization = new Organization { Id = _organizationId, PlanType = PlanType.TeamsAnnually, BillingEmail = "t | CODE |
| LOW | …t/Billing.Test/Services/UpcomingInvoiceHandlerTests.cs | 1366 | var organization = new Organization { Id = _organizationId, PlanType = PlanType.TeamsAnnually, BillingEmail = "t | CODE |
| LOW | …t/Billing.Test/Services/UpcomingInvoiceHandlerTests.cs | 1463 | var organization = new Organization { Id = _organizationId, PlanType = PlanType.TeamsAnnually, BillingEmail = "t | CODE |
| LOW | …t/Billing.Test/Services/UpcomingInvoiceHandlerTests.cs | 1559 | var organization = new Organization { Id = _organizationId, PlanType = PlanType.TeamsMonthly, BillingEmail = "te | CODE |
| LOW | …t/Billing.Test/Services/UpcomingInvoiceHandlerTests.cs | 1640 | var organization = new Organization { Id = _organizationId, PlanType = PlanType.TeamsAnnually, BillingEmail = "t | CODE |
| LOW | …t/Billing.Test/Services/UpcomingInvoiceHandlerTests.cs | 1723 | var organization = new Organization { Id = _organizationId, PlanType = PlanType.TeamsAnnually, BillingEmail = "t | CODE |
| LOW | …t/Billing.Test/Services/UpcomingInvoiceHandlerTests.cs | 1816 | var organization = new Organization { Id = _organizationId, PlanType = PlanType.TeamsAnnually, BillingEmail = "t | CODE |
| LOW | …t/Billing.Test/Services/UpcomingInvoiceHandlerTests.cs | 1864 | var user = new User { Id = _userId, Email = "test@test.com", Premium = true }; | CODE |
| LOW | …t/Billing.Test/Services/UpcomingInvoiceHandlerTests.cs | 1951 | var user = new User { Id = _userId, Email = "test@test.com", Premium = true }; | CODE |
| LOW | …t/Billing.Test/Services/UpcomingInvoiceHandlerTests.cs | 2000 | var user = new User { Id = _userId, Email = "test@test.com", Premium = true }; | CODE |
| LOW | …pi/Request/Accounts/RegisterFinishRequestModelTests.cs | 392 | Email = "user@example.com", | CODE |
| LOW | …pi/Request/Accounts/RegisterFinishRequestModelTests.cs | 423 | Email = "user@example.com", | CODE |
| LOW | …pi/Request/Accounts/RegisterFinishRequestModelTests.cs | 444 | Email = "user@example.com", | CODE |
| LOW | …pi/Request/Accounts/RegisterFinishRequestModelTests.cs | 465 | Email = "user@example.com", | CODE |
| LOW | …pi/Request/Accounts/RegisterFinishRequestModelTests.cs | 483 | Email = "user@example.com", | CODE |
| LOW | …pi/Request/Accounts/RegisterFinishRequestModelTests.cs | 508 | Email = "user@example.com", | CODE |
| LOW | …pi/Request/Accounts/RegisterFinishRequestModelTests.cs | 535 | Email = "user@example.com", | CODE |
| LOW | …pi/Request/Accounts/RegisterFinishRequestModelTests.cs | 562 | Email = "user@example.com", | CODE |
| LOW | …pi/Request/Accounts/RegisterFinishRequestModelTests.cs | 586 | Email = "user@example.com", | CODE |
| LOW | …pi/Request/Accounts/RegisterFinishRequestModelTests.cs | 687 | Email = "user@example.com", | CODE |
| LOW | …st/Auth/Sso/Saml2Rsa15DeprecationNoticeCommandTests.cs | 25 | private const string Recipient = "admin@example.com"; | CODE |
| LOW | …st/Auth/Sso/Saml2Rsa15DeprecationNoticeCommandTests.cs | 246 | string[] addresses = ["owner@example.com", "admin@example.com", "other@example.com"]; | CODE |
| LOW | …t/Core.Test/Auth/Sso/Saml2Rsa15DeprecationMailTests.cs | 45 | var (sentMessage, _) = await SendAsync(["admin@example.com"]); | CODE |
| 87 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | …Organizations/InitPendingOrganizationValidatorTests.cs | 429 | OrganizationKeys = new Bit.Core.KeyManagement.Models.Data.PublicKeyEncryptionKeyPairData( | CODE |
| CRITICAL | …entity.IntegrationTest/Login/ClientVersionGateTests.cs | 79 | var error = Bit.Test.Common.Helpers.AssertHelper.AssertJsonProperty(errorBody.RootElement, "ErrorModel", JsonVal | CODE |
| CRITICAL | …entity.IntegrationTest/Login/ClientVersionGateTests.cs | 80 | var message = Bit.Test.Common.Helpers.AssertHelper.AssertJsonProperty(error, "Message", JsonValueKind.String).Ge | CODE |
| CRITICAL | …ers/OrganizationPlanMigrationCohortsControllerTests.cs | 827 | var disposition = sutProvider.Sut.Response.Headers.ContentDisposition.ToString(); | CODE |
| CRITICAL | …ers/OrganizationPlanMigrationCohortsControllerTests.cs | 997 | var disposition = sutProvider.Sut.Response.Headers.ContentDisposition.ToString(); | CODE |
| CRITICAL | …ks/Identity/IdentityServer/PersistedGrantStoreTests.cs | 51 | new Bit.Core.Auth.Repositories.Cosmos.GrantRepository(cosmosConnectionString), | CODE |
| CRITICAL | …ks/Identity/IdentityServer/PersistedGrantStoreTests.cs | 52 | g => new Bit.Core.Auth.Models.Data.GrantItem(g) | CODE |
| CRITICAL⚡ | …erver/RequestValidators/CustomTokenRequestValidator.cs | 110 | || context.Result.ValidatedRequest.Client.AllowedScopes.Contains(ApiScopes.ApiSecrets) | CODE |
| CRITICAL⚡ | …erver/RequestValidators/CustomTokenRequestValidator.cs | 111 | || context.Result.ValidatedRequest.Client.AllowedScopes.Contains(ApiScopes.ApiPamCredentialRotation)) | CODE |
| CRITICAL⚡ | …erver/RequestValidators/CustomTokenRequestValidator.cs | 113 | if (context.Result.ValidatedRequest.Client.Properties.TryGetValue("encryptedPayload", out var payload) && | CODE |
| CRITICAL | src/Admin/AdminConsole/Models/OrganizationEditModel.cs | 35 | Plan = Core.Billing.Enums.PlanType.TeamsMonthly.GetDisplayAttribute()?.GetName(); | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/SharedWeb.Test/DataProtectionServicesTests.cs | 284 | // Step 1: We deploy a new version of our app but with NO config changes | COMMENT |
| LOW | test/SharedWeb.Test/DataProtectionServicesTests.cs | 298 | // Step 2: We generate a new certificate and upload it to a DIFFERENT blob in azure | COMMENT |
| LOW | test/SharedWeb.Test/DataProtectionServicesTests.cs | 311 | // Step 3: Start apps that have that new cert as able to Unprotect ONLY, this step | COMMENT |
| LOW | test/SharedWeb.Test/DataProtectionServicesTests.cs | 337 | // Step 4: This is where real config changes start to happen, we actually start protecting | COMMENT |
| LOW | src/Core/Platform/Mail/README.md | 37 | #### Step 1: Define the ViewModel | COMMENT |
| LOW | src/Core/Platform/Mail/README.md | 53 | #### Step 2: Define the email class | COMMENT |
| LOW | src/Core/Platform/Mail/README.md | 64 | #### Step 3: Create Handlebars templates | COMMENT |
| LOW | src/Core/Platform/Mail/README.md | 103 | #### Step 4: Send the email | COMMENT |
| LOW | …nizationFeatures/Policies/PolicyUpdateEvents/README.md | 200 | ### Step 1: Define the interface in `PolicyUpdateEvents/Interfaces/`: | COMMENT |
| LOW | …nizationFeatures/Policies/PolicyUpdateEvents/README.md | 211 | ### Step 2: Add a step to `SavePolicyCommand.SaveAsync()` | COMMENT |
| LOW | …nizationFeatures/Policies/PolicyUpdateEvents/README.md | 217 | ### Step 3: Document the interface in the [Interfaces](#interfaces) section of this README and add it to the workflow di | COMMENT |
| LOW | …cies/PolicyEventHandlers/SendOptionsSyncPolicyEvent.cs | 28 | // Step 1: sync SendOptionsPolicy.Data.DisableHideEmail -> SendControlsPolicy.Data.DisableHideEmail | COMMENT |
| LOW | …cies/PolicyEventHandlers/SendOptionsSyncPolicyEvent.cs | 42 | // Step 2: sync Enabled status. SendControlsPolicy is enabled if either legacy policy is enabled | COMMENT |
| LOW | …cies/PolicyEventHandlers/DisableSendSyncPolicyEvent.cs | 28 | // Step 1: sync DisableSend.Enabled -> SendControlsPolicy.Data.DisableSend | COMMENT |
| LOW | …cies/PolicyEventHandlers/DisableSendSyncPolicyEvent.cs | 51 | // Step 2: sync Enabled status. SendControlsPolicy is enabled if either legacy policy is enabled | COMMENT |
| LOW | …zations/Handlers/RecoverAccountAuthorizationHandler.cs | 41 | // Step 1: check that the User has permissions with respect to the organization. | COMMENT |
| LOW | …zations/Handlers/RecoverAccountAuthorizationHandler.cs | 53 | // Step 2: check that the User has permissions with respect to any provider the target user is a member of. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/SharedWeb.Test/DataProtectionServicesTests.cs | 284 | // Step 1: We deploy a new version of our app but with NO config changes | COMMENT |
| LOW | test/SharedWeb.Test/DataProtectionServicesTests.cs | 298 | // Step 2: We generate a new certificate and upload it to a DIFFERENT blob in azure | COMMENT |
| LOW | test/SharedWeb.Test/DataProtectionServicesTests.cs | 311 | // Step 3: Start apps that have that new cert as able to Unprotect ONLY, this step | COMMENT |
| LOW | test/SharedWeb.Test/DataProtectionServicesTests.cs | 337 | // Step 4: This is where real config changes start to happen, we actually start protecting | COMMENT |
| LOW | …cies/PolicyEventHandlers/SendOptionsSyncPolicyEvent.cs | 28 | // Step 1: sync SendOptionsPolicy.Data.DisableHideEmail -> SendControlsPolicy.Data.DisableHideEmail | COMMENT |
| LOW | …cies/PolicyEventHandlers/SendOptionsSyncPolicyEvent.cs | 42 | // Step 2: sync Enabled status. SendControlsPolicy is enabled if either legacy policy is enabled | COMMENT |
| LOW | …cies/PolicyEventHandlers/DisableSendSyncPolicyEvent.cs | 28 | // Step 1: sync DisableSend.Enabled -> SendControlsPolicy.Data.DisableSend | COMMENT |
| LOW | …cies/PolicyEventHandlers/DisableSendSyncPolicyEvent.cs | 51 | // Step 2: sync Enabled status. SendControlsPolicy is enabled if either legacy policy is enabled | COMMENT |
| LOW | …zations/Handlers/RecoverAccountAuthorizationHandler.cs | 41 | // Step 1: check that the User has permissions with respect to the organization. | COMMENT |
| LOW | …zations/Handlers/RecoverAccountAuthorizationHandler.cs | 53 | // Step 2: check that the User has permissions with respect to any provider the target user is a member of. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …sole/Models/Response/PolicyStatusResponseModelTests.cs | 0 | {"mincomplexity":3,"minlength":14,"requirelower":true,"requireupper":true,"requirenumbers":false,"requirespecial":false, | STRING |
| HIGH | …minConsole/Models/Response/PolicyResponseModelTests.cs | 0 | {"mincomplexity":3,"minlength":14,"requirelower":true,"requireupper":true,"requirenumbers":false,"requirespecial":false, | STRING |
| HIGH | …ole/Public/Models/Response/PolicyResponseModelTests.cs | 0 | {"mincomplexity":3,"minlength":14,"requirelower":true,"requireupper":true,"requirenumbers":false,"requirespecial":false, | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …IntegrationTest/MailKitSmtpMailDeliveryServiceTests.cs | 91 | // this test can be copied, and changed to utilize that new feature and instead of | COMMENT |
| MEDIUM | …th/Identity/TokenProviders/DuoUniversalTokenService.cs | 17 | /// have this class injected to utilize these methods | COMMENT |
| MEDIUM | …ore/Auth/UserFeatures/UserEmail/IChangeEmailCommand.cs | 23 | /// perform robust verification before invoking it, including (at minimum): | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …arden_license/src/Sso/Controllers/AccountController.cs | 575 | /// <exception cref="Exception">An exception if the user cannot be provisioned as requested.</exception> | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | util/SeederUtility/scripts/build-seeded-image.sh | 98 | # ============================================================ | COMMENT |
| MEDIUM | util/SeederUtility/scripts/build-seeded-image.sh | 100 | # ============================================================ | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .claude/hooks/rust-sdk-surface-check.sh | 30 | # Check if the RustSdk Cargo.toml was modified. | COMMENT |
| LOW | .claude/hooks/rust-sdk-surface-check.sh | 35 | # Check if the API surface reference was already updated. | COMMENT |
| LOW | .claude/hooks/seeder-docs-check.sh | 46 | # Check if any Seeder .md files were already modified. | COMMENT |
| LOW | .github/workflows/repository-management.yml | 107 | # Check if version is newer. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | util/SeederUtility/scripts/build-seeded-image.sh | 6 | # Usage: | COMMENT |