{"$schema":"https://json.schemastore.org/sarif-2.1.0.json","version":"2.1.0","runs":[{"tool":{"driver":{"name":"codehealth","informationUri":"https://codehealth.canine.dev","rules":[{"id":"D1","name":"Cyclomatic Complexity","shortDescription":{"text":"Cyclomatic Complexity"},"helpUri":"https://codehealth.canine.dev/dimensions/D1"},{"id":"D2","name":"Cognitive Complexity","shortDescription":{"text":"Cognitive Complexity"},"helpUri":"https://codehealth.canine.dev/dimensions/D2"},{"id":"D3","name":"God Classes","shortDescription":{"text":"God Classes"},"helpUri":"https://codehealth.canine.dev/dimensions/D3"},{"id":"D4","name":"Code Duplication","shortDescription":{"text":"Code Duplication"},"helpUri":"https://codehealth.canine.dev/dimensions/D4"},{"id":"D5","name":"Coupling","shortDescription":{"text":"Coupling"},"helpUri":"https://codehealth.canine.dev/dimensions/D5"},{"id":"D6","name":"Cohesion (LCOM4)","shortDescription":{"text":"Cohesion (LCOM4)"},"helpUri":"https://codehealth.canine.dev/dimensions/D6"},{"id":"D7","name":"Architectural Integrity","shortDescription":{"text":"Architectural Integrity"},"helpUri":"https://codehealth.canine.dev/dimensions/D7"},{"id":"D8","name":"Code Coverage","shortDescription":{"text":"Code Coverage"},"helpUri":"https://codehealth.canine.dev/dimensions/D8"},{"id":"D9","name":"Test Distribution","shortDescription":{"text":"Test Distribution"},"helpUri":"https://codehealth.canine.dev/dimensions/D9"},{"id":"D10","name":"Test Quality","shortDescription":{"text":"Test Quality"},"helpUri":"https://codehealth.canine.dev/dimensions/D10"},{"id":"D11","name":"Test Reliability","shortDescription":{"text":"Test Reliability"},"helpUri":"https://codehealth.canine.dev/dimensions/D11"},{"id":"D12","name":"Dependency Hygiene","shortDescription":{"text":"Dependency Hygiene"},"helpUri":"https://codehealth.canine.dev/dimensions/D12"},{"id":"D13","name":"Secret Scanning","shortDescription":{"text":"Secret Scanning"},"helpUri":"https://codehealth.canine.dev/dimensions/D13"},{"id":"D14","name":"License Compliance","shortDescription":{"text":"License Compliance"},"helpUri":"https://codehealth.canine.dev/dimensions/D14"},{"id":"D15","name":"Churn \u00D7 Complexity Hotspots","shortDescription":{"text":"Churn \u00D7 Complexity Hotspots"},"helpUri":"https://codehealth.canine.dev/dimensions/D15"},{"id":"D16","name":"Bus Factor","shortDescription":{"text":"Bus Factor"},"helpUri":"https://codehealth.canine.dev/dimensions/D16"},{"id":"D17","name":"Explicit Debt","shortDescription":{"text":"Explicit Debt"},"helpUri":"https://codehealth.canine.dev/dimensions/D17"},{"id":"D18","name":"Solution Shape","shortDescription":{"text":"Solution Shape"},"helpUri":"https://codehealth.canine.dev/dimensions/D18"},{"id":"D19","name":"Documentation Quality","shortDescription":{"text":"Documentation Quality"},"helpUri":"https://codehealth.canine.dev/dimensions/D19"},{"id":"D20","name":"ADR Quality","shortDescription":{"text":"ADR Quality"},"helpUri":"https://codehealth.canine.dev/dimensions/D20"},{"id":"D21","name":"Naming Consistency","shortDescription":{"text":"Naming Consistency"},"helpUri":"https://codehealth.canine.dev/dimensions/D21"},{"id":"D22","name":"Internal API Consistency","shortDescription":{"text":"Internal API Consistency"},"helpUri":"https://codehealth.canine.dev/dimensions/D22"},{"id":"D23","name":"Boundary Type-Coupling","shortDescription":{"text":"Boundary Type-Coupling"},"helpUri":"https://codehealth.canine.dev/dimensions/D23"},{"id":"D24","name":"Comment Value","shortDescription":{"text":"Comment Value"},"helpUri":"https://codehealth.canine.dev/dimensions/D24"},{"id":"D25","name":"ADR Conformance","shortDescription":{"text":"ADR Conformance"},"helpUri":"https://codehealth.canine.dev/dimensions/D25"},{"id":"D26","name":"Project Cohesion","shortDescription":{"text":"Project Cohesion"},"helpUri":"https://codehealth.canine.dev/dimensions/D26"},{"id":"D27","name":"Navigability","shortDescription":{"text":"Navigability"},"helpUri":"https://codehealth.canine.dev/dimensions/D27"},{"id":"D28","name":"Secrets (history)","shortDescription":{"text":"Secrets (history)"},"helpUri":"https://codehealth.canine.dev/dimensions/D28"},{"id":"D29","name":"Static Analysis (SAST)","shortDescription":{"text":"Static Analysis (SAST)"},"helpUri":"https://codehealth.canine.dev/dimensions/D29"},{"id":"D30","name":"Dependency Vulnerabilities","shortDescription":{"text":"Dependency Vulnerabilities"},"helpUri":"https://codehealth.canine.dev/dimensions/D30"},{"id":"D31","name":"IaC \u0026 Container Security","shortDescription":{"text":"IaC \u0026 Container Security"},"helpUri":"https://codehealth.canine.dev/dimensions/D31"},{"id":"D32","name":"Data Compliance (PII/GDPR)","shortDescription":{"text":"Data Compliance (PII/GDPR)"},"helpUri":"https://codehealth.canine.dev/dimensions/D32"},{"id":"D33","name":"JS/npm Dependency Vulnerabilities","shortDescription":{"text":"JS/npm Dependency Vulnerabilities"},"helpUri":"https://codehealth.canine.dev/dimensions/D33"},{"id":"D34","name":"Knowledge Freshness","shortDescription":{"text":"Knowledge Freshness"},"helpUri":"https://codehealth.canine.dev/dimensions/D34"},{"id":"D35","name":"Change Coupling","shortDescription":{"text":"Change Coupling"},"helpUri":"https://codehealth.canine.dev/dimensions/D35"},{"id":"D36","name":"Supply-chain Provenance \u0026 Signing","shortDescription":{"text":"Supply-chain Provenance \u0026 Signing"},"helpUri":"https://codehealth.canine.dev/dimensions/D36"},{"id":"D37","name":"Vulnerability-disclosure Policy","shortDescription":{"text":"Vulnerability-disclosure Policy"},"helpUri":"https://codehealth.canine.dev/dimensions/D37"},{"id":"D38","name":"OSV Dependency Vulnerabilities","shortDescription":{"text":"OSV Dependency Vulnerabilities"},"helpUri":"https://codehealth.canine.dev/dimensions/D38"}]}},"results":[{"ruleId":"D1","level":"warning","message":{"text":"CollectController.Post (cyclomatic 55): CollectController.Post has cyclomatic complexity 55 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Events/Controllers/CollectController.cs"},"region":{"startLine":41}}}],"partialFingerprints":{"codehealthFindingId/v1":"c643a44536efd81ac1ace87e824d7411ec4f10b8e30c14cafb7b431b31ad1be3"}},{"ruleId":"D1","level":"warning","message":{"text":"OrganizationLicense.GetDataBytes (cyclomatic 54): OrganizationLicense.GetDataBytes has cyclomatic complexity 54 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Organizations/Models/OrganizationLicense.cs"},"region":{"startLine":182}}}],"partialFingerprints":{"codehealthFindingId/v1":"00f4c89a0d08f319880ed8779d2cbf36d30f4c9ab6d26a84300a0f9617493e15"}},{"ruleId":"D1","level":"warning","message":{"text":"HubHelpers.SendNotificationToHubAsync (cyclomatic 50): HubHelpers.SendNotificationToHubAsync has cyclomatic complexity 50 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Notifications/HubHelpers.cs"},"region":{"startLine":28}}}],"partialFingerprints":{"codehealthFindingId/v1":"2c15cb927350cbbadcfc8e6639f60dba9a0585fe550c771a373b461119f967d7"}},{"ruleId":"D1","level":"warning","message":{"text":"UpgradeOrganizationPlanCommand.UpgradePlanAsync (cyclomatic 49): UpgradeOrganizationPlanCommand.UpgradePlanAsync has cyclomatic complexity 49 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/OrganizationFeatures/OrganizationSubscriptions/UpgradeOrganizationPlanCommand.cs"},"region":{"startLine":85}}}],"partialFingerprints":{"codehealthFindingId/v1":"2e7fcad77f1f4da035c0c44a1df06e13f72b8d5e2b59c10a33d665ae4a50aa1a"}},{"ruleId":"D1","level":"warning","message":{"text":"OrganizationLicense.ObsoleteVerifyData (cyclomatic 42): OrganizationLicense.ObsoleteVerifyData has cyclomatic complexity 42 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Organizations/Models/OrganizationLicense.cs"},"region":{"startLine":503}}}],"partialFingerprints":{"codehealthFindingId/v1":"04ea989cc15e0ae81f60e31690d14fa42fc420a458add1745b12ba2ed41c87f7"}},{"ruleId":"D1","level":"warning","message":{"text":"OrganizationLicense.VerifyData (cyclomatic 39): OrganizationLicense.VerifyData has cyclomatic complexity 39 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Organizations/Models/OrganizationLicense.cs"},"region":{"startLine":400}}}],"partialFingerprints":{"codehealthFindingId/v1":"96041f8852d85f3adf6e10d8da79484dec53d616e76afe6013c946434d3894ba"}},{"ruleId":"D1","level":"warning","message":{"text":"RegisterFinishRequestModel.Validate (cyclomatic 37): RegisterFinishRequestModel.Validate has cyclomatic complexity 37 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Models/Api/Request/Accounts/RegisterFinishRequestModel.cs"},"region":{"startLine":167}}}],"partialFingerprints":{"codehealthFindingId/v1":"280cd478c42a5fd22e5bb710f57e75b5194569060637b0055d593afd24daef06"}},{"ruleId":"D1","level":"warning","message":{"text":"OrganizationsController.Edit (cyclomatic 34): OrganizationsController.Edit has cyclomatic complexity 34 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/AdminConsole/Controllers/OrganizationsController.cs"},"region":{"startLine":293}}}],"partialFingerprints":{"codehealthFindingId/v1":"faad39b7ad623d8eac02c6863a1cc5e9a09168a694dc2e8ae457b4529e8d3b40"}},{"ruleId":"D1","level":"warning","message":{"text":"HandlebarsMailService.RegisterHelpersAndPartialsAsync (cyclomatic 31): HandlebarsMailService.RegisterHelpersAndPartialsAsync has cyclomatic complexity 31 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Platform/Mail/HandlebarsMailService.cs"},"region":{"startLine":987}}}],"partialFingerprints":{"codehealthFindingId/v1":"9bc9bf87fc5ca09840ebf9c95b3801ec081c1bf6f8a12c4b0c0fa0c8580e163e"}},{"ruleId":"D1","level":"warning","message":{"text":"SelfHostedOrganizationDetails.CanUseLicense (cyclomatic 29): SelfHostedOrganizationDetails.CanUseLicense has cyclomatic complexity 29 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/Models/Data/Organizations/SelfHostedOrganizationDetails.cs"},"region":{"startLine":25}}}],"partialFingerprints":{"codehealthFindingId/v1":"bdb7ac2e7f4d30b65d4f84868c326611b6194c0f84ae17132096abade430fe18"}},{"ruleId":"D1","level":"warning","message":{"text":"PayPalController.PostIpn (cyclomatic 28): PayPalController.PostIpn has cyclomatic complexity 28 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Billing/Controllers/PayPalController.cs"},"region":{"startLine":54}}}],"partialFingerprints":{"codehealthFindingId/v1":"8ee4cf21b3675130bfd404ed47a505b397a053b368a665a4b6cd28edfaa44787"}},{"ruleId":"D1","level":"warning","message":{"text":"OrganizationService.ValidateCustomPermissionsGrant (cyclomatic 28): OrganizationService.ValidateCustomPermissionsGrant has cyclomatic complexity 28 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/Services/Implementations/OrganizationService.cs"},"region":{"startLine":1001}}}],"partialFingerprints":{"codehealthFindingId/v1":"d43ed0de1d5fe0f6abd1f92387204263fef7754b933749f9783455c6ab0ef01a"}},{"ruleId":"D1","level":"warning","message":{"text":"PresetLoader.BuildRecipe (cyclomatic 28): PresetLoader.BuildRecipe has cyclomatic complexity 28 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/Seeder/Pipeline/PresetLoader.cs"},"region":{"startLine":92}}}],"partialFingerprints":{"codehealthFindingId/v1":"55bc0771404f153131af9ad726cdb1bf58e769f48473cd3c68042dcc62fda23b"}},{"ruleId":"D1","level":"warning","message":{"text":"OrganizationService.SaveUsersSendInvitesAsync (cyclomatic 27): OrganizationService.SaveUsersSendInvitesAsync has cyclomatic complexity 27 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/Services/Implementations/OrganizationService.cs"},"region":{"startLine":506}}}],"partialFingerprints":{"codehealthFindingId/v1":"95f754a12a4aaff7a5bb9481ed4b61660f7522375d79d12dcce1e6d9a5d1f9f1"}},{"ruleId":"D1","level":"warning","message":{"text":"SecretRepository.BuildSecretAccessQuery (cyclomatic 25): SecretRepository.BuildSecretAccessQuery has cyclomatic complexity 25 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Commercial.Infrastructure.EntityFramework/SecretsManager/Repositories/SecretRepository.cs"},"region":{"startLine":476}}}],"partialFingerprints":{"codehealthFindingId/v1":"c6dbbb3d71ba03e11110e0ae8a130cc61c8684e51efcd1cbb2d90b47dd713105"}},{"ruleId":"D1","level":"warning","message":{"text":"ExceptionHandlerFilterAttribute.OnException (cyclomatic 24): ExceptionHandlerFilterAttribute.OnException has cyclomatic complexity 24 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Utilities/ExceptionHandlerFilterAttribute.cs"},"region":{"startLine":25}}}],"partialFingerprints":{"codehealthFindingId/v1":"001dc6c25f665b8fe4a09eaa6f6b6295ee4119f2b68226fdd47e393c814dc205"}},{"ruleId":"D1","level":"warning","message":{"text":"PlanAdapter.ToPlanType (cyclomatic 24): PlanAdapter.ToPlanType has cyclomatic complexity 24 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Pricing/Organizations/PlanAdapter.cs"},"region":{"startLine":51}}}],"partialFingerprints":{"codehealthFindingId/v1":"609df3895b73047c7c98f48bc5cf1989d9a5d524590e401d521c600fce7d40ea"}},{"ruleId":"D1","level":"warning","message":{"text":"PricingClient.GetLookupKey (cyclomatic 24): PricingClient.GetLookupKey has cyclomatic complexity 24 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Pricing/PricingClient.cs"},"region":{"startLine":110}}}],"partialFingerprints":{"codehealthFindingId/v1":"861501386242c3cc0de94e596c620641b38693477eca9d2eaeb35f87c1e7b100"}},{"ruleId":"D1","level":"warning","message":{"text":"PolicyTypeExtensions.GetName (cyclomatic 23): PolicyTypeExtensions.GetName has cyclomatic complexity 23 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/Enums/PolicyType.cs"},"region":{"startLine":42}}}],"partialFingerprints":{"codehealthFindingId/v1":"11035739a22497d081eb9b41d58b7fe000380702771d03a2c7cc30e3f40bb5fa"}},{"ruleId":"D1","level":"warning","message":{"text":"UpdateOrganizationSubscriptionCommand.Run (cyclomatic 23): UpdateOrganizationSubscriptionCommand.Run has cyclomatic complexity 23 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Organizations/Commands/UpdateOrganizationSubscriptionCommand.cs"},"region":{"startLine":68}}}],"partialFingerprints":{"codehealthFindingId/v1":"1d13403e8407c3826ddd619375b524da5c24e7506b5026150d1197c13aa8f383"}},{"ruleId":"D1","level":"warning","message":{"text":"CoreHelpers.BuildIdentityClaims (cyclomatic 23): CoreHelpers.BuildIdentityClaims has cyclomatic complexity 23 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Utilities/CoreHelpers.cs"},"region":{"startLine":716}}}],"partialFingerprints":{"codehealthFindingId/v1":"d8119efe0cbfd63b44bae32b95ca2b9c6a12fc4115d10dfc7fd62545feba9868"}},{"ruleId":"D1","level":"warning","message":{"text":"Context.LoadConfiguration (cyclomatic 23): Context.LoadConfiguration has cyclomatic complexity 23 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/Setup/Context.cs"},"region":{"startLine":67}}}],"partialFingerprints":{"codehealthFindingId/v1":"fe080021dfeec44c5b3bf365709012cbce64a510cbde38361c677bb915984f50"}},{"ruleId":"D1","level":"warning","message":{"text":"ProvidersController.Edit (cyclomatic 22): ProvidersController.Edit has cyclomatic complexity 22 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/AdminConsole/Controllers/ProvidersController.cs"},"region":{"startLine":273}}}],"partialFingerprints":{"codehealthFindingId/v1":"9bd3b19cb4e697d90e4db14a92f91e6bf82caec64485d652a0e586fd4d099137"}},{"ruleId":"D1","level":"warning","message":{"text":"OrganizationService.AdjustSeatsAsync (cyclomatic 22): OrganizationService.AdjustSeatsAsync has cyclomatic complexity 22 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/Services/Implementations/OrganizationService.cs"},"region":{"startLine":221}}}],"partialFingerprints":{"codehealthFindingId/v1":"38ad50b73455bcf2b91e04a4a43e1469779407cd84330808093d2092beff7df3"}},{"ruleId":"D1","level":"warning","message":{"text":"StripePaymentService.FinalizeSubscriptionChangeAsync (cyclomatic 22): StripePaymentService.FinalizeSubscriptionChangeAsync has cyclomatic complexity 22 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Services/Implementations/StripePaymentService.cs"},"region":{"startLine":90}}}],"partialFingerprints":{"codehealthFindingId/v1":"310f6bcb52c76430529dd71ebc29c45c3bd19e237c4be1c2bc9df8520de4d589"}},{"ruleId":"D1","level":"warning","message":{"text":"PatchGroupCommand.HandleOperationAsync (cyclomatic 22): PatchGroupCommand.HandleOperationAsync has cyclomatic complexity 22 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Scim/Groups/PatchGroupCommand.cs"},"region":{"startLine":51}}}],"partialFingerprints":{"codehealthFindingId/v1":"8de259235a508e4f197208e5724a810773fb4324da3cd9b84015e4171bc897fb"}},{"ruleId":"D1","level":"warning","message":{"text":"SubscriptionUpdatedHandler.HandleScheduleTriggeredBusinessMigrationAsync (cyclomatic 21): SubscriptionUpdatedHandler.HandleScheduleTriggeredBusinessMigrationAsync has cyclomatic complexity 21 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Billing/Services/Implementations/SubscriptionUpdatedHandler.cs"},"region":{"startLine":540}}}],"partialFingerprints":{"codehealthFindingId/v1":"411a2b5ca4e929a5bc5f01acfc2b45fad2aef65af3b1a0748d5ea503d003666e"}},{"ruleId":"D1","level":"warning","message":{"text":"AdminRecoverAccountValidator.ValidateAsync (cyclomatic 21): AdminRecoverAccountValidator.ValidateAsync has cyclomatic complexity 21 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/OrganizationFeatures/AccountRecovery/v2/AdminRecoverAccountValidator.cs"},"region":{"startLine":15}}}],"partialFingerprints":{"codehealthFindingId/v1":"5b4f4929429ff9c402db9e1d8e898d9020b9d2c56271523f123cab0c96dac91e"}},{"ruleId":"D1","level":"warning","message":{"text":"OrganizationBillingService.CreateCustomerAsync (cyclomatic 21): OrganizationBillingService.CreateCustomerAsync has cyclomatic complexity 21 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Organizations/Services/OrganizationBillingService.cs"},"region":{"startLine":190}}}],"partialFingerprints":{"codehealthFindingId/v1":"4e3d8bd5ff792233e148d8b81321bcd148d56b055287736eeaa405bc7275cc48"}},{"ruleId":"D1","level":"warning","message":{"text":"UpdatePremiumStorageCommand.Run (cyclomatic 21): UpdatePremiumStorageCommand.Run has cyclomatic complexity 21 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Premium/Commands/UpdatePremiumStorageCommand.cs"},"region":{"startLine":45}}}],"partialFingerprints":{"codehealthFindingId/v1":"253e4bbbd370ef57cdb477527d9f598334c11bb4eaf954e639b979e129053b6f"}},{"ruleId":"D1","level":"warning","message":{"text":"StripePaymentService.PayInvoiceAfterSubscriptionChangeAsync (cyclomatic 21): StripePaymentService.PayInvoiceAfterSubscriptionChangeAsync has cyclomatic complexity 21 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Services/Implementations/StripePaymentService.cs"},"region":{"startLine":353}}}],"partialFingerprints":{"codehealthFindingId/v1":"60d5141d9897e6ade242c0e4c24bd9def2ba2264aa114d38bbe909d0edb90801"}},{"ruleId":"D1","level":"warning","message":{"text":"IntegrationHandlerBase.ClassifyHttpStatusCode (cyclomatic 21): IntegrationHandlerBase.ClassifyHttpStatusCode has cyclomatic complexity 21 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Dirt/Services/IIntegrationHandler.cs"},"region":{"startLine":81}}}],"partialFingerprints":{"codehealthFindingId/v1":"87ec450dcc1e1b037a77d62c6edf9949272c05416cdf9514f64af05a6c11fed4"}},{"ruleId":"D1","level":"warning","message":{"text":"CipherRequestModel.ToCipher (cyclomatic 20): CipherRequestModel.ToCipher has cyclomatic complexity 20 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Models/Request/CipherRequestModel.cs"},"region":{"startLine":94}}}],"partialFingerprints":{"codehealthFindingId/v1":"4bd5c0ec3a5daaa960fa9ee7a51c331cb97a77ad1608c4d394e25a755ec241c2"}},{"ruleId":"D1","level":"warning","message":{"text":"StripeEventUtilityService.FromChargeToTransactionAsync (cyclomatic 20): StripeEventUtilityService.FromChargeToTransactionAsync has cyclomatic complexity 20 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Billing/Services/Implementations/StripeEventUtilityService.cs"},"region":{"startLine":127}}}],"partialFingerprints":{"codehealthFindingId/v1":"afb7b1d0d7b7babe6382510ce97c3ab805c217f2894c9f14b1512634bf33861a"}},{"ruleId":"D1","level":"warning","message":{"text":"GenerateCiphersStep.Execute (cyclomatic 20): GenerateCiphersStep.Execute has cyclomatic complexity 20 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/Seeder/Steps/GenerateCiphersStep.cs"},"region":{"startLine":35}}}],"partialFingerprints":{"codehealthFindingId/v1":"b71f0f998ae2a55a094791283802e7833f7d6a65f2c3c3ef0c2f029c6b9accc3"}},{"ruleId":"D1","level":"warning","message":{"text":"BitPayController.PostIpn (cyclomatic 19): BitPayController.PostIpn has cyclomatic complexity 19 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Billing/Controllers/BitPayController.cs"},"region":{"startLine":37}}}],"partialFingerprints":{"codehealthFindingId/v1":"08d6ea745dbc0c58203f401e144a1ed598ec921e04444f3054dabdf9e43efb9a"}},{"ruleId":"D1","level":"warning","message":{"text":"RemoveOrganizationUserCommand.RemoveUsersInternalAsync (cyclomatic 19): RemoveOrganizationUserCommand.RemoveUsersInternalAsync has cyclomatic complexity 19 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/OrganizationFeatures/OrganizationUsers/RemoveOrganizationUserCommand.cs"},"region":{"startLine":198}}}],"partialFingerprints":{"codehealthFindingId/v1":"f0e480361cf49c15b1d8a2004c4eecbcad793f6832d839e5476b71580202cfd3"}},{"ruleId":"D1","level":"warning","message":{"text":"UpcomingInvoiceHandler.ResolveDiscountsAsync (cyclomatic 18): UpcomingInvoiceHandler.ResolveDiscountsAsync has cyclomatic complexity 18 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Billing/Services/Implementations/UpcomingInvoiceHandler.cs"},"region":{"startLine":527}}}],"partialFingerprints":{"codehealthFindingId/v1":"85239ef68fd35d444ac4e8727099ec657518f78a8236cfec6fe7edf6b048a00d"}},{"ruleId":"D1","level":"warning","message":{"text":"UpdateOrganizationUserCommand.UpdateUserAsync (cyclomatic 18): UpdateOrganizationUserCommand.UpdateUserAsync has cyclomatic complexity 18 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/OrganizationFeatures/OrganizationUsers/UpdateOrganizationUserCommand.cs"},"region":{"startLine":66}}}],"partialFingerprints":{"codehealthFindingId/v1":"d485e724fa8e7f66ca93c42c02cf761155c8212b149c789cac7ccfc7decdca15"}},{"ruleId":"D1","level":"warning","message":{"text":"PreviewOrganizationTaxCommand.Run (cyclomatic 18): PreviewOrganizationTaxCommand.Run has cyclomatic complexity 18 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Organizations/Commands/PreviewOrganizationTaxCommand.cs"},"region":{"startLine":163}}}],"partialFingerprints":{"codehealthFindingId/v1":"88688190299021b094beedfbd7be6e1287d35a92a2cc466d8df85a84ce5d7bc0"}},{"ruleId":"D1","level":"warning","message":{"text":"ProviderPriceAdapter.GetPriceId (cyclomatic 18): ProviderPriceAdapter.GetPriceId has cyclomatic complexity 18 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Providers/Services/ProviderPriceAdapter.cs"},"region":{"startLine":54}}}],"partialFingerprints":{"codehealthFindingId/v1":"6f103d1c06301ead44be4eb895853c0a961bf786bc471be70643af11100258dd"}},{"ruleId":"D1","level":"warning","message":{"text":"EventRepository.BuildEventsTable (cyclomatic 18): EventRepository.BuildEventsTable has cyclomatic complexity 18 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.Dapper/Dirt/Repositories/EventRepository.cs"},"region":{"startLine":191}}}],"partialFingerprints":{"codehealthFindingId/v1":"79268c05a3cdcad0d72be315e697274f2eb746344c528b433e8e54846416b7b3"}},{"ruleId":"D1","level":"warning","message":{"text":"AccountController.CreateUserAndOrgUserConditionallyAsync (cyclomatic 18): AccountController.CreateUserAndOrgUserConditionallyAsync has cyclomatic complexity 18 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Sso/Controllers/AccountController.cs"},"region":{"startLine":487}}}],"partialFingerprints":{"codehealthFindingId/v1":"6d10ee246b42c49e9b9efa44a8be9222fb2278019ab665bf1cc22830a9f80817"}},{"ruleId":"D1","level":"warning","message":{"text":"CreateRosterStep.Execute (cyclomatic 18): CreateRosterStep.Execute has cyclomatic complexity 18 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/Seeder/Steps/CreateRosterStep.cs"},"region":{"startLine":14}}}],"partialFingerprints":{"codehealthFindingId/v1":"f4cfbdccdabb6853910c0a7a67ba95e4f94f2f62b2b1323c403daaf8eefe1df8"}},{"ruleId":"D1","level":"warning","message":{"text":"PaymentMethodAttachedHandler.HandleAsync (cyclomatic 17): PaymentMethodAttachedHandler.HandleAsync has cyclomatic complexity 17 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Billing/Services/Implementations/PaymentMethodAttachedHandler.cs"},"region":{"startLine":35}}}],"partialFingerprints":{"codehealthFindingId/v1":"ccb935d6cb829106b1890d317eb7679e99b0919a5eb06be33e99e55ddc42b4a4"}},{"ruleId":"D1","level":"warning","message":{"text":"RestoreOrganizationUserCommand.RestoreUsersAsync (cyclomatic 17): RestoreOrganizationUserCommand.RestoreUsersAsync has cyclomatic complexity 17 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/OrganizationFeatures/OrganizationUsers/RestoreUser/v1/RestoreOrganizationUserCommand.cs"},"region":{"startLine":173}}}],"partialFingerprints":{"codehealthFindingId/v1":"b6bc82cb45bc58fbcdb591793fcf4043c847491d8a38cc42e070a91bdf9f7263"}},{"ruleId":"D1","level":"warning","message":{"text":"CreateSponsorshipCommand.CreateSponsorshipAsync (cyclomatic 17): CreateSponsorshipCommand.CreateSponsorshipAsync has cyclomatic complexity 17 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/OrganizationFeatures/OrganizationSponsorships/FamiliesForEnterprise/CreateSponsorshipCommand.cs"},"region":{"startLine":21}}}],"partialFingerprints":{"codehealthFindingId/v1":"50a89a109f223d88ab4958a59ed7de4c3b1b53450a3cc54017746ab6f0f4cc87"}},{"ruleId":"D1","level":"warning","message":{"text":"UserService.AdminResetPasswordAsync (cyclomatic 17): UserService.AdminResetPasswordAsync has cyclomatic complexity 17 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Services/Implementations/UserService.cs"},"region":{"startLine":577}}}],"partialFingerprints":{"codehealthFindingId/v1":"061a0bbf5eb4ebfdb6d581ef681aae447cf64eb354d7fb8692bf6a9522d1e05c"}},{"ruleId":"D1","level":"warning","message":{"text":"ImportCiphersCommand.ImportIntoOrganizationalVaultAsync (cyclomatic 17): ImportCiphersCommand.ImportIntoOrganizationalVaultAsync has cyclomatic complexity 17 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Tools/ImportFeatures/ImportCiphersCommand.cs"},"region":{"startLine":87}}}],"partialFingerprints":{"codehealthFindingId/v1":"74d6b0843af5248fe720dea53daf9c7fad32ef06b0fa1ee38a297ab8674f0690"}},{"ruleId":"D1","level":"warning","message":{"text":"SendValidationService.ValidateUserCanSaveAsync (cyclomatic 17): SendValidationService.ValidateUserCanSaveAsync has cyclomatic complexity 17 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Tools/SendFeatures/Services/SendValidationService.cs"},"region":{"startLine":41}}}],"partialFingerprints":{"codehealthFindingId/v1":"b3d1fd2361db51e188b88ef7dc66c9b9582154d007b380f8cf31a550c4041e22"}},{"ruleId":"D1","level":"warning","message":{"text":"Saml2OptionsExtensions.CouldHandleAsync (cyclomatic 17): Saml2OptionsExtensions.CouldHandleAsync has cyclomatic complexity 17 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Sso/Utilities/Saml2OptionsExtensions.cs"},"region":{"startLine":14}}}],"partialFingerprints":{"codehealthFindingId/v1":"ee652c3c4fc88581b918e958526e6b14411009b07c09ce6372c5eae4a3a400fe"}},{"ruleId":"D1","level":"warning","message":{"text":"SsoAuthenticationMiddleware.Invoke (cyclomatic 17): SsoAuthenticationMiddleware.Invoke has cyclomatic complexity 17 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Sso/Utilities/SsoAuthenticationMiddleware.cs"},"region":{"startLine":20}}}],"partialFingerprints":{"codehealthFindingId/v1":"9254ceffd3fa8960ca0ee696864cbf1ba0edda5dc6f814634cff676a42aecb6b"}},{"ruleId":"D1","level":"warning","message":{"text":"SecureNoteDataGenerator.GenerateNoteName (cyclomatic 17): SecureNoteDataGenerator.GenerateNoteName has cyclomatic complexity 17 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/Seeder/Data/Generators/SecureNoteDataGenerator.cs"},"region":{"startLine":43}}}],"partialFingerprints":{"codehealthFindingId/v1":"9d0c9ec5e30f23e3578873362bdaff1f2231be57894183b0f4761aed4d83898b"}},{"ruleId":"D1","level":"warning","message":{"text":"SecureNoteDataGenerator.GenerateNoteContent (cyclomatic 17): SecureNoteDataGenerator.GenerateNoteContent has cyclomatic complexity 17 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/Seeder/Data/Generators/SecureNoteDataGenerator.cs"},"region":{"startLine":63}}}],"partialFingerprints":{"codehealthFindingId/v1":"cc3402956f5897c6bedbcb212219dc876e60ab2f878ed36b5832fe3a820f7c74"}},{"ruleId":"D1","level":"warning","message":{"text":"Program.ValidateInstallation (cyclomatic 17): Program.ValidateInstallation has cyclomatic complexity 17 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/Setup/Program.cs"},"region":{"startLine":287}}}],"partialFingerprints":{"codehealthFindingId/v1":"44bd6b44b666ae90e27a8bd2a81c867a30a13d24d7e22c0666681a34f1f3a31f"}},{"ruleId":"D1","level":"warning","message":{"text":"OrganizationsController.HandlePotentialProviderSeatScalingAsync (cyclomatic 16): OrganizationsController.HandlePotentialProviderSeatScalingAsync has cyclomatic complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/AdminConsole/Controllers/OrganizationsController.cs"},"region":{"startLine":782}}}],"partialFingerprints":{"codehealthFindingId/v1":"db705822d22b4cbbd02d1224fcbc30cf992dfc81b6a0defa6e28336dd3e5f50f"}},{"ruleId":"D1","level":"warning","message":{"text":"BulkCollectionAuthorizationHandler.HandleRequirementAsync (cyclomatic 16): BulkCollectionAuthorizationHandler.HandleRequirementAsync has cyclomatic complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Authorization/Collections/BulkCollectionAuthorizationHandler.cs"},"region":{"startLine":42}}}],"partialFingerprints":{"codehealthFindingId/v1":"bc35f2f28b4bd0bc5cdfdc7c387fb9080d514c3673fc2aa741e161c8878a1449"}},{"ruleId":"D1","level":"warning","message":{"text":"UpdateTwoFactorYubicoOtpRequestModel.Validate (cyclomatic 16): UpdateTwoFactorYubicoOtpRequestModel.Validate has cyclomatic complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Models/Request/TwoFactorRequestModels.cs"},"region":{"startLine":183}}}],"partialFingerprints":{"codehealthFindingId/v1":"96bf4fdf12c73af3f657711eb59b7c2c3bd7d5127681e0ffe818bb76af1d39fc"}},{"ruleId":"D1","level":"warning","message":{"text":"PaymentSucceededHandler.HandleAsync (cyclomatic 16): PaymentSucceededHandler.HandleAsync has cyclomatic complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Billing/Services/Implementations/PaymentSucceededHandler.cs"},"region":{"startLine":32}}}],"partialFingerprints":{"codehealthFindingId/v1":"7d420ede4efb6c34564016e571bd168defc86c0b875cf87082b631c8ccc7b5d9"}},{"ruleId":"D1","level":"warning","message":{"text":"LicenseExtensions.GetValue (cyclomatic 16): LicenseExtensions.GetValue has cyclomatic complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Licenses/Extensions/LicenseExtensions.cs"},"region":{"startLine":114}}}],"partialFingerprints":{"codehealthFindingId/v1":"d9de9ad26ad96cf822e22c9098908f2e28cda0df8c8c531a3f7b23c40900c48f"}},{"ruleId":"D1","level":"warning","message":{"text":"LicensingService.LicensingService.ctor (cyclomatic 16): LicensingService.LicensingService.ctor has cyclomatic complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Services/Implementations/LicensingService.cs"},"region":{"startLine":49}}}],"partialFingerprints":{"codehealthFindingId/v1":"fba9d8349d90217da2de50a1680a46c0497d105f8c5d655e7a0b264b017dcb8a"}},{"ruleId":"D1","level":"warning","message":{"text":"RestartSubscriptionCommand.RestartOrganizationSubscriptionAsync (cyclomatic 16): RestartSubscriptionCommand.RestartOrganizationSubscriptionAsync has cyclomatic complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Subscriptions/Commands/RestartSubscriptionCommand.cs"},"region":{"startLine":54}}}],"partialFingerprints":{"codehealthFindingId/v1":"6cdd585dd5111d22fb57de764e54efbcaca42003df8885a2d3efaf5261e102bd"}},{"ruleId":"D1","level":"warning","message":{"text":"SlackIntegrationHandler.ClassifySlackError (cyclomatic 16): SlackIntegrationHandler.ClassifySlackError has cyclomatic complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Dirt/Services/Implementations/SlackIntegrationHandler.cs"},"region":{"startLine":55}}}],"partialFingerprints":{"codehealthFindingId/v1":"0379accba30039d6d3c6fbc05f5e3b7db53ff5db1a1d59bb208dd4a979c4fa30"}},{"ruleId":"D1","level":"warning","message":{"text":"ValidateSponsorshipCommand.ValidateSponsorshipAsync (cyclomatic 16): ValidateSponsorshipCommand.ValidateSponsorshipAsync has cyclomatic complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/OrganizationFeatures/OrganizationSponsorships/FamiliesForEnterprise/Cloud/ValidateSponsorshipCommand.cs"},"region":{"startLine":34}}}],"partialFingerprints":{"codehealthFindingId/v1":"741a6f81f1d19605ac6bef6cafce40f91a0a718c6fb2cb49d3043bf1d3eae336"}},{"ruleId":"D1","level":"warning","message":{"text":"UserDecryptionOptionsBuilder.BuildTrustedDeviceOptionsAsync (cyclomatic 16): UserDecryptionOptionsBuilder.BuildTrustedDeviceOptionsAsync has cyclomatic complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Identity/IdentityServer/UserDecryptionOptionsBuilder.cs"},"region":{"startLine":102}}}],"partialFingerprints":{"codehealthFindingId/v1":"e39a5df53b80f3b3ce2e056ffdd4d71635bb2feae8d036e2dad36d4ad70a0bca"}},{"ruleId":"D1","level":"warning","message":{"text":"ServiceCollectionExtensions.AddDefaultServices (cyclomatic 16): ServiceCollectionExtensions.AddDefaultServices has cyclomatic complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/SharedWeb/Utilities/ServiceCollectionExtensions.cs"},"region":{"startLine":264}}}],"partialFingerprints":{"codehealthFindingId/v1":"c800a698612c63a5f49839abb8e4924486d6613cad4a21a8d359351747ca976d"}},{"ruleId":"D1","level":"warning","message":{"text":"CreateCiphersStep.Execute (cyclomatic 16): CreateCiphersStep.Execute has cyclomatic complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/Seeder/Steps/CreateCiphersStep.cs"},"region":{"startLine":34}}}],"partialFingerprints":{"codehealthFindingId/v1":"2fc96e8c4e142514246d2f672f4b7bb6682ddd721b1345ebdf48699041a4650c"}},{"ruleId":"D2","level":"warning","message":{"text":"UpgradeOrganizationPlanCommand.UpgradePlanAsync (cognitive 63): UpgradeOrganizationPlanCommand.UpgradePlanAsync has cognitive complexity 63 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/OrganizationFeatures/OrganizationSubscriptions/UpgradeOrganizationPlanCommand.cs"},"region":{"startLine":85}}}],"partialFingerprints":{"codehealthFindingId/v1":"b8c3f6339d2e0fecdd671f79d05e1f94be70baf67186e54c6974642a24f805a5"}},{"ruleId":"D2","level":"warning","message":{"text":"Context.LoadConfiguration (cognitive 61): Context.LoadConfiguration has cognitive complexity 61 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/Setup/Context.cs"},"region":{"startLine":67}}}],"partialFingerprints":{"codehealthFindingId/v1":"335d78c4a34eda43bf234fee0a6961ae259caa287c8dfca73c976c074adb0bfa"}},{"ruleId":"D2","level":"warning","message":{"text":"CoreHelpers.BuildIdentityClaims (cognitive 57): CoreHelpers.BuildIdentityClaims has cognitive complexity 57 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Utilities/CoreHelpers.cs"},"region":{"startLine":716}}}],"partialFingerprints":{"codehealthFindingId/v1":"c1a6c0e82b8bb491dd0ac841d909578a6277d61afb9a130277fd2469b22e95bc"}},{"ruleId":"D2","level":"warning","message":{"text":"CollectController.Post (cognitive 54): CollectController.Post has cognitive complexity 54 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Events/Controllers/CollectController.cs"},"region":{"startLine":41}}}],"partialFingerprints":{"codehealthFindingId/v1":"51dcd993ff3e03c196b183d177e8730726214ec0ca47499abbe3fcfe17f707fa"}},{"ruleId":"D2","level":"warning","message":{"text":"RegisterFinishRequestModel.Validate (cognitive 46): RegisterFinishRequestModel.Validate has cognitive complexity 46 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Models/Api/Request/Accounts/RegisterFinishRequestModel.cs"},"region":{"startLine":167}}}],"partialFingerprints":{"codehealthFindingId/v1":"ef9d8824fba49bb0d05549c05a4863fbca8ef5456a42f4ac3694695663cda9e3"}},{"ruleId":"D2","level":"warning","message":{"text":"OrganizationsController.Edit (cognitive 45): OrganizationsController.Edit has cognitive complexity 45 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/AdminConsole/Controllers/OrganizationsController.cs"},"region":{"startLine":293}}}],"partialFingerprints":{"codehealthFindingId/v1":"dd3aa2da5100454e2932e77de1a92267d2326a7ced00789c426e249543905b9a"}},{"ruleId":"D2","level":"warning","message":{"text":"HandlebarsMailService.RegisterHelpersAndPartialsAsync (cognitive 43): HandlebarsMailService.RegisterHelpersAndPartialsAsync has cognitive complexity 43 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Platform/Mail/HandlebarsMailService.cs"},"region":{"startLine":987}}}],"partialFingerprints":{"codehealthFindingId/v1":"fc7e30d6a26deed2fe8a7eece2a8f630cbd6ed018fae9402d74a052e079a855e"}},{"ruleId":"D2","level":"warning","message":{"text":"GenerateCiphersStep.Execute (cognitive 43): GenerateCiphersStep.Execute has cognitive complexity 43 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/Seeder/Steps/GenerateCiphersStep.cs"},"region":{"startLine":35}}}],"partialFingerprints":{"codehealthFindingId/v1":"f6d164790bec9e877ab2d3c3f10d58e07e54a3da9333cd56859306dff732cbda"}},{"ruleId":"D2","level":"warning","message":{"text":"OrganizationService.SaveUsersSendInvitesAsync (cognitive 42): OrganizationService.SaveUsersSendInvitesAsync has cognitive complexity 42 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/Services/Implementations/OrganizationService.cs"},"region":{"startLine":506}}}],"partialFingerprints":{"codehealthFindingId/v1":"0de036133566f2d28fa0f6232ac59fba9ebd570a2ec23adcae59397e4287e0f3"}},{"ruleId":"D2","level":"warning","message":{"text":"HubHelpers.SendNotificationToHubAsync (cognitive 41): HubHelpers.SendNotificationToHubAsync has cognitive complexity 41 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Notifications/HubHelpers.cs"},"region":{"startLine":28}}}],"partialFingerprints":{"codehealthFindingId/v1":"e0c7bf23568ce1ec86b209f5ab0015157764db907d0ea087ee6d05f3d8384e00"}},{"ruleId":"D2","level":"warning","message":{"text":"ExceptionHandlerFilterAttribute.OnException (cognitive 40): ExceptionHandlerFilterAttribute.OnException has cognitive complexity 40 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Utilities/ExceptionHandlerFilterAttribute.cs"},"region":{"startLine":25}}}],"partialFingerprints":{"codehealthFindingId/v1":"34d941e55fafa58096a7e8f072ff30268b45a17377cf462e8ae4e73783d3b3c3"}},{"ruleId":"D2","level":"warning","message":{"text":"StripePaymentService.PayInvoiceAfterSubscriptionChangeAsync (cognitive 39): StripePaymentService.PayInvoiceAfterSubscriptionChangeAsync has cognitive complexity 39 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Services/Implementations/StripePaymentService.cs"},"region":{"startLine":353}}}],"partialFingerprints":{"codehealthFindingId/v1":"53ac2d663574b2e03a58cf7643d9473dfdf55cb561f3cff5bd15f3dffa5d61af"}},{"ruleId":"D2","level":"warning","message":{"text":"PatchUserCommand.PatchUserAsync (cognitive 37): PatchUserCommand.PatchUserAsync has cognitive complexity 37 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Scim/Users/PatchUserCommand.cs"},"region":{"startLine":30}}}],"partialFingerprints":{"codehealthFindingId/v1":"33ac51a61c48d06e81a153228ef69d9a3695f9bf82451ceff04346d70e391da8"}},{"ruleId":"D2","level":"warning","message":{"text":"CipherRepository.ReplaceAsync (cognitive 36): CipherRepository.ReplaceAsync has cognitive complexity 36 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/Vault/Repositories/CipherRepository.cs"},"region":{"startLine":562}}}],"partialFingerprints":{"codehealthFindingId/v1":"27bd2da0975027235015cabcb42834653bbe4745c16941a83562f7f00184fa0c"}},{"ruleId":"D2","level":"warning","message":{"text":"CreateRosterStep.Execute (cognitive 36): CreateRosterStep.Execute has cognitive complexity 36 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/Seeder/Steps/CreateRosterStep.cs"},"region":{"startLine":14}}}],"partialFingerprints":{"codehealthFindingId/v1":"ec5decae577b8c43eae9c59944199e987501fc5b467b67b5231df86d108267a0"}},{"ruleId":"D2","level":"warning","message":{"text":"PayPalController.PostIpn (cognitive 33): PayPalController.PostIpn has cognitive complexity 33 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Billing/Controllers/PayPalController.cs"},"region":{"startLine":54}}}],"partialFingerprints":{"codehealthFindingId/v1":"2aa3069c31c9b6714a3b5237e660c96c7a15a4a3cb32c76706e2eeed49976b08"}},{"ruleId":"D2","level":"warning","message":{"text":"OrganizationBillingService.CreateCustomerAsync (cognitive 32): OrganizationBillingService.CreateCustomerAsync has cognitive complexity 32 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Organizations/Services/OrganizationBillingService.cs"},"region":{"startLine":190}}}],"partialFingerprints":{"codehealthFindingId/v1":"4008901a0c854318065bebfb408eb43111966b40ea3d281c06b5c653abfa333d"}},{"ruleId":"D2","level":"warning","message":{"text":"UpdatePremiumStorageCommand.Run (cognitive 32): UpdatePremiumStorageCommand.Run has cognitive complexity 32 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Premium/Commands/UpdatePremiumStorageCommand.cs"},"region":{"startLine":45}}}],"partialFingerprints":{"codehealthFindingId/v1":"6111e818e5f19990a3e19b2b0f4fd7f4e4bd45c673be723bcc364164dfcb547f"}},{"ruleId":"D2","level":"warning","message":{"text":"BaseJobsHostedService.StartAsync (cognitive 31): BaseJobsHostedService.StartAsync has cognitive complexity 31 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Jobs/BaseJobsHostedService.cs"},"region":{"startLine":36}}}],"partialFingerprints":{"codehealthFindingId/v1":"ff20182e71e56a90d9a3ebf9485c393c443969449cb8fd1ccd2d95656a9ef2f1"}},{"ruleId":"D2","level":"warning","message":{"text":"EventRepository.BuildEventsTable (cognitive 31): EventRepository.BuildEventsTable has cognitive complexity 31 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.Dapper/Dirt/Repositories/EventRepository.cs"},"region":{"startLine":191}}}],"partialFingerprints":{"codehealthFindingId/v1":"d576290cde92cc65109efc08114d899e80f6a716018aa13e1b4f03798ffbcf28"}},{"ruleId":"D2","level":"warning","message":{"text":"SsoConfigurationDataRequest.Validate (cognitive 30): SsoConfigurationDataRequest.Validate has cognitive complexity 30 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Models/Request/OrganizationSsoRequestModel.cs"},"region":{"startLine":92}}}],"partialFingerprints":{"codehealthFindingId/v1":"3ed7973d6db726d6c57783e03a791fd1590d21d19c2c9b2a01d71798eb91b560"}},{"ruleId":"D2","level":"warning","message":{"text":"PreviewOrganizationTaxCommand.Run (cognitive 30): PreviewOrganizationTaxCommand.Run has cognitive complexity 30 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Organizations/Commands/PreviewOrganizationTaxCommand.cs"},"region":{"startLine":163}}}],"partialFingerprints":{"codehealthFindingId/v1":"cb07d247129df55ef477d0477f8405657e6ca57184d839b832882a6d0b71fabe"}},{"ruleId":"D2","level":"warning","message":{"text":"CheckDuplicateOperationIdsDocumentFilter.Apply (cognitive 30): CheckDuplicateOperationIdsDocumentFilter.Apply has cognitive complexity 30 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/SharedWeb/Swagger/CheckDuplicateOperationIdsDocumentFilter.cs"},"region":{"startLine":16}}}],"partialFingerprints":{"codehealthFindingId/v1":"3067e3ae25d12583a30c9c184b494d2572031d7fc7bf8f0c1f7522ee12301e79"}},{"ruleId":"D2","level":"warning","message":{"text":"AccountController.CreateUserAndOrgUserConditionallyAsync (cognitive 30): AccountController.CreateUserAndOrgUserConditionallyAsync has cognitive complexity 30 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Sso/Controllers/AccountController.cs"},"region":{"startLine":487}}}],"partialFingerprints":{"codehealthFindingId/v1":"1924db70e465a9624657145f5f999b1d7cce81cf328dcc16222942281b8f793f"}},{"ruleId":"D2","level":"warning","message":{"text":"OrganizationLicense.ObsoleteVerifyData (cognitive 29): OrganizationLicense.ObsoleteVerifyData has cognitive complexity 29 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Organizations/Models/OrganizationLicense.cs"},"region":{"startLine":503}}}],"partialFingerprints":{"codehealthFindingId/v1":"5f05d18976860cf2432579e7119ac2b84e66428b0c512e09276829c5cd60cf8d"}},{"ruleId":"D2","level":"warning","message":{"text":"UpdateBillingAddressCommand.EnableAutomaticTaxAsync (cognitive 29): UpdateBillingAddressCommand.EnableAutomaticTaxAsync has cognitive complexity 29 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Payment/Commands/UpdateBillingAddressCommand.cs"},"region":{"startLine":133}}}],"partialFingerprints":{"codehealthFindingId/v1":"da6821ffb35bb303ced4560f6952a10520bcfdb0f46a24e60d58764b435fd6ed"}},{"ruleId":"D2","level":"warning","message":{"text":"ProvidersController.Edit (cognitive 28): ProvidersController.Edit has cognitive complexity 28 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/AdminConsole/Controllers/ProvidersController.cs"},"region":{"startLine":273}}}],"partialFingerprints":{"codehealthFindingId/v1":"bfc5a296884cf282c94f49035a54b707c8d228fadab609dc19016eb977ca90c0"}},{"ruleId":"D2","level":"warning","message":{"text":"StripePaymentService.FinalizeSubscriptionChangeAsync (cognitive 28): StripePaymentService.FinalizeSubscriptionChangeAsync has cognitive complexity 28 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Services/Implementations/StripePaymentService.cs"},"region":{"startLine":90}}}],"partialFingerprints":{"codehealthFindingId/v1":"956c63e8b69291c26c136ad8c3e3e006a1e38efd2620030c3f59faf0070b90f1"}},{"ruleId":"D2","level":"warning","message":{"text":"OrganizationService.AdjustSeatsAsync (cognitive 27): OrganizationService.AdjustSeatsAsync has cognitive complexity 27 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/Services/Implementations/OrganizationService.cs"},"region":{"startLine":221}}}],"partialFingerprints":{"codehealthFindingId/v1":"8d95f37a916f5b69e709ab6e814f1f4f517a0030cf4d9033e15f3cef620334e7"}},{"ruleId":"D2","level":"warning","message":{"text":"OrganizationService.ValidateCustomPermissionsGrant (cognitive 27): OrganizationService.ValidateCustomPermissionsGrant has cognitive complexity 27 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/Services/Implementations/OrganizationService.cs"},"region":{"startLine":1001}}}],"partialFingerprints":{"codehealthFindingId/v1":"b29062bd4d934888dca2d43cf43fb789c1fab4b597b166801343c8109fb510d0"}},{"ruleId":"D2","level":"warning","message":{"text":"CipherService.ShareAsync (cognitive 27): CipherService.ShareAsync has cognitive complexity 27 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Vault/Services/Implementations/CipherService.cs"},"region":{"startLine":568}}}],"partialFingerprints":{"codehealthFindingId/v1":"c4158a07a13d8ac76e2bf3abff757ca6ae398a81e8cff44430f08f5509dc1ed3"}},{"ruleId":"D2","level":"warning","message":{"text":"SubscriberService.RemovePaymentSource (cognitive 26): SubscriberService.RemovePaymentSource has cognitive complexity 26 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Services/Implementations/SubscriberService.cs"},"region":{"startLine":463}}}],"partialFingerprints":{"codehealthFindingId/v1":"401a63f3d86b46a19300dcdef6954cc2bb5bed9ad31f2fe052fad1fd8e54d1a8"}},{"ruleId":"D2","level":"warning","message":{"text":"UpdateSecretsManagerSubscriptionCommand.FinalizeSubscriptionAdjustmentAsync (cognitive 26): UpdateSecretsManagerSubscriptionCommand.FinalizeSubscriptionAdjustmentAsync has cognitive complexity 26 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/OrganizationFeatures/OrganizationSubscriptions/UpdateSecretsManagerSubscriptionCommand.cs"},"region":{"startLine":76}}}],"partialFingerprints":{"codehealthFindingId/v1":"dcb7b4e6482ad7be23cfd1c4c7dac14bac0cb358f58cf901430ca4e3d68f05d5"}},{"ruleId":"D2","level":"warning","message":{"text":"SsoAuthenticationMiddleware.Invoke (cognitive 26): SsoAuthenticationMiddleware.Invoke has cognitive complexity 26 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Sso/Utilities/SsoAuthenticationMiddleware.cs"},"region":{"startLine":20}}}],"partialFingerprints":{"codehealthFindingId/v1":"be076bef525c6da1abf6dd8b5b7bfbe7b90c79133b30c8287dec7c197cf245e5"}},{"ruleId":"D2","level":"warning","message":{"text":"Program.ValidateInstallation (cognitive 26): Program.ValidateInstallation has cognitive complexity 26 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/Setup/Program.cs"},"region":{"startLine":287}}}],"partialFingerprints":{"codehealthFindingId/v1":"d13d7754165e6cefe11521db90088e49c892b3c93157766bc324f7ff5ca652cc"}},{"ruleId":"D2","level":"warning","message":{"text":"UpdateOrganizationSubscriptionCommand.Run (cognitive 25): UpdateOrganizationSubscriptionCommand.Run has cognitive complexity 25 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Organizations/Commands/UpdateOrganizationSubscriptionCommand.cs"},"region":{"startLine":68}}}],"partialFingerprints":{"codehealthFindingId/v1":"b29eb755fb1b149ba61087c14a70032b7ee19fbf7e98f215934078aeb5d0ae69"}},{"ruleId":"D2","level":"warning","message":{"text":"CollectionRepository.CreateOrUpdateAccessForManyAsync (cognitive 25): CollectionRepository.CreateOrUpdateAccessForManyAsync has cognitive complexity 25 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/AdminConsole/Repositories/CollectionRepository.cs"},"region":{"startLine":652}}}],"partialFingerprints":{"codehealthFindingId/v1":"fcf4eeccc5aca4f3620a6aa46a5330ed2881cece35be6bb6daf6ecfa4d8faadc"}},{"ruleId":"D2","level":"warning","message":{"text":"PresetLoader.BuildRecipe (cognitive 25): PresetLoader.BuildRecipe has cognitive complexity 25 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/Seeder/Pipeline/PresetLoader.cs"},"region":{"startLine":92}}}],"partialFingerprints":{"codehealthFindingId/v1":"9b81ecf3960e7cae3d7a908014ace9a0553db8d4caf2aae68c1499eae4190118"}},{"ruleId":"D2","level":"warning","message":{"text":"BitPayController.PostIpn (cognitive 24): BitPayController.PostIpn has cognitive complexity 24 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Billing/Controllers/BitPayController.cs"},"region":{"startLine":37}}}],"partialFingerprints":{"codehealthFindingId/v1":"26fcd523dc8dc1f350c45f59bf222197be47201e609a9912eb8e74df80c4ef9a"}},{"ruleId":"D2","level":"warning","message":{"text":"StripePaymentService.ApplySchedulePhase2DataAsync (cognitive 24): StripePaymentService.ApplySchedulePhase2DataAsync has cognitive complexity 24 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Services/Implementations/StripePaymentService.cs"},"region":{"startLine":714}}}],"partialFingerprints":{"codehealthFindingId/v1":"1271182811ffe54237cd3318b899021a69b36b0b0e0d0dff6a87bff4933f7c9b"}},{"ruleId":"D2","level":"warning","message":{"text":"AzureQueueHostedService.ExecuteAsync (cognitive 24): AzureQueueHostedService.ExecuteAsync has cognitive complexity 24 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Notifications/AzureQueueHostedService.cs"},"region":{"startLine":50}}}],"partialFingerprints":{"codehealthFindingId/v1":"f9b0a63ffdcc342c13806bff0e5870ac5e78a14763c2fc8b89309e36207c4cbe"}},{"ruleId":"D2","level":"warning","message":{"text":"PaymentMethodAttachedHandler.HandleAsync (cognitive 23): PaymentMethodAttachedHandler.HandleAsync has cognitive complexity 23 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Billing/Services/Implementations/PaymentMethodAttachedHandler.cs"},"region":{"startLine":35}}}],"partialFingerprints":{"codehealthFindingId/v1":"b735f5e6da0b8b0acc53d74428e38bb11b65b28f649a593913124fe71cce0f0a"}},{"ruleId":"D2","level":"warning","message":{"text":"RemoveOrganizationUserCommand.RemoveUsersInternalAsync (cognitive 23): RemoveOrganizationUserCommand.RemoveUsersInternalAsync has cognitive complexity 23 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/OrganizationFeatures/OrganizationUsers/RemoveOrganizationUserCommand.cs"},"region":{"startLine":198}}}],"partialFingerprints":{"codehealthFindingId/v1":"f4b81d25e518b3c5bb76e23c5ec044ea9c90e51592e75ac1749ae1c6da32580e"}},{"ruleId":"D2","level":"warning","message":{"text":"OrganizationLicense.GetDataBytes (cognitive 23): OrganizationLicense.GetDataBytes has cognitive complexity 23 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Organizations/Models/OrganizationLicense.cs"},"region":{"startLine":182}}}],"partialFingerprints":{"codehealthFindingId/v1":"befd3192d54d9a197543c9370607ae6040403cfe0ee6fd29e4bd13ef221166ef"}},{"ruleId":"D2","level":"warning","message":{"text":"CreateSponsorshipCommand.CreateSponsorshipAsync (cognitive 23): CreateSponsorshipCommand.CreateSponsorshipAsync has cognitive complexity 23 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/OrganizationFeatures/OrganizationSponsorships/FamiliesForEnterprise/CreateSponsorshipCommand.cs"},"region":{"startLine":21}}}],"partialFingerprints":{"codehealthFindingId/v1":"127657e490384f5109cb0d4cc5bf0ac14e5335b92d7396c719526d3e909f8235"}},{"ruleId":"D2","level":"warning","message":{"text":"UserService.DeleteAsync (cognitive 23): UserService.DeleteAsync has cognitive complexity 23 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Services/Implementations/UserService.cs"},"region":{"startLine":224}}}],"partialFingerprints":{"codehealthFindingId/v1":"eab6a41e38450ad6bb2de2d1e6a411408afbe831e6c9b10b8fd1176a7a4f37e8"}},{"ruleId":"D2","level":"warning","message":{"text":"LicenseExtensions.GetValue (cognitive 22): LicenseExtensions.GetValue has cognitive complexity 22 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Licenses/Extensions/LicenseExtensions.cs"},"region":{"startLine":114}}}],"partialFingerprints":{"codehealthFindingId/v1":"1af1b99ff72bd69bed1900fd532cc1342572042e34908b9762e82033dbfbba03"}},{"ruleId":"D2","level":"warning","message":{"text":"PaymentSucceededHandler.HandleAsync (cognitive 21): PaymentSucceededHandler.HandleAsync has cognitive complexity 21 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Billing/Services/Implementations/PaymentSucceededHandler.cs"},"region":{"startLine":32}}}],"partialFingerprints":{"codehealthFindingId/v1":"d656d3c64275e9933382900018f63390f4ca42dcd051ee719f1c12b3f4a32fb1"}},{"ruleId":"D2","level":"warning","message":{"text":"SubscriptionUpdatedHandler.HandleScheduleTriggeredBusinessMigrationAsync (cognitive 21): SubscriptionUpdatedHandler.HandleScheduleTriggeredBusinessMigrationAsync has cognitive complexity 21 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Billing/Services/Implementations/SubscriptionUpdatedHandler.cs"},"region":{"startLine":540}}}],"partialFingerprints":{"codehealthFindingId/v1":"47b7041b09c7c4c18f9492ac7b2ac832171b8f609c964b47c1d2b82aa3d263be"}},{"ruleId":"D2","level":"warning","message":{"text":"UpcomingInvoiceHandler.ResolveDiscountsAsync (cognitive 21): UpcomingInvoiceHandler.ResolveDiscountsAsync has cognitive complexity 21 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Billing/Services/Implementations/UpcomingInvoiceHandler.cs"},"region":{"startLine":527}}}],"partialFingerprints":{"codehealthFindingId/v1":"6aa63bf5bcf127afd400774509e8819a9004f6289a7e91e96eaacc2c3249a650"}},{"ruleId":"D2","level":"warning","message":{"text":"RestoreOrganizationUserCommand.RestoreUsersAsync (cognitive 21): RestoreOrganizationUserCommand.RestoreUsersAsync has cognitive complexity 21 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/OrganizationFeatures/OrganizationUsers/RestoreUser/v1/RestoreOrganizationUserCommand.cs"},"region":{"startLine":173}}}],"partialFingerprints":{"codehealthFindingId/v1":"3fdf257b0ce36fee88a973bec18ce90512830c8901f55cd6fc9432fd7ff5994e"}},{"ruleId":"D2","level":"warning","message":{"text":"CloudSyncSponsorshipsCommand.DoSyncAsync (cognitive 21): CloudSyncSponsorshipsCommand.DoSyncAsync has cognitive complexity 21 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/OrganizationFeatures/OrganizationSponsorships/FamiliesForEnterprise/Cloud/CloudSyncSponsorshipsCommand.cs"},"region":{"startLine":46}}}],"partialFingerprints":{"codehealthFindingId/v1":"375874f9b7a91a44e5eb9b712210ea7ba3c50b7649085c61598fe4e3fa86397d"}},{"ruleId":"D2","level":"warning","message":{"text":"ImportCiphersCommand.ImportIntoOrganizationalVaultAsync (cognitive 21): ImportCiphersCommand.ImportIntoOrganizationalVaultAsync has cognitive complexity 21 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Tools/ImportFeatures/ImportCiphersCommand.cs"},"region":{"startLine":87}}}],"partialFingerprints":{"codehealthFindingId/v1":"2155c1fe75478f6eb9f8955c96c970799e20ea80a35d23f0a65a826f41935623"}},{"ruleId":"D2","level":"warning","message":{"text":"OrganizationUserRepository.DeleteManyAsync (cognitive 21): OrganizationUserRepository.DeleteManyAsync has cognitive complexity 21 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/AdminConsole/Repositories/OrganizationUserRepository.cs"},"region":{"startLine":174}}}],"partialFingerprints":{"codehealthFindingId/v1":"b7307f3fed8c07d7f892205afb94693eb80adad3ca2d8d8672c97ffd2c98797d"}},{"ruleId":"D2","level":"warning","message":{"text":"ServiceCollectionExtensions.AddDefaultServices (cognitive 21): ServiceCollectionExtensions.AddDefaultServices has cognitive complexity 21 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/SharedWeb/Utilities/ServiceCollectionExtensions.cs"},"region":{"startLine":264}}}],"partialFingerprints":{"codehealthFindingId/v1":"2d46e0a23c6823fcf004e73e8b70e75e9e5a938966f30ae9b734d96fd77476f1"}},{"ruleId":"D2","level":"warning","message":{"text":"Saml2OptionsExtensions.CouldHandleAsync (cognitive 21): Saml2OptionsExtensions.CouldHandleAsync has cognitive complexity 21 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Sso/Utilities/Saml2OptionsExtensions.cs"},"region":{"startLine":14}}}],"partialFingerprints":{"codehealthFindingId/v1":"0d3686478c887029d46209d19f249c88929f69806e8148e1031b3ab91e22bc13"}},{"ruleId":"D2","level":"warning","message":{"text":"CipherRequestModel.ToCipher (cognitive 20): CipherRequestModel.ToCipher has cognitive complexity 20 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Models/Request/CipherRequestModel.cs"},"region":{"startLine":94}}}],"partialFingerprints":{"codehealthFindingId/v1":"d9c65653ff184de3a61bef9b0be80db6778efda1c7a7c530eec91946f1e4fa3a"}},{"ruleId":"D2","level":"warning","message":{"text":"InvoiceExtensions.FormatForProvider (cognitive 20): InvoiceExtensions.FormatForProvider has cognitive complexity 20 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Extensions/InvoiceExtensions.cs"},"region":{"startLine":16}}}],"partialFingerprints":{"codehealthFindingId/v1":"d353ad64e1112c8194434775f5b4c6f10648683b32b9902f0cd3bf55495a2577"}},{"ruleId":"D2","level":"warning","message":{"text":"BulkSyncCohortAssignmentsCommand.Run (cognitive 20): BulkSyncCohortAssignmentsCommand.Run has cognitive complexity 20 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Organizations/PlanMigration/Commands/BulkSyncCohortAssignmentsCommand.cs"},"region":{"startLine":20}}}],"partialFingerprints":{"codehealthFindingId/v1":"55e785f80f46fd5af379385ddd5462014fd2b604272e2ddff6bad7e010096057"}},{"ruleId":"D2","level":"warning","message":{"text":"SendValidationService.ValidateUserCanSaveAsync (cognitive 20): SendValidationService.ValidateUserCanSaveAsync has cognitive complexity 20 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Tools/SendFeatures/Services/SendValidationService.cs"},"region":{"startLine":41}}}],"partialFingerprints":{"codehealthFindingId/v1":"18692e0cdf6d0c65229f877422074b63004f3fa92969c998ae1e7f3ccf492aa9"}},{"ruleId":"D2","level":"warning","message":{"text":"CreateCollectionsStep.Execute (cognitive 20): CreateCollectionsStep.Execute has cognitive complexity 20 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/Seeder/Steps/CreateCollectionsStep.cs"},"region":{"startLine":28}}}],"partialFingerprints":{"codehealthFindingId/v1":"8ea8f5d9affcf7429640c4db02d70e2d11c3762f1c575e958fc1498dea3fb055"}},{"ruleId":"D2","level":"warning","message":{"text":"AzureQueueMailHostedService.ExecuteAsync (cognitive 19): AzureQueueMailHostedService.ExecuteAsync has cognitive complexity 19 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/HostedServices/AzureQueueMailHostedService.cs"},"region":{"startLine":52}}}],"partialFingerprints":{"codehealthFindingId/v1":"0a7743ef3d8b7538f91c3897749dcca26d9b5c4a3687d5d95096746b4447ca60"}},{"ruleId":"D2","level":"warning","message":{"text":"SelfHostedOrganizationDetails.CanUseLicense (cognitive 19): SelfHostedOrganizationDetails.CanUseLicense has cognitive complexity 19 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/Models/Data/Organizations/SelfHostedOrganizationDetails.cs"},"region":{"startLine":25}}}],"partialFingerprints":{"codehealthFindingId/v1":"4d3519c3fc3f05b44df4ad1c0370b20fc228f6f6a9675bf56439d785f45f80ad"}},{"ruleId":"D2","level":"warning","message":{"text":"UpdateOrganizationUserCommand.UpdateUserAsync (cognitive 19): UpdateOrganizationUserCommand.UpdateUserAsync has cognitive complexity 19 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/OrganizationFeatures/OrganizationUsers/UpdateOrganizationUserCommand.cs"},"region":{"startLine":66}}}],"partialFingerprints":{"codehealthFindingId/v1":"cd39e7dc4ae44ba23d3d43e2137cf18c67bd454861c8016bc5e6b918efb7a1f4"}},{"ruleId":"D2","level":"warning","message":{"text":"PreviewOrganizationTaxCommand.Run (cognitive 19): PreviewOrganizationTaxCommand.Run has cognitive complexity 19 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Organizations/Commands/PreviewOrganizationTaxCommand.cs"},"region":{"startLine":48}}}],"partialFingerprints":{"codehealthFindingId/v1":"5986c5d63614dfbd2561af76fa632594558cf9d93a054bfe59a87a9de55951be"}},{"ruleId":"D2","level":"warning","message":{"text":"CurrentContext.SetContextAsync (cognitive 19): CurrentContext.SetContextAsync has cognitive complexity 19 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Context/CurrentContext.cs"},"region":{"startLine":98}}}],"partialFingerprints":{"codehealthFindingId/v1":"898d5b3b9e2c2f9f8b3d455ea64f8d2d0d7134c0bdf8e2e555a5a98e17c102bd"}},{"ruleId":"D2","level":"warning","message":{"text":"CipherService.SaveDetailsAsync (cognitive 19): CipherService.SaveDetailsAsync has cognitive complexity 19 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Vault/Services/Implementations/CipherService.cs"},"region":{"startLine":123}}}],"partialFingerprints":{"codehealthFindingId/v1":"93451fea4bd83c6d68750a1db7e4cee79ddbfc54088e9ee834d5f510daf8bf98"}},{"ruleId":"D2","level":"warning","message":{"text":"ServiceCollectionExtensions.UseForwardedHeaders (cognitive 19): ServiceCollectionExtensions.UseForwardedHeaders has cognitive complexity 19 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/SharedWeb/Utilities/ServiceCollectionExtensions.cs"},"region":{"startLine":597}}}],"partialFingerprints":{"codehealthFindingId/v1":"84d102378e39e878a0277772c7ab5d7c2bb4feb22d979c89b0d8bf6832c04b1f"}},{"ruleId":"D2","level":"warning","message":{"text":"ProviderBillingService.UpdateSeatMinimums (cognitive 19): ProviderBillingService.UpdateSeatMinimums has cognitive complexity 19 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Commercial.Core/Billing/Providers/Services/ProviderBillingService.cs"},"region":{"startLine":724}}}],"partialFingerprints":{"codehealthFindingId/v1":"73bb88e7af192caf1e4effdb7213da241d9ea2d35dd300c328af53b87722ceb5"}},{"ruleId":"D2","level":"warning","message":{"text":"CreateGroupsStep.Execute (cognitive 19): CreateGroupsStep.Execute has cognitive complexity 19 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/Seeder/Steps/CreateGroupsStep.cs"},"region":{"startLine":12}}}],"partialFingerprints":{"codehealthFindingId/v1":"2b9422587d0468592f0d9a391dd1131f6243dd8b791c019ab56192a61e3873b2"}},{"ruleId":"D2","level":"warning","message":{"text":"EventsController.List (cognitive 18): EventsController.List has cognitive complexity 18 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Dirt/Public/Controllers/EventsController.cs"},"region":{"startLine":56}}}],"partialFingerprints":{"codehealthFindingId/v1":"05eb204348c95e2793ab495f2d28786469cdfd060edc00dc27ef2545125b3388"}},{"ruleId":"D2","level":"warning","message":{"text":"AdminRecoverAccountCommand.RecoverAccountAsync (cognitive 18): AdminRecoverAccountCommand.RecoverAccountAsync has cognitive complexity 18 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/OrganizationFeatures/AccountRecovery/v2/AdminRecoverAccountCommand.cs"},"region":{"startLine":34}}}],"partialFingerprints":{"codehealthFindingId/v1":"04818f27e747730e9278eb6c7fc5150fdb30f62c235afa2bc550d3c934efcf29"}},{"ruleId":"D2","level":"warning","message":{"text":"LicensingService.LicensingService.ctor (cognitive 18): LicensingService.LicensingService.ctor has cognitive complexity 18 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Services/Implementations/LicensingService.cs"},"region":{"startLine":49}}}],"partialFingerprints":{"codehealthFindingId/v1":"7482acf50eb0085971fb38f961d09522b898ca1ffc1820a78a9a5dcbf9407afa"}},{"ruleId":"D2","level":"warning","message":{"text":"SecretRepository.BuildSecretAccessQuery (cognitive 18): SecretRepository.BuildSecretAccessQuery has cognitive complexity 18 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Commercial.Infrastructure.EntityFramework/SecretsManager/Repositories/SecretRepository.cs"},"region":{"startLine":476}}}],"partialFingerprints":{"codehealthFindingId/v1":"345c4e6a646a019bf406b5142a2d2dd95c4876dff410b59583741c6e5af2ce96"}},{"ruleId":"D2","level":"warning","message":{"text":"CreateGroupsStep.ComputeUsersPerGroup (cognitive 18): CreateGroupsStep.ComputeUsersPerGroup has cognitive complexity 18 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/Seeder/Steps/CreateGroupsStep.cs"},"region":{"startLine":75}}}],"partialFingerprints":{"codehealthFindingId/v1":"e72c3e754dd6a41a47c6e50d9bc46bbf082c2c8a233fc0066ffab3e02a5a09c9"}},{"ruleId":"D2","level":"warning","message":{"text":"SecretVersionsController.RestoreVersionAsync (cognitive 17): SecretVersionsController.RestoreVersionAsync has cognitive complexity 17 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/SecretsManager/Controllers/SecretVersionsController.cs"},"region":{"startLine":181}}}],"partialFingerprints":{"codehealthFindingId/v1":"6c28cae2f14333dda4113c025147063f634de948726d8916481020a8cdd506b9"}},{"ruleId":"D2","level":"warning","message":{"text":"MultipartFormDataHelper.GetFileAsync (cognitive 17): MultipartFormDataHelper.GetFileAsync has cognitive complexity 17 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Utilities/MultipartFormDataHelper.cs"},"region":{"startLine":17}}}],"partialFingerprints":{"codehealthFindingId/v1":"90542c1e9f5f60797b707c39702c0b5633979b954e56c3a3d70695ed93986d76"}},{"ruleId":"D2","level":"warning","message":{"text":"StripeEventUtilityService.AttemptToPayInvoiceWithBraintreeAsync (cognitive 17): StripeEventUtilityService.AttemptToPayInvoiceWithBraintreeAsync has cognitive complexity 17 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Billing/Services/Implementations/StripeEventUtilityService.cs"},"region":{"startLine":265}}}],"partialFingerprints":{"codehealthFindingId/v1":"9151c30b74cbf4ac057c826e9dc97d371c886796cc30392db8b60ac94c57d95a"}},{"ruleId":"D2","level":"warning","message":{"text":"AdminRecoverAccountValidator.ValidateAsync (cognitive 17): AdminRecoverAccountValidator.ValidateAsync has cognitive complexity 17 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/OrganizationFeatures/AccountRecovery/v2/AdminRecoverAccountValidator.cs"},"region":{"startLine":15}}}],"partialFingerprints":{"codehealthFindingId/v1":"5e47ce54b9b507237849a3ffa5b547ffe6d72ae03266517d3d583bf12b899ad7"}},{"ruleId":"D2","level":"warning","message":{"text":"CipherService.StorageBytesRemainingForCipherAsync (cognitive 17): CipherService.StorageBytesRemainingForCipherAsync has cognitive complexity 17 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Vault/Services/Implementations/CipherService.cs"},"region":{"startLine":964}}}],"partialFingerprints":{"codehealthFindingId/v1":"17f054afe856df7940eedd2f4ad221fcdbcfb0afd28c797820fe1a0b1b52d546"}},{"ruleId":"D2","level":"warning","message":{"text":"CreateCipherFoldersStep.Execute (cognitive 17): CreateCipherFoldersStep.Execute has cognitive complexity 17 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/Seeder/Steps/CreateCipherFoldersStep.cs"},"region":{"startLine":13}}}],"partialFingerprints":{"codehealthFindingId/v1":"357252e37b29b00554a1461be8b441c77487d741b8192bbf8153f49473e10f27"}},{"ruleId":"D2","level":"warning","message":{"text":"GeneratePersonalCiphersStep.Execute (cognitive 17): GeneratePersonalCiphersStep.Execute has cognitive complexity 17 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/Seeder/Steps/GeneratePersonalCiphersStep.cs"},"region":{"startLine":28}}}],"partialFingerprints":{"codehealthFindingId/v1":"346a619206ffe22a759a1e5037bf4fa56ef09b7ffc7a939d39ed100a4c58515a"}},{"ruleId":"D2","level":"warning","message":{"text":"ToolsController.GenerateLicense (cognitive 16): ToolsController.GenerateLicense has cognitive complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/Controllers/ToolsController.cs"},"region":{"startLine":267}}}],"partialFingerprints":{"codehealthFindingId/v1":"07ebabc1e7580d62924651c8d0b1062513b8bcb4266e9d7c3d38550060441fdd"}},{"ruleId":"D2","level":"warning","message":{"text":"TwoFactorYubiKeyResponseModel.TwoFactorYubiKeyResponseModel.ctor (cognitive 16): TwoFactorYubiKeyResponseModel.TwoFactorYubiKeyResponseModel.ctor has cognitive complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Models/Response/TwoFactor/TwoFactorYubiKeyResponseModel.cs"},"region":{"startLine":12}}}],"partialFingerprints":{"codehealthFindingId/v1":"2b0fe67721f7ef9391dbd04e1bf9133a4889d25498a10bcb27d592253c50e836"}},{"ruleId":"D2","level":"warning","message":{"text":"ProviderEventService.TryRecordInvoiceLineItems (cognitive 16): ProviderEventService.TryRecordInvoiceLineItems has cognitive complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Billing/Services/Implementations/ProviderEventService.cs"},"region":{"startLine":24}}}],"partialFingerprints":{"codehealthFindingId/v1":"e360a722b9609a3435a23ed645d7ea370ed6e687d1600e1d93fdcc01b9f1a6e8"}},{"ruleId":"D2","level":"warning","message":{"text":"UpcomingInvoiceHandler.EnableAutomaticTaxAsync (cognitive 16): UpcomingInvoiceHandler.EnableAutomaticTaxAsync has cognitive complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Billing/Services/Implementations/UpcomingInvoiceHandler.cs"},"region":{"startLine":923}}}],"partialFingerprints":{"codehealthFindingId/v1":"bd4a8ca253f39c09d2786fdcaec30beac9cd7434ad5ac09897da21b7fb3cd094"}},{"ruleId":"D2","level":"warning","message":{"text":"RemoveOrganizationUserCommand.RepositoryRemoveUserAsync (cognitive 16): RemoveOrganizationUserCommand.RepositoryRemoveUserAsync has cognitive complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/OrganizationFeatures/OrganizationUsers/RemoveOrganizationUserCommand.cs"},"region":{"startLine":140}}}],"partialFingerprints":{"codehealthFindingId/v1":"b7a756b3c1fc49b485ad6bb8709d72b36041ef8d7f90af112f9aa21e6d1783a8"}},{"ruleId":"D2","level":"warning","message":{"text":"AuthRequestService.UpdateAuthRequestAsync (cognitive 16): AuthRequestService.UpdateAuthRequestAsync has cognitive complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Services/Implementations/AuthRequestService.cs"},"region":{"startLine":178}}}],"partialFingerprints":{"codehealthFindingId/v1":"a461eb53980aaaa04bc35500fc651faa46a751d596d2c9c4e189302e535eaf25"}},{"ruleId":"D2","level":"warning","message":{"text":"RegisterUserCommand.RegisterUserViaOrganizationInviteToken (cognitive 16): RegisterUserCommand.RegisterUserViaOrganizationInviteToken has cognitive complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/UserFeatures/Registration/Implementations/RegisterUserCommand.cs"},"region":{"startLine":111}}}],"partialFingerprints":{"codehealthFindingId/v1":"1bef69df9513f588ccf22dafc1bfeb9a5ed7f2ce8a35fda82e22e6592822e099"}},{"ruleId":"D2","level":"warning","message":{"text":"UpgradeOrganizationPlanVNextCommand.Run (cognitive 16): UpgradeOrganizationPlanVNextCommand.Run has cognitive complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Organizations/Commands/UpgradeOrganizationPlanVNextCommand.cs"},"region":{"startLine":55}}}],"partialFingerprints":{"codehealthFindingId/v1":"5e117ae7baa75f6d9fd6f74207a58331bce6853da0b387011e6823af1e7d1239"}},{"ruleId":"D2","level":"warning","message":{"text":"StripePaymentService.CancelAndRecoverChargesAsync (cognitive 16): StripePaymentService.CancelAndRecoverChargesAsync has cognitive complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Services/Implementations/StripePaymentService.cs"},"region":{"startLine":298}}}],"partialFingerprints":{"codehealthFindingId/v1":"c3310c9ec773cc0693ffb21ee888ab730b2035325bcb13f4ee9c7c0c261416a0"}},{"ruleId":"D2","level":"warning","message":{"text":"UpdateSecretsManagerSubscriptionCommand.ValidateSmSeatsUpdateAsync (cognitive 16): UpdateSecretsManagerSubscriptionCommand.ValidateSmSeatsUpdateAsync has cognitive complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/OrganizationFeatures/OrganizationSubscriptions/UpdateSecretsManagerSubscriptionCommand.cs"},"region":{"startLine":255}}}],"partialFingerprints":{"codehealthFindingId/v1":"e2eb3671e7e13be4d96c5405f80acf7f28dabb4ef43627652774da2806f7a9a9"}},{"ruleId":"D2","level":"warning","message":{"text":"UpdateSecretsManagerSubscriptionCommand.ValidateSmServiceAccountsUpdateAsync (cognitive 16): UpdateSecretsManagerSubscriptionCommand.ValidateSmServiceAccountsUpdateAsync has cognitive complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/OrganizationFeatures/OrganizationSubscriptions/UpdateSecretsManagerSubscriptionCommand.cs"},"region":{"startLine":322}}}],"partialFingerprints":{"codehealthFindingId/v1":"40b14d1e3738674846050a48bbf92cb755c3c7d48969c38c96f52addb524f5e1"}},{"ruleId":"D2","level":"warning","message":{"text":"AzureQueueHostedService.ExecuteAsync (cognitive 16): AzureQueueHostedService.ExecuteAsync has cognitive complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventsProcessor/AzureQueueHostedService.cs"},"region":{"startLine":58}}}],"partialFingerprints":{"codehealthFindingId/v1":"6cb2705821b037819b0dad17a691d2efe1f7b637915a6d8ca849a74660e76dbc"}},{"ruleId":"D2","level":"warning","message":{"text":"IconsController.Get (cognitive 16): IconsController.Get has cognitive complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Icons/Controllers/IconsController.cs"},"region":{"startLine":55}}}],"partialFingerprints":{"codehealthFindingId/v1":"422fef0835ba7a3c06c7eccd5d9a630d01dc64ea8426c395bba35d63ef3e791a"}},{"ruleId":"D2","level":"warning","message":{"text":"IconLink.StripIcoEmbeddedPngMetadata (cognitive 16): IconLink.StripIcoEmbeddedPngMetadata has cognitive complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Icons/Models/IconLink.cs"},"region":{"startLine":284}}}],"partialFingerprints":{"codehealthFindingId/v1":"22412d223ad5094d5c1e539f86ea0d46b8b882d334705076bd68a7001fa89648"}},{"ruleId":"D2","level":"warning","message":{"text":"CertBuilder.BuildForInstall (cognitive 16): CertBuilder.BuildForInstall has cognitive complexity 16 (threshold 15)."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/Setup/CertBuilder.cs"},"region":{"startLine":12}}}],"partialFingerprints":{"codehealthFindingId/v1":"de05bd9fadc2adfefb3c7d2c85cb4d9d77ba0139608020a29a78366b155db5e9"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: Controllers/OrganizationsController.cs: FileTooLong \u2014 544 lines, 0 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/AdminConsole/Controllers/OrganizationsController.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"ea03a1c39404f6ea536eeddd4c684885ceb2861772ddbdc06caf8e8c58493942"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: Controllers/OrganizationUsersController.cs: FileTooLong \u2014 566 lines, 0 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Controllers/OrganizationUsersController.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"8572b95b0d596ded824bdaa4d750cf6af4e9d23ad2ba410af83d9982a4495013"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: Controllers/CiphersController.cs: FileTooLong \u2014 903 lines, 0 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Controllers/CiphersController.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"0dbfdb11c8f35385593c55d62c4e5e6734173e59a8cd737de1d0f77d9b6a1d25"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: Implementations/UpcomingInvoiceHandler.cs: FileTooLong \u2014 624 lines, 0 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Billing/Services/Implementations/UpcomingInvoiceHandler.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"3398a32d0c453e72cc9e67e4a462e3ac9738242d9d410d36eb0c46fa705ec95a"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: Implementations/OrganizationService.cs: FileTooLong \u2014 578 lines, 0 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/Services/Implementations/OrganizationService.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"e4645de23ea187b5052b558a0ef0ab80ed6abb047f9ba4838bfe6f5d97dfe76c"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: Implementations/StripePaymentService.cs: FileTooLong \u2014 546 lines, 0 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Services/Implementations/StripePaymentService.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"bec8a2fca55833e2d1629949b4cde9e310e5084d40660a4bd921be0d82e743fb"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: Implementations/TaxService.cs: FileTooLong \u2014 661 lines, 0 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Tax/Services/Implementations/TaxService.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"cfebe7c74302d57909136a9244b97d68da3f6ae63f8d6c24f7bf05a001fc193e"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: Mail/HandlebarsMailService.cs: FileTooLong \u2014 1069 lines, 0 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Platform/Mail/HandlebarsMailService.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"78e9c36244d7666c3349b424272496109f860f3cff0724173b0e9671d71ee2b0"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: Implementations/UserService.cs: FileTooLong \u2014 652 lines, 0 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Services/Implementations/UserService.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"397bcc6f95c60b6708c0756e64c6de3961b29a38b0fe6f81874fccce35b521ac"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: Implementations/CipherService.cs: FileTooLong \u2014 636 lines, 0 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Vault/Services/Implementations/CipherService.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"38e99bb8508a7ce4fdb57c5993c98f463c56b8665448bd8d7f3d4c4fba55a1c4"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: Repositories/CipherRepository.cs: FileTooLong \u2014 576 lines, 0 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.Dapper/Vault/Repositories/CipherRepository.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"f90d2d84e5fe322355d62b983be9a65a0e067206540547335b3a8b09aa68da24"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: Repositories/CollectionRepository.cs: FileTooLong \u2014 586 lines, 0 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/AdminConsole/Repositories/CollectionRepository.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"ef581b00b41ec3a0346609e8cfa93e3b10faf979285965490123c3ae338c7268"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: Repositories/OrganizationUserRepository.cs: FileTooLong \u2014 694 lines, 0 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/AdminConsole/Repositories/OrganizationUserRepository.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"f37e15b3e693ea5c8f23992cbd2893a008d26b637693bafce806a343fd9a4ca8"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: Repositories/CipherRepository.cs: FileTooLong \u2014 670 lines, 0 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/Vault/Repositories/CipherRepository.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"14563735f268536610743e2c9d8f82f75a8947f33d41ebcb75ea6359e4e25462"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: Utilities/ServiceCollectionExtensions.cs: FileTooLong \u2014 557 lines, 0 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/SharedWeb/Utilities/ServiceCollectionExtensions.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"045f4c2eddf4457d93f9e4565cfb5733ef59e57283e504f2ac0dbc3f5548bb92"}},{"ruleId":"D3","level":"warning","message":{"text":"FileTooLong: Services/ProviderBillingService.cs: FileTooLong \u2014 524 lines, 0 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Commercial.Core/Billing/Providers/Services/ProviderBillingService.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"d9ae928f4c48243d9857b71819f1cd28c7e9a0116f7492e4f3b3ed4634d33aee"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: OrganizationsController: ClassTooLong \u2014 508 lines, 16 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/AdminConsole/Controllers/OrganizationsController.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"9046af0348731f80505d35899a7d9c3fe7c82871a447532a1207d0d2d3415ac2"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: HostBuilderExtensions: TooManyMethods \u2014 620 lines, 40 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"root/.nuget/packages/bitwarden.server.sdk/1.5.2/Content/HostBuilderExtensions.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"994356afa5610ad325ee9d9139f9a95fd88007b29e20c0b00be2bb8065cbbe24"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: OrganizationUsersController: TooManyMethods \u2014 519 lines, 46 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Controllers/OrganizationUsersController.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"a93f9e51009049212c3a06c2de8040e92ba78d91251f760f0ded79a298d33561"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: AccountsController: TooManyMethods \u2014 442 lines, 36 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Controllers/AccountsController.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"17a2dc731b2398e8712a5ea35051b3e186ce95e244738a53d6b87fd826bdde0f"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: TwoFactorController: TooManyMethods \u2014 323 lines, 37 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Controllers/TwoFactorController.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"5ba83ac8c3a95f1aaece690f10735c2e985c1737ae04e72c134daa319f9eaa64"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: CiphersController: TooManyMethods \u2014 874 lines, 82 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Controllers/CiphersController.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"9e06aaf00aaba840c69e837c48a7e5811b5ee42397364071d49e28134b8e583f"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: SubscriptionUpdatedHandler: ClassTooLong \u2014 417 lines, 23 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Billing/Services/Implementations/SubscriptionUpdatedHandler.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"6ca4e52b9635397ae0f2294cce26897dcba296fdbd8d37b2fc3904527c79a112"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: UpcomingInvoiceHandler: ClassTooLong \u2014 593 lines, 23 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Billing/Services/Implementations/UpcomingInvoiceHandler.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"981c4dc39023a88330e4c1eae376c68393ba1ed1e02acb29c24d58288cdbe64e"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: OrganizationService: ClassTooLong \u2014 548 lines, 27 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/Services/Implementations/OrganizationService.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"a9921042f2b0b964ae8fc0103931910838ad39c70f35adfaba7acb3145493849"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: StripeAdapter: TooManyMethods \u2014 155 lines, 53 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Services/Implementations/StripeAdapter.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"a4c259d7f7c45f054f756e169c4c2e217fbd60f5516b3ba5141ec1aa9177c55d"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: StripePaymentService: ClassTooLong \u2014 525 lines, 29 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Services/Implementations/StripePaymentService.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"850a0446a4049aea4eba141bd13df94279576a9877ddfa243e46ce8fb69363e3"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: TaxService: ClassTooLong \u2014 658 lines, 2 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Tax/Services/Implementations/TaxService.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"2209c71c371222689b7159195d6707d36160eb8419c9800ed7051f6aa776d561"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: CurrentContext: TooManyMethods \u2014 256 lines, 39 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Context/CurrentContext.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"5d3e594fee1e5116e653b8fca8e77e2ef3cb5cb2f2ac0d9ca2ef6499744613bb"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: EventService: TooManyMethods \u2014 421 lines, 38 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Dirt/Services/Implementations/EventService.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"0d77c8afbe302245e2f7b3a3d6d2b054a466f547bcc47eef76a117136dfadbb0"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: HandlebarsMailService: TooManyMethods \u2014 1036 lines, 86 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Platform/Mail/HandlebarsMailService.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"f0418fe1dcb8027cc126513a30d1a97b67c9fa7dc5dd51e7a5111e4198df449a"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: NoopMailService: TooManyMethods \u2014 162 lines, 68 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Platform/Mail/NoopMailService.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"fb5401554e08526f441b12bff52ab5cae48b1020beb13c19a91f552acf696f1b"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: UserService: TooManyMethods \u2014 614 lines, 53 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Services/Implementations/UserService.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"41698f514ed31d0240320d716ef3ddd565156284d205b55b2460865e02088bb3"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: GlobalSettings: ClassTooLong \u2014 473 lines, 4 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Settings/GlobalSettings.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"5d6c6d582a493915a31c642f1ae87a99c20661d360070590059d4782037cacd4"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: CoreHelpers: TooManyMethods \u2014 438 lines, 54 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Utilities/CoreHelpers.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"d0a50bea670be91916c332a3bed3c6e2cca5cff7c8c1fb781ccda6b4013c9cca"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: CipherService: TooManyMethods \u2014 616 lines, 40 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Vault/Services/Implementations/CipherService.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"d68bbaa7215c5462e84d6f74ed42898b4f51da95e3f17ecd73fc34e1c47a92ef"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: OrganizationUserRepository: TooManyMethods \u2014 411 lines, 44 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.Dapper/AdminConsole/Repositories/OrganizationUserRepository.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"04112fd8baba85d4f5f5a4ba100564e471516bf7848b14967042aca39005e56b"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: UserRepository: TooManyMethods \u2014 343 lines, 34 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.Dapper/Repositories/UserRepository.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"41ee1d9290850e0ac077ca389452ac7dca29f80df900d99edd9bb3ef5e35c49e"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: CipherRepository: TooManyMethods \u2014 561 lines, 43 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.Dapper/Vault/Repositories/CipherRepository.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"97995fa20bed83ff9ca74c1336b88cee769b58eec5af502fafa83fca7f1ca748"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: CollectionRepository: ClassTooLong \u2014 575 lines, 25 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/AdminConsole/Repositories/CollectionRepository.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"b657028547db6f12aad5c6147de7299e7718535b9f07727d342278d767a59daf"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: OrganizationUserRepository: TooManyMethods \u2014 676 lines, 46 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/AdminConsole/Repositories/OrganizationUserRepository.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"9bae84f5813a8fbb4c9a735c4f05382dbeeef6fe17a8fb664372b5f1bdbb7175"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: CipherRepository: TooManyMethods \u2014 646 lines, 42 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/Vault/Repositories/CipherRepository.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"75d69ede367d399923780f08e90fbc5726fce2e624537aa6e1d19ca59910e048"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: ServiceCollectionExtensions: ClassTooLong \u2014 467 lines, 24 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/SharedWeb/Utilities/ServiceCollectionExtensions.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"9d2e91cd1325a11017b600d5288af39dcac5f857457455d8c27497596fdb60a4"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: ProviderService: ClassTooLong \u2014 405 lines, 27 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Commercial.Core/AdminConsole/Services/ProviderService.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"1e3d263b9b628de952e47fcaf8a203e5ef1591eb4374e67e6b24a04ae6a3f3a5"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: ProviderBillingService: ClassTooLong \u2014 491 lines, 15 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Commercial.Core/Billing/Providers/Services/ProviderBillingService.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"63cc817a85f9391b8b4119819254e36395ae729a28ede20f5572699ac6107321"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: AccessPolicyRepository: ClassTooLong \u2014 419 lines, 21 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Commercial.Infrastructure.EntityFramework/SecretsManager/Repositories/AccessPolicyRepository.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"530a9d325cff7792e18332a3b99888d0c3d165024f4ccfded091d1104bd7d16b"}},{"ruleId":"D3","level":"warning","message":{"text":"TooManyMethods: SecretRepository: TooManyMethods \u2014 424 lines, 34 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Commercial.Infrastructure.EntityFramework/SecretsManager/Repositories/SecretRepository.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"4e20a13190650fa3ebfc9e878e036a463a5fb5d8e21dec301543a6814afc2497"}},{"ruleId":"D3","level":"warning","message":{"text":"ClassTooLong: AccountController: ClassTooLong \u2014 454 lines, 22 methods."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Sso/Controllers/AccountController.cs"},"region":{"startLine":0}}}],"partialFingerprints":{"codehealthFindingId/v1":"8797e78a006f46e870a494c91c94e04097e8e68fd078331bcebf7744e485c20c"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (37 lines \u00D7 2): src/Core/AdminConsole/OrganizationFeatures/Organizations/CloudOrganizationSignUpCommand.cs:181-217 | src/Core/AdminConsole/Services/Implementations/OrganizationService.cs:903-939"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/OrganizationFeatures/Organizations/CloudOrganizationSignUpCommand.cs"},"region":{"startLine":181}}}],"partialFingerprints":{"codehealthFindingId/v1":"eb3cb963c9c25449fc621a0773a8dbf8593c7ed4cea865300c2a81f3463bb56d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (28 lines \u00D7 2): src/Core/NotificationCenter/Commands/MarkNotificationDeletedCommand.cs:36-63 | src/Core/NotificationCenter/Commands/MarkNotificationReadCommand.cs:36-63"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/NotificationCenter/Commands/MarkNotificationDeletedCommand.cs"},"region":{"startLine":36}}}],"partialFingerprints":{"codehealthFindingId/v1":"ae8f6a0b39321b125e52903aac6d014ff7ec56530b84af70fd4cdd1505695b3f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (27 lines \u00D7 2): src/Core/Utilities/CoreHelpers.cs:243-269 | util/Setup/Helpers.cs:21-47"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Utilities/CoreHelpers.cs"},"region":{"startLine":243}}}],"partialFingerprints":{"codehealthFindingId/v1":"72ba54621e6b9f59eecef51fa579999ece0dff8c60d63c647072c7a51fa99e8e"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (26 lines \u00D7 2): src/Api/Dirt/Controllers/SlackIntegrationController.cs:48-73 | src/Api/Dirt/Controllers/TeamsIntegrationController.cs:52-77"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Dirt/Controllers/SlackIntegrationController.cs"},"region":{"startLine":48}}}],"partialFingerprints":{"codehealthFindingId/v1":"4019c3a4d09c5e66911f41c04d231b20979ad5ab5e32cbed8770889c22714a2c"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (24 lines \u00D7 2): src/Core/Utilities/KdfSettingsValidator.cs:25-48 | src/Core/Utilities/KdfSettingsValidator.cs:82-102"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Utilities/KdfSettingsValidator.cs"},"region":{"startLine":25}}}],"partialFingerprints":{"codehealthFindingId/v1":"225b94ef5b9c77186afefa6a6e99d5daa2209720e675fa660b6d249055e401ee"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (22 lines \u00D7 2): src/Core/Dirt/Services/Implementations/EventService.cs:489-510 | src/Core/Dirt/Services/Implementations/EventService.cs:516-537"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Dirt/Services/Implementations/EventService.cs"},"region":{"startLine":489}}}],"partialFingerprints":{"codehealthFindingId/v1":"448cb6cc72dd3a4cb566086838293a14b11cdff284a5df6b951b4ec5733460ce"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (22 lines \u00D7 2): src/Core/Dirt/Services/Implementations/EventService.cs:543-564 | src/Core/Dirt/Services/Implementations/EventService.cs:570-591"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Dirt/Services/Implementations/EventService.cs"},"region":{"startLine":543}}}],"partialFingerprints":{"codehealthFindingId/v1":"448cb6cc72dd3a4cb566086838293a14b11cdff284a5df6b951b4ec5733460ce"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (21 lines \u00D7 2): src/Core/Billing/Licenses/Extensions/LicenseExtensions.cs:16-36 | src/Core/Billing/Licenses/Extensions/LicenseExtensions.cs:52-72"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Licenses/Extensions/LicenseExtensions.cs"},"region":{"startLine":16}}}],"partialFingerprints":{"codehealthFindingId/v1":"e3e35dac5af5d4901241fd06efc53e13b51ebc8532b4eba77c813562c26e0fb5"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (21 lines \u00D7 2): src/Core/Billing/Organizations/PlanMigration/Commands/RedeemChurnMitigationOfferCommand.cs:107-127 | src/Core/Billing/Organizations/PlanMigration/Commands/RedeemChurnMitigationOfferCommand.cs:187-203"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Organizations/PlanMigration/Commands/RedeemChurnMitigationOfferCommand.cs"},"region":{"startLine":107}}}],"partialFingerprints":{"codehealthFindingId/v1":"99f66fb9905fae89a1b00e5f303364c92cc1305fe44e6097b330a3289da738eb"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (20 lines \u00D7 2): src/Api/Vault/Controllers/CiphersController.cs:563-582 | src/Api/Vault/Controllers/CiphersController.cs:616-635"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Controllers/CiphersController.cs"},"region":{"startLine":563}}}],"partialFingerprints":{"codehealthFindingId/v1":"2c58587c4b03206bb819c647a021f953d98d02cefb56fd8275998312e5769b86"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (20 lines \u00D7 2): src/Infrastructure.Dapper/AdminConsole/Repositories/CollectionRepository.cs:184-203 | src/Infrastructure.EntityFramework/AdminConsole/Repositories/CollectionRepository.cs:400-419"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.Dapper/AdminConsole/Repositories/CollectionRepository.cs"},"region":{"startLine":184}}}],"partialFingerprints":{"codehealthFindingId/v1":"488572e5c7bc849e421e0d9d81e73e8be100982aa3ec2bc6c53c80803adb20b4"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (20 lines \u00D7 2): src/Infrastructure.Dapper/AdminConsole/Repositories/OrganizationUserRepository.cs:249-268 | src/Infrastructure.EntityFramework/AdminConsole/Repositories/OrganizationUserRepository.cs:493-512"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.Dapper/AdminConsole/Repositories/OrganizationUserRepository.cs"},"region":{"startLine":249}}}],"partialFingerprints":{"codehealthFindingId/v1":"d2c8bc7d83021e616316701acce927f45727e015b7896fc610fb91f34aa6e88b"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (18 lines \u00D7 2): src/Api/Models/Public/Response/ErrorResponseModel.cs:22-37 | src/Core/Models/Api/Response/ErrorResponseModel.cs:29-46"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Models/Public/Response/ErrorResponseModel.cs"},"region":{"startLine":22}}}],"partialFingerprints":{"codehealthFindingId/v1":"3d089f07475ccfa798f10a00d3744f8c15a4726071e704b6694bde9027873c2f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (17 lines \u00D7 2): src/Core/OrganizationFeatures/OrganizationSponsorships/FamiliesForEnterprise/Cloud/ValidateSponsorshipCommand.cs:51-67 | src/Core/OrganizationFeatures/OrganizationSponsorships/FamiliesForEnterprise/Cloud/ValidateSponsorshipCommand.cs:75-89"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/OrganizationFeatures/OrganizationSponsorships/FamiliesForEnterprise/Cloud/ValidateSponsorshipCommand.cs"},"region":{"startLine":51}}}],"partialFingerprints":{"codehealthFindingId/v1":"aa0f7d5b287d46a94ddd65fa9b0e9196a3b7a652a710fbb85fd8d7051447acf9"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (17 lines \u00D7 2): src/Infrastructure.EntityFramework/Dirt/Repositories/OrganizationReportRepository.cs:72-88 | src/Infrastructure.EntityFramework/Dirt/Repositories/OrganizationReportRepository.cs:160-176"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/Dirt/Repositories/OrganizationReportRepository.cs"},"region":{"startLine":72}}}],"partialFingerprints":{"codehealthFindingId/v1":"b278721b0c3695c09321e2219862f6281d29f881c9572a82a4f255e82412a55b"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (16 lines \u00D7 3): src/Core/Dirt/Services/Implementations/SlackService.cs:111-126 | src/Core/Dirt/Services/Implementations/SlackService.cs:162-177 | src/Core/Dirt/Services/Implementations/SlackService.cs:197-212"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Dirt/Services/Implementations/SlackService.cs"},"region":{"startLine":111}}}],"partialFingerprints":{"codehealthFindingId/v1":"b0c1fead657a06c85fb33b9d0cfed7a0c2db1850069201ba76727f511177d2a3"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (16 lines \u00D7 2): src/Core/Vault/Commands/ArchiveCiphersCommand.cs:25-40 | src/Core/Vault/Commands/UnarchiveCiphersCommand.cs:25-40"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Vault/Commands/ArchiveCiphersCommand.cs"},"region":{"startLine":25}}}],"partialFingerprints":{"codehealthFindingId/v1":"a6e0b42d4775019c0fbf859eb4c3e2cae3434da249b24475f1156807b27ebe0f"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (16 lines \u00D7 2): src/Infrastructure.Dapper/Tools/Repositories/SendRepository.cs:263-278 | src/Infrastructure.EntityFramework/Tools/Repositories/SendRepository.cs:224-239"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.Dapper/Tools/Repositories/SendRepository.cs"},"region":{"startLine":263}}}],"partialFingerprints":{"codehealthFindingId/v1":"7c693819062727811c1908a42c14daa3c5c34542492d065bceffd9db32b415c8"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (16 lines \u00D7 2): bitwarden_license/src/Commercial.Infrastructure.EntityFramework/SecretsManager/Repositories/SecretRepository.cs:225-240 | bitwarden_license/src/Commercial.Infrastructure.EntityFramework/SecretsManager/Repositories/SecretRepository.cs:259-274"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Commercial.Infrastructure.EntityFramework/SecretsManager/Repositories/SecretRepository.cs"},"region":{"startLine":225}}}],"partialFingerprints":{"codehealthFindingId/v1":"c3e60ef6aab5aa8e7ec85057ab61bdebd7b2026e3de11ab455c239d8018eedfb"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 3): src/Api/AdminConsole/Models/Request/Organizations/OrganizationUserResetPasswordRequestModel.cs:40-54 | src/Api/Auth/Models/Request/Accounts/PasswordRequestModel.cs:32-46 | src/Api/Auth/Models/Request/Accounts/UpdateTempPasswordRequestModel.cs:30-44"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Models/Request/Organizations/OrganizationUserResetPasswordRequestModel.cs"},"region":{"startLine":40}}}],"partialFingerprints":{"codehealthFindingId/v1":"dec5489ccef2f3953be989e48fcacf1eb8a6441eaa14669afb72d1a72cecd464"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 2): src/Api/Tools/Models/Response/SendAccessResponseModel.cs:35-49 | src/Api/Tools/Models/Response/SendResponseModel.cs:48-62"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Tools/Models/Response/SendAccessResponseModel.cs"},"region":{"startLine":35}}}],"partialFingerprints":{"codehealthFindingId/v1":"ce4ac3daf738cd01daf2ae15e7f9ba4f3638db3759ca26a3b2ddce7f132f02b8"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 2): src/Api/Utilities/ExceptionHandlerFilterAttribute.cs:113-127 | src/SharedWeb/Utilities/ExceptionHandlerFilterAttribute.cs:54-68"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Utilities/ExceptionHandlerFilterAttribute.cs"},"region":{"startLine":113}}}],"partialFingerprints":{"codehealthFindingId/v1":"e0d8a71c485e81567346e83883f77ab731a739aa6755394af8c6e94bd706d52d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (15 lines \u00D7 2): src/Infrastructure.Dapper/Dirt/OrganizationReportRepository.cs:63-77 | src/Infrastructure.Dapper/Dirt/OrganizationReportRepository.cs:137-151"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.Dapper/Dirt/OrganizationReportRepository.cs"},"region":{"startLine":63}}}],"partialFingerprints":{"codehealthFindingId/v1":"fc054d37a6b877ed86bb8f638014b70a1405b4b32a819b5e827c7ad48e698591"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): src/Core/AdminConsole/OrganizationFeatures/OrganizationUsers/OrganizationUserUserDetailsQuery.cs:75-88 | src/Core/AdminConsole/OrganizationFeatures/OrganizationUsers/OrganizationUserUserDetailsQuery.cs:114-127"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/OrganizationFeatures/OrganizationUsers/OrganizationUserUserDetailsQuery.cs"},"region":{"startLine":75}}}],"partialFingerprints":{"codehealthFindingId/v1":"2c5383ea483d0a1d1cfa8e2266511979673ffec219f0a3413640487aea2cc6c8"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (14 lines \u00D7 2): src/Identity/Controllers/SsoController.cs:256-269 | bitwarden_license/src/Sso/Controllers/AccountController.cs:930-943"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Identity/Controllers/SsoController.cs"},"region":{"startLine":256}}}],"partialFingerprints":{"codehealthFindingId/v1":"bb37ccedca173f3435b452eee3607f42fd810d611f7d21ee786a24fe71aeb31e"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 3): util/MySqlMigrations/MySqlDbMigrator.cs:26-38 | util/PostgresMigrations/PostgresDbMigratorDbMigrator.cs:26-38 | util/SqliteMigrations/SqliteDbMigrator.cs:26-38"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/MySqlMigrations/MySqlDbMigrator.cs"},"region":{"startLine":26}}}],"partialFingerprints":{"codehealthFindingId/v1":"838cf33183aed0f06d5e8704690a31b53e719a2050ac9a050c11d762b1c063f5"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): src/Core/AdminConsole/OrganizationFeatures/Groups/CreateGroupCommand.cs:85-96 | src/Core/AdminConsole/OrganizationFeatures/Groups/UpdateGroupCommand.cs:93-105"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/OrganizationFeatures/Groups/CreateGroupCommand.cs"},"region":{"startLine":85}}}],"partialFingerprints":{"codehealthFindingId/v1":"48871763efbf1f4efc01d6bb0c5b58041f4212248419030ce4ad3f6cec236f76"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): src/Core/Auth/UserFeatures/Registration/Implementations/RegisterUserCommand.cs:310-322 | src/Core/Auth/UserFeatures/Registration/Implementations/RegisterUserCommand.cs:329-341"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/UserFeatures/Registration/Implementations/RegisterUserCommand.cs"},"region":{"startLine":310}}}],"partialFingerprints":{"codehealthFindingId/v1":"d8224588368c1fd67acc3c1c46da2ca4c8d9f88cd6a77affbeff1c3db1d7c4d1"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): src/Infrastructure.EntityFramework/Repositories/TransactionRepository.cs:36-48 | src/Infrastructure.EntityFramework/Repositories/TransactionRepository.cs:61-73"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/Repositories/TransactionRepository.cs"},"region":{"startLine":36}}}],"partialFingerprints":{"codehealthFindingId/v1":"8505ea9ce43aeb78e4b881b3bcf746700dd7c9c64c5ea2711deaf4eb8192a348"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (13 lines \u00D7 2): bitwarden_license/src/Scim/Groups/PostGroupCommand.cs:46-58 | bitwarden_license/src/Scim/Groups/PutGroupCommand.cs:41-53"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Scim/Groups/PostGroupCommand.cs"},"region":{"startLine":46}}}],"partialFingerprints":{"codehealthFindingId/v1":"9898d2e976bd375410051c33779b47f38015e5a7530101fbd6e4c8e8ca6d9783"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): src/Admin/AdminConsole/Controllers/OrganizationsController.cs:180-191 | src/Admin/AdminConsole/Controllers/OrganizationsController.cs:214-225"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/AdminConsole/Controllers/OrganizationsController.cs"},"region":{"startLine":180}}}],"partialFingerprints":{"codehealthFindingId/v1":"22bbad81e2b028a84c94072c91ada0e2a92bc86044bda5eadec1fca449632535"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): src/Api/SecretsManager/Controllers/SecretsController.cs:346-357 | src/Api/SecretsManager/Controllers/SecretsTrashController.cs:100-111"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/SecretsManager/Controllers/SecretsController.cs"},"region":{"startLine":346}}}],"partialFingerprints":{"codehealthFindingId/v1":"aa9ac29e9cabd3510687ce5c4842fac4bd3c0a60b0c10fa96a28c1e7b6cb47fb"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): src/Core/Vault/Models/Data/CipherDetails.cs:72-83 | src/Core/Vault/Models/Data/CipherOrganizationDetails.cs:21-32"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Vault/Models/Data/CipherDetails.cs"},"region":{"startLine":72}}}],"partialFingerprints":{"codehealthFindingId/v1":"7135d5ee4e0392f046b285f356e702245ff034085713c81ba75a9d6c5722d03a"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (12 lines \u00D7 2): util/Seeder/Steps/CreateCollectionsStep.cs:153-164 | util/Seeder/Steps/CreateCollectionsStep.cs:202-213"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/Seeder/Steps/CreateCollectionsStep.cs"},"region":{"startLine":153}}}],"partialFingerprints":{"codehealthFindingId/v1":"c6a6a1d57d2520498314f6d9ff35cab09d01080335c8bdb3540a2a7d8c50e51c"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): src/Core/AdminConsole/OrganizationFeatures/OrganizationUsers/AutoConfirmUser/AutomaticallyConfirmOrganizationUserCommand.cs:151-160 | src/Core/AdminConsole/OrganizationFeatures/OrganizationUsers/AutoConfirmUser/BulkAutomaticallyConfirmOrganizationUsersCommand.cs:194-204"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/OrganizationFeatures/OrganizationUsers/AutoConfirmUser/AutomaticallyConfirmOrganizationUserCommand.cs"},"region":{"startLine":151}}}],"partialFingerprints":{"codehealthFindingId/v1":"d6eb02a9ec303821e37af8949e16f4bbeacc0a233ec54ef19d9534f2a4581a41"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): src/Core/AdminConsole/OrganizationFeatures/Policies/PolicyEventHandlers/SingleOrgPolicyEventHandler.cs:98-108 | src/Core/AdminConsole/OrganizationFeatures/Policies/PolicyEventHandlers/TwoFactorAuthenticationPolicyEventHandler.cs:70-80"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/OrganizationFeatures/Policies/PolicyEventHandlers/SingleOrgPolicyEventHandler.cs"},"region":{"startLine":98}}}],"partialFingerprints":{"codehealthFindingId/v1":"467802b696e494c965fd24e4921b8e5c99818d654caac4c9cc96b2f8943a5f51"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): src/Core/Auth/Entities/Grant.cs:13-23 | src/Core/Auth/Models/Data/GrantItem.cs:15-25"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Entities/Grant.cs"},"region":{"startLine":13}}}],"partialFingerprints":{"codehealthFindingId/v1":"fe286ddf9a4af234566dc781e05be13a1e6e6048fd2d4bdaa74c1fa7348faf24"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): src/Core/Billing/Models/Business/UserLicense.cs:104-114 | src/Core/Billing/Organizations/Models/OrganizationLicense.cs:246-256"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Models/Business/UserLicense.cs"},"region":{"startLine":104}}}],"partialFingerprints":{"codehealthFindingId/v1":"b94d471e24015fde59c24954ad3f5daa93de0490e2d8ea3dafcbeaf55eb20438"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): src/Core/Dirt/Entities/Event.cs:26-36 | src/Core/Dirt/Models/Data/EventTableEntity.cs:93-103"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Dirt/Entities/Event.cs"},"region":{"startLine":26}}}],"partialFingerprints":{"codehealthFindingId/v1":"d3baae5ddb0bdbaa758b1c3043d94d555015771c364f415acc865ec1ca8d5342"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): src/Identity/Startup.cs:80-90 | bitwarden_license/src/Sso/Startup.cs:56-66"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Identity/Startup.cs"},"region":{"startLine":80}}}],"partialFingerprints":{"codehealthFindingId/v1":"d529781e79890651c76c2061d9a84e58ffc7c2106cbcc0c528a7b6dc876e96bf"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): src/Infrastructure.Dapper/AdminConsole/Repositories/GroupRepository.cs:145-155 | src/Infrastructure.Dapper/AdminConsole/Repositories/GroupRepository.cs:159-169"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.Dapper/AdminConsole/Repositories/GroupRepository.cs"},"region":{"startLine":145}}}],"partialFingerprints":{"codehealthFindingId/v1":"799883bc46adefdce77724d643609b76dae5be909c848cc77c727e6ae9e0303d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): src/Infrastructure.Dapper/Tools/Repositories/SendRepository.cs:53-63 | src/Infrastructure.Dapper/Tools/Repositories/SendRepository.cs:81-91"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.Dapper/Tools/Repositories/SendRepository.cs"},"region":{"startLine":53}}}],"partialFingerprints":{"codehealthFindingId/v1":"9354d7f8d1559081dac0180d7c8bf8007b27a82811b00c308079f698d7c46100"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (11 lines \u00D7 2): src/Infrastructure.Dapper/Tools/Repositories/SendRepository.cs:67-77 | src/Infrastructure.Dapper/Tools/Repositories/SendRepository.cs:95-105"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.Dapper/Tools/Repositories/SendRepository.cs"},"region":{"startLine":67}}}],"partialFingerprints":{"codehealthFindingId/v1":"9354d7f8d1559081dac0180d7c8bf8007b27a82811b00c308079f698d7c46100"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 3): src/Infrastructure.Dapper/Vault/Repositories/CipherRepository.cs:244-253 | src/Infrastructure.Dapper/Vault/Repositories/CipherRepository.cs:596-605 | src/Infrastructure.Dapper/Vault/Repositories/CipherRepository.cs:609-618"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.Dapper/Vault/Repositories/CipherRepository.cs"},"region":{"startLine":244}}}],"partialFingerprints":{"codehealthFindingId/v1":"82ba1dd7dedc1b4b72bf470b70f81de167c990ec618b20e7802e4018ffe5e5c6"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (10 lines \u00D7 3): util/Seeder/Steps/CreateCipherCollectionsStep.cs:19-28 | util/Seeder/Steps/CreateCipherFavoritesStep.cs:19-28 | util/Seeder/Steps/CreateCipherFoldersStep.cs:20-29"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/Seeder/Steps/CreateCipherCollectionsStep.cs"},"region":{"startLine":19}}}],"partialFingerprints":{"codehealthFindingId/v1":"d7b41d733685ca9035d89ea372645dfd64de046c53a9ee940e0c4567c799ea92"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 3): src/Infrastructure.EntityFramework/Dirt/Repositories/EventRepository.cs:70-78 | src/Infrastructure.EntityFramework/Dirt/Repositories/EventRepository.cs:170-178 | src/Infrastructure.EntityFramework/Dirt/Repositories/EventRepository.cs:221-229"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/Dirt/Repositories/EventRepository.cs"},"region":{"startLine":70}}}],"partialFingerprints":{"codehealthFindingId/v1":"7b713f4bb6493deee7ef1fad3c99b67f56ff18f04e013d692990b983e9a32156"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 3): src/Infrastructure.EntityFramework/Dirt/Repositories/EventRepository.cs:184-192 | src/Infrastructure.EntityFramework/Dirt/Repositories/EventRepository.cs:235-243 | src/Infrastructure.EntityFramework/Dirt/Repositories/EventRepository.cs:260-268"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/Dirt/Repositories/EventRepository.cs"},"region":{"startLine":184}}}],"partialFingerprints":{"codehealthFindingId/v1":"7b713f4bb6493deee7ef1fad3c99b67f56ff18f04e013d692990b983e9a32156"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 3): src/Infrastructure.EntityFramework/Dirt/Repositories/EventRepository.cs:195-203 | src/Infrastructure.EntityFramework/Dirt/Repositories/EventRepository.cs:246-254 | src/Infrastructure.EntityFramework/Dirt/Repositories/EventRepository.cs:271-279"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/Dirt/Repositories/EventRepository.cs"},"region":{"startLine":195}}}],"partialFingerprints":{"codehealthFindingId/v1":"7b713f4bb6493deee7ef1fad3c99b67f56ff18f04e013d692990b983e9a32156"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): src/Api/Utilities/ExceptionHandlerFilterAttribute.cs:167-175 | src/SharedWeb/Utilities/ExceptionHandlerFilterAttribute.cs:83-91"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Utilities/ExceptionHandlerFilterAttribute.cs"},"region":{"startLine":167}}}],"partialFingerprints":{"codehealthFindingId/v1":"d36b1e5d16f976d96699cce90c866d15b99beaddbf8c11718536876115e49716"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): src/Core/Platform/Mail/HandlebarsMailService.cs:993-1001 | src/Core/Platform/Mail/HandlebarsMailService.cs:1002-1009"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Platform/Mail/HandlebarsMailService.cs"},"region":{"startLine":993}}}],"partialFingerprints":{"codehealthFindingId/v1":"05275ad167ddebd7abb51a854300c49eebd3c8d1a3430fc1b7936e35e9260512"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): src/Icons/Models/DomainIcons.cs:79-87 | src/Icons/Models/DomainIcons.cs:90-98"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Icons/Models/DomainIcons.cs"},"region":{"startLine":79}}}],"partialFingerprints":{"codehealthFindingId/v1":"d7f6c10e6c1082f5cc4dedcf0a156da90275606bef80fc6efa44c9dae4d9bf16"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (9 lines \u00D7 2): src/Infrastructure.EntityFramework/Dirt/Repositories/EventRepository.cs:159-167 | src/Infrastructure.EntityFramework/Dirt/Repositories/EventRepository.cs:210-218"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/Dirt/Repositories/EventRepository.cs"},"region":{"startLine":159}}}],"partialFingerprints":{"codehealthFindingId/v1":"5750a8e1e8ebf0e9107959d10d819c799f5b4c7d3a84ce5ea2596e5cfb5fdade"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): src/Core/AdminConsole/OrganizationFeatures/Policies/PolicyEventHandlers/SingleOrgPolicyEventHandler.cs:76-83 | src/Core/AdminConsole/OrganizationFeatures/Policies/PolicyEventHandlers/TwoFactorAuthenticationPolicyEventHandler.cs:48-55"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/OrganizationFeatures/Policies/PolicyEventHandlers/SingleOrgPolicyEventHandler.cs"},"region":{"startLine":76}}}],"partialFingerprints":{"codehealthFindingId/v1":"db5a22a8f53cf3ee192cccdf4492efcd2c111a39a42c28502630ce00fc4b4130"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): src/Core/Vault/Services/Implementations/CipherService.cs:446-453 | src/Core/Vault/Services/Implementations/CipherService.cs:762-769"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Vault/Services/Implementations/CipherService.cs"},"region":{"startLine":446}}}],"partialFingerprints":{"codehealthFindingId/v1":"9c4e75c164fcaf72e17e014ca720b8f9ed5e45c8f87df27d3e3075f6ad31b7cf"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): src/Infrastructure.Dapper/DapperServiceCollectionExtensions.cs:68-75 | src/Infrastructure.EntityFramework/EntityFrameworkServiceCollectionExtensions.cs:105-112"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.Dapper/DapperServiceCollectionExtensions.cs"},"region":{"startLine":68}}}],"partialFingerprints":{"codehealthFindingId/v1":"0c45b340d91a73522483f4b4253d0a3215e19e1bb9c58b482ae1d6c32dc083b8"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): src/Infrastructure.EntityFramework/Repositories/BaseEntityFrameworkRepository.cs:61-68 | src/Infrastructure.EntityFramework/Repositories/BaseEntityFrameworkRepository.cs:95-102"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/Repositories/BaseEntityFrameworkRepository.cs"},"region":{"startLine":61}}}],"partialFingerprints":{"codehealthFindingId/v1":"b1d644afca0c4fee44499f1a6e3b9b073759a22416c2aff4453f03e57b4c3451"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): src/Infrastructure.EntityFramework/Repositories/DatabaseContext.cs:125-132 | src/Infrastructure.EntityFramework/Repositories/DatabaseContext.cs:133-137"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/Repositories/DatabaseContext.cs"},"region":{"startLine":125}}}],"partialFingerprints":{"codehealthFindingId/v1":"72d60cff6ea3da85aa052e444e18222ba5ec8f05b466069b4b52f386dc5db29e"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (8 lines \u00D7 2): util/Seeder/Data/Generators/SecureNoteDataGenerator.cs:120-126 | util/Seeder/Data/Generators/SecureNoteDataGenerator.cs:145-152"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/Seeder/Data/Generators/SecureNoteDataGenerator.cs"},"region":{"startLine":120}}}],"partialFingerprints":{"codehealthFindingId/v1":"cc1ebbe4fb08ea7efc38c0d0a6270380671ad11f32a92a1ea179a7d81877da0b"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): src/Core/Dirt/EventIntegrations/EventIntegrationsServiceCollectionExtensions.cs:396-402 | src/Core/Dirt/EventIntegrations/EventIntegrationsServiceCollectionExtensions.cs:469-475"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Dirt/EventIntegrations/EventIntegrationsServiceCollectionExtensions.cs"},"region":{"startLine":396}}}],"partialFingerprints":{"codehealthFindingId/v1":"dd7b65b0926cc61c1dbbda0cfe0b46a6533daf792693c069ae17fb4cba054593"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): src/Core/NotificationCenter/Authorization/NotificationAuthorizationHandler.cs:50-56 | src/Core/NotificationCenter/Authorization/NotificationAuthorizationHandler.cs:60-66"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/NotificationCenter/Authorization/NotificationAuthorizationHandler.cs"},"region":{"startLine":50}}}],"partialFingerprints":{"codehealthFindingId/v1":"63979287db5b51d376e6a63825e2dae3580206088af8f684a659bddf0bf5ddd4"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): src/Infrastructure.Dapper/DapperServiceCollectionExtensions.cs:35-41 | src/Infrastructure.EntityFramework/EntityFrameworkServiceCollectionExtensions.cs:73-79"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.Dapper/DapperServiceCollectionExtensions.cs"},"region":{"startLine":35}}}],"partialFingerprints":{"codehealthFindingId/v1":"31257e7624b89a5827595810ce7090afb776a9be80f158a8902a8ac9e7543275"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (7 lines \u00D7 2): bitwarden_license/src/Commercial.Infrastructure.EntityFramework/SecretsManager/Repositories/ServiceAccountRepository.cs:28-34 | bitwarden_license/src/Commercial.Infrastructure.EntityFramework/SecretsManager/Repositories/ServiceAccountRepository.cs:55-61"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Commercial.Infrastructure.EntityFramework/SecretsManager/Repositories/ServiceAccountRepository.cs"},"region":{"startLine":28}}}],"partialFingerprints":{"codehealthFindingId/v1":"3893a51c0b6a81b86f1b27ca399ca21e62e4dbdb52f428fa2f027f17ec443a5e"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 3): src/Infrastructure.EntityFramework/SecretsManager/Models/AccessPolicy.cs:19-24 | src/Infrastructure.EntityFramework/SecretsManager/Models/AccessPolicy.cs:25-30 | src/Infrastructure.EntityFramework/SecretsManager/Models/AccessPolicy.cs:31-36"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/SecretsManager/Models/AccessPolicy.cs"},"region":{"startLine":19}}}],"partialFingerprints":{"codehealthFindingId/v1":"e68234adc9513eba879d19a1cc22540cf6db0b80f5a380afac8825939902f6ea"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (6 lines \u00D7 2): src/Core/Dirt/EventIntegrations/EventIntegrationsServiceCollectionExtensions.cs:403-408 | src/Core/Dirt/EventIntegrations/EventIntegrationsServiceCollectionExtensions.cs:476-481"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Dirt/EventIntegrations/EventIntegrationsServiceCollectionExtensions.cs"},"region":{"startLine":403}}}],"partialFingerprints":{"codehealthFindingId/v1":"97cebdc59e2552b7d68134ad740bbeb1441711fd5c378e84a73632d36cd1921d"}},{"ruleId":"D4","level":"warning","message":{"text":"Duplicated block (5 lines \u00D7 2): src/Core/Billing/Extensions/BillingExtensions.cs:17-21 | src/Core/Billing/Pricing/Organizations/PlanAdapter.cs:82-86"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Extensions/BillingExtensions.cs"},"region":{"startLine":17}}}],"partialFingerprints":{"codehealthFindingId/v1":"7710494e71b1b6c55bc8e190dbce5393ccda2e905407d2e6f00cfe109bd0f87d"}},{"ruleId":"D5","level":"warning","message":{"text":"Off the main sequence: AppHost: AppHost: abstractness 0.00, instability 0.00, distance 1.00 \u2014 zone of pain \u2014 concrete and heavily depended-on, so it\u0027s rigid to change."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"87394cbac2f08c2f6524dc44da372390bb12d4738363699beeee728a1d7e7d44"}},{"ruleId":"D5","level":"warning","message":{"text":"Off the main sequence: RustSdk: RustSdk: abstractness 0.00, instability 0.00, distance 1.00 \u2014 zone of pain \u2014 concrete and heavily depended-on, so it\u0027s rigid to change."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"80eae25ac27260a7b390cdc9149510089119bf9345df75be119056cbb91eea1e"}},{"ruleId":"D5","level":"warning","message":{"text":"Off the main sequence: Server: Server: abstractness 0.00, instability 0.00, distance 1.00 \u2014 zone of pain \u2014 concrete and heavily depended-on, so it\u0027s rigid to change."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"f482347449c89f281ee000aa60e4c30ff6614e572087bf35c73ce1e5547a72f7"}},{"ruleId":"D5","level":"warning","message":{"text":"Off the main sequence: Infrastructure.EntityFramework: Infrastructure.EntityFramework: abstractness 0.01, instability 0.02, distance 0.96 \u2014 zone of pain \u2014 concrete and heavily depended-on, so it\u0027s rigid to change."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"de853430f655b6d877baaa6ea5e2e970112ea766ba8f530bb3313b53393a2142"}},{"ruleId":"D5","level":"warning","message":{"text":"Off the main sequence: Infrastructure.Dapper: Infrastructure.Dapper: abstractness 0.03, instability 0.03, distance 0.94 \u2014 zone of pain \u2014 concrete and heavily depended-on, so it\u0027s rigid to change."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"fb4f5199fc5c161d569af1e86a6902e4b6b987b287ea13b9cc987f6ef2d62900"}},{"ruleId":"D5","level":"warning","message":{"text":"Off the main sequence: Migrator: Migrator: abstractness 0.00, instability 0.07, distance 0.93 \u2014 zone of pain \u2014 concrete and heavily depended-on, so it\u0027s rigid to change."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"845fea88147e733b58a69eb899c7d57c1db70cffc368a8b481c9c9a31b34b39a"}},{"ruleId":"D5","level":"warning","message":{"text":"Off the main sequence: SharedWeb: SharedWeb: abstractness 0.00, instability 0.08, distance 0.92 \u2014 zone of pain \u2014 concrete and heavily depended-on, so it\u0027s rigid to change."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"8e8ca9e2c775e2b46f14fe0437be705441338dfa2780fe9874bbc6654db08e1f"}},{"ruleId":"D5","level":"warning","message":{"text":"Off the main sequence: Commercial.Core: Commercial.Core: abstractness 0.00, instability 0.10, distance 0.90 \u2014 zone of pain \u2014 concrete and heavily depended-on, so it\u0027s rigid to change."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"1dd462de66a0ace9f37e5d3ca8d909d1270e779aed0bbba7b12e0beb28726fd5"}},{"ruleId":"D5","level":"warning","message":{"text":"Off the main sequence: Core: Core: abstractness 0.24, instability 0.00, distance 0.76 \u2014 zone of pain \u2014 concrete and heavily depended-on, so it\u0027s rigid to change."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"76dac2e1ea6eb0aec09b50c2a56ac82eb5c4ed3a967cd2da81fe4e4958c30c28"}},{"ruleId":"D5","level":"warning","message":{"text":"Off the main sequence: Commercial.Infrastructure.EntityFramework: Commercial.Infrastructure.EntityFramework: abstractness 0.00, instability 0.25, distance 0.75 \u2014 zone of pain \u2014 concrete and heavily depended-on, so it\u0027s rigid to change."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"542cbb0a63aa7fa646f5d67d434eb4254792939e4ca514e057e817ade47b2e78"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: OrganizationUserRepository (LCOM4 34): OrganizationUserRepository\u0027s methods form 34 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.Dapper/AdminConsole/Repositories/OrganizationUserRepository.cs"},"region":{"startLine":21}}}],"partialFingerprints":{"codehealthFindingId/v1":"170a9bfdf88fdddfbf50cbe668b189a53f70bcd312ec3f0ca1b2e1571808471a"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: OrganizationRepository (LCOM4 22): OrganizationRepository\u0027s methods form 22 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/AdminConsole/Repositories/OrganizationRepository.cs"},"region":{"startLine":22}}}],"partialFingerprints":{"codehealthFindingId/v1":"22657ab58c3d810d53a091d25d7444920202ae73303881dec7d434b75bedf71a"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: OrganizationRepository (LCOM4 21): OrganizationRepository\u0027s methods form 21 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.Dapper/AdminConsole/Repositories/OrganizationRepository.cs"},"region":{"startLine":20}}}],"partialFingerprints":{"codehealthFindingId/v1":"6c148dc1d138c31c91794276f84d3d6c7733ea0b285c498de4ac128d30941e3a"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: UserStore (LCOM4 20): UserStore\u0027s methods form 20 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Identity/UserStore.cs"},"region":{"startLine":13}}}],"partialFingerprints":{"codehealthFindingId/v1":"4db4f71d082c65219e6fa132183620dc3c6bf6e9fbc1f2029cbccb0ee6a41454"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: StripeAdapter (LCOM4 19): StripeAdapter\u0027s methods form 19 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Services/Implementations/StripeAdapter.cs"},"region":{"startLine":16}}}],"partialFingerprints":{"codehealthFindingId/v1":"61e5cc311480412d346b819dcabe035ddb21b86cb0eefe749ccbbae7c5d88e62"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: User (LCOM4 14): User\u0027s methods form 14 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Entities/User.cs"},"region":{"startLine":14}}}],"partialFingerprints":{"codehealthFindingId/v1":"73cfa366a183dd30432f47f3d8aaa1725a1d216df64781e85df7e1711bfe6cd8"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: NoopAttachmentStorageService (LCOM4 14): NoopAttachmentStorageService\u0027s methods form 14 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Vault/Services/NoopImplementations/NoopAttachmentStorageService.cs"},"region":{"startLine":11}}}],"partialFingerprints":{"codehealthFindingId/v1":"3526d67711d87ecbf4ef771b5aeee19d89c4d3a9e87b3a7ee07411880c2021a6"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: UserRepository (LCOM4 13): UserRepository\u0027s methods form 13 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.Dapper/Repositories/UserRepository.cs"},"region":{"startLine":20}}}],"partialFingerprints":{"codehealthFindingId/v1":"b257bf294294754e52ff5e75d240c35c74572192b30d7bdf1d43f934530d129a"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: StripeFacade (LCOM4 11): StripeFacade\u0027s methods form 11 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Billing/Services/Implementations/StripeFacade.cs"},"region":{"startLine":10}}}],"partialFingerprints":{"codehealthFindingId/v1":"f242d9832a56a6da54be4a53ff32ba69c730fc8dca0d5cc97fe25cb1cf3dd630"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: Organization (LCOM4 11): Organization\u0027s methods form 11 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/Entities/Organization.cs"},"region":{"startLine":21}}}],"partialFingerprints":{"codehealthFindingId/v1":"66999c7f5a52c5135e4411bf6054f456e00fcb09e96ae82e783fe4d3ee2e834e"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: Provider (LCOM4 11): Provider\u0027s methods form 11 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/Entities/Provider/Provider.cs"},"region":{"startLine":18}}}],"partialFingerprints":{"codehealthFindingId/v1":"0f404c945d49e553c95864661d6a240124b5c01ae183e60e669abca696283134"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: ToolsController (LCOM4 10): ToolsController\u0027s methods form 10 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/Controllers/ToolsController.cs"},"region":{"startLine":23}}}],"partialFingerprints":{"codehealthFindingId/v1":"8690850d5010f935008d86a9523be04fdd5d5c5f3173ba5a13748fe0e8656986"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: DeviceRepository (LCOM4 10): DeviceRepository\u0027s methods form 10 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/Repositories/DeviceRepository.cs"},"region":{"startLine":15}}}],"partialFingerprints":{"codehealthFindingId/v1":"4869d02664304fea7b3e7bd7886b1b15ea90c8fc996d99571295927ba6a908e3"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: DeviceRepository (LCOM4 9): DeviceRepository\u0027s methods form 9 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.Dapper/Repositories/DeviceRepository.cs"},"region":{"startLine":15}}}],"partialFingerprints":{"codehealthFindingId/v1":"2d8ec476d2d6714d7fd2bf5eb595c69b4df55ccc4693b69481ba912d38ae14ca"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: UserService (LCOM4 8): UserService\u0027s methods form 8 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Services/Implementations/UserService.cs"},"region":{"startLine":44}}}],"partialFingerprints":{"codehealthFindingId/v1":"924f51ca6625f032c0c8ce5054e560f5674436c2a58030770afcdc084f234193"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: SsoConfigurationData (LCOM4 7): SsoConfigurationData\u0027s methods form 7 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Models/Data/SsoConfigurationData.cs"},"region":{"startLine":10}}}],"partialFingerprints":{"codehealthFindingId/v1":"4fe23120ed43070893db3ab5f5849069b13c1467995d972e2a189385c2e37546"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: MaskedPaymentMethod (LCOM4 7): MaskedPaymentMethod\u0027s methods form 7 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Payment/Models/MaskedPaymentMethod.cs"},"region":{"startLine":31}}}],"partialFingerprints":{"codehealthFindingId/v1":"f213d71e18d3216bfba5f0bd0431854636494f6b63e16312e10d199fa6d1bc13"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: NoopSendFileStorageService (LCOM4 7): NoopSendFileStorageService\u0027s methods form 7 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Tools/Services/NoopImplementations/NoopSendFileStorageService.cs"},"region":{"startLine":9}}}],"partialFingerprints":{"codehealthFindingId/v1":"c9ad6f3763a9e08b671abaaa8875fd0e7f08f78cad4d422b13d66d16868e77a4"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: ResourceOwnerPasswordValidator (LCOM4 7): ResourceOwnerPasswordValidator\u0027s methods form 7 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Identity/IdentityServer/RequestValidators/ResourceOwnerPasswordValidator.cs"},"region":{"startLine":21}}}],"partialFingerprints":{"codehealthFindingId/v1":"d8658da3137a3c5b34786584a3a894fe8768fea2f91b75b5048989375c395446"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: WebAuthnGrantValidator (LCOM4 7): WebAuthnGrantValidator\u0027s methods form 7 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Identity/IdentityServer/RequestValidators/WebAuthnGrantValidator.cs"},"region":{"startLine":24}}}],"partialFingerprints":{"codehealthFindingId/v1":"9a22ec36cd1b8e87a67010e11de78320498e4d32280484ca031fa4cd9133898d"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: NoopOrganizationReportStorageService (LCOM4 6): NoopOrganizationReportStorageService\u0027s methods form 6 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Dirt/Reports/Services/NoopOrganizationReportStorageService.cs"},"region":{"startLine":7}}}],"partialFingerprints":{"codehealthFindingId/v1":"a56815156c8652e2ce9b4f4c5a085142a76503ff107f6fa46f2585ec219bb375"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: CustomTokenRequestValidator (LCOM4 6): CustomTokenRequestValidator\u0027s methods form 6 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Identity/IdentityServer/RequestValidators/CustomTokenRequestValidator.cs"},"region":{"startLine":23}}}],"partialFingerprints":{"codehealthFindingId/v1":"7640e56ad310ace8ecdad3020f4abb88b20f915723eaae465b2611597b55b62a"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: AuthRequestRepository (LCOM4 6): AuthRequestRepository\u0027s methods form 6 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.Dapper/Auth/Repositories/AuthRequestRepository.cs"},"region":{"startLine":15}}}],"partialFingerprints":{"codehealthFindingId/v1":"85cee0421257d3cc69092872bdc8b2f8f2a71e1cd5ba6ad3144f2bbdca32079e"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: AuthRequestRepository (LCOM4 6): AuthRequestRepository\u0027s methods form 6 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/Auth/Repositories/AuthRequestRepository.cs"},"region":{"startLine":16}}}],"partialFingerprints":{"codehealthFindingId/v1":"d6446c2032d1881ce64ee7429afb74bb4e5a6f734f470c80c882f18a64d2756e"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: SendRepository (LCOM4 6): SendRepository\u0027s methods form 6 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/Tools/Repositories/SendRepository.cs"},"region":{"startLine":19}}}],"partialFingerprints":{"codehealthFindingId/v1":"dad1c840eadd6fdcb639510af4ee271260aa58e2665d8bdfb756efd78b0a8264"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: DuoUniversalTokenService (LCOM4 5): DuoUniversalTokenService\u0027s methods form 5 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Identity/TokenProviders/DuoUniversalTokenService.cs"},"region":{"startLine":79}}}],"partialFingerprints":{"codehealthFindingId/v1":"966f82c655dcf23bf45798d9390d78b42c2ecf13c125b6c4436bf4b0b9d551f1"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: Cipher (LCOM4 5): Cipher\u0027s methods form 5 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Vault/Entities/Cipher.cs"},"region":{"startLine":11}}}],"partialFingerprints":{"codehealthFindingId/v1":"d01c2da2b516afe78c47771494fd77938d082ed335cdc620794fcf8eb6f78117"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: SecurityTaskController (LCOM4 4): SecurityTaskController\u0027s methods form 4 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Controllers/SecurityTaskController.cs"},"region":{"startLine":17}}}],"partialFingerprints":{"codehealthFindingId/v1":"68b18e76cbd4156ed6c4479e6b3ab7374c61a003dad3f5e466b250699308b127"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: OrganizationUser (LCOM4 4): OrganizationUser\u0027s methods form 4 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/Entities/OrganizationUser.cs"},"region":{"startLine":18}}}],"partialFingerprints":{"codehealthFindingId/v1":"459ca73ba99655e8053e2d4ff242f5b2b88aaf2b4af755a560b0ef7e94c11287"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: OrganizationDomain (LCOM4 4): OrganizationDomain\u0027s methods form 4 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Entities/OrganizationDomain.cs"},"region":{"startLine":8}}}],"partialFingerprints":{"codehealthFindingId/v1":"483efbeac00eedd83d79942a488ed6da079919eed10bbf8d251e24159b8b5e1e"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: AzureAttachmentStorageService (LCOM4 4): AzureAttachmentStorageService\u0027s methods form 4 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Vault/Services/Implementations/AzureAttachmentStorageService.cs"},"region":{"startLine":13}}}],"partialFingerprints":{"codehealthFindingId/v1":"b242fabddd424e67dba4873b56561c57e5b029d0fa8a1e74e73ce779c6877625"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: AccountsController (LCOM4 4): AccountsController\u0027s methods form 4 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Identity/Controllers/AccountsController.cs"},"region":{"startLine":25}}}],"partialFingerprints":{"codehealthFindingId/v1":"498305a43ef16b4214e35170ae2f3c34b4eefdab220e10b042c32ab0a1597417"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: SendRepository (LCOM4 4): SendRepository\u0027s methods form 4 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.Dapper/Tools/Repositories/SendRepository.cs"},"region":{"startLine":20}}}],"partialFingerprints":{"codehealthFindingId/v1":"59545d08230fa8e410c9b049e118fb49aed5f86091f8546b6141c72b7d5124fe"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: Repository (LCOM4 4): Repository\u0027s methods form 4 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/Repositories/Repository.cs"},"region":{"startLine":10}}}],"partialFingerprints":{"codehealthFindingId/v1":"f413bbea4701689d1bc6b5fafb3a71394b34212f62152477fb7ee2c0d999dd9d"}},{"ruleId":"D6","level":"warning","message":{"text":"Low cohesion: SeederContext (LCOM4 4): SeederContext\u0027s methods form 4 groups that share no state and don\u0027t call each other \u2014 a sign it may have several responsibilities. Review whether it splits into focused classes."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/Seeder/Pipeline/SeederContext.cs"},"region":{"startLine":41}}}],"partialFingerprints":{"codehealthFindingId/v1":"fabdb04d36c7b2d990574e4b5b106eaa8b0992d25dae157ea1d951cd99444ec4"}},{"ruleId":"D7","level":"note","message":{"text":"No checkable ADRs to assess: No architecture decision records were found and the project graph is acyclic, so architectural integrity could not be assessed. Add ADRs (with \u0060enforcement: analyzer|test\u0060) to make the architecture\u0027s rules checkable."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9bfa095522c5f2e53a7c1c0405fd8830d318409a6fb74f4288bab05aaf716e52"}},{"ruleId":"D9","level":"note","message":{"text":"Unit tests: 7677 unit test method(s)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"3067d72f6515925eded797ae6deb86f74d157d3bd0b8e2d3a80edaa12ea95d24"}},{"ruleId":"D9","level":"note","message":{"text":"Integration tests: 32 integration test method(s)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"b8ce5913e7f0487c282aa29038cefc209006d3bfe4e8418292f03d5a2d9bc5b9"}},{"ruleId":"D9","level":"note","message":{"text":"BDD tests: 0 BDD test method(s)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"2335ff4716b8a3faefb3014515ddf9f836e46276f415e6cd56462b6bf7742991"}},{"ruleId":"D9","level":"note","message":{"text":"E2E tests: 0 end-to-end test method(s)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9a982d279a9674eceb951bedcbe3f8d344879045f8bee5f9f6f059139e0ed590"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): ExternalCallback_WithInvalidProviderGuid_ReturnsError: Skipped with a documented reason \u2014 a deferral, not lazy debt: This test cannot be executed because the organization ID must be a GUID. See note in test summary."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/test/Sso.IntegrationTest/Controllers/AccountControllerTests.cs"},"region":{"startLine":613}}}],"partialFingerprints":{"codehealthFindingId/v1":"640acd1d20769b3d48286529ef86574ceac4902ce775cb4b9458ce950e5d9f03"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): ExternalCallback_WithNonExistentOrganization_ReturnsError: Skipped with a documented reason \u2014 a deferral, not lazy debt: This code path is unreachable because the SsoConfig must exist to proceed. But the SsoConfig cannot exist without a valid Organization."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/test/Sso.IntegrationTest/Controllers/AccountControllerTests.cs"},"region":{"startLine":651}}}],"partialFingerprints":{"codehealthFindingId/v1":"466f57d6095af400cd21ca47972a49d78773dcdf37d47431a8c88d5b162e557a"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): UpdateGroup_WithUsersAndCollections: Skipped with a documented reason \u2014 a deferral, not lazy debt: Performance test"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Api.IntegrationTest/AdminConsole/Controllers/GroupsControllerPerformanceTests.cs"},"region":{"startLine":23}}}],"partialFingerprints":{"codehealthFindingId/v1":"d38a3387bc3174ef885c2ef493c68aab8f15ca2dbaec6c8eebb9cda9c8c06dcf"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): DeleteOrganization_WithPasswordVerification: Skipped with a documented reason \u2014 a deferral, not lazy debt: Performance test"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Api.IntegrationTest/AdminConsole/Controllers/OrganizationsControllerPerformanceTests.cs"},"region":{"startLine":26}}}],"partialFingerprints":{"codehealthFindingId/v1":"b36379ea42eaa895556f8669a4b95e8f279c1d0145de310369208310939450a7"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): DeleteOrganization_WithTokenVerification: Skipped with a documented reason \u2014 a deferral, not lazy debt: Performance test"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Api.IntegrationTest/AdminConsole/Controllers/OrganizationsControllerPerformanceTests.cs"},"region":{"startLine":77}}}],"partialFingerprints":{"codehealthFindingId/v1":"27cd24d5d8e444afa956006fbffcead0c03e73ff3a085fad86502840f319ffb6"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): CreateOrganization_WithoutPayment: Skipped with a documented reason \u2014 a deferral, not lazy debt: Performance test"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Api.IntegrationTest/AdminConsole/Controllers/OrganizationsControllerPerformanceTests.cs"},"region":{"startLine":131}}}],"partialFingerprints":{"codehealthFindingId/v1":"674cb3a92593e53139da86e1d91872c53cc7ed823f5cb098973a8c0c8e428a73"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): GetAllUsers_WithCollections: Skipped with a documented reason \u2014 a deferral, not lazy debt: Performance test"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Api.IntegrationTest/AdminConsole/Controllers/OrganizationUsersControllerPerformanceTests.cs"},"region":{"startLine":25}}}],"partialFingerprints":{"codehealthFindingId/v1":"33453e0c041e8ba8ed71c0f848bd874205eae2a2eceee3ca2e9d99289ba508b4"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): GetAllUsers_MiniDetails: Skipped with a documented reason \u2014 a deferral, not lazy debt: Performance test"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Api.IntegrationTest/AdminConsole/Controllers/OrganizationUsersControllerPerformanceTests.cs"},"region":{"startLine":64}}}],"partialFingerprints":{"codehealthFindingId/v1":"2802878ac305b713f96d891d1314c2247ce2f0417602f66e531d1127be34d9e3"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): GetSingleUser_WithGroups: Skipped with a documented reason \u2014 a deferral, not lazy debt: Performance test"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Api.IntegrationTest/AdminConsole/Controllers/OrganizationUsersControllerPerformanceTests.cs"},"region":{"startLine":104}}}],"partialFingerprints":{"codehealthFindingId/v1":"3b4d0ed8e38dbdaff8a60264d4d806f1e2e2f0d79fb145d6c379a0a0bb058619"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): GetResetPasswordDetails_ForSingleUser: Skipped with a documented reason \u2014 a deferral, not lazy debt: Performance test"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Api.IntegrationTest/AdminConsole/Controllers/OrganizationUsersControllerPerformanceTests.cs"},"region":{"startLine":139}}}],"partialFingerprints":{"codehealthFindingId/v1":"2f00f16e2c7acf4337e0ce7aa214fd8cb8654f51e48190a5eb942363498910a4"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): BulkConfirmUsers: Skipped with a documented reason \u2014 a deferral, not lazy debt: Performance test"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Api.IntegrationTest/AdminConsole/Controllers/OrganizationUsersControllerPerformanceTests.cs"},"region":{"startLine":172}}}],"partialFingerprints":{"codehealthFindingId/v1":"2098c1ceb31a28923da226769e797d273656fb9352b0d7c6bf9a0880c99be715"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): BulkRemoveUsers: Skipped with a documented reason \u2014 a deferral, not lazy debt: Performance test"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Api.IntegrationTest/AdminConsole/Controllers/OrganizationUsersControllerPerformanceTests.cs"},"region":{"startLine":223}}}],"partialFingerprints":{"codehealthFindingId/v1":"81a06a35ac07dd387fe4aeaf2a7a0ea53e1b3d9c364f8fa200a137cdcc9cefc0"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): BulkRevokeUsers: Skipped with a documented reason \u2014 a deferral, not lazy debt: Performance test"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Api.IntegrationTest/AdminConsole/Controllers/OrganizationUsersControllerPerformanceTests.cs"},"region":{"startLine":266}}}],"partialFingerprints":{"codehealthFindingId/v1":"3c750b56962bd44dc1fa85b08288f31e2aab766ce0c85c7b3bd1aa4d0f156b16"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): BulkRestoreUsers: Skipped with a documented reason \u2014 a deferral, not lazy debt: Performance test"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Api.IntegrationTest/AdminConsole/Controllers/OrganizationUsersControllerPerformanceTests.cs"},"region":{"startLine":313}}}],"partialFingerprints":{"codehealthFindingId/v1":"b4bd9504999f4cc80a9ff8fcb12e7bd24dbd44bd1f28d70028ab698bc9940256"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): BulkDeleteAccounts: Skipped with a documented reason \u2014 a deferral, not lazy debt: Performance test"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Api.IntegrationTest/AdminConsole/Controllers/OrganizationUsersControllerPerformanceTests.cs"},"region":{"startLine":360}}}],"partialFingerprints":{"codehealthFindingId/v1":"b2953812cb52828b8aa0c7c4e8411c6d07ec9ba5f827cec21b62cf7a21e9e55e"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): UpdateSingleUser_WithCollectionsAndGroups: Skipped with a documented reason \u2014 a deferral, not lazy debt: Performance test"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Api.IntegrationTest/AdminConsole/Controllers/OrganizationUsersControllerPerformanceTests.cs"},"region":{"startLine":411}}}],"partialFingerprints":{"codehealthFindingId/v1":"65a3768d50910ef4d6e270212aacbc7ab3f7d4bf1d71c5c41423af95e79ca854"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): BulkEnableSecretsManager: Skipped with a documented reason \u2014 a deferral, not lazy debt: Performance test"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Api.IntegrationTest/AdminConsole/Controllers/OrganizationUsersControllerPerformanceTests.cs"},"region":{"startLine":461}}}],"partialFingerprints":{"codehealthFindingId/v1":"8c97e8c20d99ffdf71064e91e51b404101177cf9ac1f291c566d32060a75f191"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): DeleteSingleUserAccount_FromVerifiedDomain: Skipped with a documented reason \u2014 a deferral, not lazy debt: Performance test"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Api.IntegrationTest/AdminConsole/Controllers/OrganizationUsersControllerPerformanceTests.cs"},"region":{"startLine":504}}}],"partialFingerprints":{"codehealthFindingId/v1":"dbc35f363877fc0d8c3570f537d56cd5a6f5c1817a66034809168fb224604020"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): InviteUsers: Skipped with a documented reason \u2014 a deferral, not lazy debt: Performance test"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Api.IntegrationTest/AdminConsole/Controllers/OrganizationUsersControllerPerformanceTests.cs"},"region":{"startLine":545}}}],"partialFingerprints":{"codehealthFindingId/v1":"9fc3782e932b04359681fafd387169093b6a157c1b04c5d87bdc3663001abe17"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): BulkReinviteUsers: Skipped with a documented reason \u2014 a deferral, not lazy debt: Performance test"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Api.IntegrationTest/AdminConsole/Controllers/OrganizationUsersControllerPerformanceTests.cs"},"region":{"startLine":596}}}],"partialFingerprints":{"codehealthFindingId/v1":"38108c69224c53d1d320c0b82952796ed7c27c55178261fc83aeb4a5b6332d76"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): SendEmailAsync_Works_NoSsl: Skipped with a documented reason \u2014 a deferral, not lazy debt: Requires permission to privileged port"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.IntegrationTest/MailKitSmtpMailDeliveryServiceTests.cs"},"region":{"startLine":199}}}],"partialFingerprints":{"codehealthFindingId/v1":"8734829619663d41a582879c5c78991f79fdf207a2719f6992d69abb198150fc"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): AcceptUserAsync_EmergencyAccessEmailDoesNotMatch_ThrowsBadRequest: Skipped with a documented reason \u2014 a deferral, not lazy debt: Code not reachable, Tokenable checks email match in IsValid()"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/Auth/UserFeatures/EmergencyAccess/EmergencyAccessServiceTests.cs"},"region":{"startLine":417}}}],"partialFingerprints":{"codehealthFindingId/v1":"32a14c758899396ba5d93b2514737ffc840487a1e43befdbd57ba664b19d7eca"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): ServiceExists: Skipped with a documented reason \u2014 a deferral, not lazy debt: Needs additional work"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/Dirt/Services/AzureQueueEventWriteServiceTests.cs"},"region":{"startLine":28}}}],"partialFingerprints":{"codehealthFindingId/v1":"54fa5ad404c306bc3aea3b973fe96e3b6cd0f09b502b335bccc36b0ab30883ad"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): ValidateSponsorshipAsync_NoSponsoredOrg_EarlyReturn: Skipped with a documented reason \u2014 a deferral, not lazy debt: Temporarily disabled"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/OrganizationFeatures/OrganizationSponsorships/FamiliesForEnterprise/Cloud/ValidateSponsorshipCommandTests.cs"},"region":{"startLine":18}}}],"partialFingerprints":{"codehealthFindingId/v1":"74009527a3500867849133d2aad088ef126516c73fd3f200a258d7e401ee1584"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): ValidateSponsorshipAsync_NoExistingSponsorship_UpdatesStripePlan: Skipped with a documented reason \u2014 a deferral, not lazy debt: Temporarily disabled"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/OrganizationFeatures/OrganizationSponsorships/FamiliesForEnterprise/Cloud/ValidateSponsorshipCommandTests.cs"},"region":{"startLine":32}}}],"partialFingerprints":{"codehealthFindingId/v1":"ba12565979cbca1c14c8c30a07b163771586491d146cd8731e8ffd4c7d2abaef"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): ValidateSponsorshipAsync_SponsoringOrgDefault_UpdatesStripePlan: Skipped with a documented reason \u2014 a deferral, not lazy debt: Temporarily disabled"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/OrganizationFeatures/OrganizationSponsorships/FamiliesForEnterprise/Cloud/ValidateSponsorshipCommandTests.cs"},"region":{"startLine":45}}}],"partialFingerprints":{"codehealthFindingId/v1":"7632aa3349feac347552643e58139cdb7ab157ef887fdef07c58c181a144fc9e"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): ValidateSponsorshipAsync_SponsoringOrgUserDefault_UpdatesStripePlan: Skipped with a documented reason \u2014 a deferral, not lazy debt: Temporarily disabled"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/OrganizationFeatures/OrganizationSponsorships/FamiliesForEnterprise/Cloud/ValidateSponsorshipCommandTests.cs"},"region":{"startLine":63}}}],"partialFingerprints":{"codehealthFindingId/v1":"6df47d33ffe9f31c4b4750c2dfdff4f8bbb3396dfbcb262e776b7f3a107efffb"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): ValidateSponsorshipAsync_SponsorshipTypeNull_UpdatesStripePlan: Skipped with a documented reason \u2014 a deferral, not lazy debt: Temporarily disabled"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/OrganizationFeatures/OrganizationSponsorships/FamiliesForEnterprise/Cloud/ValidateSponsorshipCommandTests.cs"},"region":{"startLine":81}}}],"partialFingerprints":{"codehealthFindingId/v1":"caeebd7543d1bc87084cc64bb1773478d39207b7e183edf1c3a09d9cbaae20a5"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): ValidateSponsorshipAsync_SponsoringOrgNotFound_UpdatesStripePlan: Skipped with a documented reason \u2014 a deferral, not lazy debt: Temporarily disabled"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/OrganizationFeatures/OrganizationSponsorships/FamiliesForEnterprise/Cloud/ValidateSponsorshipCommandTests.cs"},"region":{"startLine":99}}}],"partialFingerprints":{"codehealthFindingId/v1":"bab63d210275dcafd3d7ad5511f83307b9d17a994e0568c1d844b0de58703889"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): ValidateSponsorshipAsync_SponsoringOrgNotEnterprise_UpdatesStripePlan: Skipped with a documented reason \u2014 a deferral, not lazy debt: Temporarily disabled"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/OrganizationFeatures/OrganizationSponsorships/FamiliesForEnterprise/Cloud/ValidateSponsorshipCommandTests.cs"},"region":{"startLine":115}}}],"partialFingerprints":{"codehealthFindingId/v1":"6902a768944f89169489d37a7cdcd32477c6b5ee78610e494ee2c04595f3aa0d"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): ValidateSponsorshipAsync_SponsoringOrgDisabledLongerThanGrace_UpdatesStripePlan: Skipped with a documented reason \u2014 a deferral, not lazy debt: Temporarily disabled"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/OrganizationFeatures/OrganizationSponsorships/FamiliesForEnterprise/Cloud/ValidateSponsorshipCommandTests.cs"},"region":{"startLine":136}}}],"partialFingerprints":{"codehealthFindingId/v1":"71ee6ad9a329966158f58efc8639d589afe0b1299444b3058f0897402996a331"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): ValidateSponsorshipAsync_ToDeleteSponsorship_IsInvalid: Skipped with a documented reason \u2014 a deferral, not lazy debt: Temporarily disabled"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/OrganizationFeatures/OrganizationSponsorships/FamiliesForEnterprise/Cloud/ValidateSponsorshipCommandTests.cs"},"region":{"startLine":159}}}],"partialFingerprints":{"codehealthFindingId/v1":"809e596d63e90b672e67e6bd485d76feef978f49e8dcd4cd5ed9435418691a86"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): ValidateSponsorshipAsync_SponsoringOrgDisabledUnknownTime_UpdatesStripePlan: Skipped with a documented reason \u2014 a deferral, not lazy debt: Temporarily disabled"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/OrganizationFeatures/OrganizationSponsorships/FamiliesForEnterprise/Cloud/ValidateSponsorshipCommandTests.cs"},"region":{"startLine":184}}}],"partialFingerprints":{"codehealthFindingId/v1":"2a18ed0e7963de416c1cfe038724e1b29f3c8454b060f2c39bc50792d54628f1"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): ValidateSponsorshipAsync_SponsoringOrgDisabledLessThanGrace_Valid: Skipped with a documented reason \u2014 a deferral, not lazy debt: Temporarily disabled"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/OrganizationFeatures/OrganizationSponsorships/FamiliesForEnterprise/Cloud/ValidateSponsorshipCommandTests.cs"},"region":{"startLine":207}}}],"partialFingerprints":{"codehealthFindingId/v1":"5236b8aee4a3c8c3f798bb59b677e787a8df4ea60d8e101524da22f4f156cd10"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): ValidateSponsorshipAsync_Valid: Skipped with a documented reason \u2014 a deferral, not lazy debt: Temporarily disabled"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/OrganizationFeatures/OrganizationSponsorships/FamiliesForEnterprise/Cloud/ValidateSponsorshipCommandTests.cs"},"region":{"startLine":232}}}],"partialFingerprints":{"codehealthFindingId/v1":"c751c2ba64b1574f96a768cd0677134e5e320bcf645dbe67c4cbb1269fae1d19"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): ValidateSponsorshipAsync_AdminInitiatedButUseAdminSponsoredFamiliesFalse_IsInvalid: Skipped with a documented reason \u2014 a deferral, not lazy debt: Temporarily disabled"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/OrganizationFeatures/OrganizationSponsorships/FamiliesForEnterprise/Cloud/ValidateSponsorshipCommandTests.cs"},"region":{"startLine":255}}}],"partialFingerprints":{"codehealthFindingId/v1":"28af27465483d8bdc20a4270afcd2d6dbf1aba9a504d5faccc0a73abbdedf16e"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): ValidateSponsorshipAsync_AdminInitiatedAndUseAdminSponsoredFamiliesTrue_ContinuesValidation: Skipped with a documented reason \u2014 a deferral, not lazy debt: Temporarily disabled"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/OrganizationFeatures/OrganizationSponsorships/FamiliesForEnterprise/Cloud/ValidateSponsorshipCommandTests.cs"},"region":{"startLine":278}}}],"partialFingerprints":{"codehealthFindingId/v1":"83ff1031c3a05bacd3d83bd068121d368c5d8710d075eaed310b0c6a4d34a249"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): SendDomainClaimedEmail_ToMailCatcher: Skipped with a documented reason \u2014 a deferral, not lazy debt: For local development - requires MailCatcher at localhost:10250"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/Platform/Mail/DomainClaimedEmailRenderTest.cs"},"region":{"startLine":91}}}],"partialFingerprints":{"codehealthFindingId/v1":"c49841ffce96fb0caba1c0f430ea350ac9ba8b5cb51f0e874b73b9a9f99fdbe4"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): RenderDomainClaimedEmail_WithSpecialCharacters: Skipped with a documented reason \u2014 a deferral, not lazy debt: This test sends actual emails and is for manual template verification only"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/Platform/Mail/DomainClaimedEmailRenderTest.cs"},"region":{"startLine":145}}}],"partialFingerprints":{"codehealthFindingId/v1":"488d63b3f5dfb1c0b2dce951ea0a226a62dacbe375f870baaf949a9dd56bea61"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): ServiceExists: Skipped with a documented reason \u2014 a deferral, not lazy debt: Needs additional work"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/Platform/PushRegistration/RelayPushRegistrationServiceTests.cs"},"region":{"startLine":32}}}],"partialFingerprints":{"codehealthFindingId/v1":"34bf9202229e7331ad60fc56b68420e38d145aa8184d8081ce4f678eae387239"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): SendAllEmails: Skipped with a documented reason \u2014 a deferral, not lazy debt: For local development"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/Services/HandlebarsMailServiceTests.cs"},"region":{"startLine":121}}}],"partialFingerprints":{"codehealthFindingId/v1":"1a9e03a2de3d7425148ee05f74ecd00f80b5bc253ade9132ebbfbb43e6dc136c"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): ServiceExists: Skipped with a documented reason \u2014 a deferral, not lazy debt: Needs additional work"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/Services/InMemoryServiceBusApplicationCacheServiceTests.cs"},"region":{"startLine":33}}}],"partialFingerprints":{"codehealthFindingId/v1":"15bdb51f6e03eeb9ead42dbcc5bf75f2c6385b5b2b76aadf68767cce3a432712"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): FeatureValue_Boolean: Skipped with a documented reason \u2014 a deferral, not lazy debt: For local development"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/Services/LaunchDarklyFeatureServiceTests.cs"},"region":{"startLine":58}}}],"partialFingerprints":{"codehealthFindingId/v1":"70e580b17bfdc21093f18eb5be901487e3e71b0e8c2e0af11c910d88d095eefe"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): FeatureValue_Int: Skipped with a documented reason \u2014 a deferral, not lazy debt: For local development"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/Services/LaunchDarklyFeatureServiceTests.cs"},"region":{"startLine":68}}}],"partialFingerprints":{"codehealthFindingId/v1":"279cc0c652a5ab8ead64d4a97f62b7a4815374d7148bbd7f501e6a38d63713b0"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): FeatureValue_String: Skipped with a documented reason \u2014 a deferral, not lazy debt: For local development"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/Services/LaunchDarklyFeatureServiceTests.cs"},"region":{"startLine":78}}}],"partialFingerprints":{"codehealthFindingId/v1":"b5797dd4b975441d63c21622aec31785c9fc46bbad401c56847f32f9033e0470"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): GetAll: Skipped with a documented reason \u2014 a deferral, not lazy debt: For local development"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/Services/LaunchDarklyFeatureServiceTests.cs"},"region":{"startLine":88}}}],"partialFingerprints":{"codehealthFindingId/v1":"815f6e488db4a69695a2b2609759cd5b60fd027125b0a0471826c51a5447c84f"}},{"ruleId":"D10","level":"note","message":{"text":"Skipped (documented): ServiceExists: Skipped with a documented reason \u2014 a deferral, not lazy debt: Needs additional work"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/Vault/Services/AzureAttachmentStorageServiceTests.cs"},"region":{"startLine":26}}}],"partialFingerprints":{"codehealthFindingId/v1":"5ec97b4706740c0d81b48c12f55f4bae071fd155b61273283f550713787798d0"}},{"ruleId":"D10","level":"warning","message":{"text":"Skipped test: GetIconAsync_Success: Skipped \u2014 Run ad-hoc"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Icons.Test/Services/IconFetchingServiceTests.cs"},"region":{"startLine":8}}}],"partialFingerprints":{"codehealthFindingId/v1":"492e162c21066ff4ed7cec8542ed47e9b6c7964295e5f564428b53535b9cd3f5"}},{"ruleId":"D10","level":"warning","message":{"text":"Skipped test: RefreshDb: Skipped \u2014 Run ad-hoc"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Infrastructure.EFIntegration.Test/Vault/Repositories/CipherRepositoryTests.cs"},"region":{"startLine":25}}}],"partialFingerprints":{"codehealthFindingId/v1":"b509f79616ebfac99b7e620ce07ea980d65bf8210be0ab15d384044db51b724f"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: UpdateAsync_Success: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/test/Commercial.Core.Test/AdminConsole/Services/ProviderServiceTests.cs"},"region":{"startLine":169}}}],"partialFingerprints":{"codehealthFindingId/v1":"0022fcf281156d66709e3746133ca56d5c134347b7b25182edff6d30d7594681"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: Handler_SupportedProjectOperationRequirement_DoesNotThrow: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/test/Commercial.Core.Test/SecretsManager/AuthorizationHandlers/Projects/ProjectAuthorizationHandlerTests.cs"},"region":{"startLine":74}}}],"partialFingerprints":{"codehealthFindingId/v1":"2d0dd748e1ac15a00d132382299895dd5a7e33ed1a81658b3385f6e4b56d65fb"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: Handler_SupportedSecretOperationRequirement_Throws: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/test/Commercial.Core.Test/SecretsManager/AuthorizationHandlers/Secrets/SecretAuthorizationHandlerTests.cs"},"region":{"startLine":75}}}],"partialFingerprints":{"codehealthFindingId/v1":"14932be5dbbc05f20184ab8063b78190182e260ffb1482f336ad43404cd963a7"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: Handler_SupportedServiceAccountOperationRequirement_DoesNotThrow: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/test/Commercial.Core.Test/SecretsManager/AuthorizationHandlers/ServiceAccounts/ServiceAccountAuthorizationHandlerTests.cs"},"region":{"startLine":68}}}],"partialFingerprints":{"codehealthFindingId/v1":"42b48e8b2b778a1ae75062fbd0b57e64475f2426d0c7334f49bc2d0db090e694"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: ValidateAdminRequest_UserHasManageResetPasswordPermissions_DoesNotThrow: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Api.Test/AdminConsole/Controllers/OrganizationAuthRequestsControllerTests.cs"},"region":{"startLine":29}}}],"partialFingerprints":{"codehealthFindingId/v1":"c3564ed73477b928a2b0fb93016cdff13b8df5b0715a7f156e1dddd31793c234"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: UpdateManyAuthRequests_ValidInput_DoesNotThrow: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Api.Test/AdminConsole/Controllers/OrganizationAuthRequestsControllerTests.cs"},"region":{"startLine":40}}}],"partialFingerprints":{"codehealthFindingId/v1":"acf46ed9ef866f5fbd5780e6645f4ec49c90110ffdae2216262ab0b374f9380a"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: ConnectionEnabled_RequiresBothSelfHostAndCommunications: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Api.Test/AdminConsole/Controllers/OrganizationConnectionsControllerTests.cs"},"region":{"startLine":33}}}],"partialFingerprints":{"codehealthFindingId/v1":"f6d8af11e01aa614987300d8e46cb83963f7dcd279cd666810cacd21d384c774"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: DeleteConnection_Success: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Api.Test/AdminConsole/Controllers/OrganizationConnectionsControllerTests.cs"},"region":{"startLine":398}}}],"partialFingerprints":{"codehealthFindingId/v1":"d3bb023371ce13cd715155941c3fd25261b3b8cb1364852fb90d00a7bb6bd07b"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: PostKdf_ChangeKdfSuccess_NoError: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Api.Test/Auth/Controllers/AccountsControllerTests.cs"},"region":{"startLine":723}}}],"partialFingerprints":{"codehealthFindingId/v1":"8a400fda55dc7a3a3ab6cd98c08c64c963906035144bd9c7d1058c21205ac429"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: CheckForDistinctAccessPolicies_DistinctPolicies_Success: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Api.Test/SecretsManager/Utilities/AccessPolicyHelpersTests.cs"},"region":{"startLine":53}}}],"partialFingerprints":{"codehealthFindingId/v1":"3975c656e846bdfd92e0ab83a5dcf4cd2d3998c0b98a7a0aefeb4dca47e4bfde"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: CheckAccessPoliciesHaveReadPermission_AllReadIsTrue_Success: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Api.Test/SecretsManager/Utilities/AccessPolicyHelpersTests.cs"},"region":{"startLine":88}}}],"partialFingerprints":{"codehealthFindingId/v1":"b74d409f222edbda4a18933c50f58a142b5ed0c7f4e2389783342ba9f306c67b"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: SendEmailAsync_Succeeds_WhenCertIsSelfSigned_ServerIsTrusted: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.IntegrationTest/MailKitSmtpMailDeliveryServiceTests.cs"},"region":{"startLine":118}}}],"partialFingerprints":{"codehealthFindingId/v1":"3ffa980c7202edc0f09954f71cf41d765adcf61cd4904ee6898820f544156347"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: SendEmailAsync_Succeeds_WhenServerNeedsToAuthenticate: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.IntegrationTest/MailKitSmtpMailDeliveryServiceTests.cs"},"region":{"startLine":246}}}],"partialFingerprints":{"codehealthFindingId/v1":"735412ed808d0b491be8c0f88bd3e2fbc10faed0a7a3bca7cd3a98338f8a4466"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: Process_NoProcessors_Handled: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/AdminConsole/OrganizationAuth/Models/BatchAuthRequestUpdateProcessorTests.cs"},"region":{"startLine":14}}}],"partialFingerprints":{"codehealthFindingId/v1":"2f919eb6d176ba895fa792759cfd8367a3cc1e137b756a3b3f2491f701a20bd0"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: SignUpOrganizationAsync_WithTrialLengthAtMinimum_Succeeds: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/AdminConsole/OrganizationFeatures/Organizations/OrganizationSignUp/CloudOrganizationSignUpCommandTests.cs"},"region":{"startLine":409}}}],"partialFingerprints":{"codehealthFindingId/v1":"f67d6b2197ffa99b3620012f45c0db03e3776597791937de399d12a99c687e22"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: SignUpOrganizationAsync_WithTrialLengthAtMaximum_Succeeds: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/AdminConsole/OrganizationFeatures/Organizations/OrganizationSignUp/CloudOrganizationSignUpCommandTests.cs"},"region":{"startLine":435}}}],"partialFingerprints":{"codehealthFindingId/v1":"a34fd99629310a15f6a2ce65a8a66439049dc9ce7f5110b457782deb3a060e42"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: SignUpOrganizationAsync_WithoutTrialLength_Succeeds: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/AdminConsole/OrganizationFeatures/Organizations/OrganizationSignUp/CloudOrganizationSignUpCommandTests.cs"},"region":{"startLine":461}}}],"partialFingerprints":{"codehealthFindingId/v1":"b8e104c841d266ad66792337f25f15ea01f80e69f7de5bb66a4d9dad1be44a79"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: InviteUsers_WithCustomType_WhenUseCustomPermissionsIsTrue_Passes: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/AdminConsole/Services/OrganizationServiceTests.cs"},"region":{"startLine":187}}}],"partialFingerprints":{"codehealthFindingId/v1":"be1fcc866117e825a3006ff07db77349cf63439751debce036ffaa5fd0a5f3ac"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: InviteUsers_WithNonCustomType_WhenUseCustomPermissionsIsFalse_Passes: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/AdminConsole/Services/OrganizationServiceTests.cs"},"region":{"startLine":223}}}],"partialFingerprints":{"codehealthFindingId/v1":"8dd6a481d266579365db3b5daf7c40ef58d39e06a59b46b9408de268eeb25bb4"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: InviteUsers_NoPermissionsObject_Passes: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/AdminConsole/Services/OrganizationServiceTests.cs"},"region":{"startLine":319}}}],"partialFingerprints":{"codehealthFindingId/v1":"f8350bed0fab0266ee6eb4128aed21b78cf758c6129bed8fefec158bde71fc0f"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: ValidateSecretsManagerPlan_ValidPlan_NoExceptionThrown: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/AdminConsole/Services/OrganizationServiceTests.cs"},"region":{"startLine":948}}}],"partialFingerprints":{"codehealthFindingId/v1":"031ee0dcd4702bf3a8f4e4eedd3d66af9ec3840fc2a5a2fccc9a042ec24426b6"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: ValidateOrganizationUserUpdatePermissions_WithCustomPermission_WhenSavingUserHasCustomPermission_Passes: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/AdminConsole/Services/OrganizationServiceTests.cs"},"region":{"startLine":970}}}],"partialFingerprints":{"codehealthFindingId/v1":"84d38ad6d4cc09d913252cc3c524f8d99654d1a330c1a04a93ce71ae1fcc7f3d"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: ValidateOrganizationCustomPermissionsEnabledAsync_WithNotCustomType_IsValid: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/AdminConsole/Services/OrganizationServiceTests.cs"},"region":{"startLine":1058}}}],"partialFingerprints":{"codehealthFindingId/v1":"7d57dd739c76881168776a1f5ddb18e5f82685a2181987b484c5efcba25a411f"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: ValidateOrganizationCustomPermissionsEnabledAsync_WithUseCustomPermissionsEnabled_IsValid: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/AdminConsole/Services/OrganizationServiceTests.cs"},"region":{"startLine":1095}}}],"partialFingerprints":{"codehealthFindingId/v1":"220552125cd53a1583c3f57bbc4681d61ffd84db97367d35014e0ff94480364c"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: RunCanGenerateTwoFactorTokenAsync: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/Auth/Identity/AuthenticationTwoFactorTokenProviderTests.cs"},"region":{"startLine":32}}}],"partialFingerprints":{"codehealthFindingId/v1":"fc2ecff2a0a8281ec37caa539c8f60836310bbcf478bef566c9a59d985944a6a"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: RunCanGenerateTwoFactorTokenAsync: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/Auth/Identity/DuoUniversalTwoFactorTokenProviderTests.cs"},"region":{"startLine":81}}}],"partialFingerprints":{"codehealthFindingId/v1":"fb47b823c00ac3607d15c0155f3094425082d8f92ef1621972286df62b092a1a"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: CanGenerateTwoFactorTokenAsync_UserCanNotAccessPremium_ReturnsNull: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/Auth/Identity/DuoUniversalTwoFactorTokenProviderTests.cs"},"region":{"startLine":99}}}],"partialFingerprints":{"codehealthFindingId/v1":"68c8244f1fb79110859af395dc42e666aac0b56a67786ee47941bb540b245112"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: RunCanGenerateTwoFactorTokenAsync: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/Auth/Identity/EmailTwoFactorTokenProviderTests.cs"},"region":{"startLine":41}}}],"partialFingerprints":{"codehealthFindingId/v1":"0458336b303368086b1a84afe682f77fa75f2e157c1d5d3127004c5528c9b0b5"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: SaveAsync_AllowDisablingKeyConnectorWhenNoUserIsUsingIt: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/Auth/Services/SsoConfigServiceTests.cs"},"region":{"startLine":126}}}],"partialFingerprints":{"codehealthFindingId/v1":"7c24d8ae905673972c0c6dd951c0cf39437f5633ecd6a247ab6cce20db5506a8"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: ValidateDataForUser_Accepts_WhenUserHasNoMasterPassword: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/Auth/UserFeatures/UserMasterPassword/Data/SetInitialPasswordDataTests.cs"},"region":{"startLine":56}}}],"partialFingerprints":{"codehealthFindingId/v1":"97ec24fc6eaa226189aa4de8992eb801b04628a57f77037d5c90daf96d8f2654"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: ValidateDataForUser_Accepts_WhenUserHasMasterPassword_SaltMatch_KdfChanged: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/Auth/UserFeatures/UserMasterPassword/Data/UpdateExistingKdfConfigurationDataTests.cs"},"region":{"startLine":54}}}],"partialFingerprints":{"codehealthFindingId/v1":"a5334827c556a0245d8e48abb9b46d317a3be8b64d30c8a0c8506c8b019d9283"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: ValidateDataForUser_Accepts_WhenUserHasMasterPassword_KdfAndSaltMatch: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/Auth/UserFeatures/UserMasterPassword/Data/UpdateExistingPasswordDataTests.cs"},"region":{"startLine":56}}}],"partialFingerprints":{"codehealthFindingId/v1":"bc7e4778f39000f64992970320ed5768a864989f6bcf0a3195ee11fb343c7a83"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: ValidateDataForUser_Accepts_WhenUserHasLegacyBelowMinimumPbkdf2Iterations: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/Auth/UserFeatures/UserMasterPassword/Data/UpdateExistingPasswordDataTests.cs"},"region":{"startLine":66}}}],"partialFingerprints":{"codehealthFindingId/v1":"dede6dd2ba13c0092474cf130743f3ab16f981d95649e12fb87784fd75ba66a3"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: RunAsync_DoesNotThrow_WhenPlanIsDisabled: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/Billing/Organizations/Commands/AddSecretsManagerSubscriptionCommandTests.cs"},"region":{"startLine":202}}}],"partialFingerprints":{"codehealthFindingId/v1":"ee9492ea22d5dd6610eb881df7cc9da43cc0b8d335ba85a3dbff318594f7b964"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: SetContextAsync_NullUser_DoesNotThrow: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/Context/CurrentContextTests.cs"},"region":{"startLine":133}}}],"partialFingerprints":{"codehealthFindingId/v1":"be27c8e12f3f7907c5698b583c59109a6ca97130342aff3e5d1e0524b959d738"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: SetContextAsync_UserWithNoClaims_DoesNotThrow: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/Context/CurrentContextTests.cs"},"region":{"startLine":142}}}],"partialFingerprints":{"codehealthFindingId/v1":"c125a50b74c190a0c710061871b65b17180d57e423904385ada534db4ddeaf4b"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: ValidateForUser_ValidData_DoesNotThrow: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/KeyManagement/UserKey/Models/Data/PasswordChangeAndRotateUserAccountKeysDataTests.cs"},"region":{"startLine":66}}}],"partialFingerprints":{"codehealthFindingId/v1":"683b21fcb0d1c30a23163ea9ef2cd6bcd5c78b1abfdd45d0d968451723642597"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: ValidateForUser_ValidTdeUser_DoesNotThrow: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/KeyManagement/UserKey/Models/Data/TdeRotateUserAccountKeysDataTests.cs"},"region":{"startLine":32}}}],"partialFingerprints":{"codehealthFindingId/v1":"1f98e63c6f083256a96ef67ef1f6326e6d9cd51b7239b36855af96809567d5d5"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: PlayId_WhenNoHttpContext_SetterDoesNotThrow: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/Services/PlayIdServiceTests.cs"},"region":{"startLine":201}}}],"partialFingerprints":{"codehealthFindingId/v1":"12cee1a237b9579407d944cf131d5bde677373ce978b9cce878b45b59b134fbd"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: DeleteFileAsync_FileDoesNotExist_DoesNotThrow: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/Tools/Services/LocalSendStorageServiceTests.cs"},"region":{"startLine":36}}}],"partialFingerprints":{"codehealthFindingId/v1":"7c1115b47b19b3aa7819bd371082f593a07f16b882d70926941aacbbedd0f770"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: DeleteFilesForUserAsync_NoSends_DoesNotThrow: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/Tools/Services/LocalSendStorageServiceTests.cs"},"region":{"startLine":119}}}],"partialFingerprints":{"codehealthFindingId/v1":"0ac17adbfd8f6e599df1ef4b3a76f448cdd148f1ab84903f7db2d42277aad484"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: ValidateUserCanSaveAsync_WhenSendOptionsPolicyProhibitsHidingEmail_CanShowEmail: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/Tools/Services/SendValidationServiceTests.cs"},"region":{"startLine":152}}}],"partialFingerprints":{"codehealthFindingId/v1":"fe47a93d9f253cb766fd8e47b36fda404fa64965a4918bc8fa27fe94cbae9b36"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: ValidateUserCanSaveAsync_WhenPoliciesDoNotApply_Success: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/Tools/Services/SendValidationServiceTests.cs"},"region":{"startLine":171}}}],"partialFingerprints":{"codehealthFindingId/v1":"273de47172ef094b25b6f91edb78967321cb0e43e89afad2d84279236c35fcaa"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: Success_When_Feature_Enabled: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/Utilities/RequireFeatureAttributeTests.cs"},"region":{"startLine":40}}}],"partialFingerprints":{"codehealthFindingId/v1":"b80120f94407c1b56a93ee5da98c668c72a60493e68e5a7e291004cb0ec1d3ff"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: NotSelfHosted_Success_When_NotSelfHosted: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/Utilities/SelfHostedAttributeTests.cs"},"region":{"startLine":27}}}],"partialFingerprints":{"codehealthFindingId/v1":"de930d0041fbdd0ec29440c6c5b82fb104f7e71ed557561e02ce097b30ca77bd"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: SelfHosted_Success_When_SelfHosted: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/Utilities/SelfHostedAttributeTests.cs"},"region":{"startLine":41}}}],"partialFingerprints":{"codehealthFindingId/v1":"74297bee0e319347e7332b76f2a42952043174b06402691487cde1e6eb791f30"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: ValidateCipherEditForAttachmentAsync_UserWithEditPermission_Succeeds: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/Vault/Services/CipherServiceTests.cs"},"region":{"startLine":2384}}}],"partialFingerprints":{"codehealthFindingId/v1":"6631272f4b080ce2145c714b25c13790f0ee043a8d86827f7153f0e100c161bc"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: Post_UserClientExportedVault_Success: In a harness-style test project (most tests assert via a verifier/approval harness or step indirection) \u2014 no conventional assertion call was detected."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Events.IntegrationTest/Controllers/CollectControllerTests.cs"},"region":{"startLine":57}}}],"partialFingerprints":{"codehealthFindingId/v1":"5c042be6eef5cd5fc6fbd4a1a81f5ea905fe34bbab47c948a918c11b3c3d94af"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: Post_CipherClientAutofilled_WithValidCipher_Success: In a harness-style test project (most tests assert via a verifier/approval harness or step indirection) \u2014 no conventional assertion call was detected."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Events.IntegrationTest/Controllers/CollectControllerTests.cs"},"region":{"startLine":72}}}],"partialFingerprints":{"codehealthFindingId/v1":"b633cc880aefc3b21e99d7b677e716ff505cd4d4dca70b7619329c4dfc16355d"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: Post_CipherClientCopiedPassword_WithValidCipher_Success: In a harness-style test project (most tests assert via a verifier/approval harness or step indirection) \u2014 no conventional assertion call was detected."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Events.IntegrationTest/Controllers/CollectControllerTests.cs"},"region":{"startLine":90}}}],"partialFingerprints":{"codehealthFindingId/v1":"feca7ea54043e2bb7eb852a479968e71804fd5b5bb41902901a86fd1e8de5c49"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: Post_CipherClientCopiedHiddenField_WithValidCipher_Success: In a harness-style test project (most tests assert via a verifier/approval harness or step indirection) \u2014 no conventional assertion call was detected."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Events.IntegrationTest/Controllers/CollectControllerTests.cs"},"region":{"startLine":108}}}],"partialFingerprints":{"codehealthFindingId/v1":"4069fa42525882890d8620034e32ae19730a62973584e70451e0b5ccec2c0aae"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: Post_CipherClientCopiedCardCode_WithValidCipher_Success: In a harness-style test project (most tests assert via a verifier/approval harness or step indirection) \u2014 no conventional assertion call was detected."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Events.IntegrationTest/Controllers/CollectControllerTests.cs"},"region":{"startLine":126}}}],"partialFingerprints":{"codehealthFindingId/v1":"9dbdc96f89b7f69d4de4b3bb43472123465501f39f97dbdff72ff3b5759abeba"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: Post_CipherClientToggledCardNumberVisible_WithValidCipher_Success: In a harness-style test project (most tests assert via a verifier/approval harness or step indirection) \u2014 no conventional assertion call was detected."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Events.IntegrationTest/Controllers/CollectControllerTests.cs"},"region":{"startLine":144}}}],"partialFingerprints":{"codehealthFindingId/v1":"935d098a1c9dff4fac7a5f264e33d9cdc810a868e6693f531cb400815a7ce3d4"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: Post_CipherClientToggledCardCodeVisible_WithValidCipher_Success: In a harness-style test project (most tests assert via a verifier/approval harness or step indirection) \u2014 no conventional assertion call was detected."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Events.IntegrationTest/Controllers/CollectControllerTests.cs"},"region":{"startLine":162}}}],"partialFingerprints":{"codehealthFindingId/v1":"c822effff49e2286651d52a78ccd0e032e031387d8c7aaa8f7c520e5c051f4be"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: Post_CipherClientToggledHiddenFieldVisible_WithValidCipher_Success: In a harness-style test project (most tests assert via a verifier/approval harness or step indirection) \u2014 no conventional assertion call was detected."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Events.IntegrationTest/Controllers/CollectControllerTests.cs"},"region":{"startLine":180}}}],"partialFingerprints":{"codehealthFindingId/v1":"e6c24761a42d3711d58312ccde5a6497bb124f7902018606d70dd7081fffe276"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: Post_CipherClientToggledPasswordVisible_WithValidCipher_Success: In a harness-style test project (most tests assert via a verifier/approval harness or step indirection) \u2014 no conventional assertion call was detected."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Events.IntegrationTest/Controllers/CollectControllerTests.cs"},"region":{"startLine":198}}}],"partialFingerprints":{"codehealthFindingId/v1":"6cb46a486dd1f68fcbdff78b1cdffeb48d10d948c46fae205a0b3bee3cc59fce"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: Post_CipherClientViewed_WithValidCipher_Success: In a harness-style test project (most tests assert via a verifier/approval harness or step indirection) \u2014 no conventional assertion call was detected."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Events.IntegrationTest/Controllers/CollectControllerTests.cs"},"region":{"startLine":216}}}],"partialFingerprints":{"codehealthFindingId/v1":"5153dd4984effc6e9ec26fe9b95724bcd83f1e5fbfcfd5f63eec8d4d25a1a245"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: Post_CipherEvent_WithoutCipherId_Success: In a harness-style test project (most tests assert via a verifier/approval harness or step indirection) \u2014 no conventional assertion call was detected."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Events.IntegrationTest/Controllers/CollectControllerTests.cs"},"region":{"startLine":234}}}],"partialFingerprints":{"codehealthFindingId/v1":"1be0cea8f59825680d35df3b1bdddaad4c6da6913633a528e69643b2c47f7a86"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: Post_CipherEvent_WithInvalidCipherId_Success: In a harness-style test project (most tests assert via a verifier/approval harness or step indirection) \u2014 no conventional assertion call was detected."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Events.IntegrationTest/Controllers/CollectControllerTests.cs"},"region":{"startLine":249}}}],"partialFingerprints":{"codehealthFindingId/v1":"ea6558bdc1dab446350e8acbe7eb19870bf9b46a4cf1fdbe6c4a83f3244d309c"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: Post_OrganizationClientExportedVault_WithValidOrganization_Success: In a harness-style test project (most tests assert via a verifier/approval harness or step indirection) \u2014 no conventional assertion call was detected."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Events.IntegrationTest/Controllers/CollectControllerTests.cs"},"region":{"startLine":265}}}],"partialFingerprints":{"codehealthFindingId/v1":"81566e0fb45065342eb259319688d83885a58db4cffeca7d3d4cfebebd204f18"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: Post_OrganizationClientExportedVault_WithoutOrganizationId_Success: In a harness-style test project (most tests assert via a verifier/approval harness or step indirection) \u2014 no conventional assertion call was detected."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Events.IntegrationTest/Controllers/CollectControllerTests.cs"},"region":{"startLine":283}}}],"partialFingerprints":{"codehealthFindingId/v1":"34beacdac98d26e6007dffd54a2bc20f732925cefea32beac4d20e353f9ef5e9"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: Post_OrganizationClientExportedVault_WithInvalidOrganizationId_Success: In a harness-style test project (most tests assert via a verifier/approval harness or step indirection) \u2014 no conventional assertion call was detected."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Events.IntegrationTest/Controllers/CollectControllerTests.cs"},"region":{"startLine":298}}}],"partialFingerprints":{"codehealthFindingId/v1":"daa4df4664120e5a72d232b0462e7178cb746f4c53ce8250207cd14b226033b0"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: Post_MultipleEvents_Success: In a harness-style test project (most tests assert via a verifier/approval harness or step indirection) \u2014 no conventional assertion call was detected."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Events.IntegrationTest/Controllers/CollectControllerTests.cs"},"region":{"startLine":314}}}],"partialFingerprints":{"codehealthFindingId/v1":"589a896798da93451d6644c223e456dc3698ad4579e3bac5c821ec96c7cffd8e"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: Post_CipherEventsBatch_MoreThan50Items_Success: In a harness-style test project (most tests assert via a verifier/approval harness or step indirection) \u2014 no conventional assertion call was detected."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Events.IntegrationTest/Controllers/CollectControllerTests.cs"},"region":{"startLine":350}}}],"partialFingerprints":{"codehealthFindingId/v1":"ec22a401a8d5a36b0388e15e0675a45ad400728e54a99bf340f6b16f59ddf4bc"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: Post_UnsupportedEventType_Success: In a harness-style test project (most tests assert via a verifier/approval harness or step indirection) \u2014 no conventional assertion call was detected."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Events.IntegrationTest/Controllers/CollectControllerTests.cs"},"region":{"startLine":370}}}],"partialFingerprints":{"codehealthFindingId/v1":"fdc9de86daf49dac91735364512673c2678ab77d0345cc72f5d5a120da1ddda9"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: Post_MixedValidAndInvalidEvents_Success: In a harness-style test project (most tests assert via a verifier/approval harness or step indirection) \u2014 no conventional assertion call was detected."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Events.IntegrationTest/Controllers/CollectControllerTests.cs"},"region":{"startLine":386}}}],"partialFingerprints":{"codehealthFindingId/v1":"4000485ec1f76b114c4271597596117b50a63f50aa8e773efbea8529c9818bb6"}},{"ruleId":"D10","level":"note","message":{"text":"No direct assertions: Post_CipherCaching_MultipleEventsForSameCipher_Success: In a harness-style test project (most tests assert via a verifier/approval harness or step indirection) \u2014 no conventional assertion call was detected."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Events.IntegrationTest/Controllers/CollectControllerTests.cs"},"region":{"startLine":415}}}],"partialFingerprints":{"codehealthFindingId/v1":"28672785d5e6477fb5ddbc7f91c02965951382b414ed64052186ddc666279954"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: Test1: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/EventsProcessor.Test/PlaceholderUnitTest.cs"},"region":{"startLine":6}}}],"partialFingerprints":{"codehealthFindingId/v1":"ecdcbe74134c0b28968ce7d07fff398b310e66439aec89fbc00109bd35b6b5b3"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: Test1: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Notifications.Test/PlaceholderUnitTest.cs"},"region":{"startLine":6}}}],"partialFingerprints":{"codehealthFindingId/v1":"569759026f5b0807aad3a79576fbee8685f04fa77fef2d63f57980bab7ea3001"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: AddGroups_AfterAddUsers_Succeeds: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/SeederApi.IntegrationTest/RecipeBuilderValidationTests.cs"},"region":{"startLine":75}}}],"partialFingerprints":{"codehealthFindingId/v1":"b60c462c80c6600bc62704305f047f089062c396faf7986f4b6554a229a9b413"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: AddCollections_AfterUseRoster_Succeeds: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/SeederApi.IntegrationTest/RecipeBuilderValidationTests.cs"},"region":{"startLine":85}}}],"partialFingerprints":{"codehealthFindingId/v1":"de58c6b045707ace1b1812f20b616ee21d454d6a586372f65aa7d8a6921aa0e3"}},{"ruleId":"D10","level":"error","message":{"text":"No assertions: Validate_WithRosterOwner_Succeeds: Test method has no assertions \u2014 it may not test anything."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/SeederApi.IntegrationTest/RecipeBuilderValidationTests.cs"},"region":{"startLine":117}}}],"partialFingerprints":{"codehealthFindingId/v1":"7838c89dbb177d18e3b7a6605675f472f644ee382d303a295e0bfc7909a748db"}},{"ruleId":"D10","level":"note","message":{"text":"Mock framework: NSubstitute: Scim.IntegrationTest references NSubstitute."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"f7a00103b900edf7e4be8c5cb3d32d7475832a80a5a9fb7f1f0784e5799890ed"}},{"ruleId":"D10","level":"note","message":{"text":"Mock framework: NSubstitute: Scim.Test references NSubstitute."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"f7a00103b900edf7e4be8c5cb3d32d7475832a80a5a9fb7f1f0784e5799890ed"}},{"ruleId":"D10","level":"note","message":{"text":"Mock framework: NSubstitute: Sso.IntegrationTest references NSubstitute."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"f7a00103b900edf7e4be8c5cb3d32d7475832a80a5a9fb7f1f0784e5799890ed"}},{"ruleId":"D10","level":"note","message":{"text":"Mock framework: NSubstitute: SSO.Test references NSubstitute."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"f7a00103b900edf7e4be8c5cb3d32d7475832a80a5a9fb7f1f0784e5799890ed"}},{"ruleId":"D10","level":"note","message":{"text":"Mock framework: NSubstitute: Api.Test references NSubstitute."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"f7a00103b900edf7e4be8c5cb3d32d7475832a80a5a9fb7f1f0784e5799890ed"}},{"ruleId":"D10","level":"note","message":{"text":"Mock framework: NSubstitute: Billing.Test references NSubstitute."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"f7a00103b900edf7e4be8c5cb3d32d7475832a80a5a9fb7f1f0784e5799890ed"}},{"ruleId":"D10","level":"note","message":{"text":"Mock framework: NSubstitute: Common references NSubstitute."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"f7a00103b900edf7e4be8c5cb3d32d7475832a80a5a9fb7f1f0784e5799890ed"}},{"ruleId":"D10","level":"note","message":{"text":"Mock framework: NSubstitute: Core.Test references NSubstitute."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"f7a00103b900edf7e4be8c5cb3d32d7475832a80a5a9fb7f1f0784e5799890ed"}},{"ruleId":"D10","level":"note","message":{"text":"Mock framework: NSubstitute: Events.Test references NSubstitute."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"f7a00103b900edf7e4be8c5cb3d32d7475832a80a5a9fb7f1f0784e5799890ed"}},{"ruleId":"D10","level":"note","message":{"text":"Mock framework: NSubstitute: Icons.Test references NSubstitute."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"f7a00103b900edf7e4be8c5cb3d32d7475832a80a5a9fb7f1f0784e5799890ed"}},{"ruleId":"D10","level":"note","message":{"text":"Mock framework: NSubstitute: Identity.IntegrationTest references NSubstitute."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"f7a00103b900edf7e4be8c5cb3d32d7475832a80a5a9fb7f1f0784e5799890ed"}},{"ruleId":"D10","level":"note","message":{"text":"Mock framework: NSubstitute: Identity.Test references NSubstitute."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"f7a00103b900edf7e4be8c5cb3d32d7475832a80a5a9fb7f1f0784e5799890ed"}},{"ruleId":"D10","level":"note","message":{"text":"Mock framework: NSubstitute: Infrastructure.EFIntegration.Test references NSubstitute."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"f7a00103b900edf7e4be8c5cb3d32d7475832a80a5a9fb7f1f0784e5799890ed"}},{"ruleId":"D10","level":"note","message":{"text":"Mock framework: NSubstitute: Setup.Test references NSubstitute."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"f7a00103b900edf7e4be8c5cb3d32d7475832a80a5a9fb7f1f0784e5799890ed"}},{"ruleId":"D10","level":"note","message":{"text":"Mock framework: NSubstitute: SharedWeb.Test references NSubstitute."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"f7a00103b900edf7e4be8c5cb3d32d7475832a80a5a9fb7f1f0784e5799890ed"}},{"ruleId":"D11","level":"note","message":{"text":"Tier not included (time budget): other: not included \u2014 too large to re-run within its budget"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"331d78c9ee7bdc1278abb0cfbbeb379cb9b3a6cf93a04d53b4200e0ae34b69bb"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Aspire.Hosting.AppHost: Aspire.Hosting.AppHost 13.3.4 \u2192 13.4.5 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"66c59b9b01da153ec864a500f3e8d9a794cb89aeb24f6bf8fc077f87ecb358b7"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Aspire.Hosting.Azure.Storage: Aspire.Hosting.Azure.Storage 13.3.4 \u2192 13.4.5 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d92a1a72969decff61f028bcd35e2ffae0f508f53cab256ef92815db37fa140c"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Aspire.Hosting.JavaScript: Aspire.Hosting.JavaScript 13.3.4 \u2192 13.4.5 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"bcedb8e67fe78454b2d651fc7cbce566c956131d31941b35665925ff92739f85"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Aspire.Hosting.SqlServer: Aspire.Hosting.SqlServer 13.3.4 \u2192 13.4.5 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"72c4be09ab1189851de25d3fe6e193090d752d753cfad88eaf9a9f5b5e019386"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: BenchmarkDotNet: BenchmarkDotNet 0.15.3 \u2192 0.15.8 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"1b533f74e585b27f6190e5a78c6a71e91925e7c42d1f8bf7f99698b4b7ae2a04"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Exporter.OpenTelemetryProtocol: OpenTelemetry.Exporter.OpenTelemetryProtocol 1.15.3 \u2192 1.16.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"f343de962ecd3c698a1d82ad0b3d649ee0ca8fc253d4c0b9c99f5cf032dff4ac"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Extensions.Hosting: OpenTelemetry.Extensions.Hosting 1.15.3 \u2192 1.16.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"90fcd306bf2ab1bdf2cc10dfe60faf4b80d32a6f246ebe1f5cdfc7d40da022da"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Instrumentation.AspNetCore: OpenTelemetry.Instrumentation.AspNetCore 1.15.0 \u2192 1.15.2 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"41a73d88931598b7db52ba2ca288e6ce67af4c6b353a3291f574894769d49f39"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Instrumentation.EntityFrameworkCore: OpenTelemetry.Instrumentation.EntityFrameworkCore 1.12.0-beta.2 \u2192 Not available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"3fe5bd3e0ec8601031a1160a1dbc04d34d8bbf20290a6ec5878728e73489604e"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Instrumentation.Http: OpenTelemetry.Instrumentation.Http 1.15.0 \u2192 1.15.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"ff5730b15cbb08ce20ab8aeaba97cd16a0e8dfb9c5b4a585482e571a88f4cd5e"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Instrumentation.Runtime: OpenTelemetry.Instrumentation.Runtime 1.15.0 \u2192 1.15.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"5b2ee2bdb69760028c130d516c1b3bbf999e60060cb81f0f3afa201555a2fd6e"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Instrumentation.SqlClient: OpenTelemetry.Instrumentation.SqlClient 1.12.0-beta.3 \u2192 1.15.2 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"cf4eebc454f07b3c80013eb493d54803cac95dc768f64aa6eca9627c06c3209a"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: AspNetCore.HealthChecks.SqlServer: AspNetCore.HealthChecks.SqlServer 8.0.2 \u2192 9.0.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"af33aaf4b522c59651874e54a1ff986e5db2f4cda3f664e411de60c0d7c2a24a"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: AspNetCore.HealthChecks.Uris: AspNetCore.HealthChecks.Uris 8.0.1 \u2192 9.0.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"4022ad890394f55689e89ea5d1a727c78f4a2583a5c35f10cb9323406137fd25"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Exporter.OpenTelemetryProtocol: OpenTelemetry.Exporter.OpenTelemetryProtocol 1.15.3 \u2192 1.16.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"f343de962ecd3c698a1d82ad0b3d649ee0ca8fc253d4c0b9c99f5cf032dff4ac"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Extensions.Hosting: OpenTelemetry.Extensions.Hosting 1.15.3 \u2192 1.16.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"90fcd306bf2ab1bdf2cc10dfe60faf4b80d32a6f246ebe1f5cdfc7d40da022da"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Instrumentation.AspNetCore: OpenTelemetry.Instrumentation.AspNetCore 1.15.0 \u2192 1.15.2 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"41a73d88931598b7db52ba2ca288e6ce67af4c6b353a3291f574894769d49f39"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Instrumentation.EntityFrameworkCore: OpenTelemetry.Instrumentation.EntityFrameworkCore 1.12.0-beta.2 \u2192 Not available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"3fe5bd3e0ec8601031a1160a1dbc04d34d8bbf20290a6ec5878728e73489604e"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Instrumentation.Http: OpenTelemetry.Instrumentation.Http 1.15.0 \u2192 1.15.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"ff5730b15cbb08ce20ab8aeaba97cd16a0e8dfb9c5b4a585482e571a88f4cd5e"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Instrumentation.Runtime: OpenTelemetry.Instrumentation.Runtime 1.15.0 \u2192 1.15.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"5b2ee2bdb69760028c130d516c1b3bbf999e60060cb81f0f3afa201555a2fd6e"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Instrumentation.SqlClient: OpenTelemetry.Instrumentation.SqlClient 1.12.0-beta.3 \u2192 1.15.2 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"cf4eebc454f07b3c80013eb493d54803cac95dc768f64aa6eca9627c06c3209a"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Swashbuckle.AspNetCore: Swashbuckle.AspNetCore 10.1.7 \u2192 10.2.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"7072588f3b2ee7033c63d6a991ecaec0341a91e5761c9129d0e837df018c7856"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: MarkDig: MarkDig 1.1.0 \u2192 1.3.2 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"5462a004a2275f0bde0f10556947f58860e03c11437a68399a761ba561785f99"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Exporter.OpenTelemetryProtocol: OpenTelemetry.Exporter.OpenTelemetryProtocol 1.15.3 \u2192 1.16.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"f343de962ecd3c698a1d82ad0b3d649ee0ca8fc253d4c0b9c99f5cf032dff4ac"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Extensions.Hosting: OpenTelemetry.Extensions.Hosting 1.15.3 \u2192 1.16.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"90fcd306bf2ab1bdf2cc10dfe60faf4b80d32a6f246ebe1f5cdfc7d40da022da"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Instrumentation.AspNetCore: OpenTelemetry.Instrumentation.AspNetCore 1.15.0 \u2192 1.15.2 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"41a73d88931598b7db52ba2ca288e6ce67af4c6b353a3291f574894769d49f39"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Instrumentation.EntityFrameworkCore: OpenTelemetry.Instrumentation.EntityFrameworkCore 1.12.0-beta.2 \u2192 Not available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"3fe5bd3e0ec8601031a1160a1dbc04d34d8bbf20290a6ec5878728e73489604e"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Instrumentation.Http: OpenTelemetry.Instrumentation.Http 1.15.0 \u2192 1.15.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"ff5730b15cbb08ce20ab8aeaba97cd16a0e8dfb9c5b4a585482e571a88f4cd5e"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Instrumentation.Runtime: OpenTelemetry.Instrumentation.Runtime 1.15.0 \u2192 1.15.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"5b2ee2bdb69760028c130d516c1b3bbf999e60060cb81f0f3afa201555a2fd6e"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Instrumentation.SqlClient: OpenTelemetry.Instrumentation.SqlClient 1.12.0-beta.3 \u2192 1.15.2 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"cf4eebc454f07b3c80013eb493d54803cac95dc768f64aa6eca9627c06c3209a"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Swashbuckle.AspNetCore: Swashbuckle.AspNetCore 10.1.7 \u2192 10.2.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"7072588f3b2ee7033c63d6a991ecaec0341a91e5761c9129d0e837df018c7856"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: AWSSDK.SimpleEmail: AWSSDK.SimpleEmail 4.0.2.5 \u2192 4.0.3.7 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"66be65268eb557ec3bc43ce66e2db0aa4c400b2770a9d779af0703343f567c13"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: AWSSDK.SQS: AWSSDK.SQS 4.0.2.5 \u2192 4.0.3.7 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"7c8d3c8b809346b0c3beb057c0842dc29bf9def9951993cf5c1ae8fdeb2675d4"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Azure.Extensions.AspNetCore.DataProtection.Blobs: Azure.Extensions.AspNetCore.DataProtection.Blobs 1.3.4 \u2192 1.5.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"3fd535f286e9739909869aa48f174d961c650aa4335763e91d3f2e4f4b1c851f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Azure.Storage.Blobs: Azure.Storage.Blobs 12.26.0 \u2192 12.29.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"dc6185bbcb2f69b469ae3e9f0e3e6460e677ec212ed2f24ceaad80f6c8317f11"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Azure.Storage.Blobs.Batch: Azure.Storage.Blobs.Batch 12.23.0 \u2192 12.26.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"03eefe4c6c4d8cf965bab5bad08ec4058765e8f7d49e7d7b5e2107d321d866af"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Azure.Storage.Queues: Azure.Storage.Queues 12.24.0 \u2192 12.27.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"7db76da3d4498e81c8904f102af362b7f46d1f5508e0c0b3ed044475fba445ba"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Braintree: Braintree 5.36.0 \u2192 5.41.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"133ae2d87dd7c73dc79de3cd412679eb80e621a128e8961327534cc01c9dcc61"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Duende.IdentityServer: Duende.IdentityServer 7.4.6 \u2192 8.0.2 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"060d02c446d5ed0b1ef2898de27af5150831fd3c4bdd3bac29b2ee2d1a10ef6e"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Fido2.AspNet: Fido2.AspNet 3.0.1 \u2192 4.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"c5cff2588178bfa5640cfcadc0de2f0c379514223db596c9b01f994fd4236c6d"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: LaunchDarkly.ServerSdk: LaunchDarkly.ServerSdk 8.11.0 \u2192 8.14.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"1be4de1fcca8a2fc3ac23aaee174e8a2612ca327e085877053f54c22e5a303eb"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: MailKit: MailKit 4.16.0 \u2192 4.17.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e46b02d489389c7ea1f7b7bcd73035aa35f59bbaa527899c42c2e6d90c9e49ee"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.AspNetCore.Authentication.JwtBearer: Microsoft.AspNetCore.Authentication.JwtBearer 10.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"f3f32aca35b9f2bce59fe364cd5f9f329a8794586827406d6d886ee25017cd7b"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.AspNetCore.DataProtection: Microsoft.AspNetCore.DataProtection 10.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"45bc88e716f2cd1c59e666d8c7d394e0c2cea1cecb5f66c82063f830c9f026db"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Azure.Cosmos: Microsoft.Azure.Cosmos 3.52.0 \u2192 3.61.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"71350cdd0bbf1eadd6a3131c7202b96f5f8de8bd4b904c49463f2a1105c1bd54"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Bot.Builder: Microsoft.Bot.Builder 4.23.0 \u2192 4.23.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"c2b4b3ea535fdf9864f082f82a944ea1a93d5f5da74b9ec13a3bfeef87a61089"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Bot.Builder.Integration.AspNet.Core: Microsoft.Bot.Builder.Integration.AspNet.Core 4.23.0 \u2192 4.23.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e051ac0cf3297a611a2c1032d41f02b6538c6f2a2ed114febcaca1d57d1af825"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Bot.Connector: Microsoft.Bot.Connector 4.23.0 \u2192 4.23.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"843c8759b8e6d5333b94b1ea678ac99be105d2aa174ff595522fef120aec3bbf"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Data.SqlClient: Microsoft.Data.SqlClient 7.0.0 \u2192 7.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"6bf9c4b6ea6c7b54f640820461e643013418803d85fd3de4a02535bc63530286"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Caching.SqlServer: Microsoft.Extensions.Caching.SqlServer 10.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"0a38f727ee487f27a6cd3c31acb0b954b4879c7c8b8b6fd0fc01b59354301f54"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Caching.StackExchangeRedis: Microsoft.Extensions.Caching.StackExchangeRedis 10.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"49ee1ddac6d45b4c290bbb4b42baab3d1f3b1d5ff29b3fd84e082238cb57c625"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Configuration.EnvironmentVariables: Microsoft.Extensions.Configuration.EnvironmentVariables 10.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"052f870d23c40b3425161c2fe9e06b218bac9cf0527d9159f61222495bf682b8"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Configuration.UserSecrets: Microsoft.Extensions.Configuration.UserSecrets 10.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"16c2ac40c716b144666e4806dfac6df47783fe10cc0c85bca10ef9edb19bee85"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Identity.Stores: Microsoft.Extensions.Identity.Stores 10.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"54b20b96fef570b6316b18f99bc7435bea5e0280f402b96cb52148698395ac7f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Newtonsoft.Json: Newtonsoft.Json 13.0.3 \u2192 13.0.4 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"6bc3c45041773c780f3c71a5a4c37913170b10795bfed8949da7f32ecee66143"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Otp.NET: Otp.NET 1.4.0 \u2192 1.4.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"c47716adf8337378713b1bc50445ecc00a5dd9def926e82822b9b5d3ecec09a4"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Quartz: Quartz 3.15.1 \u2192 3.18.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"52f6f9019f2423f45a4d0a4e3a8ec5c873be5be2574480089fd295ed8ccea268"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Quartz.Extensions.DependencyInjection: Quartz.Extensions.DependencyInjection 3.15.1 \u2192 3.18.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"35eff210a963d1fda7f9d0fec28e27300b62d509a5a3cf05363317bbed8d8955"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Quartz.Extensions.Hosting: Quartz.Extensions.Hosting 3.15.1 \u2192 3.18.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"10fb79dbaf225af168c855920365e5c572aa57de85533ddfa678f39959f694a4"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: RabbitMQ.Client: RabbitMQ.Client 7.1.2 \u2192 7.2.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"58d2dce5c89d42e31accb3d849080232c9b67441a2af77a5ba75847caaf760b5"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Stripe.net: Stripe.net 48.5.0 \u2192 52.0.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"fd47f7600fd9d4a7c89c45f0d39eacd43dfde664e0d529ec18ada35ff6a76b40"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: ZiggyCreatures.FusionCache: ZiggyCreatures.FusionCache 2.0.2 \u2192 2.6.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"b7ec0f8783edffa881fc3336bea4e7f6f7eca61850805e94086c447ce995f219"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: ZiggyCreatures.FusionCache.Backplane.StackExchangeRedis: ZiggyCreatures.FusionCache.Backplane.StackExchangeRedis 2.0.2 \u2192 2.6.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"0abb301598d4af357eb26b87e8f9746fce358cf21617448df9614698dcc2852b"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: ZiggyCreatures.FusionCache.Serialization.SystemTextJson: ZiggyCreatures.FusionCache.Serialization.SystemTextJson 2.0.2 \u2192 2.6.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"db83c5750ecdd54e21afdc3c0a0cbfccaa5946fd47b1f5449da21eeeaf9fbe21"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Exporter.OpenTelemetryProtocol: OpenTelemetry.Exporter.OpenTelemetryProtocol 1.15.3 \u2192 1.16.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"f343de962ecd3c698a1d82ad0b3d649ee0ca8fc253d4c0b9c99f5cf032dff4ac"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Extensions.Hosting: OpenTelemetry.Extensions.Hosting 1.15.3 \u2192 1.16.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"90fcd306bf2ab1bdf2cc10dfe60faf4b80d32a6f246ebe1f5cdfc7d40da022da"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Instrumentation.AspNetCore: OpenTelemetry.Instrumentation.AspNetCore 1.15.0 \u2192 1.15.2 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"41a73d88931598b7db52ba2ca288e6ce67af4c6b353a3291f574894769d49f39"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Instrumentation.EntityFrameworkCore: OpenTelemetry.Instrumentation.EntityFrameworkCore 1.12.0-beta.2 \u2192 Not available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"3fe5bd3e0ec8601031a1160a1dbc04d34d8bbf20290a6ec5878728e73489604e"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Instrumentation.Http: OpenTelemetry.Instrumentation.Http 1.15.0 \u2192 1.15.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"ff5730b15cbb08ce20ab8aeaba97cd16a0e8dfb9c5b4a585482e571a88f4cd5e"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Instrumentation.Runtime: OpenTelemetry.Instrumentation.Runtime 1.15.0 \u2192 1.15.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"5b2ee2bdb69760028c130d516c1b3bbf999e60060cb81f0f3afa201555a2fd6e"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Instrumentation.SqlClient: OpenTelemetry.Instrumentation.SqlClient 1.12.0-beta.3 \u2192 1.15.2 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"cf4eebc454f07b3c80013eb493d54803cac95dc768f64aa6eca9627c06c3209a"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Exporter.OpenTelemetryProtocol: OpenTelemetry.Exporter.OpenTelemetryProtocol 1.15.3 \u2192 1.16.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"f343de962ecd3c698a1d82ad0b3d649ee0ca8fc253d4c0b9c99f5cf032dff4ac"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Extensions.Hosting: OpenTelemetry.Extensions.Hosting 1.15.3 \u2192 1.16.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"90fcd306bf2ab1bdf2cc10dfe60faf4b80d32a6f246ebe1f5cdfc7d40da022da"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Instrumentation.AspNetCore: OpenTelemetry.Instrumentation.AspNetCore 1.15.0 \u2192 1.15.2 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"41a73d88931598b7db52ba2ca288e6ce67af4c6b353a3291f574894769d49f39"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Instrumentation.EntityFrameworkCore: OpenTelemetry.Instrumentation.EntityFrameworkCore 1.12.0-beta.2 \u2192 Not available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"3fe5bd3e0ec8601031a1160a1dbc04d34d8bbf20290a6ec5878728e73489604e"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Instrumentation.Http: OpenTelemetry.Instrumentation.Http 1.15.0 \u2192 1.15.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"ff5730b15cbb08ce20ab8aeaba97cd16a0e8dfb9c5b4a585482e571a88f4cd5e"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Instrumentation.Runtime: OpenTelemetry.Instrumentation.Runtime 1.15.0 \u2192 1.15.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"5b2ee2bdb69760028c130d516c1b3bbf999e60060cb81f0f3afa201555a2fd6e"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Instrumentation.SqlClient: OpenTelemetry.Instrumentation.SqlClient 1.12.0-beta.3 \u2192 1.15.2 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"cf4eebc454f07b3c80013eb493d54803cac95dc768f64aa6eca9627c06c3209a"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: AngleSharp: AngleSharp 1.4.0 \u2192 1.5.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"06a923fb417139f19297503447e9280fb58e3a5345ffbbda135169ad8638e591"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Exporter.OpenTelemetryProtocol: OpenTelemetry.Exporter.OpenTelemetryProtocol 1.15.3 \u2192 1.16.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"f343de962ecd3c698a1d82ad0b3d649ee0ca8fc253d4c0b9c99f5cf032dff4ac"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Extensions.Hosting: OpenTelemetry.Extensions.Hosting 1.15.3 \u2192 1.16.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"90fcd306bf2ab1bdf2cc10dfe60faf4b80d32a6f246ebe1f5cdfc7d40da022da"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Instrumentation.AspNetCore: OpenTelemetry.Instrumentation.AspNetCore 1.15.0 \u2192 1.15.2 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"41a73d88931598b7db52ba2ca288e6ce67af4c6b353a3291f574894769d49f39"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Instrumentation.EntityFrameworkCore: OpenTelemetry.Instrumentation.EntityFrameworkCore 1.12.0-beta.2 \u2192 Not available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"3fe5bd3e0ec8601031a1160a1dbc04d34d8bbf20290a6ec5878728e73489604e"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Instrumentation.Http: OpenTelemetry.Instrumentation.Http 1.15.0 \u2192 1.15.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"ff5730b15cbb08ce20ab8aeaba97cd16a0e8dfb9c5b4a585482e571a88f4cd5e"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Instrumentation.Runtime: OpenTelemetry.Instrumentation.Runtime 1.15.0 \u2192 1.15.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"5b2ee2bdb69760028c130d516c1b3bbf999e60060cb81f0f3afa201555a2fd6e"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Instrumentation.SqlClient: OpenTelemetry.Instrumentation.SqlClient 1.12.0-beta.3 \u2192 1.15.2 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"cf4eebc454f07b3c80013eb493d54803cac95dc768f64aa6eca9627c06c3209a"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Exporter.OpenTelemetryProtocol: OpenTelemetry.Exporter.OpenTelemetryProtocol 1.15.3 \u2192 1.16.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"f343de962ecd3c698a1d82ad0b3d649ee0ca8fc253d4c0b9c99f5cf032dff4ac"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Extensions.Hosting: OpenTelemetry.Extensions.Hosting 1.15.3 \u2192 1.16.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"90fcd306bf2ab1bdf2cc10dfe60faf4b80d32a6f246ebe1f5cdfc7d40da022da"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Instrumentation.AspNetCore: OpenTelemetry.Instrumentation.AspNetCore 1.15.0 \u2192 1.15.2 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"41a73d88931598b7db52ba2ca288e6ce67af4c6b353a3291f574894769d49f39"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Instrumentation.EntityFrameworkCore: OpenTelemetry.Instrumentation.EntityFrameworkCore 1.12.0-beta.2 \u2192 Not available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"3fe5bd3e0ec8601031a1160a1dbc04d34d8bbf20290a6ec5878728e73489604e"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Instrumentation.Http: OpenTelemetry.Instrumentation.Http 1.15.0 \u2192 1.15.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"ff5730b15cbb08ce20ab8aeaba97cd16a0e8dfb9c5b4a585482e571a88f4cd5e"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Instrumentation.Runtime: OpenTelemetry.Instrumentation.Runtime 1.15.0 \u2192 1.15.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"5b2ee2bdb69760028c130d516c1b3bbf999e60060cb81f0f3afa201555a2fd6e"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Instrumentation.SqlClient: OpenTelemetry.Instrumentation.SqlClient 1.12.0-beta.3 \u2192 1.15.2 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"cf4eebc454f07b3c80013eb493d54803cac95dc768f64aa6eca9627c06c3209a"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Dapper: Dapper 2.1.66 \u2192 2.1.79 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"4fe29cdf6ffa4e04e6b92e6e75cc02cb00db354a969a8579b466d8b1ddfc0024"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: AutoMapper: AutoMapper 14.0.0 \u2192 16.1.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"c31fd8db76c535ee00b664fa648189351576c63c0d5403c7648ff2a267cc3609"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: linq2db: linq2db 5.4.1 \u2192 6.3.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"50692d56724d1aae783755b6fada994ffcc0ad00c7b9d187b84c725e0242f4aa"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: linq2db.EntityFrameworkCore: linq2db.EntityFrameworkCore 8.1.0 \u2192 10.4.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"4ea87b5e18289d495c9e1355e956e0652a4e4d6194a3ce3140350d8b2ba1c706"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.EntityFrameworkCore.Relational: Microsoft.EntityFrameworkCore.Relational 8.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"139886e5d6da26cdb2987d5d451b93cb1d7c12172fa70d587678b9255b557994"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.EntityFrameworkCore.Sqlite: Microsoft.EntityFrameworkCore.Sqlite 8.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"ca1f26ceea81e25ff353f12edb9683cd25576659307f775be3350af4c8f46ce2"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.EntityFrameworkCore.SqlServer: Microsoft.EntityFrameworkCore.SqlServer 8.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"937054724777e95f02b0cf71e7f6c536b9c54ad74128487d9f2e2a723becb2ef"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Npgsql.EntityFrameworkCore.PostgreSQL: Npgsql.EntityFrameworkCore.PostgreSQL 8.0.4 \u2192 10.0.2 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"43f53420cfcb3ff81b5e43baa23509bd321880c1a2b709fdd0007ad3bbd87c95"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Pomelo.EntityFrameworkCore.MySql: Pomelo.EntityFrameworkCore.MySql 8.0.2 \u2192 9.0.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e8153af199658886dd9917063c005341a1ad14ed3302b02eee47211f0c0e2e21"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.AspNetCore.SignalR.Protocols.MessagePack: Microsoft.AspNetCore.SignalR.Protocols.MessagePack 10.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d60d55b588f4da00b940f3eba0bf2b41e3f10edf85dfd272dfc616ee7548ee18"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.AspNetCore.SignalR.StackExchangeRedis: Microsoft.AspNetCore.SignalR.StackExchangeRedis 10.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"2330e672d201b5fb3d95b969937782ead8415de75075bd653b5df14c255e817c"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Exporter.OpenTelemetryProtocol: OpenTelemetry.Exporter.OpenTelemetryProtocol 1.15.3 \u2192 1.16.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"f343de962ecd3c698a1d82ad0b3d649ee0ca8fc253d4c0b9c99f5cf032dff4ac"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Extensions.Hosting: OpenTelemetry.Extensions.Hosting 1.15.3 \u2192 1.16.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"90fcd306bf2ab1bdf2cc10dfe60faf4b80d32a6f246ebe1f5cdfc7d40da022da"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Instrumentation.AspNetCore: OpenTelemetry.Instrumentation.AspNetCore 1.15.0 \u2192 1.15.2 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"41a73d88931598b7db52ba2ca288e6ce67af4c6b353a3291f574894769d49f39"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Instrumentation.EntityFrameworkCore: OpenTelemetry.Instrumentation.EntityFrameworkCore 1.12.0-beta.2 \u2192 Not available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"3fe5bd3e0ec8601031a1160a1dbc04d34d8bbf20290a6ec5878728e73489604e"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Instrumentation.Http: OpenTelemetry.Instrumentation.Http 1.15.0 \u2192 1.15.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"ff5730b15cbb08ce20ab8aeaba97cd16a0e8dfb9c5b4a585482e571a88f4cd5e"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Instrumentation.Runtime: OpenTelemetry.Instrumentation.Runtime 1.15.0 \u2192 1.15.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"5b2ee2bdb69760028c130d516c1b3bbf999e60060cb81f0f3afa201555a2fd6e"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Instrumentation.SqlClient: OpenTelemetry.Instrumentation.SqlClient 1.12.0-beta.3 \u2192 1.15.2 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"cf4eebc454f07b3c80013eb493d54803cac95dc768f64aa6eca9627c06c3209a"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Bot.Builder.Integration.AspNet.Core: Microsoft.Bot.Builder.Integration.AspNet.Core 4.23.0 \u2192 4.23.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e051ac0cf3297a611a2c1032d41f02b6538c6f2a2ed114febcaca1d57d1af825"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Swashbuckle.AspNetCore.SwaggerGen: Swashbuckle.AspNetCore.SwaggerGen 10.1.7 \u2192 10.2.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"0760cca9ba64de174e85a8d8d59fc044d916cbf77490839902ad1c91469d7464"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: AutoMapper: AutoMapper 14.0.0 \u2192 16.1.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"c31fd8db76c535ee00b664fa648189351576c63c0d5403c7648ff2a267cc3609"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Exporter.OpenTelemetryProtocol: OpenTelemetry.Exporter.OpenTelemetryProtocol 1.15.3 \u2192 1.16.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"f343de962ecd3c698a1d82ad0b3d649ee0ca8fc253d4c0b9c99f5cf032dff4ac"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Extensions.Hosting: OpenTelemetry.Extensions.Hosting 1.15.3 \u2192 1.16.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"90fcd306bf2ab1bdf2cc10dfe60faf4b80d32a6f246ebe1f5cdfc7d40da022da"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Instrumentation.AspNetCore: OpenTelemetry.Instrumentation.AspNetCore 1.15.0 \u2192 1.15.2 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"41a73d88931598b7db52ba2ca288e6ce67af4c6b353a3291f574894769d49f39"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Instrumentation.EntityFrameworkCore: OpenTelemetry.Instrumentation.EntityFrameworkCore 1.12.0-beta.2 \u2192 Not available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"3fe5bd3e0ec8601031a1160a1dbc04d34d8bbf20290a6ec5878728e73489604e"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Instrumentation.Http: OpenTelemetry.Instrumentation.Http 1.15.0 \u2192 1.15.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"ff5730b15cbb08ce20ab8aeaba97cd16a0e8dfb9c5b4a585482e571a88f4cd5e"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Instrumentation.Runtime: OpenTelemetry.Instrumentation.Runtime 1.15.0 \u2192 1.15.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"5b2ee2bdb69760028c130d516c1b3bbf999e60060cb81f0f3afa201555a2fd6e"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Instrumentation.SqlClient: OpenTelemetry.Instrumentation.SqlClient 1.12.0-beta.3 \u2192 1.15.2 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"cf4eebc454f07b3c80013eb493d54803cac95dc768f64aa6eca9627c06c3209a"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Exporter.OpenTelemetryProtocol: OpenTelemetry.Exporter.OpenTelemetryProtocol 1.15.3 \u2192 1.16.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"f343de962ecd3c698a1d82ad0b3d649ee0ca8fc253d4c0b9c99f5cf032dff4ac"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Extensions.Hosting: OpenTelemetry.Extensions.Hosting 1.15.3 \u2192 1.16.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"90fcd306bf2ab1bdf2cc10dfe60faf4b80d32a6f246ebe1f5cdfc7d40da022da"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Instrumentation.AspNetCore: OpenTelemetry.Instrumentation.AspNetCore 1.15.0 \u2192 1.15.2 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"41a73d88931598b7db52ba2ca288e6ce67af4c6b353a3291f574894769d49f39"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Instrumentation.EntityFrameworkCore: OpenTelemetry.Instrumentation.EntityFrameworkCore 1.12.0-beta.2 \u2192 Not available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"3fe5bd3e0ec8601031a1160a1dbc04d34d8bbf20290a6ec5878728e73489604e"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Instrumentation.Http: OpenTelemetry.Instrumentation.Http 1.15.0 \u2192 1.15.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"ff5730b15cbb08ce20ab8aeaba97cd16a0e8dfb9c5b4a585482e571a88f4cd5e"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Instrumentation.Runtime: OpenTelemetry.Instrumentation.Runtime 1.15.0 \u2192 1.15.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"5b2ee2bdb69760028c130d516c1b3bbf999e60060cb81f0f3afa201555a2fd6e"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: OpenTelemetry.Instrumentation.SqlClient: OpenTelemetry.Instrumentation.SqlClient 1.12.0-beta.3 \u2192 1.15.2 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"cf4eebc454f07b3c80013eb493d54803cac95dc768f64aa6eca9627c06c3209a"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: coverlet.collector: coverlet.collector 6.0.0 \u2192 10.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9e862b60ea0e6244916f0a40a9c1d5da15704f97aa0d556f0c0430eff9e4638f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.NET.Test.Sdk: Microsoft.NET.Test.Sdk 18.0.1 \u2192 18.6.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e92dcd48f7ffe19d959e6b8961b53cbea7b17fb2d62d0f9d1f5c4c7b07984fab"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit: xunit 2.6.6 \u2192 2.9.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e2d71eb3db50b167e2915ebb5c8a26b562df41b418b815fc7c968a7e82ac3675"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit.runner.visualstudio: xunit.runner.visualstudio 2.5.6 \u2192 3.1.5 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"87a27f08f73b189de0e26c050a80006f291ef3318601521723ed613d4d974e96"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: coverlet.collector: coverlet.collector 6.0.0 \u2192 10.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9e862b60ea0e6244916f0a40a9c1d5da15704f97aa0d556f0c0430eff9e4638f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.AspNetCore.Mvc.Testing: Microsoft.AspNetCore.Mvc.Testing 10.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"99225cf2945eea3bb5234c962ae56cc8ceaaf2816adf090819dcc0b630220288"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.NET.Test.Sdk: Microsoft.NET.Test.Sdk 18.0.1 \u2192 18.6.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e92dcd48f7ffe19d959e6b8961b53cbea7b17fb2d62d0f9d1f5c4c7b07984fab"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: NSubstitute: NSubstitute 5.1.0 \u2192 5.3.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e691db01930f3e0a55c55d6fe214b85bfd0b74a3049ce324dacf09f71c70d852"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit: xunit 2.6.6 \u2192 2.9.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e2d71eb3db50b167e2915ebb5c8a26b562df41b418b815fc7c968a7e82ac3675"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit.runner.visualstudio: xunit.runner.visualstudio 2.5.6 \u2192 3.1.5 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"87a27f08f73b189de0e26c050a80006f291ef3318601521723ed613d4d974e96"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: coverlet.collector: coverlet.collector 6.0.0 \u2192 10.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9e862b60ea0e6244916f0a40a9c1d5da15704f97aa0d556f0c0430eff9e4638f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.NET.Test.Sdk: Microsoft.NET.Test.Sdk 18.0.1 \u2192 18.6.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e92dcd48f7ffe19d959e6b8961b53cbea7b17fb2d62d0f9d1f5c4c7b07984fab"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: NSubstitute: NSubstitute 5.1.0 \u2192 5.3.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e691db01930f3e0a55c55d6fe214b85bfd0b74a3049ce324dacf09f71c70d852"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit: xunit 2.6.6 \u2192 2.9.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e2d71eb3db50b167e2915ebb5c8a26b562df41b418b815fc7c968a7e82ac3675"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit.runner.visualstudio: xunit.runner.visualstudio 2.5.6 \u2192 3.1.5 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"87a27f08f73b189de0e26c050a80006f291ef3318601521723ed613d4d974e96"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: coverlet.collector: coverlet.collector 6.0.0 \u2192 10.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9e862b60ea0e6244916f0a40a9c1d5da15704f97aa0d556f0c0430eff9e4638f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.AspNetCore.Mvc.Testing: Microsoft.AspNetCore.Mvc.Testing 10.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"99225cf2945eea3bb5234c962ae56cc8ceaaf2816adf090819dcc0b630220288"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.NET.Test.Sdk: Microsoft.NET.Test.Sdk 18.0.1 \u2192 18.6.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e92dcd48f7ffe19d959e6b8961b53cbea7b17fb2d62d0f9d1f5c4c7b07984fab"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: NSubstitute: NSubstitute 5.1.0 \u2192 5.3.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e691db01930f3e0a55c55d6fe214b85bfd0b74a3049ce324dacf09f71c70d852"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit: xunit 2.6.6 \u2192 2.9.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e2d71eb3db50b167e2915ebb5c8a26b562df41b418b815fc7c968a7e82ac3675"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit.runner.visualstudio: xunit.runner.visualstudio 2.5.6 \u2192 3.1.5 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"87a27f08f73b189de0e26c050a80006f291ef3318601521723ed613d4d974e96"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: coverlet.collector: coverlet.collector 6.0.0 \u2192 10.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9e862b60ea0e6244916f0a40a9c1d5da15704f97aa0d556f0c0430eff9e4638f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.NET.Test.Sdk: Microsoft.NET.Test.Sdk 18.0.1 \u2192 18.6.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e92dcd48f7ffe19d959e6b8961b53cbea7b17fb2d62d0f9d1f5c4c7b07984fab"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: NSubstitute: NSubstitute 5.1.0 \u2192 5.3.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e691db01930f3e0a55c55d6fe214b85bfd0b74a3049ce324dacf09f71c70d852"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit: xunit 2.6.6 \u2192 2.9.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e2d71eb3db50b167e2915ebb5c8a26b562df41b418b815fc7c968a7e82ac3675"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit.runner.visualstudio: xunit.runner.visualstudio 2.5.6 \u2192 3.1.5 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"87a27f08f73b189de0e26c050a80006f291ef3318601521723ed613d4d974e96"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: coverlet.collector: coverlet.collector 6.0.0 \u2192 10.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9e862b60ea0e6244916f0a40a9c1d5da15704f97aa0d556f0c0430eff9e4638f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.NET.Test.Sdk: Microsoft.NET.Test.Sdk 18.0.1 \u2192 18.6.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e92dcd48f7ffe19d959e6b8961b53cbea7b17fb2d62d0f9d1f5c4c7b07984fab"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit: xunit 2.6.6 \u2192 2.9.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e2d71eb3db50b167e2915ebb5c8a26b562df41b418b815fc7c968a7e82ac3675"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit.runner.visualstudio: xunit.runner.visualstudio 2.5.6 \u2192 3.1.5 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"87a27f08f73b189de0e26c050a80006f291ef3318601521723ed613d4d974e96"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: coverlet.collector: coverlet.collector 6.0.0 \u2192 10.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9e862b60ea0e6244916f0a40a9c1d5da15704f97aa0d556f0c0430eff9e4638f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Diagnostics.Testing: Microsoft.Extensions.Diagnostics.Testing 9.10.0 \u2192 10.7.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d846c560a0fd753e77762ac0124d56499d092287c386067e9db418f3e1c5ae2f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.NET.Test.Sdk: Microsoft.NET.Test.Sdk 18.0.1 \u2192 18.6.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e92dcd48f7ffe19d959e6b8961b53cbea7b17fb2d62d0f9d1f5c4c7b07984fab"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit: xunit 2.6.6 \u2192 2.9.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e2d71eb3db50b167e2915ebb5c8a26b562df41b418b815fc7c968a7e82ac3675"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit.runner.visualstudio: xunit.runner.visualstudio 2.5.6 \u2192 3.1.5 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"87a27f08f73b189de0e26c050a80006f291ef3318601521723ed613d4d974e96"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: coverlet.collector: coverlet.collector 6.0.0 \u2192 10.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9e862b60ea0e6244916f0a40a9c1d5da15704f97aa0d556f0c0430eff9e4638f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.NET.Test.Sdk: Microsoft.NET.Test.Sdk 18.0.1 \u2192 18.6.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e92dcd48f7ffe19d959e6b8961b53cbea7b17fb2d62d0f9d1f5c4c7b07984fab"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: NSubstitute: NSubstitute 5.1.0 \u2192 5.3.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e691db01930f3e0a55c55d6fe214b85bfd0b74a3049ce324dacf09f71c70d852"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit: xunit 2.6.6 \u2192 2.9.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e2d71eb3db50b167e2915ebb5c8a26b562df41b418b815fc7c968a7e82ac3675"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit.runner.visualstudio: xunit.runner.visualstudio 2.5.6 \u2192 3.1.5 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"87a27f08f73b189de0e26c050a80006f291ef3318601521723ed613d4d974e96"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: coverlet.collector: coverlet.collector 6.0.0 \u2192 10.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9e862b60ea0e6244916f0a40a9c1d5da15704f97aa0d556f0c0430eff9e4638f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.NET.Test.Sdk: Microsoft.NET.Test.Sdk 18.0.1 \u2192 18.6.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e92dcd48f7ffe19d959e6b8961b53cbea7b17fb2d62d0f9d1f5c4c7b07984fab"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: NSubstitute: NSubstitute 5.1.0 \u2192 5.3.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e691db01930f3e0a55c55d6fe214b85bfd0b74a3049ce324dacf09f71c70d852"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit: xunit 2.6.6 \u2192 2.9.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e2d71eb3db50b167e2915ebb5c8a26b562df41b418b815fc7c968a7e82ac3675"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit.runner.visualstudio: xunit.runner.visualstudio 2.5.6 \u2192 3.1.5 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"87a27f08f73b189de0e26c050a80006f291ef3318601521723ed613d4d974e96"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.TimeProvider.Testing: Microsoft.Extensions.TimeProvider.Testing 10.6.0 \u2192 10.7.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"4a2e364e95d6bcd440eed94b9e54618d28a79d78c671314c37c92469d064aff0"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.NET.Test.Sdk: Microsoft.NET.Test.Sdk 18.0.1 \u2192 18.6.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e92dcd48f7ffe19d959e6b8961b53cbea7b17fb2d62d0f9d1f5c4c7b07984fab"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: NSubstitute: NSubstitute 5.1.0 \u2192 5.3.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e691db01930f3e0a55c55d6fe214b85bfd0b74a3049ce324dacf09f71c70d852"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit: xunit 2.6.6 \u2192 2.9.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e2d71eb3db50b167e2915ebb5c8a26b562df41b418b815fc7c968a7e82ac3675"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit.runner.visualstudio: xunit.runner.visualstudio 2.5.6 \u2192 3.1.5 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"87a27f08f73b189de0e26c050a80006f291ef3318601521723ed613d4d974e96"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: coverlet.collector: coverlet.collector 10.0.0 \u2192 10.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9e862b60ea0e6244916f0a40a9c1d5da15704f97aa0d556f0c0430eff9e4638f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: MartinCostello.Logging.XUnit: MartinCostello.Logging.XUnit 0.7.0 \u2192 0.7.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"8a6aaf129e03952206a06f658aae66a5de66af92edc5998d72a18a928a98a7e5"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.NET.Test.Sdk: Microsoft.NET.Test.Sdk 18.0.1 \u2192 18.6.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e92dcd48f7ffe19d959e6b8961b53cbea7b17fb2d62d0f9d1f5c4c7b07984fab"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: coverlet.collector: coverlet.collector 6.0.0 \u2192 10.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9e862b60ea0e6244916f0a40a9c1d5da15704f97aa0d556f0c0430eff9e4638f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Diagnostics.Testing: Microsoft.Extensions.Diagnostics.Testing 10.6.0 \u2192 10.7.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d846c560a0fd753e77762ac0124d56499d092287c386067e9db418f3e1c5ae2f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.NET.Test.Sdk: Microsoft.NET.Test.Sdk 18.0.1 \u2192 18.6.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e92dcd48f7ffe19d959e6b8961b53cbea7b17fb2d62d0f9d1f5c4c7b07984fab"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: NSubstitute: NSubstitute 5.1.0 \u2192 5.3.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e691db01930f3e0a55c55d6fe214b85bfd0b74a3049ce324dacf09f71c70d852"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit: xunit 2.6.6 \u2192 2.9.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e2d71eb3db50b167e2915ebb5c8a26b562df41b418b815fc7c968a7e82ac3675"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit.runner.visualstudio: xunit.runner.visualstudio 2.5.6 \u2192 3.1.5 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"87a27f08f73b189de0e26c050a80006f291ef3318601521723ed613d4d974e96"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: coverlet.collector: coverlet.collector 6.0.0 \u2192 10.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9e862b60ea0e6244916f0a40a9c1d5da15704f97aa0d556f0c0430eff9e4638f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.NET.Test.Sdk: Microsoft.NET.Test.Sdk 18.0.1 \u2192 18.6.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e92dcd48f7ffe19d959e6b8961b53cbea7b17fb2d62d0f9d1f5c4c7b07984fab"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit: xunit 2.6.6 \u2192 2.9.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e2d71eb3db50b167e2915ebb5c8a26b562df41b418b815fc7c968a7e82ac3675"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit.runner.visualstudio: xunit.runner.visualstudio 2.5.6 \u2192 3.1.5 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"87a27f08f73b189de0e26c050a80006f291ef3318601521723ed613d4d974e96"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: coverlet.collector: coverlet.collector 6.0.0 \u2192 10.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9e862b60ea0e6244916f0a40a9c1d5da15704f97aa0d556f0c0430eff9e4638f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.NET.Test.Sdk: Microsoft.NET.Test.Sdk 18.0.1 \u2192 18.6.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e92dcd48f7ffe19d959e6b8961b53cbea7b17fb2d62d0f9d1f5c4c7b07984fab"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: NSubstitute: NSubstitute 5.1.0 \u2192 5.3.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e691db01930f3e0a55c55d6fe214b85bfd0b74a3049ce324dacf09f71c70d852"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit: xunit 2.6.6 \u2192 2.9.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e2d71eb3db50b167e2915ebb5c8a26b562df41b418b815fc7c968a7e82ac3675"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit.runner.visualstudio: xunit.runner.visualstudio 2.5.6 \u2192 3.1.5 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"87a27f08f73b189de0e26c050a80006f291ef3318601521723ed613d4d974e96"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: coverlet.collector: coverlet.collector 6.0.0 \u2192 10.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9e862b60ea0e6244916f0a40a9c1d5da15704f97aa0d556f0c0430eff9e4638f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.NET.Test.Sdk: Microsoft.NET.Test.Sdk 18.0.1 \u2192 18.6.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e92dcd48f7ffe19d959e6b8961b53cbea7b17fb2d62d0f9d1f5c4c7b07984fab"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit: xunit 2.6.6 \u2192 2.9.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e2d71eb3db50b167e2915ebb5c8a26b562df41b418b815fc7c968a7e82ac3675"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit.runner.visualstudio: xunit.runner.visualstudio 2.5.6 \u2192 3.1.5 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"87a27f08f73b189de0e26c050a80006f291ef3318601521723ed613d4d974e96"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: coverlet.collector: coverlet.collector 6.0.0 \u2192 10.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9e862b60ea0e6244916f0a40a9c1d5da15704f97aa0d556f0c0430eff9e4638f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.NET.Test.Sdk: Microsoft.NET.Test.Sdk 18.0.1 \u2192 18.6.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e92dcd48f7ffe19d959e6b8961b53cbea7b17fb2d62d0f9d1f5c4c7b07984fab"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: NSubstitute: NSubstitute 5.1.0 \u2192 5.3.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e691db01930f3e0a55c55d6fe214b85bfd0b74a3049ce324dacf09f71c70d852"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit: xunit 2.6.6 \u2192 2.9.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e2d71eb3db50b167e2915ebb5c8a26b562df41b418b815fc7c968a7e82ac3675"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit.runner.visualstudio: xunit.runner.visualstudio 2.5.6 \u2192 3.1.5 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"87a27f08f73b189de0e26c050a80006f291ef3318601521723ed613d4d974e96"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: coverlet.collector: coverlet.collector 6.0.0 \u2192 10.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9e862b60ea0e6244916f0a40a9c1d5da15704f97aa0d556f0c0430eff9e4638f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.AspNetCore.Mvc.Testing: Microsoft.AspNetCore.Mvc.Testing 10.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"99225cf2945eea3bb5234c962ae56cc8ceaaf2816adf090819dcc0b630220288"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.NET.Test.Sdk: Microsoft.NET.Test.Sdk 18.0.1 \u2192 18.6.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e92dcd48f7ffe19d959e6b8961b53cbea7b17fb2d62d0f9d1f5c4c7b07984fab"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: NSubstitute: NSubstitute 5.1.0 \u2192 5.3.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e691db01930f3e0a55c55d6fe214b85bfd0b74a3049ce324dacf09f71c70d852"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit: xunit 2.6.6 \u2192 2.9.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e2d71eb3db50b167e2915ebb5c8a26b562df41b418b815fc7c968a7e82ac3675"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit.runner.visualstudio: xunit.runner.visualstudio 2.5.6 \u2192 3.1.5 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"87a27f08f73b189de0e26c050a80006f291ef3318601521723ed613d4d974e96"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: coverlet.collector: coverlet.collector 6.0.0 \u2192 10.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9e862b60ea0e6244916f0a40a9c1d5da15704f97aa0d556f0c0430eff9e4638f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Diagnostics.Testing: Microsoft.Extensions.Diagnostics.Testing 10.6.0 \u2192 10.7.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d846c560a0fd753e77762ac0124d56499d092287c386067e9db418f3e1c5ae2f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.NET.Test.Sdk: Microsoft.NET.Test.Sdk 18.0.1 \u2192 18.6.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e92dcd48f7ffe19d959e6b8961b53cbea7b17fb2d62d0f9d1f5c4c7b07984fab"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: NSubstitute: NSubstitute 5.1.0 \u2192 5.3.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e691db01930f3e0a55c55d6fe214b85bfd0b74a3049ce324dacf09f71c70d852"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit: xunit 2.6.6 \u2192 2.9.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e2d71eb3db50b167e2915ebb5c8a26b562df41b418b815fc7c968a7e82ac3675"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit.runner.visualstudio: xunit.runner.visualstudio 2.5.6 \u2192 3.1.5 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"87a27f08f73b189de0e26c050a80006f291ef3318601521723ed613d4d974e96"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: coverlet.collector: coverlet.collector 10.0.0 \u2192 10.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9e862b60ea0e6244916f0a40a9c1d5da15704f97aa0d556f0c0430eff9e4638f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.NET.Test.Sdk: Microsoft.NET.Test.Sdk 18.0.1 \u2192 18.6.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e92dcd48f7ffe19d959e6b8961b53cbea7b17fb2d62d0f9d1f5c4c7b07984fab"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit.runner.visualstudio: xunit.runner.visualstudio 3.1.2 \u2192 3.1.5 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"87a27f08f73b189de0e26c050a80006f291ef3318601521723ed613d4d974e96"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: coverlet.collector: coverlet.collector 6.0.0 \u2192 10.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9e862b60ea0e6244916f0a40a9c1d5da15704f97aa0d556f0c0430eff9e4638f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.NET.Test.Sdk: Microsoft.NET.Test.Sdk 18.0.1 \u2192 18.6.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e92dcd48f7ffe19d959e6b8961b53cbea7b17fb2d62d0f9d1f5c4c7b07984fab"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: NSubstitute: NSubstitute 5.1.0 \u2192 5.3.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e691db01930f3e0a55c55d6fe214b85bfd0b74a3049ce324dacf09f71c70d852"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit: xunit 2.6.6 \u2192 2.9.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e2d71eb3db50b167e2915ebb5c8a26b562df41b418b815fc7c968a7e82ac3675"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit.runner.visualstudio: xunit.runner.visualstudio 2.5.6 \u2192 3.1.5 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"87a27f08f73b189de0e26c050a80006f291ef3318601521723ed613d4d974e96"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: coverlet.collector: coverlet.collector 6.0.0 \u2192 10.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9e862b60ea0e6244916f0a40a9c1d5da15704f97aa0d556f0c0430eff9e4638f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Configuration: Microsoft.Extensions.Configuration 10.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"cfed1a37193e5ac5f3e8801aaabf2ac7777d85c43d5c1d77559be94c1b696e23"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Diagnostics.Testing: Microsoft.Extensions.Diagnostics.Testing 10.5.0 \u2192 10.7.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d846c560a0fd753e77762ac0124d56499d092287c386067e9db418f3e1c5ae2f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Logging: Microsoft.Extensions.Logging 10.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9b4f427ec6d44fe9cdd80a7049555465b940af58d481e6155b9963a2b5c3fd32"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.TimeProvider.Testing: Microsoft.Extensions.TimeProvider.Testing 10.6.0 \u2192 10.7.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"4a2e364e95d6bcd440eed94b9e54618d28a79d78c671314c37c92469d064aff0"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.NET.Test.Sdk: Microsoft.NET.Test.Sdk 18.0.1 \u2192 18.6.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e92dcd48f7ffe19d959e6b8961b53cbea7b17fb2d62d0f9d1f5c4c7b07984fab"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit.runner.visualstudio: xunit.runner.visualstudio 3.1.4 \u2192 3.1.5 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"87a27f08f73b189de0e26c050a80006f291ef3318601521723ed613d4d974e96"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit.v3: xunit.v3 3.0.1 \u2192 3.2.2 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"7d53c2dae4862922b6190a7a2d270f7b60e9db2cd30e6577a162cb703e02b586"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.AspNetCore.Mvc.Testing: Microsoft.AspNetCore.Mvc.Testing 10.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"99225cf2945eea3bb5234c962ae56cc8ceaaf2816adf090819dcc0b630220288"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: coverlet.collector: coverlet.collector 6.0.0 \u2192 10.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9e862b60ea0e6244916f0a40a9c1d5da15704f97aa0d556f0c0430eff9e4638f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.NET.Test.Sdk: Microsoft.NET.Test.Sdk 18.0.1 \u2192 18.6.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e92dcd48f7ffe19d959e6b8961b53cbea7b17fb2d62d0f9d1f5c4c7b07984fab"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit: xunit 2.6.6 \u2192 2.9.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e2d71eb3db50b167e2915ebb5c8a26b562df41b418b815fc7c968a7e82ac3675"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit.runner.visualstudio: xunit.runner.visualstudio 2.5.6 \u2192 3.1.5 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"87a27f08f73b189de0e26c050a80006f291ef3318601521723ed613d4d974e96"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: coverlet.collector: coverlet.collector 6.0.0 \u2192 10.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9e862b60ea0e6244916f0a40a9c1d5da15704f97aa0d556f0c0430eff9e4638f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.NET.Test.Sdk: Microsoft.NET.Test.Sdk 18.0.1 \u2192 18.6.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e92dcd48f7ffe19d959e6b8961b53cbea7b17fb2d62d0f9d1f5c4c7b07984fab"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit: xunit 2.6.6 \u2192 2.9.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e2d71eb3db50b167e2915ebb5c8a26b562df41b418b815fc7c968a7e82ac3675"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit.runner.visualstudio: xunit.runner.visualstudio 2.5.6 \u2192 3.1.5 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"87a27f08f73b189de0e26c050a80006f291ef3318601521723ed613d4d974e96"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.AspNetCore.Mvc.Testing: Microsoft.AspNetCore.Mvc.Testing 10.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"99225cf2945eea3bb5234c962ae56cc8ceaaf2816adf090819dcc0b630220288"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.NET.Test.Sdk: Microsoft.NET.Test.Sdk 18.5.1 \u2192 18.6.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e92dcd48f7ffe19d959e6b8961b53cbea7b17fb2d62d0f9d1f5c4c7b07984fab"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit.runner.visualstudio: xunit.runner.visualstudio 3.1.4 \u2192 3.1.5 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"87a27f08f73b189de0e26c050a80006f291ef3318601521723ed613d4d974e96"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit.v3: xunit.v3 3.0.1 \u2192 3.2.2 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"7d53c2dae4862922b6190a7a2d270f7b60e9db2cd30e6577a162cb703e02b586"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.NET.Test.Sdk: Microsoft.NET.Test.Sdk 18.5.1 \u2192 18.6.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e92dcd48f7ffe19d959e6b8961b53cbea7b17fb2d62d0f9d1f5c4c7b07984fab"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: NSubstitute: NSubstitute 5.1.0 \u2192 5.3.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e691db01930f3e0a55c55d6fe214b85bfd0b74a3049ce324dacf09f71c70d852"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit.v3: xunit.v3 3.2.1 \u2192 3.2.2 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"7d53c2dae4862922b6190a7a2d270f7b60e9db2cd30e6577a162cb703e02b586"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: coverlet.collector: coverlet.collector 6.0.0 \u2192 10.0.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9e862b60ea0e6244916f0a40a9c1d5da15704f97aa0d556f0c0430eff9e4638f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.NET.Test.Sdk: Microsoft.NET.Test.Sdk 18.0.1 \u2192 18.6.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e92dcd48f7ffe19d959e6b8961b53cbea7b17fb2d62d0f9d1f5c4c7b07984fab"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: NSubstitute: NSubstitute 5.1.0 \u2192 5.3.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e691db01930f3e0a55c55d6fe214b85bfd0b74a3049ce324dacf09f71c70d852"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Testcontainers: Testcontainers 4.11.0 \u2192 4.12.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"a041fe4a4d7adcb61ccf5297fbda311163874e9a743b2a25862e54c0c948ae0e"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit: xunit 2.6.6 \u2192 2.9.3 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e2d71eb3db50b167e2915ebb5c8a26b562df41b418b815fc7c968a7e82ac3675"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: xunit.runner.visualstudio: xunit.runner.visualstudio 2.5.6 \u2192 3.1.5 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"87a27f08f73b189de0e26c050a80006f291ef3318601521723ed613d4d974e96"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Logging: Microsoft.Extensions.Logging 10.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9b4f427ec6d44fe9cdd80a7049555465b940af58d481e6155b9963a2b5c3fd32"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: CommandDotNet: CommandDotNet 7.0.5 \u2192 8.1.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"c7daedd2d5f5cbeb9ddd42643caad2963d28fe74dabd8032ca4acc26d2194bfe"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Logging: Microsoft.Extensions.Logging 10.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9b4f427ec6d44fe9cdd80a7049555465b940af58d481e6155b9963a2b5c3fd32"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Logging.Console: Microsoft.Extensions.Logging.Console 10.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"ead408b08f6535bc98becf3e3b1271c42b2c55f835b470c7c4ea23dd2139152f"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.EntityFrameworkCore.Design: Microsoft.EntityFrameworkCore.Design 8.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"f0111cd3bd807fdd263e0b2cad0da7c6f7542fd96baefd8c9ce61bcd6881208d"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.EntityFrameworkCore.Design: Microsoft.EntityFrameworkCore.Design 8.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"f0111cd3bd807fdd263e0b2cad0da7c6f7542fd96baefd8c9ce61bcd6881208d"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: CommandDotNet: CommandDotNet 7.0.5 \u2192 8.1.1 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"c7daedd2d5f5cbeb9ddd42643caad2963d28fe74dabd8032ca4acc26d2194bfe"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Spectre.Console: Spectre.Console 0.55.2 \u2192 0.57.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d8fa7a33594580d99a29ef23ccec7d9e8d2ed3dff3c6f2a22438106d44ca1f9b"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.Extensions.Logging: Microsoft.Extensions.Logging 10.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"9b4f427ec6d44fe9cdd80a7049555465b940af58d481e6155b9963a2b5c3fd32"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: YamlDotNet: YamlDotNet 11.2.1 \u2192 18.0.0 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"2b141f163bc41303aaa36345b40d2bb4f54748fa1f4ffba151dd7fa53f79e426"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.EntityFrameworkCore.Design: Microsoft.EntityFrameworkCore.Design 8.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"f0111cd3bd807fdd263e0b2cad0da7c6f7542fd96baefd8c9ce61bcd6881208d"}},{"ruleId":"D12","level":"note","message":{"text":"Outdated: Microsoft.EntityFrameworkCore.Design: Microsoft.EntityFrameworkCore.Design 8.0.8 \u2192 10.0.9 available."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"f0111cd3bd807fdd263e0b2cad0da7c6f7542fd96baefd8c9ce61bcd6881208d"}},{"ruleId":"D12","level":"error","message":{"text":"Vulnerable: AutoMapper: AutoMapper 14.0.0 \u2014 High severity. https://github.com/advisories/[GHSA redacted]"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"7ad907f4096422e42924a00fab6889d83782c07f3031eeb825e84a391fcadb56"}},{"ruleId":"D12","level":"error","message":{"text":"Vulnerable: Microsoft.AspNetCore.SignalR.Protocols.MessagePack: Microsoft.AspNetCore.SignalR.Protocols.MessagePack 10.0.8 \u2014 High severity. https://github.com/advisories/[GHSA redacted]"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"1d654aff1cbbfb51c8ad7f376d7a53b79b2bb25679f069ae55dad8f132347dbe"}},{"ruleId":"D12","level":"error","message":{"text":"Vulnerable: AutoMapper: AutoMapper 14.0.0 \u2014 High severity. https://github.com/advisories/[GHSA redacted]"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"7ad907f4096422e42924a00fab6889d83782c07f3031eeb825e84a391fcadb56"}},{"ruleId":"D12","level":"warning","message":{"text":"Deprecated: xunit: xunit 2.6.6 \u2014 Legacy xunit.v3 \u003E= 0.0.0"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d37c8c0e8046c9e8358e976373216abfb78e9fdef63ed53d3edcaa7d2238edcd"}},{"ruleId":"D12","level":"warning","message":{"text":"Deprecated: xunit: xunit 2.6.6 \u2014 Legacy xunit.v3 \u003E= 0.0.0"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d37c8c0e8046c9e8358e976373216abfb78e9fdef63ed53d3edcaa7d2238edcd"}},{"ruleId":"D12","level":"warning","message":{"text":"Deprecated: xunit: xunit 2.6.6 \u2014 Legacy xunit.v3 \u003E= 0.0.0"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d37c8c0e8046c9e8358e976373216abfb78e9fdef63ed53d3edcaa7d2238edcd"}},{"ruleId":"D12","level":"warning","message":{"text":"Deprecated: xunit: xunit 2.6.6 \u2014 Legacy xunit.v3 \u003E= 0.0.0"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d37c8c0e8046c9e8358e976373216abfb78e9fdef63ed53d3edcaa7d2238edcd"}},{"ruleId":"D12","level":"warning","message":{"text":"Deprecated: xunit: xunit 2.6.6 \u2014 Legacy xunit.v3 \u003E= 0.0.0"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d37c8c0e8046c9e8358e976373216abfb78e9fdef63ed53d3edcaa7d2238edcd"}},{"ruleId":"D12","level":"warning","message":{"text":"Deprecated: xunit: xunit 2.6.6 \u2014 Legacy xunit.v3 \u003E= 0.0.0"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d37c8c0e8046c9e8358e976373216abfb78e9fdef63ed53d3edcaa7d2238edcd"}},{"ruleId":"D12","level":"warning","message":{"text":"Deprecated: xunit: xunit 2.6.6 \u2014 Legacy xunit.v3 \u003E= 0.0.0"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d37c8c0e8046c9e8358e976373216abfb78e9fdef63ed53d3edcaa7d2238edcd"}},{"ruleId":"D12","level":"warning","message":{"text":"Deprecated: xunit: xunit 2.6.6 \u2014 Legacy xunit.v3 \u003E= 0.0.0"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d37c8c0e8046c9e8358e976373216abfb78e9fdef63ed53d3edcaa7d2238edcd"}},{"ruleId":"D12","level":"warning","message":{"text":"Deprecated: xunit: xunit 2.6.6 \u2014 Legacy xunit.v3 \u003E= 0.0.0"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d37c8c0e8046c9e8358e976373216abfb78e9fdef63ed53d3edcaa7d2238edcd"}},{"ruleId":"D12","level":"warning","message":{"text":"Deprecated: xunit: xunit 2.6.6 \u2014 Legacy xunit.v3 \u003E= 0.0.0"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d37c8c0e8046c9e8358e976373216abfb78e9fdef63ed53d3edcaa7d2238edcd"}},{"ruleId":"D12","level":"warning","message":{"text":"Deprecated: Rnwood.SmtpServer: Rnwood.SmtpServer 3.1.0-ci0868 \u2014 Legacy"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"31088589065f73ee4cef4ece46b86a0f498d8b051ad67ce2e7ac743bae1fc72e"}},{"ruleId":"D12","level":"warning","message":{"text":"Deprecated: xunit: xunit 2.9.3 \u2014 Legacy xunit.v3 \u003E= 0.0.0"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d37c8c0e8046c9e8358e976373216abfb78e9fdef63ed53d3edcaa7d2238edcd"}},{"ruleId":"D12","level":"warning","message":{"text":"Deprecated: xunit: xunit 2.6.6 \u2014 Legacy xunit.v3 \u003E= 0.0.0"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d37c8c0e8046c9e8358e976373216abfb78e9fdef63ed53d3edcaa7d2238edcd"}},{"ruleId":"D12","level":"warning","message":{"text":"Deprecated: xunit: xunit 2.6.6 \u2014 Legacy xunit.v3 \u003E= 0.0.0"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d37c8c0e8046c9e8358e976373216abfb78e9fdef63ed53d3edcaa7d2238edcd"}},{"ruleId":"D12","level":"warning","message":{"text":"Deprecated: xunit: xunit 2.6.6 \u2014 Legacy xunit.v3 \u003E= 0.0.0"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d37c8c0e8046c9e8358e976373216abfb78e9fdef63ed53d3edcaa7d2238edcd"}},{"ruleId":"D12","level":"warning","message":{"text":"Deprecated: xunit: xunit 2.6.6 \u2014 Legacy xunit.v3 \u003E= 0.0.0"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d37c8c0e8046c9e8358e976373216abfb78e9fdef63ed53d3edcaa7d2238edcd"}},{"ruleId":"D12","level":"warning","message":{"text":"Deprecated: xunit: xunit 2.6.6 \u2014 Legacy xunit.v3 \u003E= 0.0.0"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d37c8c0e8046c9e8358e976373216abfb78e9fdef63ed53d3edcaa7d2238edcd"}},{"ruleId":"D12","level":"warning","message":{"text":"Deprecated: xunit: xunit 2.6.6 \u2014 Legacy xunit.v3 \u003E= 0.0.0"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d37c8c0e8046c9e8358e976373216abfb78e9fdef63ed53d3edcaa7d2238edcd"}},{"ruleId":"D12","level":"warning","message":{"text":"Deprecated: xunit: xunit 2.6.6 \u2014 Legacy xunit.v3 \u003E= 0.0.0"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d37c8c0e8046c9e8358e976373216abfb78e9fdef63ed53d3edcaa7d2238edcd"}},{"ruleId":"D12","level":"warning","message":{"text":"Deprecated: xunit: xunit 2.9.3 \u2014 Legacy xunit.v3 \u003E= 0.0.0"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d37c8c0e8046c9e8358e976373216abfb78e9fdef63ed53d3edcaa7d2238edcd"}},{"ruleId":"D12","level":"warning","message":{"text":"Deprecated: xunit: xunit 2.6.6 \u2014 Legacy xunit.v3 \u003E= 0.0.0"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d37c8c0e8046c9e8358e976373216abfb78e9fdef63ed53d3edcaa7d2238edcd"}},{"ruleId":"D12","level":"warning","message":{"text":"Deprecated: xunit: xunit 2.6.6 \u2014 Legacy xunit.v3 \u003E= 0.0.0"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d37c8c0e8046c9e8358e976373216abfb78e9fdef63ed53d3edcaa7d2238edcd"}},{"ruleId":"D12","level":"warning","message":{"text":"Deprecated: xunit: xunit 2.6.6 \u2014 Legacy xunit.v3 \u003E= 0.0.0"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d37c8c0e8046c9e8358e976373216abfb78e9fdef63ed53d3edcaa7d2238edcd"}},{"ruleId":"D12","level":"warning","message":{"text":"Deprecated: xunit: xunit 2.6.6 \u2014 Legacy xunit.v3 \u003E= 0.0.0"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d37c8c0e8046c9e8358e976373216abfb78e9fdef63ed53d3edcaa7d2238edcd"}},{"ruleId":"D14","level":"note","message":{"text":"License scan unavailable: license scan produced no result \u2014 the tool ran but its JSON output could not be parsed; the offline NuGet fallback resolved nothing"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"68cf2e701a3587a552a92055ce4b64bdd9f0b84b3453c92cf494d2b74e5c7597"}},{"ruleId":"D15","level":"warning","message":{"text":"git history depth insufficient: git history depth insufficient \u2014 install a full clone for reliable trend signal."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"ab15c4a7c72fcad940ff795282e210fd7f3769431dab6bffd8ce9ee8f7ee13f1"}},{"ruleId":"D16","level":"warning","message":{"text":"single-maintainer \u2014 knowledge-concentration (bus factor) risk: single-maintainer \u2014 knowledge-concentration (bus factor) risk (0 author(s) across 0 commit(s) sampled)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"b4b49d961df742f0e507f4cc5c8094fb077ba0391a27fd015d18320865187719"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/AdminConsole/Controllers/OrganizationsController.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"454cf4caf591b27ca75f7ec1c3c77f7c426fc022c739e456de505097cc3d8688"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/AdminConsole/Controllers/ProvidersController.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"dca7af1efff4a629afb52afc6bfa517ad6542dae19eb2b176cf855a9a080b0e1"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/AdminConsole/Models/CreateBusinessUnitProviderModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"90bf72b386522d8933c47ccb7825949a1f664eb971596977f2dda1753d55119e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/AdminConsole/Models/CreateMspProviderModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e9a228cb5659ee68e695acce4d23cd54fd49500b34482f218b4e7c0f460a7a85"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/AdminConsole/Models/CreateResellerProviderModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"2285271d527fe108be947fa5a088ed6f88598c6892e946e82f64c377a81431fe"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/AdminConsole/Models/OrganizationEditModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"5ef13e57d2881b965c8c7874900cfa31bd7cb9b03322e38b1ac425e855dbc0f4"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/AdminConsole/Models/OrganizationInitiateDeleteModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"4831685c480bcd76a02bf96673dfd034c0815131c69b58747d89d46b8f011894"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/AdminConsole/Models/OrganizationsModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e13451300ebd69983c18af3f9705966fd828f8f8ec0c05c58343cf5c01fa0dd5"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/AdminConsole/Models/OrganizationUnassignedToProviderSearchViewModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"924f05fa632be7110590338f5cadfe454eb95f79bd55525df21b90e07fed7149"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/AdminConsole/Models/OrganizationViewModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"25801e03d19bca42726eeeaee38d3ff8a58a3dfaefafdfb6c107c3e1c8915e8c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/AdminConsole/Models/ProviderEditModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"734c471187a2fe7f74be6f9763ac2e3c8dd0483eca32d9e5933cd3b6f7b6c4a2"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/AdminConsole/Models/ProvidersModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"1998fa1fe42520c564f65cdeb6684244d48488faa531db0f76bce69273c89248"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/AdminConsole/Models/ProviderViewModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9a6369a66aa0d4cf8b4e858111bbf97514fec38f49b19775828c679b05502f55"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/AdminSettings.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"41628678747fbc948e29b51a45502862115e15d778f55f0accfadc939001df86"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/Auth/Controllers/LoginController.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e0e2c979a38f9c79834a1a25c15644202190850ca2d34f57c6e1c7b95db99666"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/Auth/Models/LoginModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"640ca0373986f30c51825fda981d4602b982fe77f0a9adc278303e70483c8abc"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/Billing/Controllers/ProcessStripeEventsController.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9fcd61304577476743f6a2158d3e4ef696b0986d8db3cd549a10ba6019574d57"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/Billing/Models/ProcessStripeEvents/EventsFormModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"3f9c62187eb64f8f5376a0f36a9994a3739d3879ddcc81e9e3b9c1188fefd4fe"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/Billing/Models/ProcessStripeEvents/EventsRequestBody.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ab80a5771c86ebef9e061d4f5a0a5eee7254b7f95e1ead382ec68df8c25c7b8a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/Billing/Models/ProcessStripeEvents/EventsResponseBody.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a85fa448139d32f0e77253cf27e101c504e8691bd048f976a8b7bfa0f972ee95"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/Controllers/HomeController.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"62895f66e4f85cf422996c17687fd7fe0b34a99a8f62daa4a7801fb7b2aef565"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/Controllers/ToolsController.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ac5ab2d3cf3b81bf663e2a2a1b3697381af86da1368e7c8a9b8671c24e819696"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/HostedServices/AzureQueueMailHostedService.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ac9a3f5e054485bb558b15f8d725b7ce390944e3d787d05f83226aff05d7e738"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: retries? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/HostedServices/AzureQueueMailHostedService.cs"},"region":{"startLine":87}}}],"partialFingerprints":{"codehealthFindingId/v1":"c7e951f49c3559370d2675424abeee128e5ea5c6696416466804d2f51d8ecd54"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Maybe flip a flag somewhere to indicate migration is complete?? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/HostedServices/DatabaseMigrationHostedService.cs"},"region":{"startLine":30}}}],"partialFingerprints":{"codehealthFindingId/v1":"59184e14d12fbe1248785119ef22c86046c9c22c36fb60da00dabadfec5f3401"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/IdentityServer/ReadOnlyEnvIdentityUserStore.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"f0bc40d4adb9b750e6002308dff24a8f40cd2a73b4445ea86f32c7940ad63f98"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/IdentityServer/ReadOnlyIdentityUserStore.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"38147b09e4f78d13c1634f77989b94f7c4ddd1bcfdd3a2379e767efe4cae04b9"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/Jobs/DeleteCiphersJob.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"974fe6b7d6fc8570ca828ead47ea782e72ff1ca7bfb7ec53eac89ba97115240a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/Models/BillingInformationModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c6b703ac198f7c0d1d5437c7110f0ad41f64c8a5277a5c4f4796db2b9b224970"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/Models/ChargeBraintreeModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"144397c2dbfdeb8cac046d2db1a064da7092d838ee46e647e9253e239912575c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/Models/CreateUpdateTransactionModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"1af74a7de93a39db06f87509d8235f6cd4e5e05a9c931bf193770b55868c6f7d"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/Models/CursorPagedModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"dda9d273f5d4d9a122003c3906f608c824645466d0f459826d6922be3b4527b7"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/Models/ErrorViewModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"59b2d738aa9117c1e446c098f56597144233d2bc7d22fb81ec9cabfc08fdca30"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/Models/HomeModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d841b01734eafa42148fee68b4fb91382a2c111bc2723726078b5373ba73cfe6"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/Models/PagedModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"32b23010bf45109defd2324a5bbacd75adbf9166d9df6614b2fc913430f35211"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/Models/UserEditModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"fc9ed47c98fbbc3c68744704ee80d8756e7656fde23b8af96c9bcb2c2bd6b520"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/Models/UsersModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"700917897b74c71139b98e9c5dc0909419c60b3f08e0ad601f2086cdb8a36672"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/Models/UserViewModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"fcba98d3568b2441664e0c89ce52bea491feeaae1964b30e90eee3dfb4ccb3f8"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/Services/AccessControlService.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"8b05ccb752fa07af89e6dac9fe99febc20d42b90df344b1c30def01b5a321caa"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/TagHelpers/ActivePageTagHelper.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e75b29fe7f7085e482919a0b39d4df83a9d06c24f6eea9d6a0253d60fc3b9104"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Controllers/CollectionsController.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"4b4b47f422e9a68d71f8ed5d2ef346a5953366e3da2149c089111e889ccd64d7"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostPut"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Controllers/CollectionsController.cs"},"region":{"startLine":209}}}],"partialFingerprints":{"codehealthFindingId/v1":"bf97fbe6cba60a7ef04ddb714325b24f35252b063479d9c8621d261d50a8396e"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostDelete"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Controllers/CollectionsController.cs"},"region":{"startLine":252}}}],"partialFingerprints":{"codehealthFindingId/v1":"bf97fbe6cba60a7ef04ddb714325b24f35252b063479d9c8621d261d50a8396e"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostDeleteMany"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Controllers/CollectionsController.cs"},"region":{"startLine":272}}}],"partialFingerprints":{"codehealthFindingId/v1":"bf97fbe6cba60a7ef04ddb714325b24f35252b063479d9c8621d261d50a8396e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Controllers/GroupsController.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0fdeeff97f997bc6dd1c7061460e12a64b6c71f87d8c4e16a5f174abcb1f2a87"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostPut"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Controllers/GroupsController.cs"},"region":{"startLine":219}}}],"partialFingerprints":{"codehealthFindingId/v1":"a25c0c6fcf9bb17fcfc15f825d4935984b50373f09e72937c390a08b3347de29"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostDelete"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Controllers/GroupsController.cs"},"region":{"startLine":240}}}],"partialFingerprints":{"codehealthFindingId/v1":"a25c0c6fcf9bb17fcfc15f825d4935984b50373f09e72937c390a08b3347de29"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostBulkDelete"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Controllers/GroupsController.cs"},"region":{"startLine":265}}}],"partialFingerprints":{"codehealthFindingId/v1":"a25c0c6fcf9bb17fcfc15f825d4935984b50373f09e72937c390a08b3347de29"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostDeleteUser"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Controllers/GroupsController.cs"},"region":{"startLine":286}}}],"partialFingerprints":{"codehealthFindingId/v1":"a25c0c6fcf9bb17fcfc15f825d4935984b50373f09e72937c390a08b3347de29"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Controllers/OrganizationConnectionsController.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9d627564d0bca0317895bef705becbcd6018f5819651d2963b446cfe82428d73"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostDeleteConnection"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Controllers/OrganizationConnectionsController.cs"},"region":{"startLine":160}}}],"partialFingerprints":{"codehealthFindingId/v1":"9164dc4b8d1a5d2b002be1e8dbf1b33a7cf729eea9849164558d44d9bb134b78"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostRemoveDomain"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Controllers/OrganizationDomainController.cs"},"region":{"startLine":121}}}],"partialFingerprints":{"codehealthFindingId/v1":"ab0b5fcb1a187a24dda656dd1c7c28a7acd25fc1d287ac2877ec569bf84967f7"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Controllers/OrganizationsController.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"dd9588537c37b2fb9575fda000c9ab789662f5e48861a62d686c921faf336fb7"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // Todo: Cannot use PolicyRequirements until PM-34092 is complete \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Controllers/OrganizationsController.cs"},"region":{"startLine":174}}}],"partialFingerprints":{"codehealthFindingId/v1":"e77312ae4b2c8253258f231e63ebdcdcb43dabdfa09a3a64e80e245c36f7baa7"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostPut"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Controllers/OrganizationsController.cs"},"region":{"startLine":239}}}],"partialFingerprints":{"codehealthFindingId/v1":"0773cbcdf1266d6dfc84c2a4355bfb6c5380c75d67db6cd5f24a762a7c0b9378"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostDelete"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Controllers/OrganizationsController.cs"},"region":{"startLine":327}}}],"partialFingerprints":{"codehealthFindingId/v1":"0773cbcdf1266d6dfc84c2a4355bfb6c5380c75d67db6cd5f24a762a7c0b9378"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] GetKeys"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Controllers/OrganizationsController.cs"},"region":{"startLine":481}}}],"partialFingerprints":{"codehealthFindingId/v1":"0773cbcdf1266d6dfc84c2a4355bfb6c5380c75d67db6cd5f24a762a7c0b9378"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Controllers/OrganizationUsersController.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"f6888195f309e0e21e3138d530dffd0a9e91ca654bb40984e8b45855b477f377"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // NOTE: This file is partially migrated to nullable reference types. Remove inline #nullable directives when addressing the FIXME. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Controllers/OrganizationUsersController.cs"},"region":{"startLine":2}}}],"partialFingerprints":{"codehealthFindingId/v1":"f6888195f309e0e21e3138d530dffd0a9e91ca654bb40984e8b45855b477f377"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO Reset Password - Revisit this and create SPROC to reduce DB calls \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Controllers/OrganizationUsersController.cs"},"region":{"startLine":247}}}],"partialFingerprints":{"codehealthFindingId/v1":"571bcc542b065a7d610c94a63ec7e382965b3f39b6ac179b268253b3aee44cab"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: https://bitwarden.atlassian.net/browse/PM-17000 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Controllers/OrganizationUsersController.cs"},"region":{"startLine":736}}}],"partialFingerprints":{"codehealthFindingId/v1":"571bcc542b065a7d610c94a63ec7e382965b3f39b6ac179b268253b3aee44cab"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostPut"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Controllers/OrganizationUsersController.cs"},"region":{"startLine":469}}}],"partialFingerprints":{"codehealthFindingId/v1":"1c3fd44c62432c03da5fda5e3f45f513031a223b9e005d8c273973c7eaf9b3ef"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostRemove"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Controllers/OrganizationUsersController.cs"},"region":{"startLine":534}}}],"partialFingerprints":{"codehealthFindingId/v1":"1c3fd44c62432c03da5fda5e3f45f513031a223b9e005d8c273973c7eaf9b3ef"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostBulkRemove"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Controllers/OrganizationUsersController.cs"},"region":{"startLine":552}}}],"partialFingerprints":{"codehealthFindingId/v1":"1c3fd44c62432c03da5fda5e3f45f513031a223b9e005d8c273973c7eaf9b3ef"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostDeleteAccount"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Controllers/OrganizationUsersController.cs"},"region":{"startLine":580}}}],"partialFingerprints":{"codehealthFindingId/v1":"1c3fd44c62432c03da5fda5e3f45f513031a223b9e005d8c273973c7eaf9b3ef"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostBulkDeleteAccount"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Controllers/OrganizationUsersController.cs"},"region":{"startLine":608}}}],"partialFingerprints":{"codehealthFindingId/v1":"1c3fd44c62432c03da5fda5e3f45f513031a223b9e005d8c273973c7eaf9b3ef"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PatchRevokeAsync"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Controllers/OrganizationUsersController.cs"},"region":{"startLine":637}}}],"partialFingerprints":{"codehealthFindingId/v1":"1c3fd44c62432c03da5fda5e3f45f513031a223b9e005d8c273973c7eaf9b3ef"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PatchBulkRevokeAsync"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Controllers/OrganizationUsersController.cs"},"region":{"startLine":670}}}],"partialFingerprints":{"codehealthFindingId/v1":"1c3fd44c62432c03da5fda5e3f45f513031a223b9e005d8c273973c7eaf9b3ef"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] RestoreAsync"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Controllers/OrganizationUsersController.cs"},"region":{"startLine":678}}}],"partialFingerprints":{"codehealthFindingId/v1":"0690c04e4f18f83c048822e7901e10f0c22277c3aa4d797a690e565cd6ed3c3a"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PatchRestoreAsync"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Controllers/OrganizationUsersController.cs"},"region":{"startLine":694}}}],"partialFingerprints":{"codehealthFindingId/v1":"1c3fd44c62432c03da5fda5e3f45f513031a223b9e005d8c273973c7eaf9b3ef"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PatchBulkRestoreAsync"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Controllers/OrganizationUsersController.cs"},"region":{"startLine":711}}}],"partialFingerprints":{"codehealthFindingId/v1":"1c3fd44c62432c03da5fda5e3f45f513031a223b9e005d8c273973c7eaf9b3ef"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PatchBulkEnableSecretsManagerAsync"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Controllers/OrganizationUsersController.cs"},"region":{"startLine":751}}}],"partialFingerprints":{"codehealthFindingId/v1":"1c3fd44c62432c03da5fda5e3f45f513031a223b9e005d8c273973c7eaf9b3ef"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Controllers/PoliciesController.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"84b2cf0a2a45b3a15f00da1d71809aa8da8790b2192ef34fc1cddb027eb33fec"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Controllers/ProviderClientsController.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"85459fd7cecbad38bd4b1d6f90ffc639335cc16ec2e715eada182ea491e46b0b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Controllers/ProviderOrganizationsController.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"66975cf5bc0865dde6bf7d0375d76073a5211bd6f487b5b13fe32140cef18511"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostDelete"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Controllers/ProviderOrganizationsController.cs"},"region":{"startLine":106}}}],"partialFingerprints":{"codehealthFindingId/v1":"74fbd77bdae6df4b9a9fcae9c9e839e3941a4bec80b4b561c2d2791c73d42342"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Controllers/ProvidersController.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"2d278eb50da6ab783d4cecfb811202cf915f8b2a0ff133ced022cac04fcfc2e8"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostPut"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Controllers/ProvidersController.cs"},"region":{"startLine":89}}}],"partialFingerprints":{"codehealthFindingId/v1":"dbf66267177327f8ba8edb1742a5bb34a135021c43f365a6f735bb703096d70e"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostDelete"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Controllers/ProvidersController.cs"},"region":{"startLine":150}}}],"partialFingerprints":{"codehealthFindingId/v1":"dbf66267177327f8ba8edb1742a5bb34a135021c43f365a6f735bb703096d70e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Controllers/ProviderUsersController.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"2306723d5874f05cdd9d150fe37386a58cc73c124ec9773ad9034beb6093781a"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostPut"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Controllers/ProviderUsersController.cs"},"region":{"startLine":143}}}],"partialFingerprints":{"codehealthFindingId/v1":"753759db45e40e98d8fbb32df709dd5dc1c76d3fa9e2e9f9b607a7f398e14ade"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostDelete"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Controllers/ProviderUsersController.cs"},"region":{"startLine":159}}}],"partialFingerprints":{"codehealthFindingId/v1":"753759db45e40e98d8fbb32df709dd5dc1c76d3fa9e2e9f9b607a7f398e14ade"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostBulkDelete"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Controllers/ProviderUsersController.cs"},"region":{"startLine":177}}}],"partialFingerprints":{"codehealthFindingId/v1":"753759db45e40e98d8fbb32df709dd5dc1c76d3fa9e2e9f9b607a7f398e14ade"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Models/Public/CollectionBaseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0f68842b01605c7c6bc3ff0f8824dc2d0b1c3faca81c96ccf37fe0966685200e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Models/Public/Request/CollectionUpdateRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ac07ad8375f7226e581ec147dcfe1e70adb27b867cf4f0335157a14beb82a21b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Models/Public/Response/CollectionResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ab1115fa7559c4fddc217d7f13c1549d9b00e871a51ff135df97bc57f78b2d8b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Models/Request/AdminAuthRequestUpdateRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"3d6613b5520ff277192af08f1907f0d75c9910f24958c67866de9c9aac319066"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Models/Request/BulkCollectionAccessRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d02f9fc2467f3405318be9f833370c23d5bfa216e4dfa38520bd07e032f2f297"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Models/Request/BulkDenyAdminAuthRequestRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ad9d5df2b8d48d981be260d1cabbce7afad50bfc6927851346864d6b81f8df4b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Models/Request/CollectionRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0044d74cabc8b53dbd627bc85cdf4de249768f45d67cbe610a447ff625f30a1d"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Models/Request/GroupRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e211c18f9bfa244d0d3ac2d113efccaf0e6d9052e19184f1aff95bf061a23edc"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Models/Request/OrganizationAuthRequestUpdateManyRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c045b3e69960cec8bbe04fd14acef35e2e5fa5d3f4418bd1ae5be1343756224b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Models/Request/OrganizationDomainRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"2943929be7e12acefd8c6b653eb1dd7042d8fa3b4d266914a53b2fa975c3321f"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Models/Request/Organizations/OrganizationConnectionRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a3ad14428f87731316becda5f928c94d033c1aae66c4a29e09af40146c37e6e9"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Models/Request/Organizations/OrganizationCreateRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6176c306184d5f971c6bb61b6209d2262a8101df5feadcfe556ced78467df7b9"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Models/Request/Organizations/OrganizationDomainSsoDetailsRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"76dfc3647180ffe5749d93146d36c2ce23027e6174278ed06f269b560c1d74ac"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Models/Request/Organizations/OrganizationKeysRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e37495be8ec36a6e0d7131c881c516372012f6cb2e96a2defe0321a12355cf02"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Models/Request/Organizations/OrganizationNoPaymentCreateRequest.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"04cb1ce52666db1f8c0aff0130388b8a2585966e251b743a2c21e0e920261852"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Models/Request/Organizations/OrganizationUpgradeRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0b3213e005dfc5e5feb3457da5f085af2cd75b6639cb3a556e4ff31f3013f326"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Models/Request/Organizations/OrganizationUserRequestModels.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"725845b492b6827847c9f2c70b9eb64aae6c68a80ce7f555fe51e4d8c1b64613"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] NewMasterPasswordHash"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Models/Request/Organizations/OrganizationUserResetPasswordRequestModel.cs"},"region":{"startLine":15}}}],"partialFingerprints":{"codehealthFindingId/v1":"c30a61ab3d53944aa3574cf56ec6620d4860958c6f9ed480c835ebdd71a6898d"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] Key"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Models/Request/Organizations/OrganizationUserResetPasswordRequestModel.cs"},"region":{"startLine":18}}}],"partialFingerprints":{"codehealthFindingId/v1":"c30a61ab3d53944aa3574cf56ec6620d4860958c6f9ed480c835ebdd71a6898d"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Models/Request/Organizations/OrganizationVerifyDeleteRecoverRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"13f3dac09fd910d678af88cd194eda054dac60451b51285f75525ecccb1aa37e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Models/Request/Providers/ProviderOrganizationAddRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"abd32de91ad7d114ef42cec6a19e111812288e467b7136ff6eb83dce1c6f887d"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Models/Request/Providers/ProviderOrganizationCreateRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"56790d3f146c4f95d47f19549fc000e85f1290dcbba633df455537bf40a4afbb"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Models/Request/Providers/ProviderSetupRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"dc04a079bc4283cb7cbbf8edb8ffd3928455a5aafd514a5e373f36ca62402f5c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Models/Request/Providers/ProviderUpdateRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"51e214d671788c030afc30acc19a069e984c8934cdcf746d936cb8564d8126ac"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Models/Request/Providers/ProviderUserRequestModels.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ed048af84b23c8db6533d0a2a27f44b13e329f7db5c8c1b3db489a8cccad9ed7"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Models/Request/Providers/ProviderVerifyDeleteRecoverRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"51cca81b7c953cf8751fb5e8f196bec98b820d93e12b1b444d5195dae2c4baa1"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Models/Response/CollectionResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"3844a1ece8462f40af4d52c7e3bf5c16d9fc69ea25fb50629741b4fa8611e4e5"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] .ctor"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Models/Response/CollectionResponseModel.cs"},"region":{"startLine":83}}}],"partialFingerprints":{"codehealthFindingId/v1":"f7aae201390ed2db6d05979b05ee7f23323c0063c192fd5083ef88fb251149ac"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Models/Response/GroupResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"abeffe3977ea6cc885ce45f2bb74712d3f49f3260384fca2d5163768d5e86820"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Models/Response/Organizations/OrganizationConnectionResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"4bbbb4b189ceb2aca7c6930d01d56d716c696e8fe4bf105498434f381dc17178"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Models/Response/Organizations/OrganizationKeysResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"7cc4e2ea6366d25c37e10ab6a812616c5c00ceafb7b0d8e31ae65a9d1830b594"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Models/Response/Organizations/OrganizationPublicKeyResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d1858bad420d6d0d08a222a8be90b3e36f579d03f6b21ff8cc458d1d0374124e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Models/Response/Organizations/OrganizationResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ea455149f313c174c401ab2d073470711f09306739b24dad85677b07552f2f4f"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Models/Response/Organizations/OrganizationUserResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a79efa88e0c0d6756800d4804674ea73350ccd8218e3e4a528871cc30f1dd1dc"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] ManagedByOrganization"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Models/Response/Organizations/OrganizationUserResponseModel.cs"},"region":{"startLine":92}}}],"partialFingerprints":{"codehealthFindingId/v1":"a1c83927812d57d41e872327b3902a6664d49346f8d1894eda8ec9d80be1ea3f"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] ManagedByOrganization"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Models/Response/Organizations/OrganizationUserResponseModel.cs"},"region":{"startLine":180}}}],"partialFingerprints":{"codehealthFindingId/v1":"ed3c5a38500fcbddf6b393502cc5c6406b94f5f4c8dc4e9844eaf6c7b9ba3fb5"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Models/Response/Organizations/PolicyResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"45f0fbb5efbeee28ec1e78bac32b655bb7bfb0fc53cd5442925bccae9cb48171"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Models/Response/Organizations/VerifiedOrganizationDomainSsoDetailsResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0a90c24a070574561407e218b33a7ff0fbc0d376615d9650b3e3855ad3b1f86b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Models/Response/PendingOrganizationAuthRequestResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"5754bb53532f8648af03e50e3340432e867a2d83f606282f231218dbafb04ed4"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] UserIsManagedByOrganization"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Models/Response/ProfileOrganizationResponseModel.cs"},"region":{"startLine":47}}}],"partialFingerprints":{"codehealthFindingId/v1":"5dc26da52fef545c7a4b46e2c3bac7245a36fb20ed8b0f20c97007c874c21f0a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Models/Response/Providers/ProviderOrganizationResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a7c26a5602011a1f44b37543e87ebf69cc9290af49347f1f87eccda21323cef8"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Models/Response/Providers/ProviderResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"626fb938abbeb0cca4ca2e2c96e7e0115293d2ce0369de954bbaaea5fe0adb34"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Public/Controllers/CollectionsController.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"4413afecd5d1cec050db68319191468c9bf632133f922811cf444a201b890416"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Public/Controllers/GroupsController.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"f333d2382ba4772e5b046f1fbd1f2e26485254e079e4847fb1d4de35d616f6b0"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Public/Controllers/OrganizationController.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e3da56a6e1b367929ceca2ff34e3f5d1e66ea13b9d09a2b9ff677df956696bc0"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Public/Controllers/PoliciesController.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"45dc05e4b7c25d9500b0c853e410d81a0af3f74f38cc41b1f721940ba46bfb76"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Public/Models/GroupBaseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"b3ef10dd1a7f506b8110581c598d4fb792a4c36d6511a661a20915672e0277b8"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Public/Models/PolicyBaseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"efad761433efc32fc984f4dd4f4a71ee962beecb8a29e3d5f8af2a2a7f467b3e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Public/Models/Request/AssociationWithPermissionsRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"5c529a3f134f0d2b7ce479f7e3d3a49d2111662a37230789adbf464a666c2eec"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Public/Models/Request/GroupCreateUpdateRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e808785eb2c20b9f67034d3c87dcd58786e3fb037b8338435c2bd5d2f3c36620"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Public/Models/Request/MemberCreateRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"b163b7186ad8d2b1b8151cdb51e005552fa61ebd7c025f6dde12622b958015e0"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Public/Models/Request/MemberUpdateRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"850182112ddedef155b166c0b5a7e7e65e4331bce17c6899e131dfb4e9adf1a0"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Public/Models/Request/OrganizationImportRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"60b69438e01e84cd3244227440af884d71b12481ebfd6250626748ab93678ea4"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Public/Models/Request/UpdateGroupIdsRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"89fcb0471bd5920b6fbd164475e029a58b1b0dfef621078c8cc0bb46b36a16d8"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Public/Models/Request/UpdateMemberIdsRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"4fb538c375d4e00538c9c0d8a00ec5b8c8816ff0108bc9376f97dc16a8193f82"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Public/Models/Response/GroupResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"97710e0af3e429ad684f654b8380bcd0fa07fd0244c6e8656595c15f73c8605b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Public/Models/Response/MemberResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"7d50a4a6cb054a6f6a99667526a04cda1999654ff41be2ba3c998cc74e6f2dfc"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/AdminConsole/Public/Models/Response/PolicyResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6431715d37fc20b8021c438f3999c13753c886b3d467ceea5b6be7fa1ed2d105"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Controllers/AccountsController.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ece8d00800f9ca69b36c3b61be072acce7fd5f2f7b66e31f5c4955be707a124d"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO removed with https://bitwarden.atlassian.net/browse/PM-27327 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Controllers/AccountsController.cs"},"region":{"startLine":266}}}],"partialFingerprints":{"codehealthFindingId/v1":"4677c796b7ace834db27d0e49669ccc351deebd28b3a9a9fc73851feade0a523"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // Todo: Drop this after a transition period. This will drop no-account-keys requests. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Controllers/AccountsController.cs"},"region":{"startLine":506}}}],"partialFingerprints":{"codehealthFindingId/v1":"4677c796b7ace834db27d0e49669ccc351deebd28b3a9a9fc73851feade0a523"}},{"ruleId":"D17","level":"warning","message":{"text":"BarePragmaDisable: #pragma warning disable CS0618"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Controllers/AccountsController.cs"},"region":{"startLine":672}}}],"partialFingerprints":{"codehealthFindingId/v1":"f7c7db907aea7b69223e11ac02879d9f2bdc1f73dd7a8512475bee5d285407a6"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostProfile"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Controllers/AccountsController.cs"},"region":{"startLine":433}}}],"partialFingerprints":{"codehealthFindingId/v1":"f8d560181add8f49c9b2b7978a243ffe188b428d9d408f8e4025a72a9df75472"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostAvatar"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Controllers/AccountsController.cs"},"region":{"startLine":459}}}],"partialFingerprints":{"codehealthFindingId/v1":"f8d560181add8f49c9b2b7978a243ffe188b428d9d408f8e4025a72a9df75472"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostDelete"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Controllers/AccountsController.cs"},"region":{"startLine":571}}}],"partialFingerprints":{"codehealthFindingId/v1":"f8d560181add8f49c9b2b7978a243ffe188b428d9d408f8e4025a72a9df75472"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostSetUserVerifyDevicesAsync"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Controllers/AccountsController.cs"},"region":{"startLine":809}}}],"partialFingerprints":{"codehealthFindingId/v1":"f8d560181add8f49c9b2b7978a243ffe188b428d9d408f8e4025a72a9df75472"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Controllers/AuthRequestsController.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0c021f506726f5361a0f03a00996df2d685ae93f08d31c66e8a23f6d36407eb0"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Controllers/EmergencyAccessController.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"5b29ad76a8999ccdad676eb17cf05d8fcc903dc12eb8cf332751bdc2fa62c25d"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] Post"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Controllers/EmergencyAccessController.cs"},"region":{"startLine":94}}}],"partialFingerprints":{"codehealthFindingId/v1":"0f4d109acc4b2346302a01cfbb66e4b94af31c79dc2a4f8d346953f035749f11"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostDelete"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Controllers/EmergencyAccessController.cs"},"region":{"startLine":108}}}],"partialFingerprints":{"codehealthFindingId/v1":"0f4d109acc4b2346302a01cfbb66e4b94af31c79dc2a4f8d346953f035749f11"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Controllers/TwoFactorController.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"941bb43074ca68655f12703715373e0f620c10279246349f20c4300e8b215b1c"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostAuthenticator"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Controllers/TwoFactorController.cs"},"region":{"startLine":150}}}],"partialFingerprints":{"codehealthFindingId/v1":"74a589fe7de5dd2a681e94c90188712d3fdc5f83a3eeda9ce97e0c2f6754a326"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostYubiKey"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Controllers/TwoFactorController.cs"},"region":{"startLine":203}}}],"partialFingerprints":{"codehealthFindingId/v1":"74a589fe7de5dd2a681e94c90188712d3fdc5f83a3eeda9ce97e0c2f6754a326"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostDuo"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Controllers/TwoFactorController.cs"},"region":{"startLine":234}}}],"partialFingerprints":{"codehealthFindingId/v1":"74a589fe7de5dd2a681e94c90188712d3fdc5f83a3eeda9ce97e0c2f6754a326"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostOrganizationDuo"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Controllers/TwoFactorController.cs"},"region":{"startLine":284}}}],"partialFingerprints":{"codehealthFindingId/v1":"74a589fe7de5dd2a681e94c90188712d3fdc5f83a3eeda9ce97e0c2f6754a326"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostWebAuthn"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Controllers/TwoFactorController.cs"},"region":{"startLine":325}}}],"partialFingerprints":{"codehealthFindingId/v1":"74a589fe7de5dd2a681e94c90188712d3fdc5f83a3eeda9ce97e0c2f6754a326"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostEmail"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Controllers/TwoFactorController.cs"},"region":{"startLine":433}}}],"partialFingerprints":{"codehealthFindingId/v1":"74a589fe7de5dd2a681e94c90188712d3fdc5f83a3eeda9ce97e0c2f6754a326"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostDisable"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Controllers/TwoFactorController.cs"},"region":{"startLine":449}}}],"partialFingerprints":{"codehealthFindingId/v1":"74a589fe7de5dd2a681e94c90188712d3fdc5f83a3eeda9ce97e0c2f6754a326"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostOrganizationDisable"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Controllers/TwoFactorController.cs"},"region":{"startLine":479}}}],"partialFingerprints":{"codehealthFindingId/v1":"74a589fe7de5dd2a681e94c90188712d3fdc5f83a3eeda9ce97e0c2f6754a326"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] GetDeviceVerificationSettings"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Controllers/TwoFactorController.cs"},"region":{"startLine":495}}}],"partialFingerprints":{"codehealthFindingId/v1":"74a589fe7de5dd2a681e94c90188712d3fdc5f83a3eeda9ce97e0c2f6754a326"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PutDeviceVerificationSettings"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Controllers/TwoFactorController.cs"},"region":{"startLine":502}}}],"partialFingerprints":{"codehealthFindingId/v1":"74a589fe7de5dd2a681e94c90188712d3fdc5f83a3eeda9ce97e0c2f6754a326"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Jobs/EmergencyAccessNotificationJob.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"2626792a0bd815aeb470be0611c5c4167aafad0b55173a2501fb167f5ae09729"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Jobs/EmergencyAccessTimeoutJob.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"268a5b13333eb4638d8455f1eba42ef118f86df1c115ea955507627e1021a173"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Models/Request/Accounts/DeleteRecoverRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"2fbc7f2b40b67fac112b96a32bd9e857f7428966188b3ce94fea3f328420bb78"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Models/Request/Accounts/EmailRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"f2e1ab98c56f6e7a19a3e1b0d65c74e2802bb0e6dd3dc1b418ef8935e6024087"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Models/Request/Accounts/EmailTokenRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c3def092c79da1c8c1bc6fee0ed960327b666c74b3f36e05c5d9e77f8fb13f56"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Models/Request/Accounts/PasswordHintRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ad0324830cc2296dee82c2a04502ec0460d95972a89a9591e56e16321f818f80"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] NewMasterPasswordHash"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Models/Request/Accounts/PasswordRequestModel.cs"},"region":{"startLine":12}}}],"partialFingerprints":{"codehealthFindingId/v1":"b8753780060bfc8edf19c6f9f03ae5314f8a499d799ce7306204852c7f1bda58"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] Key"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Models/Request/Accounts/PasswordRequestModel.cs"},"region":{"startLine":15}}}],"partialFingerprints":{"codehealthFindingId/v1":"b8753780060bfc8edf19c6f9f03ae5314f8a499d799ce7306204852c7f1bda58"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Models/Request/Accounts/RegenerateTwoFactorRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"5712e4f501d2e3622c7008933d1715c83224bd4279f3646127d9e9ed633c5315"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Models/Request/Accounts/SecretVerificationRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ad647f9983bc713b38689b5fcfd9f73950b5c5ec7d11a68aecf20098b79b64ae"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO will be removed with https://bitwarden.atlassian.net/browse/PM-27327 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Models/Request/Accounts/SetInitialPasswordRequestModel.cs"},"region":{"startLine":13}}}],"partialFingerprints":{"codehealthFindingId/v1":"61cefee53c7fc0c58c4f556c56f68c698b4def3dc3f72a9f12c3ca2652f572b2"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO removed with https://bitwarden.atlassian.net/browse/PM-27327 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Models/Request/Accounts/SetInitialPasswordRequestModel.cs"},"region":{"startLine":46}}}],"partialFingerprints":{"codehealthFindingId/v1":"61cefee53c7fc0c58c4f556c56f68c698b4def3dc3f72a9f12c3ca2652f572b2"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO removed with https://bitwarden.atlassian.net/browse/PM-27327 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Models/Request/Accounts/SetInitialPasswordRequestModel.cs"},"region":{"startLine":74}}}],"partialFingerprints":{"codehealthFindingId/v1":"61cefee53c7fc0c58c4f556c56f68c698b4def3dc3f72a9f12c3ca2652f572b2"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] MasterPasswordHash"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Models/Request/Accounts/SetInitialPasswordRequestModel.cs"},"region":{"startLine":14}}}],"partialFingerprints":{"codehealthFindingId/v1":"d5bc2ba82d0ba38ec6dea00dfff9e90b705672f5dc5aaebd8a0f2b66555427c9"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] Key"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Models/Request/Accounts/SetInitialPasswordRequestModel.cs"},"region":{"startLine":18}}}],"partialFingerprints":{"codehealthFindingId/v1":"d5bc2ba82d0ba38ec6dea00dfff9e90b705672f5dc5aaebd8a0f2b66555427c9"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] Keys"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Models/Request/Accounts/SetInitialPasswordRequestModel.cs"},"region":{"startLine":21}}}],"partialFingerprints":{"codehealthFindingId/v1":"d5bc2ba82d0ba38ec6dea00dfff9e90b705672f5dc5aaebd8a0f2b66555427c9"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] Kdf"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Models/Request/Accounts/SetInitialPasswordRequestModel.cs"},"region":{"startLine":24}}}],"partialFingerprints":{"codehealthFindingId/v1":"d5bc2ba82d0ba38ec6dea00dfff9e90b705672f5dc5aaebd8a0f2b66555427c9"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] KdfIterations"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Models/Request/Accounts/SetInitialPasswordRequestModel.cs"},"region":{"startLine":27}}}],"partialFingerprints":{"codehealthFindingId/v1":"d5bc2ba82d0ba38ec6dea00dfff9e90b705672f5dc5aaebd8a0f2b66555427c9"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] KdfMemory"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Models/Request/Accounts/SetInitialPasswordRequestModel.cs"},"region":{"startLine":30}}}],"partialFingerprints":{"codehealthFindingId/v1":"d5bc2ba82d0ba38ec6dea00dfff9e90b705672f5dc5aaebd8a0f2b66555427c9"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] KdfParallelism"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Models/Request/Accounts/SetInitialPasswordRequestModel.cs"},"region":{"startLine":33}}}],"partialFingerprints":{"codehealthFindingId/v1":"d5bc2ba82d0ba38ec6dea00dfff9e90b705672f5dc5aaebd8a0f2b66555427c9"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Models/Request/Accounts/UnauthenticatedSecretVerificationRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"7d156de9ccc50253b4f0fbded80227c13da268671005f08905492f9bd2df25be"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Models/Request/Accounts/UpdateKeyRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"08d4b81e08aaa82e4341e0c815d2e893230b56f4bae2469699403b2ff92b9b29"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Models/Request/Accounts/UpdateProfileRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"446978d523d267d3083fed38abf6a7370063789bfb5ac5719bbb858c05632c34"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] MasterPasswordHint"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Models/Request/Accounts/UpdateProfileRequestModel.cs"},"region":{"startLine":13}}}],"partialFingerprints":{"codehealthFindingId/v1":"a79052a755865bd200ea1d02b169c912530fd52cc56f24a8849a8c4299957c6d"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] NewMasterPasswordHash"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Models/Request/Accounts/UpdateTdeOffboardingPasswordRequestModel.cs"},"region":{"startLine":10}}}],"partialFingerprints":{"codehealthFindingId/v1":"5ab4d432fdccb39f92c719c9308052f7e0167f5f35d4948276496627afd629fb"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] Key"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Models/Request/Accounts/UpdateTdeOffboardingPasswordRequestModel.cs"},"region":{"startLine":13}}}],"partialFingerprints":{"codehealthFindingId/v1":"5ab4d432fdccb39f92c719c9308052f7e0167f5f35d4948276496627afd629fb"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] NewMasterPasswordHash"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Models/Request/Accounts/UpdateTempPasswordRequestModel.cs"},"region":{"startLine":10}}}],"partialFingerprints":{"codehealthFindingId/v1":"81123738d37e00358c1a69d47db5ab915b844395d8a6df692987f53d717b9841"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] Key"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Models/Request/Accounts/UpdateTempPasswordRequestModel.cs"},"region":{"startLine":13}}}],"partialFingerprints":{"codehealthFindingId/v1":"81123738d37e00358c1a69d47db5ab915b844395d8a6df692987f53d717b9841"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Models/Request/Accounts/VerifyDeleteRecoverRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"bc45af0fb251bcf661089581a6958d00bbb9ce71f96961a2eb21b76cdd034507"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Models/Request/Accounts/VerifyEmailRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"51a397cafddeee7820db62310dacc54b8acb8b20d3da2b613ec136aebd4e4758"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Models/Request/Accounts/VerifyOTPRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"3b940dce7f0da65691390c65d78770dc0da29e0a3f8a76ea621028307f19b254"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Models/Request/EmergencyAccessRequestModels.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"2e75c427c3ca70002168e5c4365718c50652bdb3ee143d9973587587d3074205"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] NewMasterPasswordHash"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Models/Request/EmergencyAccessRequestModels.cs"},"region":{"startLine":50}}}],"partialFingerprints":{"codehealthFindingId/v1":"42847892e88ee9c0e0ac5032da809143596e8e8bc2fbbeb7b9816bafc10d9e09"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] Key"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Models/Request/EmergencyAccessRequestModels.cs"},"region":{"startLine":53}}}],"partialFingerprints":{"codehealthFindingId/v1":"42847892e88ee9c0e0ac5032da809143596e8e8bc2fbbeb7b9816bafc10d9e09"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Models/Request/OrganizationSsoRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"89dd72fd2484f01751861a8b3295b9fea24e6ae3c2da894eaa31361b350c250d"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: On server, make public certificate required for SAML2 SSO: https://bitwarden.atlassian.net/browse/PM-26028 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Models/Request/OrganizationSsoRequestModel.cs"},"region":{"startLine":142}}}],"partialFingerprints":{"codehealthFindingId/v1":"82596bb7ca04348c29f4e8c4b1f36e61c70330576c7a93c5cd528cb567180f29"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] KeyConnectorEnabled"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Models/Request/OrganizationSsoRequestModel.cs"},"region":{"startLine":49}}}],"partialFingerprints":{"codehealthFindingId/v1":"a11a2a955829dda00a2bf265cbb88d8d04ad04fec698244d6c941899ae76f371"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Models/Request/TwoFactorRequestModels.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d2f513f5e64e4d7256bf5457617d619b082518f05d242c15f6bd1ef3593fc6af"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Models/Request/WebAuthn/WebAuthnLoginCredentialCreatelRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"2693ea53f23b5d5834f6c5862cfd455b709540745286b7d8ff30bb8358586e8b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Models/Request/WebAuthn/WebAuthnLoginCredentialUpdateRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"09c2c6b2e13e8badec1733c6cdedaad159cf32180d7d5c5abe20503d56701150"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Models/Request/WebAuthn/WebAuthnLoginRotateKeyRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"1cd871894e61508953e0c8d75ceba091c2e6fcba1816e3791f61bfafb4b904b7"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Models/Response/AuthRequestResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"b75a29ff6e510806c425dfa6ec301e1629eafc5be7b345e1aa7cf84cf19fe51e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Models/Response/EmergencyAccessResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"71face7b054c2a568c5b2729cec3baf1e265909ef5126f26c2cd967757a3e983"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Models/Response/OrganizationSsoResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9d1468be19b2707e2edf93dbadf56032b35cf2fd383feca257a3de70e24628ac"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Models/Response/TwoFactor/TwoFactorAuthenticatorResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ff313e181a5b71ba98a9a5401fb4fe950b3b8d198df212a1f0c89a4215688f2a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Models/Response/TwoFactor/TwoFactorDuoResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e3f3ce01af34d0b7d8497bf5b9ad4c687e948028264e1759d2aea0122bb00dac"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Models/Response/TwoFactor/TwoFactorEmailResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"778807242b67fc49fdde04bf4ed3fd87e70a40d6b8ca6afddf9ce8ee9cb88f03"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Models/Response/TwoFactor/TwoFactorRecoverResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"877cf6bf863b4dc3b22deba76d354dbe0fccf76ee6ac8f3418b1d563114e4dfc"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Models/Response/TwoFactor/TwoFactorWebAuthnResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"2be4b38b3676a3353510a041071be149fedc3667e29004cdfb50472c2a02ce69"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Models/Response/TwoFactor/TwoFactorYubiKeyResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"4ff0b538dfbcf3e0c54de416c8fd342e8ee5bb339d093ddc4700243c926f3040"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Auth/Models/Response/WebAuthn/WebAuthnCredentialCreateOptionsResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e80354a5109b9af1154c20ab0b95cdecb28ec13cfae3232e9074b47271790f1d"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Migrate to Query / AccountBillingVNextController \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Billing/Controllers/AccountsBillingController.cs"},"region":{"startLine":17}}}],"partialFingerprints":{"codehealthFindingId/v1":"da0973a555fc8100df50353d06d21d6d3bf7f78a52cfdb61bc4df523cba2cc30"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Migrate to Query / AccountBillingVNextController \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Billing/Controllers/AccountsBillingController.cs"},"region":{"startLine":32}}}],"partialFingerprints":{"codehealthFindingId/v1":"da0973a555fc8100df50353d06d21d6d3bf7f78a52cfdb61bc4df523cba2cc30"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Migrate to Query / AccountBillingVNextController \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Billing/Controllers/AccountsBillingController.cs"},"region":{"startLine":51}}}],"partialFingerprints":{"codehealthFindingId/v1":"da0973a555fc8100df50353d06d21d6d3bf7f78a52cfdb61bc4df523cba2cc30"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: /*\n     * TODO: A new version of this exists in the AccountBillingVNextController.\n     * The individual-self-hosting-license-uploader.component needs to be updated to use it.\n     * Then, this can be removed.\n     */ \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Billing/Controllers/AccountsController.cs"},"region":{"startLine":33}}}],"partialFingerprints":{"codehealthFindingId/v1":"1671def72730529d0a0d6eea3ebe2e3bffebe5053a9eb693b929576707210d84"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Migrate to Command / AccountBillingVNextController as DELETE /account/billing/vnext/subscription \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Billing/Controllers/AccountsController.cs"},"region":{"startLine":57}}}],"partialFingerprints":{"codehealthFindingId/v1":"1671def72730529d0a0d6eea3ebe2e3bffebe5053a9eb693b929576707210d84"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Billing/Controllers/BaseProviderController.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6aaa8388fb9e960cc8343023c662f29d3f9538ea2713ea2a72fcb2838f42f93f"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Billing/Controllers/LicensesController.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ec1cc54d543ff2c045186f80c3c8d35e7293686a462c2d6337e1c87ede817a01"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Migrate to Query / OrganizationBillingVNextController \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Billing/Controllers/OrganizationBillingController.cs"},"region":{"startLine":25}}}],"partialFingerprints":{"codehealthFindingId/v1":"ea04b720f6f0a3c1351d381ca837ffd6008241a9fa19afbfeb332e4050c70a48"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Migrate to Query / OrganizationBillingVNextController \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Billing/Controllers/OrganizationBillingController.cs"},"region":{"startLine":46}}}],"partialFingerprints":{"codehealthFindingId/v1":"ea04b720f6f0a3c1351d381ca837ffd6008241a9fa19afbfeb332e4050c70a48"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Migrate to Query / OrganizationBillingVNextController \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Billing/Controllers/OrganizationBillingController.cs"},"region":{"startLine":71}}}],"partialFingerprints":{"codehealthFindingId/v1":"ea04b720f6f0a3c1351d381ca837ffd6008241a9fa19afbfeb332e4050c70a48"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Can be removed once we do away with the organization-plans.component. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Billing/Controllers/OrganizationBillingController.cs"},"region":{"startLine":95}}}],"partialFingerprints":{"codehealthFindingId/v1":"ea04b720f6f0a3c1351d381ca837ffd6008241a9fa19afbfeb332e4050c70a48"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Migrate to Command / OrganizationBillingVNextController \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Billing/Controllers/OrganizationBillingController.cs"},"region":{"startLine":119}}}],"partialFingerprints":{"codehealthFindingId/v1":"ea04b720f6f0a3c1351d381ca837ffd6008241a9fa19afbfeb332e4050c70a48"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Migrate to Command / OrganizationBillingVNextController \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Billing/Controllers/OrganizationBillingController.cs"},"region":{"startLine":148}}}],"partialFingerprints":{"codehealthFindingId/v1":"ea04b720f6f0a3c1351d381ca837ffd6008241a9fa19afbfeb332e4050c70a48"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Billing/Controllers/OrganizationsController.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"065c73b033feda91e2c3c5ee905b42e2b699987fcccb59244c8c6e262094c8d5"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Billing/Controllers/OrganizationSponsorshipsController.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"45ce4d3021cf6e71d5b0cc032a559b4f262cc731e587057a74e4b23825f683b9"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostRevokeSponsorship"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Billing/Controllers/OrganizationSponsorshipsController.cs"},"region":{"startLine":248}}}],"partialFingerprints":{"codehealthFindingId/v1":"8f984ae095cb98a2f0a99744c90bf7ec8a50c6327003c7fafea462c459e42cf6"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostRemoveSponsorship"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Billing/Controllers/OrganizationSponsorshipsController.cs"},"region":{"startLine":289}}}],"partialFingerprints":{"codehealthFindingId/v1":"8f984ae095cb98a2f0a99744c90bf7ec8a50c6327003c7fafea462c459e42cf6"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Billing/Controllers/ProviderBillingController.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"dba7211c1ce68e4d7284d1f293a00a6e1aaf2ccc5ac0b23218e29efa80d099da"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Migrate to Query / ProviderBillingVNextController \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Billing/Controllers/ProviderBillingController.cs"},"region":{"startLine":35}}}],"partialFingerprints":{"codehealthFindingId/v1":"b79adb26718abce520dd03f157d286753171ab2e5747ff40ab34dbb718469dfd"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Migrate to Query / ProviderBillingVNextController \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Billing/Controllers/ProviderBillingController.cs"},"region":{"startLine":56}}}],"partialFingerprints":{"codehealthFindingId/v1":"b79adb26718abce520dd03f157d286753171ab2e5747ff40ab34dbb718469dfd"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Migrate to Query / ProviderBillingVNextController \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Billing/Controllers/ProviderBillingController.cs"},"region":{"startLine":79}}}],"partialFingerprints":{"codehealthFindingId/v1":"b79adb26718abce520dd03f157d286753171ab2e5747ff40ab34dbb718469dfd"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Temporary until we can send Provider notifications from the Billing API \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Billing/Controllers/VNext/ProviderBillingVNextController.cs"},"region":{"startLine":87}}}],"partialFingerprints":{"codehealthFindingId/v1":"b48cf4f7eebf0e46b07e916b9b56e7c6cded231d8116e1dca4b9828134b13859"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Billing/Models/Requests/AddExistingOrganizationRequestBody.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"06e4dce9983916a45dad0af20c04f4783983edc6f053d8b916f30ecacf411dcf"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Billing/Models/Requests/CreateClientOrganizationRequestBody.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e26e8b3060a4c4a73edc33de623d9464d6b5458ec14d170c0f60c06dd5da6d8c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Billing/Models/Requests/KeyPairRequestBody.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"09ae175cbf9abb00952fbc2707039c8e570bad1c302f74b1e2ef3cd1d6cb9916"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Billing/Models/Requests/SetupBusinessUnitRequestBody.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"f55462c000ba63a51f873a87861301ca7e72bf38014aedbee15eaaa3ac9b9d8a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Billing/Models/Requests/UpdateClientOrganizationRequestBody.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"f637f8a731581a3fe2b1080a9cbdc0a076ee6811193516158180d349c842c1d2"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Billing/Models/Responses/BillingHistoryResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"21186a82cf4d63e9ffba3cda4f43c5f3d9f13434287db0c2e126c66be5ee153a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Billing/Models/Responses/BillingResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c6761b586735dc3904d477f1fc751b0349d99dd65df68297caa47b7eb8fbcc2e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Billing/Public/Controllers/OrganizationController.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"36cd7bface1a67ed86c49c2f115e8aab595c101608052519805a043fda5e7d89"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Billing/Public/Models/Request/OrganizationSubscriptionUpdateRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0ad4831a5a33bdc60e060c7b99fc809f4feb542560f631264fd7b66ec58c15c2"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Billing/Public/Models/Response/OrganizationSubscriptionDetailsResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"96c24e075a84ceb7ae72d8a6b6d1fcdeffbbd98a30b947eddda479b77deae218"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Controllers/DevicesController.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"389f28e5dafa2c5facdd1d3773dacbb2ef74b4a0f454953e81963964a3f0e94d"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostPut"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Controllers/DevicesController.cs"},"region":{"startLine":116}}}],"partialFingerprints":{"codehealthFindingId/v1":"01fcdc9de81b62dc561ee46aa54206d11f3af065cc8311bd9aa8e56a8167887b"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostKeys"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Controllers/DevicesController.cs"},"region":{"startLine":138}}}],"partialFingerprints":{"codehealthFindingId/v1":"01fcdc9de81b62dc561ee46aa54206d11f3af065cc8311bd9aa8e56a8167887b"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] GetDeviceKeys"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Controllers/DevicesController.cs"},"region":{"startLine":145}}}],"partialFingerprints":{"codehealthFindingId/v1":"01fcdc9de81b62dc561ee46aa54206d11f3af065cc8311bd9aa8e56a8167887b"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostToken"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Controllers/DevicesController.cs"},"region":{"startLine":213}}}],"partialFingerprints":{"codehealthFindingId/v1":"01fcdc9de81b62dc561ee46aa54206d11f3af065cc8311bd9aa8e56a8167887b"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostWebPushAuth"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Controllers/DevicesController.cs"},"region":{"startLine":236}}}],"partialFingerprints":{"codehealthFindingId/v1":"01fcdc9de81b62dc561ee46aa54206d11f3af065cc8311bd9aa8e56a8167887b"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostClearToken"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Controllers/DevicesController.cs"},"region":{"startLine":256}}}],"partialFingerprints":{"codehealthFindingId/v1":"01fcdc9de81b62dc561ee46aa54206d11f3af065cc8311bd9aa8e56a8167887b"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostDeactivate"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Controllers/DevicesController.cs"},"region":{"startLine":276}}}],"partialFingerprints":{"codehealthFindingId/v1":"01fcdc9de81b62dc561ee46aa54206d11f3af065cc8311bd9aa8e56a8167887b"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] GetByEmailAndIdentifier"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Controllers/DevicesController.cs"},"region":{"startLine":290}}}],"partialFingerprints":{"codehealthFindingId/v1":"0b72314d44375762f8e4de70fc0b3cbe3f0c357b6d6a939d3b51fcf82a943e87"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] GetNow"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Controllers/InfoController.cs"},"region":{"startLine":14}}}],"partialFingerprints":{"codehealthFindingId/v1":"fc7b46325a4a84f0ecdaf5f78155ee34efa8ce82f7ddc6ebeb28169366a0bafd"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Controllers/SelfHosted/SelfHostedOrganizationLicensesController.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c7e3acd4ab01bb525077700a23e4f3bcc0d3feea640d30c2dc901bec108fc384"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Controllers/SelfHosted/SelfHostedOrganizationSponsorshipsController.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9cc713ef189ae1b54ef81ee7468160370cba856a3d370b31264c2e439f4a9046"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostRevokeSponsorship"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Controllers/SelfHosted/SelfHostedOrganizationSponsorshipsController.cs"},"region":{"startLine":85}}}],"partialFingerprints":{"codehealthFindingId/v1":"c0fcf3d5cc9543cf0e3e386f1a80ef063662b1dc47cd4ab933fedc8606ac75f8"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostDomains"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Controllers/SettingsController.cs"},"region":{"startLine":49}}}],"partialFingerprints":{"codehealthFindingId/v1":"38a692145baac979deb65a3f7b909151ab34029047453c14a127c1a35b76e7e2"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Dirt/Controllers/EventsController.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a32598ac3ef0670aeaf5a1621352b239081809a02436472b33c10943bc5fbadf"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Dirt/Controllers/HibpController.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"8bd52c7216cffae25b41e731970fa165f4c400418fd290eccdfd26e4c92ab342"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] PostDeleteAsync"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Dirt/Controllers/OrganizationIntegrationConfigurationController.cs"},"region":{"startLine":82}}}],"partialFingerprints":{"codehealthFindingId/v1":"a4ce8d3426cdb14bf2cd2b3701dc4a73f0ac4f6801ca771180082a0ba019d86e"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] PostDeleteAsync"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Dirt/Controllers/OrganizationIntegrationController.cs"},"region":{"startLine":93}}}],"partialFingerprints":{"codehealthFindingId/v1":"5708729aaa1f90602dd80cdebb21d34477c1a6d7374676b1ca54c8a7c0b656fc"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Re-enable this access control in PM-37469 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Dirt/Controllers/OrganizationReportsController.cs"},"region":{"startLine":472}}}],"partialFingerprints":{"codehealthFindingId/v1":"a0c4741f2afbb9590a4d465b7b81721d2883a7d03e33c9c09c3929876f742928"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 5 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Dirt/Controllers/OrganizationReportsController.cs"},"region":{"startLine":476}}}],"partialFingerprints":{"codehealthFindingId/v1":"a8d9f4707b14c7dd9d85640b2c5c2c079f3a03728f9252cf109d646c155641f4"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Dirt/Models/PasswordHealthReportApplicationModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"038f2abc093e47c6f88d879acf76b7d9aad03b3492f5f802161ee1096b23a811"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Dirt/Public/Models/EventFilterRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"13a60e6dabb3c4828dcd68acc64e2f7e8b024eb15c99f0a87b4a9f6a6356c056"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Jobs/SelfHostedSponsorshipSyncJob.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"fc763a013534d9c0ed1957b045d7e67fe88c70edf66fce8ad7a8785657e717f6"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO removed with https://bitwarden.atlassian.net/browse/PM-27328 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/KeyManagement/Controllers/AccountsKeyManagementController.cs"},"region":{"startLine":204}}}],"partialFingerprints":{"codehealthFindingId/v1":"a1ae6e1f1f6687675057f709e52d94a4d239f3fb4d3c5c008a0f7b8071ba3014"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO will be removed with https://bitwarden.atlassian.net/browse/PM-27328 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/KeyManagement/Models/Requests/SetKeyConnectorKeyRequestModel.cs"},"region":{"startLine":14}}}],"partialFingerprints":{"codehealthFindingId/v1":"7485438f7365fb8682db0499baf280ac11efa75684ae4a04e8fd301fc72658f6"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO removed with https://bitwarden.atlassian.net/browse/PM-27328 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/KeyManagement/Models/Requests/SetKeyConnectorKeyRequestModel.cs"},"region":{"startLine":45}}}],"partialFingerprints":{"codehealthFindingId/v1":"7485438f7365fb8682db0499baf280ac11efa75684ae4a04e8fd301fc72658f6"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO removed with https://bitwarden.atlassian.net/browse/PM-27328 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/KeyManagement/Models/Requests/SetKeyConnectorKeyRequestModel.cs"},"region":{"startLine":85}}}],"partialFingerprints":{"codehealthFindingId/v1":"7485438f7365fb8682db0499baf280ac11efa75684ae4a04e8fd301fc72658f6"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO remove validation with https://bitwarden.atlassian.net/browse/PM-27328 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/KeyManagement/Models/Requests/SetKeyConnectorKeyRequestModel.cs"},"region":{"startLine":99}}}],"partialFingerprints":{"codehealthFindingId/v1":"7485438f7365fb8682db0499baf280ac11efa75684ae4a04e8fd301fc72658f6"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] Key"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/KeyManagement/Models/Requests/SetKeyConnectorKeyRequestModel.cs"},"region":{"startLine":15}}}],"partialFingerprints":{"codehealthFindingId/v1":"319a65ffc980486c72a80da99179938f761a5cba4d68519804b8bdc26a89001d"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] Keys"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/KeyManagement/Models/Requests/SetKeyConnectorKeyRequestModel.cs"},"region":{"startLine":18}}}],"partialFingerprints":{"codehealthFindingId/v1":"319a65ffc980486c72a80da99179938f761a5cba4d68519804b8bdc26a89001d"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] Kdf"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/KeyManagement/Models/Requests/SetKeyConnectorKeyRequestModel.cs"},"region":{"startLine":20}}}],"partialFingerprints":{"codehealthFindingId/v1":"319a65ffc980486c72a80da99179938f761a5cba4d68519804b8bdc26a89001d"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] KdfIterations"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/KeyManagement/Models/Requests/SetKeyConnectorKeyRequestModel.cs"},"region":{"startLine":22}}}],"partialFingerprints":{"codehealthFindingId/v1":"319a65ffc980486c72a80da99179938f761a5cba4d68519804b8bdc26a89001d"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] KdfMemory"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/KeyManagement/Models/Requests/SetKeyConnectorKeyRequestModel.cs"},"region":{"startLine":24}}}],"partialFingerprints":{"codehealthFindingId/v1":"319a65ffc980486c72a80da99179938f761a5cba4d68519804b8bdc26a89001d"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] KdfParallelism"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/KeyManagement/Models/Requests/SetKeyConnectorKeyRequestModel.cs"},"region":{"startLine":26}}}],"partialFingerprints":{"codehealthFindingId/v1":"319a65ffc980486c72a80da99179938f761a5cba4d68519804b8bdc26a89001d"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Models/Request/Accounts/PremiumRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c72e03969c35c999b443f78a819b3736fd69272301836d9c74531b64cdb7e8cc"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Models/Request/Accounts/TaxInfoUpdateRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c4034e35aa1fbdff63eadc47b605cd01484b67f69ab4156d5630793499a15ee1"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Models/Request/Accounts/UpdateAvatarRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"5beee9f9985318ca16bcdcb5319645be52198298947b5d9dfd39c75b312958e6"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Models/Request/DeviceRequestModels.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"faa3069c04a67f840279675af304a8faf8ee72d81e4763e4758feff7e4057a4f"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] UnknownDeviceVerificationEnabled"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Models/Request/DeviceVerificationRequestModel.cs"},"region":{"startLine":7}}}],"partialFingerprints":{"codehealthFindingId/v1":"3b516828d8d9a09e46dd177a123aea9ef8a3bbb9ad847af3165d0e75b79bc5dc"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Models/Request/ExpandedTaxInfoUpdateRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"cbf9bc61a43b974ab391a998b6c42ddafdf91b80d872ee5b5c48add2504da2ef"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Models/Request/LicenseRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"b487154be02ed68a4b54b959adc8af821439044d7c6dea9a5414fee373a37d0b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Models/Request/Organizations/OrganizationCreateLicenseRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"431fc3569ece45567eef0c6acbe170c01e6851d4f2a7b80f7dfe06303ba9bbd1"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Models/Request/Organizations/OrganizationSponsorshipCreateRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a039d2567f861d76e1398465668fc7f52031902e9a5ab7ea41e3908cb7d5999c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Models/Request/PaymentRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6df1acc122fe47fa4cb460d391390028a33d876466199a68032aea2eea3a7359"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Models/Request/SubscriptionCancellationRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"5b718b00af829647f4d8bbf6e4fea6ac6c77a706ecf4956e22efcf6039aac7cc"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Models/Request/UpdateDomainsRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"206f04eff9496977bc1c3c45b4a09b3557f76f86a60040165e5ba514a801693d"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Models/Response/ConfigResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"cfb44df9ad2a1c2e5f173ca355e1e0103988e2240eafd127a3d2139abab5038d"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Models/Response/DeviceResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"805eb0b4edf1137c51357737813456126ef46479d3758f7f021988b300a98daa"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] DeviceVerificationResponseModel"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Models/Response/DeviceVerificationResponseModel.cs"},"region":{"startLine":5}}}],"partialFingerprints":{"codehealthFindingId/v1":"5a4254a85497f3adff3fbd3858ae97a43cb236b1193951b686a031ae865354d9"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Models/Response/DomainsResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9f8391804605e1a0063254d49dc2e408939c8f7783bad89d83e5460317be454a"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] PublicKey"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Models/Response/KeysResponseModel.cs"},"region":{"startLine":27}}}],"partialFingerprints":{"codehealthFindingId/v1":"bdca41a4e37fe39210074089da2d79dd4d0a3b1ffbfcc2c10b57bddc6c18319d"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] PrivateKey"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Models/Response/KeysResponseModel.cs"},"region":{"startLine":29}}}],"partialFingerprints":{"codehealthFindingId/v1":"bdca41a4e37fe39210074089da2d79dd4d0a3b1ffbfcc2c10b57bddc6c18319d"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Models/Response/ListResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6ad003de88f42f76535a5f943da3cffa822fa375b9d03819e041c7464e54143a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Models/Response/PaymentResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6e0d902ba9a609cda394eefa77b01010743fafaa81e6ff6652d5e104d652c60c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Models/Response/PlanResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"10e593c2a94eac6cc475bafd082b7d9a166d0e6c32fb2b8f01ca47931a217fbe"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Models/Response/ProfileResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"2ac5242a7a450767e26a39517ad39c81419393a57ba56b613e5bf699f2b3cad4"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] PrivateKey"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Models/Response/ProfileResponseModel.cs"},"region":{"startLine":69}}}],"partialFingerprints":{"codehealthFindingId/v1":"2eea02b929aead44f4c61ebf6ad7bb133c325c132be7ee8906000a3f6419899e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Models/Response/TaxInfoResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"4569fbf91eb001b9bdba65b1fb5945eb4226643b5596dccb023e56de0c52c049"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Platform/Installations/Models/InstallationRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9b82f6dd9f54df4218f567fa7be28e6f034ab308edeb57b21e271e6625f5446a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Platform/Installations/Models/InstallationResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"cb02c12a815106fca280258697aedef19dde00dcdb6842e8325711299654c276"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Platform/Push/Controllers/PushController.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"bafb9b18b30eea6015220a963e12ad4374ec971c50c5689ac1e2d532f4766d81"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/SecretsManager/Controllers/ProjectsController.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"80087f704b75236033ed4d2c2b8ecd59ecff2babeb5cc7713350d527f1e7b1ad"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/SecretsManager/Controllers/SecretsController.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"92677927febd1e7f724438b4437e1eeabec86b14e500dc4646209be061615ed8"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/SecretsManager/Controllers/SecretsManagerEventsController.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0d4a69c7e93ef99e9315729e62e31c3f61ecadc53dbb6f095a9172f6f31f0946"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/SecretsManager/Controllers/SecretsManagerPortingController.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"563e227e77f42baa1336569cd074141f12703f8509571c62e25b86be4bd74c9c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/SecretsManager/Controllers/ServiceAccountsController.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0c540858b92db93ea51162854a6b421081db62aa9ffc1985e1e391e364fdb30b"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: https://bitwarden.atlassian.net/browse/PM-17002 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/SecretsManager/Controllers/ServiceAccountsController.cs"},"region":{"startLine":140}}}],"partialFingerprints":{"codehealthFindingId/v1":"c9af49698c5def99e3cb1c48f39b1170e7d84a7e149b8707610c41964df8a6fe"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/SecretsManager/Models/Request/AccessTokenCreateRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"24cadfea82da229d312c9ca901fdce8d7adb099c35b1fc1a0822cf6c2195a644"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/SecretsManager/Models/Request/GetSecretsRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"42a0e3a579b953b9e1bae42783bdfc2aaa9894e2e40a1d44b904a706782ae610"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/SecretsManager/Models/Request/PeopleAccessPoliciesRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"5e018a52276a09e43e9e2d449dc9128ba709a665cea9e141291b4339308839d6"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/SecretsManager/Models/Request/ProjectCreateRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"287197ffcfb73e87eafc9ef869577cb31a4a6ca883ca02d035beec896337f19a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/SecretsManager/Models/Request/ProjectUpdateRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"2b69ba80c0a0d28f4271ab8418f4957f2abaf05c99f86f07fac3aad6d3e3ef47"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/SecretsManager/Models/Request/RequestSMAccessRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a47d3b34521b20d9988e2bdb82962e343640f1c4d8a9ea737bd2169a09964874"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/SecretsManager/Models/Request/RevokeAccessTokensRequest.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"b859647207d1dd1c657fdf4b43ebea57475eb46c4d210855ce0c46d1ea867926"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/SecretsManager/Models/Request/SecretCreateRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d5af9e7206e924477ef977ebbc3e7a7a3d51e595b835ae1cd03af9257be98216"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/SecretsManager/Models/Request/SecretUpdateRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"b7f79118a81d24025b7faa70130f011bb16283684bf797e69c11dd795647e6d0"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/SecretsManager/Models/Request/SerivceAccountUpdateRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"89bac22ab91ab5743ab2a133c8662a98d019edc884250d46a9fe9487c4dfbfa4"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/SecretsManager/Models/Request/ServiceAccountCreateRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"4c8fb3303d7ee1dfbafac64a35258eb61a3b57e4422a648617168674d3628d07"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/SecretsManager/Models/Request/SMImportRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"39025a0c0f035cb1c05ea54212d0d7e0005bcd6ce93d66f106201f058357dd3c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/SecretsManager/Models/Response/AccessTokenResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ad78af4d92964d2578424822c2e79c82368fd6db2b5803d22791404c50ff2c5c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/SecretsManager/Models/Response/BaseSecretResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"50edf849fc3767c23788b0890981fe0ce259070e6eeadcd554a3f23312fdb4bb"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/SecretsManager/Models/Response/PotentialGranteeResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"066aff23d76eac9d0e9c0511082237ba4e6acafffa67efc87d551a09442a57c0"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/SecretsManager/Models/Response/ProjectResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"5f300528160f77b736de58d02814eb3c887ba08390a7d5068b50dbf66370c821"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/SecretsManager/Models/Response/SecretWithProjectsListResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"3334bdf6042340abfb503a2ac5a74fd2392b698a514dcdc826c2d8a33b051f60"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/SecretsManager/Models/Response/ServiceAccountResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"be0b0eae6fb8ac69864b6425fd4df0315178bd39f83ecf0697657d808dce7d41"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/SecretsManager/Models/Response/SMExportResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"27a1d4a2f65dea4fe63b141e9f0ecd5519f84aca31873693ee1a307ec74e19e6"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/SecretsManager/Models/Response/SMImportResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"2f422e74989622564cb2d74ecfb436760e3e31df6ef5ea0f84edd0d16b2aaf07"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Tools/Authorization/VaultExportAuthorizationHandler.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e0254f0728c912245c87b24c04c919340f6ae364dfe494610628ebb8392e6fe2"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 5 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Tools/Controllers/SendsController.cs"},"region":{"startLine":84}}}],"partialFingerprints":{"codehealthFindingId/v1":"ff861a65049197e4f8bbf6082f471d1029c18cdc816c4b8fad95b7909570a7e2"}},{"ruleId":"D17","level":"warning","message":{"text":"CommentedOutCode: 5 consecutive commented-code lines"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Tools/Controllers/SendsController.cs"},"region":{"startLine":148}}}],"partialFingerprints":{"codehealthFindingId/v1":"ff861a65049197e4f8bbf6082f471d1029c18cdc816c4b8fad95b7909570a7e2"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: This method does two things: creates a send and a send file data. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Tools/Models/Request/SendRequestModel.cs"},"region":{"startLine":139}}}],"partialFingerprints":{"codehealthFindingId/v1":"7f4620ebf58406e3e73b9569d88e62f1a93365f71cb6356d7f954346bc8673f7"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: /* FIXME: Remove after two releases of clients\n        // This supports clients that do not send an AuthType in the request,\n        // but does not fully support a user changing the AuthType in the UI.\n        // Specifically a password protected Send can\u0027t directly change AuthType to None using this logic.\n        // They can change to AuthType.Email, and then AuthType.None.\n        */ \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Tools/Models/Request/SendRequestModel.cs"},"region":{"startLine":279}}}],"partialFingerprints":{"codehealthFindingId/v1":"7f4620ebf58406e3e73b9569d88e62f1a93365f71cb6356d7f954346bc8673f7"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Tools/Models/Response/OrganizationExportResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c7327d95bfab1b70d1c25c505ad91cc0ff14fd19981e3665a23521ece5c1e99d"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] OrganizationExportListResponseModel"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Tools/Models/Response/OrganizationExportResponseModel.cs"},"region":{"startLine":32}}}],"partialFingerprints":{"codehealthFindingId/v1":"06cb30cd648fe984c907d825abba04dd8d9284d6d3894a14d6f7486ccaa54635"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Utilities/ApiExplorerGroupConvention.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"f4e8682e3ad0a434ec1cf74657b15dc1f20be550b7cbbc5142bb008cacc3cfe6"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Utilities/ApiHelpers.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"03d45edb8af8d4dc9d8749975d47e15b68903b9f0fb28f36e24813d59bbadbd5"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Utilities/ApiHelpers.cs"},"region":{"startLine":26}}}],"partialFingerprints":{"codehealthFindingId/v1":"07a5fd9e8b62b5b5f5fce076461661201df316d029aa97ba4826b442c407d04e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Utilities/EnumMatchesAttribute.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"fb91a3a61d8896f943f38b5f5ceaa4c7855127f4aad612e5f13b5f03cc29e024"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Utilities/ExceptionHandlerFilterAttribute.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"4145c4b014a76e757e83170c2671172487a29a3bad1561ba575ac1796376aad6"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Utilities/MultipartFormDataHelper.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"5ec72de7cd94a864dd867ff21a9d4462a6e9ff6d03701d0d19150df1bdc290a0"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Utilities/PublicApiControllersModelConvention.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"3be0d8a45d92e32cc5780295fc70b24859910b21e66117dac0e0d06e32f3a69d"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Controllers/CiphersController.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0272482a7b6f8d753b5e8de944d5a2b35ad9b0d91232881aa67a1eb636a58d05"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Use hasOrgs proper for cipher listing here? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Controllers/CiphersController.cs"},"region":{"startLine":143}}}],"partialFingerprints":{"codehealthFindingId/v1":"c16b5cd32fc4ba30edd80033e942f9289b6e6eb13db7cb791f5bbe16febb4019"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: This can likely be optimized to only query the requested ciphers and then checking they belong to the org \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Controllers/CiphersController.cs"},"region":{"startLine":412}}}],"partialFingerprints":{"codehealthFindingId/v1":"c16b5cd32fc4ba30edd80033e942f9289b6e6eb13db7cb791f5bbe16febb4019"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: This can likely be optimized to only query the requested ciphers and then checking they belong to the org \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Controllers/CiphersController.cs"},"region":{"startLine":562}}}],"partialFingerprints":{"codehealthFindingId/v1":"c16b5cd32fc4ba30edd80033e942f9289b6e6eb13db7cb791f5bbe16febb4019"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: This can likely be optimized to only query the requested ciphers and then checking they belong to the org \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Controllers/CiphersController.cs"},"region":{"startLine":615}}}],"partialFingerprints":{"codehealthFindingId/v1":"c16b5cd32fc4ba30edd80033e942f9289b6e6eb13db7cb791f5bbe16febb4019"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: This can likely be optimized to only query the requested ciphers and then checking they belong to the org \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Controllers/CiphersController.cs"},"region":{"startLine":668}}}],"partialFingerprints":{"codehealthFindingId/v1":"c16b5cd32fc4ba30edd80033e942f9289b6e6eb13db7cb791f5bbe16febb4019"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] GetFullDetails"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Controllers/CiphersController.cs"},"region":{"startLine":131}}}],"partialFingerprints":{"codehealthFindingId/v1":"f0d1fcd1fb97f1e3b228249ad8e9eed7ba4bf072f1ab39896befaf13d02b05e1"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostPut"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Controllers/CiphersController.cs"},"region":{"startLine":279}}}],"partialFingerprints":{"codehealthFindingId/v1":"f0d1fcd1fb97f1e3b228249ad8e9eed7ba4bf072f1ab39896befaf13d02b05e1"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostPutAdmin"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Controllers/CiphersController.cs"},"region":{"startLine":319}}}],"partialFingerprints":{"codehealthFindingId/v1":"f0d1fcd1fb97f1e3b228249ad8e9eed7ba4bf072f1ab39896befaf13d02b05e1"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostPartial"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Controllers/CiphersController.cs"},"region":{"startLine":716}}}],"partialFingerprints":{"codehealthFindingId/v1":"f0d1fcd1fb97f1e3b228249ad8e9eed7ba4bf072f1ab39896befaf13d02b05e1"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostShare"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Controllers/CiphersController.cs"},"region":{"startLine":755}}}],"partialFingerprints":{"codehealthFindingId/v1":"f0d1fcd1fb97f1e3b228249ad8e9eed7ba4bf072f1ab39896befaf13d02b05e1"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostCollections"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Controllers/CiphersController.cs"},"region":{"startLine":782}}}],"partialFingerprints":{"codehealthFindingId/v1":"f0d1fcd1fb97f1e3b228249ad8e9eed7ba4bf072f1ab39896befaf13d02b05e1"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostCollections_vNext"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Controllers/CiphersController.cs"},"region":{"startLine":817}}}],"partialFingerprints":{"codehealthFindingId/v1":"f0d1fcd1fb97f1e3b228249ad8e9eed7ba4bf072f1ab39896befaf13d02b05e1"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostCollectionsAdmin"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Controllers/CiphersController.cs"},"region":{"startLine":853}}}],"partialFingerprints":{"codehealthFindingId/v1":"f0d1fcd1fb97f1e3b228249ad8e9eed7ba4bf072f1ab39896befaf13d02b05e1"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostDelete"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Controllers/CiphersController.cs"},"region":{"startLine":938}}}],"partialFingerprints":{"codehealthFindingId/v1":"f0d1fcd1fb97f1e3b228249ad8e9eed7ba4bf072f1ab39896befaf13d02b05e1"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostDeleteAdmin"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Controllers/CiphersController.cs"},"region":{"startLine":959}}}],"partialFingerprints":{"codehealthFindingId/v1":"f0d1fcd1fb97f1e3b228249ad8e9eed7ba4bf072f1ab39896befaf13d02b05e1"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostDeleteMany"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Controllers/CiphersController.cs"},"region":{"startLine":979}}}],"partialFingerprints":{"codehealthFindingId/v1":"f0d1fcd1fb97f1e3b228249ad8e9eed7ba4bf072f1ab39896befaf13d02b05e1"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostDeleteManyAdmin"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Controllers/CiphersController.cs"},"region":{"startLine":1012}}}],"partialFingerprints":{"codehealthFindingId/v1":"f0d1fcd1fb97f1e3b228249ad8e9eed7ba4bf072f1ab39896befaf13d02b05e1"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostMoveMany"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Controllers/CiphersController.cs"},"region":{"startLine":1218}}}],"partialFingerprints":{"codehealthFindingId/v1":"f0d1fcd1fb97f1e3b228249ad8e9eed7ba4bf072f1ab39896befaf13d02b05e1"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostShareMany"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Controllers/CiphersController.cs"},"region":{"startLine":1273}}}],"partialFingerprints":{"codehealthFindingId/v1":"f0d1fcd1fb97f1e3b228249ad8e9eed7ba4bf072f1ab39896befaf13d02b05e1"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostAttachmentV1"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Controllers/CiphersController.cs"},"region":{"startLine":1413}}}],"partialFingerprints":{"codehealthFindingId/v1":"f0d1fcd1fb97f1e3b228249ad8e9eed7ba4bf072f1ab39896befaf13d02b05e1"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostDeleteAttachment"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Controllers/CiphersController.cs"},"region":{"startLine":1571}}}],"partialFingerprints":{"codehealthFindingId/v1":"f0d1fcd1fb97f1e3b228249ad8e9eed7ba4bf072f1ab39896befaf13d02b05e1"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostDeleteAttachmentAdmin"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Controllers/CiphersController.cs"},"region":{"startLine":1593}}}],"partialFingerprints":{"codehealthFindingId/v1":"f0d1fcd1fb97f1e3b228249ad8e9eed7ba4bf072f1ab39896befaf13d02b05e1"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Controllers/FoldersController.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"4aba4aaf7f47136b0bb20ae5a8e3174ab0bbf94608e7257e4b4f198052dd3833"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostPut"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Controllers/FoldersController.cs"},"region":{"startLine":79}}}],"partialFingerprints":{"codehealthFindingId/v1":"35981a93ff2b5831927df158a86f05313d808f5ac0d4b2b4e4582bec352cf0ca"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostDelete"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Controllers/FoldersController.cs"},"region":{"startLine":99}}}],"partialFingerprints":{"codehealthFindingId/v1":"35981a93ff2b5831927df158a86f05313d808f5ac0d4b2b4e4582bec352cf0ca"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Controllers/SecurityTaskController.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9cc217d2f9057c96f1ea651bd471abe4589381c188bd98e0e077926bc1a6cba1"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Controllers/SyncController.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9512b9cf5a5b5c88ff3734eee57880b91d5a076cbe0ca1c72cbb12b2a2b66abc"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Models/CipherAttachmentModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"7cc87a9958b43b866a0cc27e90c3c20009c832f2f0cac526e9682ccc813dc3cf"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Models/CipherCardModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"8d64aec74ca41d97043ed2346d153d1ea74f66bc4e4cdea6c028347b069cb3af"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Models/CipherFido2CredentialModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d01538d07c9410f8ca480056ab2a27e259e0ada9363e846c4bb7782df3943600"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Models/CipherFieldModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"7f7599add9319ce6fde3e22fa9340c796c86b960dffa97088a7513967ca59294"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Models/CipherIdentityModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ae0f685582a6a116e590dfcbcc6798f92b4f30bc2052abf6035c49493f4f5702"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Models/CipherLoginModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"1bfb33abcc8691a7a2b47891d3b9061a9e57040d91d57043e2b5cba3c6ee37c5"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Models/CipherPasswordHistoryModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"846e9c0a772952ae2b4290622f93b203e3e759382e4bbd436611aab642607d9b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Models/CipherSSHKeyModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0ad97b817c27c3f9a6d78e6dfc4995ec6a46fd00d1a83c06eb32371e933a5674"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Models/Request/AttachmentRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6874a5733f054b80f95b6a3e0329629c10d0e088d4065b1f5c50973c1e57e82d"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Models/Request/BulkCreateSecurityTasksRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e6b2c008e07856bd809ec0a48ca1ef121b7034f2dbc75ca61971e3081db8e306"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Models/Request/CipherBulkUpdateCollectionsRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"fb41df1f38fc25173a3f1982b9de0d1d1a5c4302f4b5d341e0b889aba8509b70"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Models/Request/CipherPartialRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"5756a57213d020628feaa73c4a705c42198bbcda95c11308ab89052c9e33b0a9"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Models/Request/CipherRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d9e478af2de364ea33aa62ccc5db28c7cf5132c8fa15bbc1e3b57f2bec5e0fb0"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Rename to Attachments whenever the above is finally removed. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Models/Request/CipherRequestModel.cs"},"region":{"startLine":38}}}],"partialFingerprints":{"codehealthFindingId/v1":"ef871108af8a2a3ec54045ef08603cef1673ef4c89da4274c27b69ef1aae7712"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] Attachments"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Models/Request/CipherRequestModel.cs"},"region":{"startLine":36}}}],"partialFingerprints":{"codehealthFindingId/v1":"e606b80b26a0a7c2f4c1dbaa394ded6f3482f2df68fe9faee14b5a6c08af5da3"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] Login"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Models/Request/CipherRequestModel.cs"},"region":{"startLine":41}}}],"partialFingerprints":{"codehealthFindingId/v1":"e606b80b26a0a7c2f4c1dbaa394ded6f3482f2df68fe9faee14b5a6c08af5da3"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] Card"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Models/Request/CipherRequestModel.cs"},"region":{"startLine":44}}}],"partialFingerprints":{"codehealthFindingId/v1":"e606b80b26a0a7c2f4c1dbaa394ded6f3482f2df68fe9faee14b5a6c08af5da3"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] Identity"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Models/Request/CipherRequestModel.cs"},"region":{"startLine":47}}}],"partialFingerprints":{"codehealthFindingId/v1":"e606b80b26a0a7c2f4c1dbaa394ded6f3482f2df68fe9faee14b5a6c08af5da3"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] SecureNote"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Models/Request/CipherRequestModel.cs"},"region":{"startLine":50}}}],"partialFingerprints":{"codehealthFindingId/v1":"e606b80b26a0a7c2f4c1dbaa394ded6f3482f2df68fe9faee14b5a6c08af5da3"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] SSHKey"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Models/Request/CipherRequestModel.cs"},"region":{"startLine":53}}}],"partialFingerprints":{"codehealthFindingId/v1":"e606b80b26a0a7c2f4c1dbaa394ded6f3482f2df68fe9faee14b5a6c08af5da3"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] BankAccount"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Models/Request/CipherRequestModel.cs"},"region":{"startLine":56}}}],"partialFingerprints":{"codehealthFindingId/v1":"e606b80b26a0a7c2f4c1dbaa394ded6f3482f2df68fe9faee14b5a6c08af5da3"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] DriversLicense"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Models/Request/CipherRequestModel.cs"},"region":{"startLine":58}}}],"partialFingerprints":{"codehealthFindingId/v1":"e606b80b26a0a7c2f4c1dbaa394ded6f3482f2df68fe9faee14b5a6c08af5da3"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] Passport"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Models/Request/CipherRequestModel.cs"},"region":{"startLine":60}}}],"partialFingerprints":{"codehealthFindingId/v1":"e606b80b26a0a7c2f4c1dbaa394ded6f3482f2df68fe9faee14b5a6c08af5da3"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Models/Request/FolderRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"387c67d27837473677cbef95237956641e0a7aa0a2c61384575faa1205a2f994"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Models/Response/AttachmentResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"288a1e17b845e58499b87effb6a72a5a809fc429a1e7bd47b953904bfe140bc7"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Models/Response/AttachmentUploadDataResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"dc4d0ffc017dd3d2e70af9e0a0075a01b05cb95189f7cce9706a126c6e9dad1a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Models/Response/CipherPermissionsResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"7b234a0fc982ea878ea694b8992a574e693c9ad8a0347b07568b80793c7b6871"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Models/Response/CipherResponseModel.cs"},"region":{"startLine":13}}}],"partialFingerprints":{"codehealthFindingId/v1":"b3fae72c048f216bf7d4994f89523068d72b59a8d0d0dc17810636150cd0df07"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] Name"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Models/Response/CipherResponseModel.cs"},"region":{"startLine":101}}}],"partialFingerprints":{"codehealthFindingId/v1":"ee86760264c785a5afdb3c10d7589d57b5491b759b1861fda89b6bd5be8ee95c"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] Notes"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Models/Response/CipherResponseModel.cs"},"region":{"startLine":104}}}],"partialFingerprints":{"codehealthFindingId/v1":"ee86760264c785a5afdb3c10d7589d57b5491b759b1861fda89b6bd5be8ee95c"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] Login"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Models/Response/CipherResponseModel.cs"},"region":{"startLine":107}}}],"partialFingerprints":{"codehealthFindingId/v1":"ee86760264c785a5afdb3c10d7589d57b5491b759b1861fda89b6bd5be8ee95c"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] Card"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Models/Response/CipherResponseModel.cs"},"region":{"startLine":110}}}],"partialFingerprints":{"codehealthFindingId/v1":"ee86760264c785a5afdb3c10d7589d57b5491b759b1861fda89b6bd5be8ee95c"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] Identity"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Models/Response/CipherResponseModel.cs"},"region":{"startLine":113}}}],"partialFingerprints":{"codehealthFindingId/v1":"ee86760264c785a5afdb3c10d7589d57b5491b759b1861fda89b6bd5be8ee95c"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] SecureNote"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Models/Response/CipherResponseModel.cs"},"region":{"startLine":116}}}],"partialFingerprints":{"codehealthFindingId/v1":"ee86760264c785a5afdb3c10d7589d57b5491b759b1861fda89b6bd5be8ee95c"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] SSHKey"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Models/Response/CipherResponseModel.cs"},"region":{"startLine":119}}}],"partialFingerprints":{"codehealthFindingId/v1":"ee86760264c785a5afdb3c10d7589d57b5491b759b1861fda89b6bd5be8ee95c"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] BankAccount"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Models/Response/CipherResponseModel.cs"},"region":{"startLine":122}}}],"partialFingerprints":{"codehealthFindingId/v1":"ee86760264c785a5afdb3c10d7589d57b5491b759b1861fda89b6bd5be8ee95c"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] DriversLicense"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Models/Response/CipherResponseModel.cs"},"region":{"startLine":125}}}],"partialFingerprints":{"codehealthFindingId/v1":"ee86760264c785a5afdb3c10d7589d57b5491b759b1861fda89b6bd5be8ee95c"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] Passport"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Models/Response/CipherResponseModel.cs"},"region":{"startLine":128}}}],"partialFingerprints":{"codehealthFindingId/v1":"ee86760264c785a5afdb3c10d7589d57b5491b759b1861fda89b6bd5be8ee95c"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] Fields"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Models/Response/CipherResponseModel.cs"},"region":{"startLine":131}}}],"partialFingerprints":{"codehealthFindingId/v1":"ee86760264c785a5afdb3c10d7589d57b5491b759b1861fda89b6bd5be8ee95c"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] PasswordHistory"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Models/Response/CipherResponseModel.cs"},"region":{"startLine":134}}}],"partialFingerprints":{"codehealthFindingId/v1":"ee86760264c785a5afdb3c10d7589d57b5491b759b1861fda89b6bd5be8ee95c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Models/Response/FolderResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"5431650160173c1ab75ef78b2878b82d5b1087faba209cd1a582457f8d600147"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Vault/Models/Response/SyncResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c92b9f8661d23cfbff662df439b885d5d276a4cabe390ccaceb59174f4555fa4"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Billing/BillingSettings.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"1bece9f7b66f207ab9f130a754c998c9e838c27d87fc9a7577a4c1a8037da892"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Billing/Controllers/AppleController.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c8f66995e3293e0ae9b4f5b8907490e86b0215e696b020dea01b1ea8413cc2f8"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (SqlException) when (\u2026) \u2014 narrow/filtered/commented, treated as intentional"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Billing/Controllers/BitPayController.cs"},"region":{"startLine":133}}}],"partialFingerprints":{"codehealthFindingId/v1":"b02baba9ba191b82e06ce06dab2088bf9de15e8892b7f67f2a6cb70ac771a449"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Billing/Controllers/PayPalController.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"34efec96597e532de13e4698b70f27e091dda8ab976e829dcd8959ae47e4f0c3"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Billing/Controllers/RecoveryController.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"2a7ac7839a3f576e755458105cc1532ee1eeba773f9362e32d7621b736327431"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Billing/Controllers/StripeController.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"97fbab62ba425ff7bea40fc9af860bb042cd85c91dcb992c47b99bae6db94d5a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Billing/Jobs/ProviderOrganizationDisableJob.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"71b717fd8f3d2868d618252a8f668f477fab6e91ad166d5aa3a6bbd34750b2c6"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Billing/Models/BitPayEventModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"72d84b12c2802099633f5e63aa7055575a37fa6a5f7f3b4616cda860d0998b06"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Billing/Models/LoginModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"048d8073ffa420fe5e713d0fb48b8056013360126ccfbef2a7fecdd0a93ce3b0"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Billing/Models/PayPalIPNTransactionModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d371ca1041552fd802c5fbc4365e77fe43f71c88cde8e4fc469af9614e8058c7"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Billing/Models/Recovery/EventsRequestBody.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"83486bbe823dd8f0b2b170be21a763242c07bf48a5736a4d051eb183f44de00b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Billing/Models/Recovery/EventsResponseBody.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"821d231b04519da1a891c132c86e364b5346c4d3f8c872b509bd4df51bc1d622"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Billing/Models/StripeWebhookDeliveryContainer.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"91b9a275043eb10b075848855c0f63eef7ea3e5b01903c9439e5a69acf026f7f"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Billing/Services/Implementations/PaymentMethodAttachedHandler.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"8f44bf28f111fc4a78738add9538478dceb315106f260bcbf4f4308d1781a8cc"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Billing/Services/Implementations/ProviderEventService.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d6eb15b2c9dee2f64c3f4aa590fef97bd66b557a40149c40fd949e5707bffc93"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Billing/Services/Implementations/StripeEventUtilityService.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"f94354c5e1c5e9848b9510f88f31b0b210ad7399c2f15fe9bab92f37c0f2f634"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Billing/Services/Implementations/StripeFacade.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"5e7bfeb6b7cd2ce6525c85a3c15dc17556488d78f7b4ec3d69190c6cc624617e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Billing/Services/IStripeFacade.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d53e96559aba8faba0625e07a5c1a106797571212313286da2de8f5c7444de46"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Billing/Startup.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"33d4d4da309c7e9004749befff3aa6d7dec3b8d775612ef500054f96f2087aad"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Remove when OrganizationUser methods are moved out of OrganizationService, this noop dependency should \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Billing/Startup.cs"},"region":{"startLine":90}}}],"partialFingerprints":{"codehealthFindingId/v1":"d252d377b411413ba8cc68bd2fa4048d8a71564c06f8cd8db5859b3c1e83cc8c"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: no longer be required - see PM-1880 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Billing/Startup.cs"},"region":{"startLine":91}}}],"partialFingerprints":{"codehealthFindingId/v1":"d252d377b411413ba8cc68bd2fa4048d8a71564c06f8cd8db5859b3c1e83cc8c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/Context/CurrentContextProvider.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"4fe670e6bc6df3a5bc8b345ee91e3d47256871978f0fe032723262b86f3d9a7d"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] BusinessName"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/Entities/Organization.cs"},"region":{"startLine":42}}}],"partialFingerprints":{"codehealthFindingId/v1":"76ec3de6406818a7d25cfebd2f33b57d5ec2a56ecdc0378172a3b46699f1c97d"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] DisplayBusinessName"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/Entities/Organization.cs"},"region":{"startLine":364}}}],"partialFingerprints":{"codehealthFindingId/v1":"76ec3de6406818a7d25cfebd2f33b57d5ec2a56ecdc0378172a3b46699f1c97d"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/Models/Business/ImportedGroup.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a913bce03bee4b5d7ac159df2cf693dfc7cf50d6f0a41c692a2ca4fbc2aef7a9"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/Models/Business/ImportedOrganizationUser.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"7e99c17469970db0b6d3c8c0b22ce1836631dee8aa2813a9d08d7ec0f255aee8"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/Models/Business/OrganizationUserInvite.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c8950f83bbe9144e5cca504e2b861d224df174c13105c1e35f25d216ea7093b9"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/Models/Business/Provider/ProviderUserInvite.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"81f2b1c82d1e0c45e71e875ee472b52bd7a9788209fe891b1f5f5988cc8e5080"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/Models/Data/CollectionAccessDetails.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"af57e5ddd742976609fed9d61b3f19becf11541480a6ad1f63be8f6936e9a7e0"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/Models/Data/GroupWithCollections.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ab59de9fe8f751f7a0450d8c16fbcebed6af2d71cbecf324df95d6788c565b36"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/Models/Data/Organizations/OrganizationUsers/OrganizationUserInviteData.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"15c922788f1dc7a3b778f0685347def4eb94f6f6caa94157a109985afe15ad9e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/Models/Data/Organizations/OrganizationUsers/OrganizationUserPublicKey.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"edfcbf788b59079a19d725b4e0be0379e812a0e60dcd9d7ed84354bcba276f89"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/Models/Data/Organizations/OrganizationUsers/OrganizationUserResetPasswordDetails.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a8f04f65c1ab46b24eca220f3d3e8f3e40629e2ae7ff465fd846a9a259f17d31"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/Models/Data/Organizations/OrganizationUsers/OrganizationUserUserDetails.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"8495d130a64d09b64c463f7f50fd6ba595b0635224ad1879db4fb7bf4c15ab68"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/Models/Data/Organizations/OrganizationUsers/OrganizationUserWithCollections.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"60a90f57fa7400ed036479dc5623f3f296c72fc2902f2384e2b4cc56cb5ae3b4"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/Models/Data/Organizations/SelfHostedOrganizationDetails.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"2cc29b659c9d4a49f0dd1c0d0a2a452b4146649ddf8a325cb5dcb7e18dc4ffc2"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/Models/Data/Provider/ProviderOrganizationOrganizationDetails.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"537bd2bf682f5a23913f49d125bcf1e3c8cac4a4d49f844c71ec41639cc80eb7"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/Models/Data/Provider/ProviderOrganizationProviderDetails.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"f39370ee212fd526afe34c7cd0a07e5c0dc86f1628b2882436e67acdb62c0461"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/Models/Data/Provider/ProviderUserProviderDetails.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"1913f7b1323bf75b03de68f7f65afc3385f71a2a984ffc627b4cee74d30f362b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/Models/Data/Provider/ProviderUserPublicKey.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"efb027205fd4c9d9f30f42b904aa2553ecc3c0756f7b6a7433ec7491c2e5dc1b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/Models/Data/Provider/ProviderUserUserDetails.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0ec2ea4ae9c394841bc25a26c6dbd85881753d494a2372da6b2138129b6136b4"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/Models/Mail/DeviceApprovalRequestedViewModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"b9029f8cf4bace59d7ee8f361af0a510fd568bbc128dfdd6d3eaf812ff60173d"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/OrganizationAuth/Models/AuthRequestUpdateProcessor.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e25c8275ee821039e5c6e88df51dbb000e0c62bcc32b425b22c7417150759209"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/OrganizationAuth/Models/BatchAuthRequestUpdateProcessor.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a3ab0226eda4b44b1c7402f8ec647261bf5f7acdfc8232e40c93c58b62f82b85"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/OrganizationAuth/Models/OrganizationAuthRequestUpdate.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d102e53b523566ba249976709b75225a8b4e3b00ed3a1b4c7656a52f3a882cf7"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: When refactoring this method as a part of Bulk Device Approval \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/OrganizationAuth/UpdateOrganizationAuthRequestCommand.cs"},"region":{"startLine":52}}}],"partialFingerprints":{"codehealthFindingId/v1":"8d60509e719202a321a8f16b0edf6ecec6c8bd0fc8e6cf53183febaf73b73ec3"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] NewMasterPasswordHash"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/OrganizationFeatures/AccountRecovery/v2/RecoverAccountRequest.cs"},"region":{"startLine":12}}}],"partialFingerprints":{"codehealthFindingId/v1":"c9b5ad1d0dec0efb33154557657ff74efc34294552888f07baa369784f5094e8"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] Key"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/OrganizationFeatures/AccountRecovery/v2/RecoverAccountRequest.cs"},"region":{"startLine":14}}}],"partialFingerprints":{"codehealthFindingId/v1":"c9b5ad1d0dec0efb33154557657ff74efc34294552888f07baa369784f5094e8"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/OrganizationFeatures/Collections/CreateCollectionCommand.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"65396864987141ab284c16a9e62df4359965a1e5000a4bc9fb96ddba7825672b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/OrganizationFeatures/Collections/Interfaces/ICreateCollectionCommand.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"5796e5bf5511e2d94c71fadc5ddd2846415f5bd0c28ef1ff52496f576e185477"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/OrganizationFeatures/Collections/Interfaces/IUpdateCollectionCommand.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6d70536f646dceb2dc455bac3b082679925008de1180d8749455d7d5fb5e527b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/OrganizationFeatures/Collections/UpdateCollectionCommand.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"24ca279d26b396adbde87b0ab86aff97de4c302c619b917fbac3a28be9db9240"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/OrganizationFeatures/Groups/CreateGroupCommand.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d6775e86355e7db6ec165038a650d0cc899d3a8b4403127894f4823e7bc3802e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/OrganizationFeatures/Groups/Interfaces/ICreateGroupCommand.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d952aeb72a79f151fabdf9be19456ca5805baf6e4ba7ebf7cb2a3a7e2f932e99"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/OrganizationFeatures/Groups/Interfaces/IUpdateGroupCommand.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c0a1e2b576bfd627cc3c321088c0105755e5476bd43c47dcf33b9ce70ba46fb9"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/OrganizationFeatures/OrganizationApiKeys/GetOrganizationApiKeyQuery.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"bdc9f99ba130b3117c9a786acfc3b3f5ec4b48fe5edcf053eae666a32bac7b80"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/OrganizationFeatures/OrganizationConnections/ValidateBillingSyncKeyCommand.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"954895c63bdf2ce351cf231b9df110a07ba6f63a9300cccbc003da010bca0b1b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/OrganizationFeatures/OrganizationDomains/GetOrganizationDomainByIdOrganizationIdQuery.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ffa5340c85cae517d3368147e21db9122af35cedb58b11cba5d22f40ec2c7aa3"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/OrganizationFeatures/OrganizationDomains/VerifyOrganizationDomainCommand.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"b2fe602c3f04fd0a5ba55318bc69f5000dad2a70ad5fe5bb60924e6612f22c72"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/OrganizationFeatures/Organizations/CloudOrganizationSignUpCommand.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"96e3720791b697b3b7a8007962a9473eca3fdf4b69191c4635e78faf821471dc"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/OrganizationFeatures/Organizations/OrganizationUpdateKeysCommand.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"62a1b4dcba13e9e31973dc7fec79cb1f15851c8a4b0fce5bcf8cf028e3612a1e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/OrganizationFeatures/Organizations/ProviderClientOrganizationSignUpCommand.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"42e0ce9b9dff0ed70fac9cdcd06f0936a61b2791efc95d198d3a87527bf215b9"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/OrganizationFeatures/OrganizationUsers/AcceptOrgUserCommand.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"20203972fb24d98b558911c2adda9cf650ed0d6c0dec1497ee4d7ef2f00afa88"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/OrganizationFeatures/OrganizationUsers/ConfirmOrganizationUserCommand.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"de77b2ee08e2dbf22a9a6686060a23cc0cf742b3e871fc3524a197ae97d9f678"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/OrganizationFeatures/OrganizationUsers/Interfaces/IConfirmOrganizationUserCommand.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"3673616114479f8764d93b89645ac097efc00b8e52640da563dd2d281a1c979e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/OrganizationFeatures/OrganizationUsers/InviteUsers/InviteOrganizationUsersCommand.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"dd65cb6c352de5314ce7ae59ea41e68c3a42f684f15939e93d70c6fad1ee7fca"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/OrganizationFeatures/OrganizationUsers/InviteUsers/Models/CreateOrganizationUser.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"bfadf4907e79da8de32d543c11f1da834868a512ce55eb3926603b0637228672"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/OrganizationFeatures/OrganizationUsers/InviteUsers/Models/InviteOrganizationUsersResponse.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"7c94a5498f9a3d14da5e0b94ebaac2eaf24f7d1de3df255fecfbbc5c1b284b7a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/OrganizationFeatures/OrganizationUsers/InviteUsers/Models/InviteOrganizationUsersValidationRequest.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"1671f8c2ee0966cdb972aa7e6dc5a49dfbe80b8fadcc8ab7a4a1b9e51223017f"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/OrganizationFeatures/OrganizationUsers/InviteUsers/SendOrganizationInvitesCommand.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"4ad6f2b5fa30b3fc25aeee06f35968266677b0060822f64bd00d802113a1c67b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/OrganizationFeatures/OrganizationUsers/InviteUsers/Validation/PasswordManager/InviteUsersPasswordManagerValidator.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c16050ddc34ad8c55cf6597df0c60790904b1e1e12d80276c030346fd2e591ea"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/OrganizationFeatures/OrganizationUsers/InviteUsers/Validation/Payments/PaymentsSubscription.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e9045c925a8f1ad68e7392cf7ee541417d43e7f29d508aab065112650959ac2b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/OrganizationFeatures/OrganizationUsers/RemoveOrganizationUserCommand.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"7b0bb2ebd90b1c14edcf2a7f75ffea8d0e5e3d69e05718b5de8bcd5ce4df0147"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/OrganizationFeatures/OrganizationUsers/RestoreUser/v1/RestoreOrganizationUserCommand.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"4e407571d8bcdd3336f8983036dc5ec8e66545b90d87dd2aad3e388410ce17b9"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: https://bitwarden.atlassian.net/browse/PM-17012 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/OrganizationFeatures/OrganizationUsers/UpdateOrganizationUserCommand.cs"},"region":{"startLine":133}}}],"partialFingerprints":{"codehealthFindingId/v1":"b56c1290eb44429b4fa7968e56e285ce015aa7f5f76733d1ed299e796a6b9950"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // Todo: Cannot use PolicyRequirements until PM-34092 is complete \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/OrganizationFeatures/OrganizationUsers/UpdateUserResetPasswordEnrollment/UpdateUserResetPasswordEnrollmentCommand.cs"},"region":{"startLine":51}}}],"partialFingerprints":{"codehealthFindingId/v1":"7cab2ba42083788df8be8564e172528a0d1574f8235ca0db2a134c4f103ce173"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] PerformedBy"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/OrganizationFeatures/Policies/Models/PolicyUpdate.cs"},"region":{"startLine":20}}}],"partialFingerprints":{"codehealthFindingId/v1":"bb3086fe3d24a7881f432d65b1d61fe1c351c32dc27302aee8ecff97e31cfd7d"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: we should use the organizationAbility cache here, but it is currently flaky \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/OrganizationFeatures/Policies/PolicyEventHandlers/OrganizationDataOwnershipPolicyEventHandler.cs"},"region":{"startLine":47}}}],"partialFingerprints":{"codehealthFindingId/v1":"583dbaa30e2861d328ea99dcddbae7b5ed765f13136dbc399af39dcff1874513"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] DeleteAsync"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/Services/IGroupService.cs"},"region":{"startLine":8}}}],"partialFingerprints":{"codehealthFindingId/v1":"f09ee83e528dd148188b7eeddfc63a1f513df4fc28bcbdacf00295bb9fd8865b"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] DeleteAsync"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/Services/IGroupService.cs"},"region":{"startLine":10}}}],"partialFingerprints":{"codehealthFindingId/v1":"f09ee83e528dd148188b7eeddfc63a1f513df4fc28bcbdacf00295bb9fd8865b"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] DeleteAsync"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/Services/Implementations/GroupService.cs"},"region":{"startLine":30}}}],"partialFingerprints":{"codehealthFindingId/v1":"9f5bcfc4ae280342e681b5e3fe518a203feacd74ee43136a13f2a4a88b8da353"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] DeleteAsync"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/Services/Implementations/GroupService.cs"},"region":{"startLine":37}}}],"partialFingerprints":{"codehealthFindingId/v1":"9f5bcfc4ae280342e681b5e3fe518a203feacd74ee43136a13f2a4a88b8da353"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/Services/Implementations/OrganizationService.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"54a4630da1064c916d44b8d279e840cabf1b4017c04ee51b86604cc31f7fb042"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/Services/IOrganizationService.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"4adac4162952f54575960c95cbcd6dac660872c510c8e3fa6d934da808308974"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/Services/IProviderService.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"8327efe251b94076b32a2dd3b94f859a4c4721feb87ad0c459f11e8addda84fc"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/Services/NoopImplementations/NoopProviderService.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6fb5b727522c192261a42ef32410f57952b477d0156a4429401eca8e220be21b"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] CommandResult"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/AdminConsole/Utilities/Commands/CommandResult.cs"},"region":{"startLine":42}}}],"partialFingerprints":{"codehealthFindingId/v1":"cca6e78c150c1120a48522da20c38489fa9c4575ea4d3bbb7f4707dff939f97c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Entities/AuthRequest.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"893c3ba59da70feac75929b6f25ad964e2be6f7843b2c87cc462db3d015dd98c"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: PM-24252 - this should reference PasswordlessAuthSettings.UserRequestExpiration \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Entities/AuthRequest.cs"},"region":{"startLine":69}}}],"partialFingerprints":{"codehealthFindingId/v1":"72a2bf09e971254b86d83cef869b5d374b568a59e74905f509f8941ec92e3a88"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Entities/SsoConfig.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0d76552aca97ca7f47e2a197a1a35bfeb4eb168f809c24656ef22975535954a6"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Entities/SsoUser.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9cc0c0cc11edae5d64f53cdf43b87122845354c27d0f397abb0fdb5060492163"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Entities/WebAuthnCredential.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"474d1bf152998906b5e2336971b46835e863a3339e0005e4fe36d749d3cb0325"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] U2f"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Enums/TwoFactorProviderType.cs"},"region":{"startLine":9}}}],"partialFingerprints":{"codehealthFindingId/v1":"124e9eb941206cd7cae1948aef2f2151659b35576849acd9dedb26f9a5169c7a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Identity/CustomIdentityServiceCollectionExtensions.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"b7397fde9eccdc98f889aea65489b10b8fafc8f531f4fc825e986c58bb6fbe55"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Identity/LowerInvariantLookupNormalizer.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a86fc9953260dc631596c215e0ae51954fff9373f643f8f30dd74d2bb591ac66"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: This is unused \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Identity/Policies.cs"},"region":{"startLine":57}}}],"partialFingerprints":{"codehealthFindingId/v1":"f5671189d8ad07afd1af2c5d5435ff14fc42bbf7213bf35c767e4f68321ae85c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Identity/RoleStore.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"af4c63da162c1012d1b4df25af0ac8fe02e9471e0086e03bec07178b7bfffc90"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Identity/TokenProviders/AuthenticatorTokenProvider.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"1cb733fba892733aeb0db66eac2085f5d9a4501ea2e7bb838c5c045e11f53479"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Identity/TokenProviders/DuoUniversalTokenProvider.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6162bc8e50525f5fe419f50c6e8df0480be6427f18379e0f09ff0c10828850d7"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Ticket 31669 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Identity/TokenProviders/DuoUniversalTokenService.cs"},"region":{"startLine":205}}}],"partialFingerprints":{"codehealthFindingId/v1":"6bb74a5d5fda4e1e71fecc9996143ec165271931c6b970d3277e240f42527fb8"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Identity/TokenProviders/EmailTwoFactorTokenProvider.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"35716717e6cbc88e7d3d9ea306d49c8885ce7fb5c79ad9e5dc7467dd2f18af76"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Identity/TokenProviders/OrganizationDuoUniversalTokenProvider.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d04d010efb9e9d1c3cc3f2df84ecdae2d0805c88b96321678b822b5273d570ad"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Identity/TokenProviders/WebAuthnTokenProvider.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c5709609c05fb92a56896ca3a868541a391919da3c145fd364a1988245e6ba11"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Remove this when newtonsoft legacy converters are gone \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Identity/TokenProviders/WebAuthnTokenProvider.cs"},"region":{"startLine":64}}}],"partialFingerprints":{"codehealthFindingId/v1":"7df55188fdb8b27de0123efd14232ddf76ee566c0de38764a30e160b732f3b6a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Identity/TokenProviders/YubicoOtpTokenProvider.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"996bae7ac83dacc819d4090fe31def5a0405774a4c328392bdffca5ff4fdaad0"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Identity/UserStore.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"3fa1d56c94919e28c4ebf880e9953e678786e43a4479abf16c8e81231b34f7d6"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/IdentityServer/ConfigureOpenIdConnectDistributedOptions.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"adf227e06ce8a92fede03168e160fb0410290abb473afd96ad5dd9921cafdb9a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/IdentityServer/DistributedCacheCookieManager.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d242f641caf2eaefcf36b6e84c2ce6f1e52f7e32783e58cd92ba2bc7052e0f4f"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/IdentityServer/DistributedCacheTicketDataFormatter.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"185d65d00edacde92daeee0b0a6b76998cda1e46935e21a2d216078faf3f2e9a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/IdentityServer/DistributedCacheTicketStore.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"fab5f25c02ee54e862553226a8587fe28a4d2b3e58638d30aff6fab14611a6b7"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/IdentityServer/TokenRetrieval.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0cfe6fdd371bd72250dba930092ea81b249bfb87478cfeaad543058be5c4316d"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Models/Api/Request/Accounts/KeysRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"371d35f10cffa64d6657e137127f660373d860dc1967fe575994c44bb4d57eb8"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] PublicKey"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Models/Api/Request/Accounts/KeysRequestModel.cs"},"region":{"startLine":13}}}],"partialFingerprints":{"codehealthFindingId/v1":"b8417922dcf6cab809a0842e07b2126543d9304f5e63c3f71aaa010dcc76a2d0"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] EncryptedPrivateKey"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Models/Api/Request/Accounts/KeysRequestModel.cs"},"region":{"startLine":16}}}],"partialFingerprints":{"codehealthFindingId/v1":"b8417922dcf6cab809a0842e07b2126543d9304f5e63c3f71aaa010dcc76a2d0"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] ToUser"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Models/Api/Request/Accounts/KeysRequestModel.cs"},"region":{"startLine":21}}}],"partialFingerprints":{"codehealthFindingId/v1":"b8417922dcf6cab809a0842e07b2126543d9304f5e63c3f71aaa010dcc76a2d0"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO Remove property below, deprecated due to new AccountKeys property \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Models/Api/Request/Accounts/RegisterFinishRequestModel.cs"},"region":{"startLine":44}}}],"partialFingerprints":{"codehealthFindingId/v1":"c3ded677a9833204b48514731de673d6dcff0a30de66f9fdc2a51ba6f5e8eb8c"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO remove IsV2Encryption bool and simplify logic below after a compatibility period - once V2 accounts are supported \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Models/Api/Request/Accounts/RegisterFinishRequestModel.cs"},"region":{"startLine":74}}}],"partialFingerprints":{"codehealthFindingId/v1":"c3ded677a9833204b48514731de673d6dcff0a30de66f9fdc2a51ba6f5e8eb8c"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO clean up flow once old fields are deprecated \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Models/Api/Request/Accounts/RegisterFinishRequestModel.cs"},"region":{"startLine":106}}}],"partialFingerprints":{"codehealthFindingId/v1":"c3ded677a9833204b48514731de673d6dcff0a30de66f9fdc2a51ba6f5e8eb8c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Models/Api/Request/AuthRequest/AuthRequestCreateRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"b0081f91455b009734c3997a17f6f6f6a6a9f71f93e5f1da5c3f109232051286"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Models/Api/Request/AuthRequest/AuthRequestUpdateRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"f58ec33038560e54288f04ff06bc3d8afb875bcefaeb1ed576159d4aae4986bd"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Models/Api/Request/DeviceKeysUpdateRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c0baad32054d9c991fd8a67fe942f8694d0f5d221eca195109c0ca95f0f010af"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Models/Api/Response/Accounts/WebAuthnLoginAssertionOptionsResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"603f2674c99e4ae3b4c12d5a246744fe42e6febca84520a8529bb3564c8847f4"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Models/Api/Response/DeviceAuthRequestResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0fa3af8a03741bc555eefe432fe0bd1c05226bdfcda0b20430fe923b975cb857"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Models/Api/Response/ProtectedDeviceResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"17e83a58aa6906f9d403939a9973924085149a36e788eb30d6a6604b744a5d4b"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] HasMasterPassword"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Models/Api/Response/UserDecryptionOptions.cs"},"region":{"startLine":16}}}],"partialFingerprints":{"codehealthFindingId/v1":"cf41cebeac0dce5ee0bfc47ebe480fcbbf5c82d804e574af555ffc7913f914d7"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Models/Business/Tokenables/EmergencyAccessInviteTokenable.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0746360db3272ebd4e59c30dcc49536267d57f069b1093dde61598a9cb4d453d"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: PM-4317 - Ideally this would be internal and only visible to the test project. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Models/Business/Tokenables/OrgUserInviteTokenable.cs"},"region":{"startLine":9}}}],"partialFingerprints":{"codehealthFindingId/v1":"7ea128428070bd3e1476c968b2272e7267c1caae403e79a1833c58ca969d92d5"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Models/Business/Tokenables/RegistrationEmailVerificationTokenable.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"8a9bd2fd02944af552dc466e287bc225613dbac1267d07e6842a278af0302112"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Models/Business/Tokenables/SsoEmail2faSessionTokenable.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d75b93488d90432a87526408e283722c05005548ee06cca355d930661a5d78a6"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Models/Business/Tokenables/SsoTokenable.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9ac6fbce2d8ae8f67791fdfa77b2e7c5732b54cd249e44c3f41064f0b499a25e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Models/Business/Tokenables/TwoFactorAuthenticatorUserVerificationTokenable.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"b9bcdab2fb8bad142714a8abfa68050f6fcb0d763f9b30cb2387889d3ef794b5"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Models/Business/Tokenables/WebAuthnCredentialCreateOptionsTokenable.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0d82b78e25b47d92b83ce9ee99884b133235fb4bcc50e351bd1f2f155d1234db"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Models/Data/EmergencyAccessViewData.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0c65250108f72d3864df6254d607628b03365f8e6d7e17dd7ed8897f313e5c6d"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Models/Data/GrantItem.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ddf3ad24694dbff8d280ef50a2b5265af0523beb554a329a51701033a512a43f"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Models/Data/IGrant.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"8b924ba841f8e9df0f887fddbde6bb3f4df08720ee6d88021215c3fc2fb1c164"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Models/Data/OrganizationAdminAuthRequest.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"526071fd5b5f2e5d2f33a5c3c1d33a2f8329c628f5ba8f476f8e9cdfca2545e1"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Models/Data/SsoConfigurationData.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e721dc63ca8c8a17dde7d6ef4b1439d6be1beb93058f0b1a8dab8711562f9882"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] KeyConnectorEnabled"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Models/Data/SsoConfigurationData.cs"},"region":{"startLine":35}}}],"partialFingerprints":{"codehealthFindingId/v1":"61556da2155eebaf0d2cbc891a3b2bb3ee735023ee75ce02bb1a89e0f9106aac"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Models/Data/WebAuthnLoginRotateKeyData.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"186e0839476541850c3cc0214d724b0a4106c2503f26ed44f5516044a63cf967"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Models/Mail/EmergencyAccessAcceptedViewModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"39133d4b87b621e164241b44e296abbfa76e05ebdc6571d403062e892040e968"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Models/Mail/EmergencyAccessApprovedViewModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ca2ef0318500f59f2a5be6e9fd882bb1924638a49026e4a70820d3061e160367"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Models/Mail/EmergencyAccessConfirmedViewModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"1cd14854272da74dba54cc54f196b2cd51750ca8809102f39e394c07a9f7f536"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Models/Mail/EmergencyAccessInvitedViewModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6844c8d5e0f2f05f1aefee06134b0af031c89928ea23abeab43a9de21c050405"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Models/Mail/EmergencyAccessRecoveryTimedOutViewModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"7be75d94aa0a3e9ba52e1c14d42dd9ead02272046e4ec50ecf81822a5aedd2cd"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Models/Mail/EmergencyAccessRecoveryViewModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"f46469563aa1f32ea35d3899c255a82c4115286473cde94e79e7395f30e539ec"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Models/Mail/EmergencyAccessRejectedViewModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"77c467212c73463845fb10ff054a61ca5f6d7da0c98b73a96f368b40310ba0c2"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Models/Mail/FailedAuthAttemptModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"21ff3e9c23dbb20b409a9f9ec961ea14f08a9747db332452b944746fe414360a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Models/Mail/MasterPasswordHintViewModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"85db10bd614cff057bd0ef10ccc48a3649ef3ecbb700ef37b17257b365dc060a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Models/Mail/PasswordlessSignInModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"05d5003c9f4277661f4d926d0ddc4f0521f0cb2b0bfa63e7c23729987d5cdcc3"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Models/Mail/RecoverTwoFactorModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"dc1f4db05c14a7764548612554fc630106fdbee495e8002f2a4eb3183ad5fcf3"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Models/Mail/RegisterVerifyEmail.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6017146a7f6d61420b73f694155106d677ba32977378a370ccbf2b2c0eece08d"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Models/Mail/VerifyDeleteModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0c542d6876fea19e447446fc905cd126164338045ea69dda4fce6a3e14e494e9"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Models/Mail/VerifyEmailModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"8ba8e294eb2f0733da491b6bf3c04d98599bb15ea40801ef9dbced8ad2272d4e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Models/TwoFactorProvider.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"2081ee205bf5d4786a7891360147c1b2f9867f78dcf892439d032c055014acda"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Perhaps we want to evaluate moving this to DI as a keyed service singleton in .NET 8 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Repositories/Cosmos/GrantRepository.cs"},"region":{"startLine":33}}}],"partialFingerprints":{"codehealthFindingId/v1":"958742eb8b9754da7f589b4be4f494fbd4a2493c1ff4bb9914cce57bdb2aaeb4"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: When single org policy is turned on we should query for only a single organization from the current user \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Services/Implementations/AuthRequestService.cs"},"region":{"startLine":125}}}],"partialFingerprints":{"codehealthFindingId/v1":"000d25016d002021936a508e0668430b6e50efe86caa500bd7c6df54bda881ff"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Services/Implementations/SsoConfigService.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"773def213f9aa6af331069cb9e0261bab7d46b58dfd4add576b7aed5a42cf429"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/Services/Implementations/TwoFactorEmailService.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a17b05d8746020548120349155fcda3e9caf292734c53c2b6a061c28bade0f22"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/UserFeatures/EmergencyAccess/EmergencyAccessService.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"cbc62f2314b435a553430c0567afbc2a92c1ee2528a3a1a144790512776c3d53"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO PM-21687 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/UserFeatures/EmergencyAccess/EmergencyAccessService.cs"},"region":{"startLine":175}}}],"partialFingerprints":{"codehealthFindingId/v1":"71cb1d5a07328fcb24cc197fc67d3974f2ccde0cac457ea3ebda4510e0b8b943"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: remove with PM-31327 when we migrate to the command. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/UserFeatures/EmergencyAccess/EmergencyAccessService.cs"},"region":{"startLine":197}}}],"partialFingerprints":{"codehealthFindingId/v1":"71cb1d5a07328fcb24cc197fc67d3974f2ccde0cac457ea3ebda4510e0b8b943"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO PM-21687: rename this to something like InitiateRecoveryAsync, and something similar for Approve and Reject \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/UserFeatures/EmergencyAccess/EmergencyAccessService.cs"},"region":{"startLine":261}}}],"partialFingerprints":{"codehealthFindingId/v1":"71cb1d5a07328fcb24cc197fc67d3974f2ccde0cac457ea3ebda4510e0b8b943"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO PM-21687 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/UserFeatures/EmergencyAccess/EmergencyAccessService.cs"},"region":{"startLine":325}}}],"partialFingerprints":{"codehealthFindingId/v1":"71cb1d5a07328fcb24cc197fc67d3974f2ccde0cac457ea3ebda4510e0b8b943"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO PM-21687: rename this to something like InitiateRecoveryTakeoverAsync \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/UserFeatures/EmergencyAccess/EmergencyAccessService.cs"},"region":{"startLine":346}}}],"partialFingerprints":{"codehealthFindingId/v1":"71cb1d5a07328fcb24cc197fc67d3974f2ccde0cac457ea3ebda4510e0b8b943"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO PM-21687 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/UserFeatures/EmergencyAccess/EmergencyAccessService.cs"},"region":{"startLine":357}}}],"partialFingerprints":{"codehealthFindingId/v1":"71cb1d5a07328fcb24cc197fc67d3974f2ccde0cac457ea3ebda4510e0b8b943"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO PM-21687: move this to the user entity -\u003E User.GetNameOrEmail()? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/UserFeatures/EmergencyAccess/EmergencyAccessService.cs"},"region":{"startLine":524}}}],"partialFingerprints":{"codehealthFindingId/v1":"71cb1d5a07328fcb24cc197fc67d3974f2ccde0cac457ea3ebda4510e0b8b943"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO PM-21687: this IsValidRequest() checks the validity based on the granteeUser. There should be a complementary method for the grantorUser \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/UserFeatures/EmergencyAccess/EmergencyAccessService.cs"},"region":{"startLine":536}}}],"partialFingerprints":{"codehealthFindingId/v1":"71cb1d5a07328fcb24cc197fc67d3974f2ccde0cac457ea3ebda4510e0b8b943"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] PasswordAsync"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/UserFeatures/EmergencyAccess/EmergencyAccessService.cs"},"region":{"startLine":420}}}],"partialFingerprints":{"codehealthFindingId/v1":"0f87cdda2066467904c3474113996e69faa7d425d92556ea90d7c97f95399360"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] DeleteAsync"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/UserFeatures/EmergencyAccess/IEmergencyAccessService.cs"},"region":{"startLine":49}}}],"partialFingerprints":{"codehealthFindingId/v1":"f624d547570b5bb0ea18cc2e55765e8e88cc932ff04b5cbbd48a8c3256a38d81"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] PasswordAsync"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/UserFeatures/EmergencyAccess/IEmergencyAccessService.cs"},"region":{"startLine":134}}}],"partialFingerprints":{"codehealthFindingId/v1":"f624d547570b5bb0ea18cc2e55765e8e88cc932ff04b5cbbd48a8c3256a38d81"}},{"ruleId":"D17","level":"warning","message":{"text":"BarePragmaDisable: #pragma warning disable CA1822"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/UserFeatures/EmergencyAccess/Mail/EmergencyAccessRemoveGranteesMailView.cs"},"region":{"startLine":10}}}],"partialFingerprints":{"codehealthFindingId/v1":"1b7f5981cd5deaa375a0b26a3d631634b299a864e9fa65f4c0d816edde633e76"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: in future, consider how we can consolidate base registration logic to reduce code duplication \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/UserFeatures/Registration/Implementations/RegisterUserCommand.cs"},"region":{"startLine":304}}}],"partialFingerprints":{"codehealthFindingId/v1":"288f1a1be12e043d701b304e1b2ed6a86e717cc754c55acb499188abfde34ddd"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Remove Feature flag: PM-28221 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/UserFeatures/Registration/Implementations/RegisterUserCommand.cs"},"region":{"startLine":420}}}],"partialFingerprints":{"codehealthFindingId/v1":"288f1a1be12e043d701b304e1b2ed6a86e717cc754c55acb499188abfde34ddd"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] UpdateTdeOffboardingPasswordAsync"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/UserFeatures/TdeOffboardingPassword/Interfaces/ITdeOffboardingPasswordCommand.cs"},"region":{"startLine":13}}}],"partialFingerprints":{"codehealthFindingId/v1":"a4579dd4e41a45b54e6a209f70f94f3931662da80192ae4d61ef407f678d194b"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] UpdateTdeOffboardingPasswordAsync"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/UserFeatures/TdeOffboardingPassword/TdeOffboardingPasswordCommand.cs"},"region":{"startLine":47}}}],"partialFingerprints":{"codehealthFindingId/v1":"3d2a4cc21afc5f29ce7c21f3b3c4f0fa59378a3d5d61aef197d3e2ef6f223e5b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/UserFeatures/TwoFactorAuth/Implementations/TwoFactorIsEnabledQuery.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6b6044944e012da3c782cfd342175def21ebe5023cf0f94b9d3c681959110308"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: PM-21210: In practice we don\u0027t save disabled providers to the database, worth looking into. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/UserFeatures/TwoFactorAuth/Implementations/TwoFactorIsEnabledQuery.cs"},"region":{"startLine":142}}}],"partialFingerprints":{"codehealthFindingId/v1":"9f5cd5d7032cf3b42c9920c0424c6927861ca99830744a20c9eecc73dc0f6ddb"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO removed with https://bitwarden.atlassian.net/browse/PM-27327 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/UserFeatures/UserMasterPassword/Interfaces/ISetInitialMasterPasswordCommandV1.cs"},"region":{"startLine":15}}}],"partialFingerprints":{"codehealthFindingId/v1":"9441d3394c6cd309f7a8dfa4578aedd14b452704168b87cbf0ef2390db37b092"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] ISetInitialMasterPasswordCommandV1"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/UserFeatures/UserMasterPassword/Interfaces/ISetInitialMasterPasswordCommandV1.cs"},"region":{"startLine":16}}}],"partialFingerprints":{"codehealthFindingId/v1":"e12b27f71f0c16401b57d8e285a4a6878d2df7ca62cc9e23768f4851a163e702"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO (PM-35501): IUserRepository.SetMasterPassword does not persist \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Auth/UserFeatures/UserMasterPassword/MasterPasswordService.cs"},"region":{"startLine":123}}}],"partialFingerprints":{"codehealthFindingId/v1":"914f0085e0498363bdb67c6eee9bcd5a60e7045588be37ff5e77125ac8735bbd"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/BillingException.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"39f65854b4cd2d6fd12842e2d3cb52a0d14eb661de5ac18a62eec702e7382521"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Licenses/Extensions/LicenseExtensions.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"148eb4efa7e2555db6b58a778b095b4d6ba27d2d44d4be0e8a581187c0ba5c19"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Licenses/Services/Implementations/OrganizationLicenseClaimsFactory.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"fbcbbeff430e46102a7e962558875cc24685023b4d645b5904a4a6fa3fb59512"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Licenses/Services/Implementations/UserLicenseClaimsFactory.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"2870c3157d24f19c6625ca049446aba3b6cb3eca32012a1c87d55b157e8fcb8c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Models/BillingHistoryInfo.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"396c72e729433bc7e58a1b6c52c1cca17b6d0da489f68fe64df3e9e59bfaeef2"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Models/BillingInfo.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"b663bdbecdeff8ec9cdeb42dc78b89e10c912b5dd335d8feedd10565cc4e9a91"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Models/Business/UserLicense.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"11559c19efcaf369d64161caf962a2b562f36897b84f308c12a64ed192fad726"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Models/OffboardingSurveyResponse.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ab2cfbdfca1cdfd7eac585910cbceeb873a0dd83bb6fa69b0b93778e6b2b7bd7"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Models/PaymentMethod.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a0420b37103ac56f67445b6089d49c28cbd1c908577dd96501cb9c2d172b591b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Models/PaymentSource.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"32b330ccce91c8aa72997c14b32c0f1468c22bf3013464c5928527cabdb8744c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Models/StaticStore/Plan.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"46641f669e63643b4975e91f38304737f684330ff840f4f67671adb5a2161e86"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Move to the client \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Models/StaticStore/Plan.cs"},"region":{"startLine":14}}}],"partialFingerprints":{"codehealthFindingId/v1":"f55fcf860d2e84c1b77ca5304a2ac40d1a21c00aa128cbae6a21bd29af1397e6"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Move to the client \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Models/StaticStore/Plan.cs"},"region":{"startLine":16}}}],"partialFingerprints":{"codehealthFindingId/v1":"f55fcf860d2e84c1b77ca5304a2ac40d1a21c00aa128cbae6a21bd29af1397e6"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Remove \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Models/StaticStore/Plan.cs"},"region":{"startLine":18}}}],"partialFingerprints":{"codehealthFindingId/v1":"f55fcf860d2e84c1b77ca5304a2ac40d1a21c00aa128cbae6a21bd29af1397e6"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Move to the client \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Models/StaticStore/Plan.cs"},"region":{"startLine":39}}}],"partialFingerprints":{"codehealthFindingId/v1":"f55fcf860d2e84c1b77ca5304a2ac40d1a21c00aa128cbae6a21bd29af1397e6"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Remove \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Models/StaticStore/Plan.cs"},"region":{"startLine":41}}}],"partialFingerprints":{"codehealthFindingId/v1":"f55fcf860d2e84c1b77ca5304a2ac40d1a21c00aa128cbae6a21bd29af1397e6"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Unused, remove \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Models/StaticStore/Plan.cs"},"region":{"startLine":61}}}],"partialFingerprints":{"codehealthFindingId/v1":"f55fcf860d2e84c1b77ca5304a2ac40d1a21c00aa128cbae6a21bd29af1397e6"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Remove, SM is never packaged \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Models/StaticStore/Plan.cs"},"region":{"startLine":67}}}],"partialFingerprints":{"codehealthFindingId/v1":"f55fcf860d2e84c1b77ca5304a2ac40d1a21c00aa128cbae6a21bd29af1397e6"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Remove, SM is never packaged \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Models/StaticStore/Plan.cs"},"region":{"startLine":70}}}],"partialFingerprints":{"codehealthFindingId/v1":"f55fcf860d2e84c1b77ca5304a2ac40d1a21c00aa128cbae6a21bd29af1397e6"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Unused, remove \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Models/StaticStore/Plan.cs"},"region":{"startLine":73}}}],"partialFingerprints":{"codehealthFindingId/v1":"f55fcf860d2e84c1b77ca5304a2ac40d1a21c00aa128cbae6a21bd29af1397e6"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Remove, never set. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Models/StaticStore/Plan.cs"},"region":{"startLine":93}}}],"partialFingerprints":{"codehealthFindingId/v1":"f55fcf860d2e84c1b77ca5304a2ac40d1a21c00aa128cbae6a21bd29af1397e6"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Remove premium access as it\u0027s deprecated \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Models/StaticStore/Plan.cs"},"region":{"startLine":96}}}],"partialFingerprints":{"codehealthFindingId/v1":"f55fcf860d2e84c1b77ca5304a2ac40d1a21c00aa128cbae6a21bd29af1397e6"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Remove \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Models/StaticStore/Plan.cs"},"region":{"startLine":106}}}],"partialFingerprints":{"codehealthFindingId/v1":"f55fcf860d2e84c1b77ca5304a2ac40d1a21c00aa128cbae6a21bd29af1397e6"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] StripeProviderPortalSeatPlanId"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Models/StaticStore/Plan.cs"},"region":{"startLine":86}}}],"partialFingerprints":{"codehealthFindingId/v1":"36d534732ea7b4999e769531c499c6e6c912bafa5fdcef39e2bd4ae2a6f5a92d"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Models/StaticStore/SponsoredPlan.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"7019d9a51e2cb1ed678faf05905901484926b5e84d11f62d48e7b66c8d663a10"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: call ReferenceEventService - see AC-1481 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Organizations/Commands/AddSecretsManagerSubscriptionCommand.cs"},"region":{"startLine":60}}}],"partialFingerprints":{"codehealthFindingId/v1":"864c2ce8b7f5a626519dcd7b166175b504a9bdacc2c0b7c7cd9f042127523932"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Organizations/Models/OrganizationLicense.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e97d356c7ed3b7ba1dbbfb2f8c42a077a962200b37ac0d188efe6ae7ae154836"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Remember to change the constant \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Organizations/Models/OrganizationLicense.cs"},"region":{"startLine":61}}}],"partialFingerprints":{"codehealthFindingId/v1":"6afefe2444ec38c585762e715e04024a199d8e0420dfcc733a75bae07b9193e9"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Remove when last of the legacy providers has been migrated. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Organizations/Models/OrganizationSale.cs"},"region":{"startLine":66}}}],"partialFingerprints":{"codehealthFindingId/v1":"0a8f14f3b5146e771eb93f63fad81dc65863d5daa5b6735eff75032370085ef2"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Organizations/Models/SponsorOrganizationSubscriptionUpdate.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"4ba24b8ef71233eb6ff34a9555063d798333fb0c48219f84bbf746f0b97a96c0"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Organizations/Queries/GetCloudOrganizationLicenseQuery.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"38277f713ab01e9035f5eb9b07c0c91263cb10fd6214403997887067307dc85a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Organizations/Queries/GetSelfHostedOrganizationLicenseQuery.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c0ea33927654a20ebc295a3f201d59dd8052b9c05382b5559af03ccbaeaa0046"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Rename with Organization focus. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Pricing/IPricingClient.cs"},"region":{"startLine":12}}}],"partialFingerprints":{"codehealthFindingId/v1":"566c05fedd260e5c20c0ef1e55d3b650a917b7bdde47ff2116e95b6ef0bf77bd"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Rename with Organization focus. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Pricing/IPricingClient.cs"},"region":{"startLine":21}}}],"partialFingerprints":{"codehealthFindingId/v1":"566c05fedd260e5c20c0ef1e55d3b650a917b7bdde47ff2116e95b6ef0bf77bd"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Rename with Organization focus. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Pricing/IPricingClient.cs"},"region":{"startLine":31}}}],"partialFingerprints":{"codehealthFindingId/v1":"566c05fedd260e5c20c0ef1e55d3b650a917b7bdde47ff2116e95b6ef0bf77bd"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Flesh out \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Pricing/Organizations/PlanAdapter.cs"},"region":{"startLine":76}}}],"partialFingerprints":{"codehealthFindingId/v1":"eef3651cc83bbe1ecf9c8f89f2ee3910d60624c1e6e7331fbcafbd35a9f444af"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Flesh out \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Pricing/Organizations/PlanAdapter.cs"},"region":{"startLine":87}}}],"partialFingerprints":{"codehealthFindingId/v1":"eef3651cc83bbe1ecf9c8f89f2ee3910d60624c1e6e7331fbcafbd35a9f444af"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Providers/Services/IProviderBillingService.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"202ed01649a616a71fa16e3c476922637a5b32e8f39df65624eca40938a512df"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Services/Implementations/LicensingService.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"12b8cd2ab0306e402080c5771344df81b01ef319d8831df63ffc9a7a89173301"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Services/Implementations/StripeAdapter.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"7d47ceef5f848144fce4dc4abd5ab9335d3aae17b4a8dc177ba8b955dcc32cbe"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Services/Implementations/StripePaymentService.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6b5455cf4cd83826aeb6b087a0048e2b3977ca28d22d38a27f5c909499efb84b"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Remove with FF: pm-32581-use-update-organization-subscription-command -\u003E Updated SetUpSponsorshipCommand \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Services/Implementations/StripePaymentService.cs"},"region":{"startLine":58}}}],"partialFingerprints":{"codehealthFindingId/v1":"68ce51441221800d7ef409dfe1f6b0970e610207822f1dd8bad814709d219706"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Remove with FF: pm-32581-use-update-organization-subscription-command -\u003E Updated SetUpSponsorshipCommand \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Services/Implementations/StripePaymentService.cs"},"region":{"startLine":82}}}],"partialFingerprints":{"codehealthFindingId/v1":"68ce51441221800d7ef409dfe1f6b0970e610207822f1dd8bad814709d219706"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Remove -\u003E Unused \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Services/Implementations/StripePaymentService.cs"},"region":{"startLine":86}}}],"partialFingerprints":{"codehealthFindingId/v1":"68ce51441221800d7ef409dfe1f6b0970e610207822f1dd8bad814709d219706"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Remove with FF: pm-32581-use-update-organization-subscription-command -\u003E Updated UpgradeOrganizationPlanCommand \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Services/Implementations/StripePaymentService.cs"},"region":{"startLine":241}}}],"partialFingerprints":{"codehealthFindingId/v1":"68ce51441221800d7ef409dfe1f6b0970e610207822f1dd8bad814709d219706"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Remove with FF: pm-32581-use-update-organization-subscription-command -\u003E Updated OrganizationService.AdjustSeatsAsync \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Services/Implementations/StripePaymentService.cs"},"region":{"startLine":269}}}],"partialFingerprints":{"codehealthFindingId/v1":"68ce51441221800d7ef409dfe1f6b0970e610207822f1dd8bad814709d219706"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Remove with FF: pm-32581-use-update-organization-subscription-command -\u003E Updated UpdateSecretsManagerSubscriptionCommand \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Services/Implementations/StripePaymentService.cs"},"region":{"startLine":273}}}],"partialFingerprints":{"codehealthFindingId/v1":"68ce51441221800d7ef409dfe1f6b0970e610207822f1dd8bad814709d219706"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Remove with FF: pm-32581-use-update-organization-subscription-command -\u003E Updated UpdateSecretsManagerSubscriptionCommand \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Services/Implementations/StripePaymentService.cs"},"region":{"startLine":279}}}],"partialFingerprints":{"codehealthFindingId/v1":"68ce51441221800d7ef409dfe1f6b0970e610207822f1dd8bad814709d219706"}},{"ruleId":"D17","level":"warning","message":{"text":"HackComment: // HACK: Workaround for customer balance credit \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Services/Implementations/StripePaymentService.cs"},"region":{"startLine":482}}}],"partialFingerprints":{"codehealthFindingId/v1":"b491b69a16ec47c4f797ad68f3c2757775153710d587c67f251e88122f9d3bda"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (Braintree.Exceptions.NotFoundException) \u2014 narrow/filtered/commented, treated as intentional"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Services/Implementations/StripePaymentService.cs"},"region":{"startLine":907}}}],"partialFingerprints":{"codehealthFindingId/v1":"75be8abdf691d2e251ce1ceae0927623bd27257ea5b57bae3db3cca2d33bda18"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (StripeException) \u2014 narrow/filtered/commented, treated as intentional"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Services/Implementations/StripePaymentService.cs"},"region":{"startLine":948}}}],"partialFingerprints":{"codehealthFindingId/v1":"75be8abdf691d2e251ce1ceae0927623bd27257ea5b57bae3db3cca2d33bda18"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Services/Implementations/SubscriberService.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"609274448c8c06d2f9cd599d9a39cd6b259b254441d58f7247fdf06c7888f171"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Services/IStripeAdapter.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"1a1521436d81fb3a03b1b77186ac3b57b15cbf6cc1df4dac2ed33efb2913b3b7"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Services/IStripePaymentService.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"b447d51b064eff56991f6f0419dfe43351abb6a4ed3886fc71bba389a5b412ca"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Services/ISubscriberService.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c3430db6876cec081318ba69b25c3c6f9da1c91ce11ff6c483435e6157bbc08c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Tax/Models/TaxIdType.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"1be0e0d83b5e0f6eef13b9dc12e96d74b32827b50f103cf8970b6a4e0302b775"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Tax/Requests/PreviewIndividualInvoiceRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"f669b537c86bca94e52d5d0936d6979f2b29a743df83c8ff1bd3561b1e124a5f"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Tax/Requests/PreviewOrganizationInvoiceRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"b2f9140be6c1201fe3c3b695f13904f129cd9d9769b04728502d6a5a1d3bf81a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Tax/Requests/TaxInformationRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"f9499400c2a7df12d89e728b47b08be950e824c7f9afbea46a863343c4e220fe"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Tax/Services/Implementations/TaxService.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"715295cd82a3fd6bda4d50d340cf5aad3e38c209cef6a15e3f3118f0e591f2e3"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Billing/Utilities.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9fcd2486c6fe1bb9ce2c485e955327505c0b778b843f1c8e9a1bfdb512a66fd2"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Constants.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"5e3ed415f2be2caa27e597e66c882670d972a4c32ac495f1b00eae7f4c411eb9"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: PM-34798 Update with actual version once the feature is implemented \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Constants.cs"},"region":{"startLine":37}}}],"partialFingerprints":{"codehealthFindingId/v1":"d45f87c099cfc60f059c982f5ffe030e0fab79dc4f0e37e67cbac2b4d085fd1d"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Context/CurrentContext.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"504ab01709543fd663e970cab52582b7e457c4a8835db8a0f376a3c2edf3caa6"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] EditAnyCollection"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Context/ICurrentContext.cs"},"region":{"startLine":50}}}],"partialFingerprints":{"codehealthFindingId/v1":"acb6c46d52329d62e158d9b9aadf9ea4b9a8d38d64be0423fc3160953b60b8b8"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] ViewAllCollections"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Context/ICurrentContext.cs"},"region":{"startLine":52}}}],"partialFingerprints":{"codehealthFindingId/v1":"acb6c46d52329d62e158d9b9aadf9ea4b9a8d38d64be0423fc3160953b60b8b8"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] Organization_CollectionManagement_Updated"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Dirt/Enums/EventType.cs"},"region":{"startLine":94}}}],"partialFingerprints":{"codehealthFindingId/v1":"b3bcf67e3e2f0d9deb765781d3b270277f1c7d4b2c8eb6561e584f301618d798"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Dirt/Models/Data/EventMessage.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"3dfd0125df659c920183c383f51e6984b8d4f178f5ab1a7336e5bb937255d69d"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Dirt/Models/Data/EventTableEntity.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"1401ed014136b46cdd528cf86b0f3fa42e6cbe6d26ca82edb136d44716d8797a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Dirt/Models/Data/IEvent.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9a3d1ad8b6515abb366e7a8b239aba221c0658e0f262b47dc19b032154fc4a6b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Dirt/Models/Data/MemberAccessCipherDetails.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"f87b680788a9779a5d602f985cd88b36c446de50aac41b69011a12d23287a60d"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Dirt/Models/Data/MemberAccessReportDetail.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"7d0d3a34924ba252ac2877ecefa1f9b1c36a025fff4bd93c173ac0c839074ff9"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Dirt/Models/Data/OrganizationMemberBaseDetail.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c4d70db515d3175808e9f302f394171e304b00aa00a7124eeabd8ad76d9db16f"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Dirt/Models/Data/RiskInsightsReportDetail.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0fe4f5b9c31aafa96eae353477b4ddcea2c2b3ed5bd6f2d5d9fa777fb312f4f5"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Dirt/Reports/ReportFeatures/MemberAccessReportQuery.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"bdf29243b02949a220bf3303e7d99fb8142ee7bcb262f09841b6a21e17529ae9"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Dirt/Reports/ReportFeatures/Requests/AddPasswordHealthReportApplicationRequest.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"2764a96cc0a19489022ff6a7bf6de933ddf2c309d40c1899f3e1c659f91a9b58"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Dirt/Reports/ReportFeatures/Requests/DropOrganizationReportRequest.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"b9921ce814b7e8b86b9319f468cfa22843d23215bd61fd6dd7c95cbfa4c2da3b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Dirt/Reports/ReportFeatures/Requests/DropPasswordHealthReportApplicationRequest.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6a93e2df7fc35eb6db56c8b3ed66709a9d415ad8916f3cc618cf5ce81922fa2e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Dirt/Reports/ReportFeatures/Requests/GetOrganizationReportSummaryDataByDateRangeRequest.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"7f496b4634fbd307308cd45c432fca800bcee617eaf1d71d99d7508e24659c83"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Dirt/Reports/ReportFeatures/Requests/UpdateOrganizationReportRequest.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c41ebc863a854cce94fafc6a1800c363eb8e6ea89a37956d7ce895c726dd407e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Dirt/Services/IEventService.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"1a4131509f957002b67c62020829ef63e69f976c895f57b8341b78120fa8a7f1"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Dirt/Services/Implementations/EventService.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a459e85770bd94f917df17eaceb653a7d64c1db60ef3c2302c6bfe6a0c3727d2"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] Rsa2048_OaepSha256_B64"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Enums/EncryptionType.cs"},"region":{"startLine":14}}}],"partialFingerprints":{"codehealthFindingId/v1":"9198adb41574478d01b0ccda92fbde94b2a2ec5b957c9739001e5ff162a4eb60"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] Rsa2048_OaepSha256_HmacSha256_B64"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Enums/EncryptionType.cs"},"region":{"startLine":17}}}],"partialFingerprints":{"codehealthFindingId/v1":"9198adb41574478d01b0ccda92fbde94b2a2ec5b957c9739001e5ff162a4eb60"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] Rsa2048_OaepSha1_HmacSha256_B64"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Enums/EncryptionType.cs"},"region":{"startLine":19}}}],"partialFingerprints":{"codehealthFindingId/v1":"9198adb41574478d01b0ccda92fbde94b2a2ec5b957c9739001e5ff162a4eb60"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (ServiceBusException) when (\u2026) \u2014 narrow/filtered/commented, treated as intentional"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/HostedServices/ApplicationCacheHostedService.cs"},"region":{"startLine":61}}}],"partialFingerprints":{"codehealthFindingId/v1":"cfac3ac837097196b875ac3f27d42fa464827360421c2db0fccae70127067643"}},{"ruleId":"D17","level":"error","message":{"text":"EmptyCatchBlock: empty catch block"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/HostedServices/ApplicationCacheHostedService.cs"},"region":{"startLine":89}}}],"partialFingerprints":{"codehealthFindingId/v1":"cfb4184d11c185b488e9a25e2552e5144228056a2b383e6c287812ba87e9e502"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: https://bitwarden.atlassian.net/browse/PM-23751 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/KeyManagement/Models/Api/Request/AccountKeysRequestModel.cs"},"region":{"startLine":18}}}],"partialFingerprints":{"codehealthFindingId/v1":"e63024292c0ca58580d32962b46b179e552843aef7673ac48f3969cadf16b07d"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/KeyManagement/UserKey/Implementations/RotateUserAccountKeysCommand.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"54c005348ba829a8bc0210730defb9fdb1476dbdc761ff1f0f3762ef08888ca5"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/KeyManagement/UserKey/IRotateUserAccountKeysCommand.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"159314a38ac43bec4dd6b2ad8d9a2e445469e8a4dffcacf638f663762d67b815"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Models/Api/Request/OrganizationLicenses/SelfHostedOrganizationLicenseRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"08824268175692c75201b045d5346f0506d561b72383536ca89b189bb811159e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Models/Api/Request/OrganizationSponsorships/OrganizationSponsorshipRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"88c2c445457f52bcd9fea348b3aee56edc0b37dbe6280b7cf34b7f81a797b571"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Models/Api/Request/OrganizationSponsorships/OrganizationSponsorshipSyncRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"dc5c29d298157b6a46034fd1aebeba7c390d020a42f7123b039c17ed798a3ef6"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Models/Api/Request/PushDeviceRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"182221074863beadcba9bf3a7d50da9bcb4037874c880b05626452518cd426d1"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Models/Api/Request/PushRegistrationRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"217ac485d98f6d97f42e7f890a735962fb7cf7e44f378aaf9d61806bb4c09699"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Models/Api/Request/PushUpdateRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9e8c74c0d119b96f14d5f980ad82974687d8224db7e9bde6d6636ef212611f0e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Models/Api/Response/Duo/DuoResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e75f51ac1ba1aeab1a56b2ef8755f54b3fb63fb04e4cecf3447155ea2604df5b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Models/Api/Response/ErrorResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d70fe3341339fc89fbc18d7a66b72783f8d9b32c68b93c5fe12f5b0ca081c0bc"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Models/Api/Response/OrganizationSponsorships/OrganizationSponsorshipResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6ba1f408c2fcc3f27ccd4022bd639160d2dd51c940d8173149a0b5cffdafc879"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Models/Api/Response/OrganizationSponsorships/OrganizationSponsorshipSyncResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"261721b0eeddcde46e797e8e81fe0f8ca4f8df29473c482d1948c0d48b85942a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Models/Business/CompleteSubscriptionUpdate.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e9305037a6185bef867611dce3aba7175c585a6c14ad4876c7ea5572d241fbc4"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Models/Business/OrganizationSignup.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0b6e1647b18f1ddab90f59d64683b781e0c1464226b08ed01f57052044a7649e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Models/Business/OrganizationUpgrade.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"122e68e39c5d61c23a9bbfad57c0f189d0f4d587439bec8c37314a39c44b7c85"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Models/Business/SubscriptionUpdate.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"77f27ecc1f39a6938402b5e61314827051c2437c5eb16c77b69cf265452427e2"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Models/Business/TaxInfo.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"2e996fb96254021dcfb8a758cd08d88acc76e53eb647096ef93a67ac198bb4aa"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Models/Business/Tokenables/OrganizationSponsorshipOfferTokenable.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"aa4456fceed493e072be5b4b8fe58e9a4bdba1b89190d878b8d20ff60ecb4b51"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Models/Data/InstallationDeviceEntity.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"15ae843218eb134c04833f47803be152f00cb75a05fe2c87479207b9a1e0d3f9"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Models/Data/Organizations/OrganizationConnections/OrganizationConnectionData.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"7fe43f72c472970ef53fdb34087add7fe14b45ce827d2cbee00fb8510fbb3bf7"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Models/Data/Organizations/OrganizationSponsorships/OrganizationSponsorshipData.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"16d39ab17f711caa54b5a8b9789210add60e767e2f417561abae2d00844ce4ac"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Models/Data/Organizations/OrganizationSponsorships/OrganizationSponsorshipSyncData.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"bc2473237c5eadc9dc70def923b34f40c366916b3515089ae56891f12b5a9b0e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Models/Data/Organizations/VerifiedOrganizationDomainSsoDetail.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"754590ff388f0a3826ce9a3d04652fe3e934b5bef40fb38822d60c187db48135"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Models/Data/PagedResult.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"4818492b967dd5e409f5ac6f4347b28a928eec9a4c06bcb7aeb291d8201e41a5"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Models/Data/PageOptions.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"2d051480680ba1660b8b7df90e6cc2597dbd16ad8e71f822add8bef53a6012b9"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Models/IExternal.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"930c515a3fa682e3a877d548eb8655ad827f468861383e30d4787fc32a86ae12"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Models/Mail/BaseMailModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"eaf216e535d1d5e0777854cb0909ac3b5567e11bb2154830ebb7d9d1f829064f"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Models/Mail/BaseTitleContactUsMailModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c05bc947b6ae87e7ee8d0f8a4afac79118cc5f367e54de74d525486c855a098a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Models/Mail/Billing/BusinessUnitConversionInviteModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"2da5e79657b1fbf1a29e13aaa994c1e890e53ea7181344fc830d8d7357c62487"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Models/Mail/ChangeEmailExistsViewModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"340ecc94776f95819e8b5ce927e69d60a454acb6f8ccde43a040b42479c086ce"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Models/Mail/ClaimedDomainUserNotificationViewModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"04a7296c9f48d16eff4109f2a123609dbf16a9d0c375312f365aabc8cf78f07c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Models/Mail/FamiliesForEnterprise/FamiliesForEnterpriseOfferViewModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"09a9945f2594ce74d5c58cbc76814abba3f892179cd61641e546c92c3bcc9edf"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Models/Mail/FamiliesForEnterprise/FamiliesForEnterpriseRemoveOfferViewModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"1a8a6b5528f8cefc9ae5537b33c555c86261796e8d0748f575f1a0e6bd3b7967"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Models/Mail/InvoiceUpcomingViewModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"b58781793ccd2d3c41ddfd62abc85cc62bc4280a254ee48c60d54d3df33e184b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Models/Mail/LicenseExpiredViewModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"3b029edf8359413c18bafdb31302de651a3086c466a1a4f151157280d5126d3e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Models/Mail/MailMessage.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"8147a14ef4473e01d1dd34b286fa9f3d3f7ef9fa6a7d63b02bedc989356812e9"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Models/Mail/MailQueueMessage.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"1f7515b4893e2941105a37bc15eeef9b0aad7ff9a23fd284d91a5f3c5868c932"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Models/Mail/NewDeviceLoggedInModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"4d91722a0bc53ff05fd3b384c7f6289096b1f6771980a55d90b920141cddc211"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Models/Mail/OrganizationDomainUnverifiedViewModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"4337743201f6fe9fd206941b89ae1620bb73b74d18f74c9046261e0339702632"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Models/Mail/OrganizationInitiateDeleteModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"1f85cc338370738e0490dd448139ff188f5048a5cff410c44d21d500aba1d803"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Models/Mail/OrganizationInvitesInfo.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0bd73a49e0a75ef6f2bb3d0b351d9f6c5e9fc63cbc3a844ffc63a0469469374a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Models/Mail/OrganizationSeatsAutoscaledViewModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"71bdb26744e648e9c9606845a0e4b6d30365883f5340a4e1a9e034be85ad4f98"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Models/Mail/OrganizationSeatsMaxReachedViewModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"1bccaa5a0cbc76b1df63fc5866df962bcaa4936e116d0f153196306b92f6968e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Models/Mail/OrganizationServiceAccountsMaxReachedViewModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"723fbd3ca2bfed98f614d4024e4756b98319b910f9f0b399214aaa78adc8dc9f"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Models/Mail/OrganizationUserAcceptedViewModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c854cd139cd67e7fac669e138c348509308e22c99be06aecdf76cb0645f3bf5c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Models/Mail/OrganizationUserConfirmedViewModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a923f61e5e9515b33af677c149d72b85cf9df2cc570474891f7bc984823513c9"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Models/Mail/OrganizationUserInvitedViewModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0c57ec6395462decd6c9f3ddf3ef9d171b61ddead3f7bc257f96ba3e42b09876"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Models/Mail/OrganizationUserRemovedForPolicySingleOrgViewModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"600ab28a1bcbac8016167623dd61c24fd1c939061653782d243934dda94d2470"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Models/Mail/OrganizationUserRemovedForPolicyTwoStepViewModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"3f148fa87736a68870cbbf58ee05b659f48740faa8a657729f5f4081908b2c55"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Models/Mail/OrganizationUserRevokedForPolicySingleOrgViewModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"36b81ece66fe06ec52bdfaf260498eb9c831b6dc8a54a8ba3447bccb520fb617"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Models/Mail/OrganizationUserRevokedForPolicyTwoFactorViewModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d59681ac046a17b00ebda428b67fb11d83fb8a1f63c4e07247f451889d481b7f"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Models/Mail/Provider/ProviderInitiateDeleteModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0cd684269c4f6371ecedc66ac78499d6a13102e4d1d8c5ea36097b9d20b72477"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Models/Mail/Provider/ProviderSetupInviteViewModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"fc03a55658552df1c7210866aa030d13b9899f338101054d21c6d12426b270cf"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Models/Mail/Provider/ProviderUpdatePaymentMethodViewModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"51d1292802629497814e4ae8d1eb420ac904da5059206f12308ab869f8a4df70"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Models/Mail/Provider/ProviderUserConfirmedViewModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ed54a4b6191294bfb372b0a49e7b269938bf77422f87f5db7474ad77e730affa"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Models/Mail/Provider/ProviderUserInvitedViewModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"afbc85e3f962c45a1f0c6064a4be29f92ff2122c4a4a4521d53ed694aef9a58e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Models/Mail/Provider/ProviderUserRemovedViewModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"7be46e443c234fd8be13921083874cad0d90da6a183c7f0885f39091ab63ea71"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Models/Mail/SecurityTaskNotificationViewModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"18831099b2c22cbc8e410fc9c672ed85dd54371589ea7d70595bd085ab07a5de"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Models/Mail/TwoFactorEmailTokenViewModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"44f4183d47ecb267f1a32faa2112133c00d10d5bd39dd1ac7526e0aceee8cef1"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Models/Mail/UpdateTempPasswordViewModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"056aa8acc44123bc73d830b493820c22e43982dc1acb034c80a9d15372d81bef"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Models/Mail/UserVerificationEmailTokenViewModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"f84edd76bc20c220d25780b5dab8611bd3525ded6e5956785aa1f48455e75ab4"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Models/OrganizationConnectionConfigs/BillingSyncConfig.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0a97d285152b20e7f96064f44b4e77b341c63eaf8cb3693acdfae0465cafea0c"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: move to OrganizationSubscriptionServiceCollectionExtensions when OrganizationUser methods are moved out of \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/OrganizationFeatures/OrganizationServiceCollectionExtensions.cs"},"region":{"startLine":256}}}],"partialFingerprints":{"codehealthFindingId/v1":"9a08542b2528edce168eddbf7452d88a18794eb132ff7c6a630b5f226bcf5b5b"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: OrganizationService - see PM-1880 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/OrganizationFeatures/OrganizationServiceCollectionExtensions.cs"},"region":{"startLine":257}}}],"partialFingerprints":{"codehealthFindingId/v1":"9a08542b2528edce168eddbf7452d88a18794eb132ff7c6a630b5f226bcf5b5b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/OrganizationFeatures/OrganizationSponsorships/FamiliesForEnterprise/CancelSponsorshipCommand.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"4d8e7e6db1bbb284201d745c7b379a21f618e26822a23ecaf8d77abf0963cc6b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/OrganizationFeatures/OrganizationSponsorships/FamiliesForEnterprise/Cloud/SendSponsorshipOfferCommand.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"baebe07ac3f10bcdbca3bf3f6ef3d4f11e3970f84bf37fefde25aebe23047f8f"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/OrganizationFeatures/OrganizationSponsorships/FamiliesForEnterprise/Cloud/ValidateRedemptionTokenCommand.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"fc3caefe7224ae9c9d2110a1bafcd11954cbfbfa0d7aa7a189445bff2102ddb3"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/OrganizationFeatures/OrganizationSponsorships/FamiliesForEnterprise/Cloud/ValidateSponsorshipCommand.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"f94398dc476945b5a96d3146459b4d110519cc43b96c1ccf0127583f08152349"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/OrganizationFeatures/OrganizationSponsorships/FamiliesForEnterprise/SelfHosted/SelfHostedSyncSponsorshipsCommand.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"19e4128553400bdbc139695cc8e7e525db255aed120afd661f7dd286fade9a86"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/OrganizationFeatures/OrganizationSubscriptions/UpdateSecretsManagerSubscriptionCommand.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"418e362bb1cba0cfc7b45c88d53feb8fe056b5ad120daf547c8ded1df3d4d302"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: call ReferenceEventService - see AC-1481 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/OrganizationFeatures/OrganizationSubscriptions/UpdateSecretsManagerSubscriptionCommand.cs"},"region":{"startLine":140}}}],"partialFingerprints":{"codehealthFindingId/v1":"cfe3f7537d7f5f2f708c41c944805c8e903633b2fa411e37bc29ce50a277c833"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: call ReferenceEventService - see AC-1481 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/OrganizationFeatures/OrganizationSubscriptions/UpdateSecretsManagerSubscriptionCommand.cs"},"region":{"startLine":148}}}],"partialFingerprints":{"codehealthFindingId/v1":"cfe3f7537d7f5f2f708c41c944805c8e903633b2fa411e37bc29ce50a277c833"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: This is a temporary duplication of OrganizationService.ReplaceAndUpdateCache to avoid a circular dependency. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/OrganizationFeatures/OrganizationSubscriptions/UpdateSecretsManagerSubscriptionCommand.cs"},"region":{"startLine":440}}}],"partialFingerprints":{"codehealthFindingId/v1":"cfe3f7537d7f5f2f708c41c944805c8e903633b2fa411e37bc29ce50a277c833"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: This should no longer be necessary when user-related methods are extracted from OrganizationService: see PM-1880 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/OrganizationFeatures/OrganizationSubscriptions/UpdateSecretsManagerSubscriptionCommand.cs"},"region":{"startLine":441}}}],"partialFingerprints":{"codehealthFindingId/v1":"cfe3f7537d7f5f2f708c41c944805c8e903633b2fa411e37bc29ce50a277c833"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/OrganizationFeatures/OrganizationSubscriptions/UpgradeOrganizationPlanCommand.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"63cb25acf4f7a1801cd69030a48851eb7461f4042e70957b2a9da0e474ee3fd0"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Check storage? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/OrganizationFeatures/OrganizationSubscriptions/UpgradeOrganizationPlanCommand.cs"},"region":{"startLine":252}}}],"partialFingerprints":{"codehealthFindingId/v1":"d0a118406b9ac9f5f380cbd2b0c776a124be5f1470f933eced284e8c84954bbd"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: nothing to dispose \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Platform/Mail/Delivery/SendGridMailDeliveryService.cs"},"region":{"startLine":31}}}],"partialFingerprints":{"codehealthFindingId/v1":"52a40e66b3669b0dc9a368ffd0b5c41e4aa84563655652873eed0caf384cb16c"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO - PM-25380 change to string constant \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Platform/Mail/HandlebarsMailService.cs"},"region":{"startLine":230}}}],"partialFingerprints":{"codehealthFindingId/v1":"dcbdb6c63d0ba46b50f6ccb80952e89a54fbcb00c562f3dc9733dfc6f61e66bd"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: DO NOT move to IMailer implementation: PM-27852 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Platform/Mail/HandlebarsMailService.cs"},"region":{"startLine":470}}}],"partialFingerprints":{"codehealthFindingId/v1":"dcbdb6c63d0ba46b50f6ccb80952e89a54fbcb00c562f3dc9733dfc6f61e66bd"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Move to IMailer implementation: PM-27852 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Platform/Mail/HandlebarsMailService.cs"},"region":{"startLine":485}}}],"partialFingerprints":{"codehealthFindingId/v1":"dcbdb6c63d0ba46b50f6ccb80952e89a54fbcb00c562f3dc9733dfc6f61e66bd"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Move to IMailer implementation: PM-27852 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Platform/Mail/HandlebarsMailService.cs"},"region":{"startLine":499}}}],"partialFingerprints":{"codehealthFindingId/v1":"dcbdb6c63d0ba46b50f6ccb80952e89a54fbcb00c562f3dc9733dfc6f61e66bd"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Move to IMailer implementation: PM-27852 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Platform/Mail/HandlebarsMailService.cs"},"region":{"startLine":514}}}],"partialFingerprints":{"codehealthFindingId/v1":"dcbdb6c63d0ba46b50f6ccb80952e89a54fbcb00c562f3dc9733dfc6f61e66bd"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] HandlebarsMailService"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Platform/Mail/HandlebarsMailService.cs"},"region":{"startLine":36}}}],"partialFingerprints":{"codehealthFindingId/v1":"14f5cec7322e4cce1d74d602e57b3b84f771f6a54d8bd92654f0370c31801b19"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] SendWelcomeEmailAsync"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Platform/Mail/HandlebarsMailService.cs"},"region":{"startLine":471}}}],"partialFingerprints":{"codehealthFindingId/v1":"14f5cec7322e4cce1d74d602e57b3b84f771f6a54d8bd92654f0370c31801b19"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] IMailService"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Platform/Mail/IMailService.cs"},"region":{"startLine":15}}}],"partialFingerprints":{"codehealthFindingId/v1":"c98bccebdc6dfa04664609165b308e67ca8f87b1f350e3db7398683f81d6e75e"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] SendWelcomeEmailAsync"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Platform/Mail/IMailService.cs"},"region":{"startLine":18}}}],"partialFingerprints":{"codehealthFindingId/v1":"c98bccebdc6dfa04664609165b308e67ca8f87b1f350e3db7398683f81d6e75e"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Do we still need layouts with MJML? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Platform/Mail/Mailer/HandlebarMailRenderer.cs"},"region":{"startLine":126}}}],"partialFingerprints":{"codehealthFindingId/v1":"74fdc305046a419e982c818c07f290e1a0f4696de2a9999c8437624db6a98f17"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] NoopMailService"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Platform/Mail/NoopMailService.cs"},"region":{"startLine":16}}}],"partialFingerprints":{"codehealthFindingId/v1":"4c97d9d542151bf76e114e385912ad7d993f3cd278f2039b13609618ff86ebc2"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Think about this a bit more \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Platform/Push/IPushNotificationService.cs"},"region":{"startLine":267}}}],"partialFingerprints":{"codehealthFindingId/v1":"d253321ca3dfa8f5f48cb277ff5585f7b0db4ccb6cb083f779d1145922a7a2e2"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Think about this a bit more \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Platform/Push/IPushNotificationService.cs"},"region":{"startLine":329}}}],"partialFingerprints":{"codehealthFindingId/v1":"d253321ca3dfa8f5f48cb277ff5585f7b0db4ccb6cb083f779d1145922a7a2e2"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable BWP0001 // Type or member is obsolete"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Platform/Push/IPushNotificationService.cs"},"region":{"startLine":90}}}],"partialFingerprints":{"codehealthFindingId/v1":"7895d103adca8db46cc952a1327ee201e8900100a6cb296c8efa51b1327d82ac"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable BWP0001 // Type or member is obsolete"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Platform/Push/IPushNotificationService.cs"},"region":{"startLine":106}}}],"partialFingerprints":{"codehealthFindingId/v1":"7895d103adca8db46cc952a1327ee201e8900100a6cb296c8efa51b1327d82ac"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable BWP0001 // Type or member is obsolete"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Platform/Push/IPushNotificationService.cs"},"region":{"startLine":122}}}],"partialFingerprints":{"codehealthFindingId/v1":"7895d103adca8db46cc952a1327ee201e8900100a6cb296c8efa51b1327d82ac"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable BWP0001 // Type or member is obsolete"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Platform/Push/IPushNotificationService.cs"},"region":{"startLine":138}}}],"partialFingerprints":{"codehealthFindingId/v1":"7895d103adca8db46cc952a1327ee201e8900100a6cb296c8efa51b1327d82ac"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable BWP0001 // Type or member is obsolete"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Platform/Push/IPushNotificationService.cs"},"region":{"startLine":154}}}],"partialFingerprints":{"codehealthFindingId/v1":"7895d103adca8db46cc952a1327ee201e8900100a6cb296c8efa51b1327d82ac"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable BWP0001 // Type or member is obsolete"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Platform/Push/IPushNotificationService.cs"},"region":{"startLine":252}}}],"partialFingerprints":{"codehealthFindingId/v1":"7895d103adca8db46cc952a1327ee201e8900100a6cb296c8efa51b1327d82ac"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable BWP0001 // Type or member is obsolete"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Platform/Push/IPushNotificationService.cs"},"region":{"startLine":269}}}],"partialFingerprints":{"codehealthFindingId/v1":"7895d103adca8db46cc952a1327ee201e8900100a6cb296c8efa51b1327d82ac"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable BWP0001 // Type or member is obsolete"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Platform/Push/IPushNotificationService.cs"},"region":{"startLine":285}}}],"partialFingerprints":{"codehealthFindingId/v1":"7895d103adca8db46cc952a1327ee201e8900100a6cb296c8efa51b1327d82ac"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable BWP0001 // Type or member is obsolete"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Platform/Push/IPushNotificationService.cs"},"region":{"startLine":312}}}],"partialFingerprints":{"codehealthFindingId/v1":"7895d103adca8db46cc952a1327ee201e8900100a6cb296c8efa51b1327d82ac"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable BWP0001 // Type or member is obsolete"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Platform/Push/IPushNotificationService.cs"},"region":{"startLine":331}}}],"partialFingerprints":{"codehealthFindingId/v1":"7895d103adca8db46cc952a1327ee201e8900100a6cb296c8efa51b1327d82ac"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable BWP0001 // Type or member is obsolete"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Platform/Push/IPushNotificationService.cs"},"region":{"startLine":347}}}],"partialFingerprints":{"codehealthFindingId/v1":"7895d103adca8db46cc952a1327ee201e8900100a6cb296c8efa51b1327d82ac"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable BWP0001 // Type or member is obsolete"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Platform/Push/IPushNotificationService.cs"},"region":{"startLine":417}}}],"partialFingerprints":{"codehealthFindingId/v1":"7895d103adca8db46cc952a1327ee201e8900100a6cb296c8efa51b1327d82ac"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] InstallationId"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Platform/Push/IPushNotificationService.cs"},"region":{"startLine":26}}}],"partialFingerprints":{"codehealthFindingId/v1":"58ef05079622828bc93c43549414b33fa2f9f2c0413a5e73650d7d11570f3250"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] TimeProvider"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Platform/Push/IPushNotificationService.cs"},"region":{"startLine":29}}}],"partialFingerprints":{"codehealthFindingId/v1":"58ef05079622828bc93c43549414b33fa2f9f2c0413a5e73650d7d11570f3250"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] Logger"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Platform/Push/IPushNotificationService.cs"},"region":{"startLine":32}}}],"partialFingerprints":{"codehealthFindingId/v1":"58ef05079622828bc93c43549414b33fa2f9f2c0413a5e73650d7d11570f3250"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: We should really define the HttpClient we will use here \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Platform/Push/PushServiceCollectionExtensions.cs"},"region":{"startLine":41}}}],"partialFingerprints":{"codehealthFindingId/v1":"f80a5ef7cf21c78422a070dd4ba98b9450278aa33314f4c26e4c43c9bbac6012"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: We should really define the HttpClient we will use here \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Platform/Push/PushServiceCollectionExtensions.cs"},"region":{"startLine":51}}}],"partialFingerprints":{"codehealthFindingId/v1":"f80a5ef7cf21c78422a070dd4ba98b9450278aa33314f4c26e4c43c9bbac6012"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: This namespace should change to \u0060Bit.Core.Platform.Push\u0060 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Platform/Push/PushType.cs"},"region":{"startLine":3}}}],"partialFingerprints":{"codehealthFindingId/v1":"eb1e8f2ee38248cb0cc9eb8409fbdd5c3363f6ebde45686275967316445dd387"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Change this namespace to \u0060Bit.Core.Platform.PushRegistration \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Platform/PushRegistration/IPushRegistrationService.cs"},"region":{"startLine":4}}}],"partialFingerprints":{"codehealthFindingId/v1":"faa6a94af37fa55ed15932474d285cefb05af5c40199f9a07f216d4a7a22a37a"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Should add feature that brings in IInstallationDeviceRepository once that is featurized \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Platform/PushRegistration/PushRegistrationServiceCollectionExtensions.cs"},"region":{"startLine":24}}}],"partialFingerprints":{"codehealthFindingId/v1":"696d5f2dbd8d24c108e9eaaae285a87dd94a4fa415a2c8501424e32448ae40e2"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] GetManyWithCalculatedPremiumAsync"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Repositories/IUserRepository.cs"},"region":{"startLine":28}}}],"partialFingerprints":{"codehealthFindingId/v1":"0340327ca3dfbea95196c339ea7fd85c8374459fb0e3bb0e24fbfb3c109a3833"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] GetCalculatedPremiumAsync"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Repositories/IUserRepository.cs"},"region":{"startLine":39}}}],"partialFingerprints":{"codehealthFindingId/v1":"3be31ca8b646967656a0de1cf76905bba1b4252142c775323fe1dda1ade491d6"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/SecretsManager/Commands/Porting/SMImport.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ccc6905bae8cfa98b27865b00ecea74ee26a5417da026b53533778fcb2d17b9a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/SecretsManager/Models/Data/ApiKeyClientSecretDetails.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"2ea0cb7d0f9a328f250039be07a7c812e16626a8f2e6a89f066ac9f341cc8ec7"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/SecretsManager/Models/Data/ApiKeyDetails.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a2b4af9fc1d97617da0a8e9da1f632f022d95de5a06a727561560fd8423e361e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/SecretsManager/Models/Data/PeopleGrantees.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"fd8515f3d047b4f7156e73e3da0c72de2765bcf505887f59b0f12580686c4bd0"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/SecretsManager/Models/Data/ProjectPeopleAccessPolicies.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"50b7e5e47382abb9fc388b758004dcc49725c112406228f4ce8b418cbb035b01"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/SecretsManager/Models/Data/ProjectPermissionDetails.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c0c1f0cec33248da4276c6c6a8afca910d7b174a161faed4348eb87626f53875"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/SecretsManager/Models/Data/SecretPermissionDetails.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"06d44c10b05b425e180b2f5eb46cc03fbfb139f9cce54b6dd7beb2e8f6c1281e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/SecretsManager/Models/Data/ServiceAccountPeopleAccessPolicies.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ac1e91a35c23dc55a9da3fb89dafce38e470891bd4b91c48e5a7d92508408afe"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/SecretsManager/Models/Data/ServiceAccountSecretsDetails.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"74120ba15603519fc685b38a6f9554e228e3d32b499bef4ab0bc3230340653fb"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/SecretsManager/Models/Mail/RequestSecretsManagerAccessViewModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6a2b6780d0280c2bc0fb31445a0310768917ba2381d64ab4a8a65b2a70a19f92"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/SecretsManager/Repositories/IProjectRepository.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6de60f45cb665c6fe98fcd2b9b75b3ff9b840be82c2f101785bf2859f03e14a2"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/SecretsManager/Repositories/ISecretRepository.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"50d958dc25b29901625504e918f872ff23f25c7054ffa00fd3c1b52b27aeffee"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/SecretsManager/Repositories/IServiceAccountRepository.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"fe47df304ada39b1c75010d0d6f4cefc55836934a15d018d487fe376863687ad"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/SecretsManager/Repositories/Noop/NoopProjectRepository.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"dcae0fe645ce502a42a302fd3c8d07edfcbd4f908831838bb9407229fe51d8c3"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/SecretsManager/Repositories/Noop/NoopSecretRepository.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ff0e94604ed9ee1d42ba41ff5f050823a9b12db76ca30e0bc2ea5a06fe2f886e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/SecretsManager/Repositories/Noop/NoopServiceAccountRepository.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d5372f46f9e85955198e49b0f200011ec760b725ac3b98b4b983cdbed6a86367"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] GetOrganizationAbilitiesAsync"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Services/IApplicationCacheService.cs"},"region":{"startLine":10}}}],"partialFingerprints":{"codehealthFindingId/v1":"3b3bcbc5a4d91c1dc89bea8fb386061a80904d5dd899bd9695eb0600fe3c7a55"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] GetProviderAbilitiesAsync"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Services/IApplicationCacheService.cs"},"region":{"startLine":21}}}],"partialFingerprints":{"codehealthFindingId/v1":"3b3bcbc5a4d91c1dc89bea8fb386061a80904d5dd899bd9695eb0600fe3c7a55"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Services/IFeatureService.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"dc79dea53b6fd19865ec7a6272444f06cdc911071764e7e323045e2776f406fb"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Services/Implementations/InMemoryApplicationCacheService.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"bb35fb50b7ac65474ec2d5c25aa28f80626f253bfaf22b727da676bea9a993c1"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Services/Implementations/LaunchDarklyFeatureService.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"f312801610dcbae08c2a1dc4e5ec2a384e8b590ef0ce497c1814b8681e94bdd8"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Services/Implementations/UserService.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"8038b3cec1b0ff0133d04db4c279ed2180a64b48fda1836795324b90b6c5926b"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO remove logic below after a compatibility period - once V2 accounts are fully supported \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Services/Implementations/UserService.cs"},"region":{"startLine":328}}}],"partialFingerprints":{"codehealthFindingId/v1":"f28b14ee763b5e1616ae2848138ad37260f9755437638297fb3fd40d1ed71b35"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO removed with https://bitwarden.atlassian.net/browse/PM-27328 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Services/Implementations/UserService.cs"},"region":{"startLine":534}}}],"partialFingerprints":{"codehealthFindingId/v1":"f28b14ee763b5e1616ae2848138ad37260f9755437638297fb3fd40d1ed71b35"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //TODO: Remove with the deletion of PM32645_DeferPriceMigrationToRenewal feature flag \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Services/Implementations/UserService.cs"},"region":{"startLine":801}}}],"partialFingerprints":{"codehealthFindingId/v1":"f28b14ee763b5e1616ae2848138ad37260f9755437638297fb3fd40d1ed71b35"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Remove this method when the PM37165_RotateUserApiKeyCommand feature flag is cleaned up. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Services/Implementations/UserService.cs"},"region":{"startLine":1072}}}],"partialFingerprints":{"codehealthFindingId/v1":"f28b14ee763b5e1616ae2848138ad37260f9755437638297fb3fd40d1ed71b35"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (GatewayException) \u2014 narrow/filtered/commented, treated as intentional"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Services/Implementations/UserService.cs"},"region":{"startLine":282}}}],"partialFingerprints":{"codehealthFindingId/v1":"4e351711aa71e923f7c817377cd0bf1d94b889ba449c2d00a8c9e0dd2ffdaa25"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (BillingException) \u2014 narrow/filtered/commented, treated as intentional"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Services/Implementations/UserService.cs"},"region":{"startLine":283}}}],"partialFingerprints":{"codehealthFindingId/v1":"4e351711aa71e923f7c817377cd0bf1d94b889ba449c2d00a8c9e0dd2ffdaa25"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] ChangePasswordAsync"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Services/Implementations/UserService.cs"},"region":{"startLine":500}}}],"partialFingerprints":{"codehealthFindingId/v1":"38afe4d6f94164b146de650a997407669351bdb5439cdeee89edea8dbe102cd5"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] UpdateTempPasswordAsync"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Services/Implementations/UserService.cs"},"region":{"startLine":654}}}],"partialFingerprints":{"codehealthFindingId/v1":"38afe4d6f94164b146de650a997407669351bdb5439cdeee89edea8dbe102cd5"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] ValidatePasswordInternal"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Services/Implementations/UserService.cs"},"region":{"startLine":992}}}],"partialFingerprints":{"codehealthFindingId/v1":"38afe4d6f94164b146de650a997407669351bdb5439cdeee89edea8dbe102cd5"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] RotateApiKeyAsync"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Services/Implementations/UserService.cs"},"region":{"startLine":1073}}}],"partialFingerprints":{"codehealthFindingId/v1":"38afe4d6f94164b146de650a997407669351bdb5439cdeee89edea8dbe102cd5"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Services/IUserService.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e30471ec0c2517dc50f32d4f56788c1cabdc10b12ffdcfd87f5a0699299373f7"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO removed with https://bitwarden.atlassian.net/browse/PM-27328 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Services/IUserService.cs"},"region":{"startLine":34}}}],"partialFingerprints":{"codehealthFindingId/v1":"d940a9d09fe4c6af8fe58659eeb9fa0f299d2c3cc31402dace425439c7ec6195"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Remove this method when the PM37165_RotateUserApiKeyCommand feature flag is cleaned up. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Services/IUserService.cs"},"region":{"startLine":77}}}],"partialFingerprints":{"codehealthFindingId/v1":"d940a9d09fe4c6af8fe58659eeb9fa0f299d2c3cc31402dace425439c7ec6195"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] ChangePasswordAsync"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Services/IUserService.cs"},"region":{"startLine":32}}}],"partialFingerprints":{"codehealthFindingId/v1":"781207c993cedac6b42bb94f8672e6da69c24444633a9f1606bac53873241487"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] SetKeyConnectorKeyAsync"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Services/IUserService.cs"},"region":{"startLine":35}}}],"partialFingerprints":{"codehealthFindingId/v1":"781207c993cedac6b42bb94f8672e6da69c24444633a9f1606bac53873241487"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] UpdateTempPasswordAsync"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Services/IUserService.cs"},"region":{"startLine":38}}}],"partialFingerprints":{"codehealthFindingId/v1":"781207c993cedac6b42bb94f8672e6da69c24444633a9f1606bac53873241487"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] HasPremiumFromOrganization"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Services/IUserService.cs"},"region":{"startLine":71}}}],"partialFingerprints":{"codehealthFindingId/v1":"781207c993cedac6b42bb94f8672e6da69c24444633a9f1606bac53873241487"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] RotateApiKeyAsync"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Services/IUserService.cs"},"region":{"startLine":78}}}],"partialFingerprints":{"codehealthFindingId/v1":"781207c993cedac6b42bb94f8672e6da69c24444633a9f1606bac53873241487"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Settings/GlobalSettings.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ef8bcf0e5abc0058b9712b563cfad4010162d399fa128f32ad95b1290c0723c6"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Tokens/DataProtectorTokenFactory.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9f82969ffada35f5f75ee0cd509d26511d5bd711a478f9fafb4bc944f727e4b9"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Tokens/Tokenable.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ea411e8eb949f8042a842d58f1072c24a02bcac62b89b33e214a5fb33f92d837"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Tools/SendFeatures/Commands/NonAnonymousSendCommand.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"95f5f5505ce536f0abbb9fe376e210dd3b03c6fbce1b68673a5288503a8bb25c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Tools/SendFeatures/Services/SendValidationService.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"190093af5c7a48fd325a9ab0ca4da9e8904af3aab33f05bc8404b444a3c8ff04"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Tools/Services/NoopImplementations/NoopSendFileStorageService.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"7ccaf0f917a81b1c9c8e05a7614ea7f0c2acea42c13229744608be096cd18390"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Utilities/BulkAuthorizationHandler.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"38917c76fa6e3f39d34046809b8134e20fd36835196c2455d5be54a053bf425a"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: .NET 9 Ships Base64Url in box, investigate replacing this usage with that \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Utilities/CoreHelpers.cs"},"region":{"startLine":437}}}],"partialFingerprints":{"codehealthFindingId/v1":"3aadd630de4147bd385d6dbfb962af728c4809fa6e3ab460c491e5a44aa62fab"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: [https://bitwarden.atlassian.net/browse/PM-22171] Remove this since it is already added from the persisted grant \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Utilities/CoreHelpers.cs"},"region":{"startLine":724}}}],"partialFingerprints":{"codehealthFindingId/v1":"3aadd630de4147bd385d6dbfb962af728c4809fa6e3ab460c491e5a44aa62fab"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Utilities/CustomRedisProcessingStrategy.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ed72f435375cc09350658532b718f769a040ab13d3d36710ffaac96008461cb1"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Utilities/DistributedCacheExtensions.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"73c3cd67ee5a07844c4570494bfce31cc45de1c4735095e9e0c3cdd541534b27"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Utilities/HandlebarsObjectJsonConverter.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ee3c18db5975dc264e5d56e0a09086a664b2365cf285a1613d6ddcdae1ab58a6"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Utilities/JsonHelpers.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d987739e2871b9d0bc29c9b90c525588c765b42f05d65f2b4953defe3b1c9d0e"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] LegacyEnumKeyResolver"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Utilities/JsonHelpers.cs"},"region":{"startLine":66}}}],"partialFingerprints":{"codehealthFindingId/v1":"19da9e573fff31954a290bb1d0894a35ba0ee6122daa75281c59c3f8e40cf876"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] LegacySerialize"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Utilities/JsonHelpers.cs"},"region":{"startLine":72}}}],"partialFingerprints":{"codehealthFindingId/v1":"19da9e573fff31954a290bb1d0894a35ba0ee6122daa75281c59c3f8e40cf876"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] LegacyDeserialize"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Utilities/JsonHelpers.cs"},"region":{"startLine":78}}}],"partialFingerprints":{"codehealthFindingId/v1":"19da9e573fff31954a290bb1d0894a35ba0ee6122daa75281c59c3f8e40cf876"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Utilities/StaticStore.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"fb10beaf649209cf7ba4ddda75f36f9c90071e0fb514d9b0a809ffef64d8fc4e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Utilities/StrictEmailAddressAttribute.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d746549ed19cc518f941a234bbfa3e306b77d4cba14d9a95fb3d6da1cf01a295"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Utilities/StrictEmailAddressListAttribute.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e28eb48aab66403c46e4fee3a8f88deaa76f5213bd307439a8930edb6253562e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Utilities/SystemTextJsonCosmosSerializer.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"110c02d376940c6e8701fbb62aeed560f70ce3478957ccd401a26028af8b309e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Vault/Commands/CreateManyTaskNotificationsCommand.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"7419ff7f0863d8fb695ae8ba44f1072d98595d55e103dac1ec3e2e1b60982b2a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Vault/Entities/Cipher.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e40a7390e7e29df61ebac4d169a46b4a854b7b1a4447b071bc9dd20db698d092"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Vault/Models/Data/AttachmentResponseData.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"22cb185c0055b7e586a993c1fb3dc6c4e6d1bad31f043d576719c62c978eb133"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Vault/Models/Data/CipherAttachment.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a4beca763a0766c00cdc6fc39ba098ddae6ddcaf3cc40276381b6f69dd6a3940"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Vault/Models/Data/CipherCardData.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6e434ac0f0cd596fb64ea6c1a821248945f350d9036e688d48fb30366da2fc47"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Vault/Models/Data/CipherData.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c2c82b2f2587332614b7a235a897e3c345a066329ec5160654ee9427d63f178e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Vault/Models/Data/CipherFieldData.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"138ac8bbb84aed0025e78a56c6d4a0d4d483a3e648e8e0e03ee9760e882150ca"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Vault/Models/Data/CipherIdentityData.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e54dcce8c86c42c94c7512d7143118bd62158d6e658fcf0afcb43cabcdad1c0e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Vault/Models/Data/CipherLoginData.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9885afe3e1b5be3cf66419b3f0071ee3fe77da6494b1f32a933399c496ce1ffa"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Vault/Models/Data/CipherLoginFido2CredentialData.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"cfde51d9465d331d1761d649c5a6f0f9aab9a148c16d65b471f381ff1403b0fe"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Vault/Models/Data/CipherPasswordHistoryData.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e47bf5105e7cb4e0040696ba6d992dc83f45e7c82d73a2824d4bc0f1d92d77e5"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Vault/Models/Data/CipherSSHKeyData.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"aab50319672c64cd669b3965339403772383a0db729f16dc6715e670429da306"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Vault/Models/Data/UserCipherForTask.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"27d03eed7c2de559fea0e70344abc438eb0306dc59f8077cafd191a8d71b2eac"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Vault/Models/Data/UserSecurityTaskCipher.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9852e0f8c7039f5c11ad092f46ccae81224dd113bcc92593ee0ef25e1750414a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Vault/Models/Data/UserSecurityTasksCount.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"491f0d1acd75dbfa59657029d1718488d69f57d7f80de8bec37c7d19e2bb6f62"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Make this not nullable \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Vault/Services/Implementations/CipherService.cs"},"region":{"startLine":825}}}],"partialFingerprints":{"codehealthFindingId/v1":"3bacf5775f172b76e402c1ca40d016da4e3be7fefe209e00432ed00638a92307"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Vault/Services/NoopImplementations/NoopAttachmentStorageService.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"92574c885ae52e96ddc8a5c81c19a8d8b0afc1b6c1d79cd588c2ef0050049de6"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Events/Controllers/CollectController.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d59b47a03b15a47d4ea845537f767be4b104878094e6e5ca0a660dad61102e94"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventsProcessor/AzureQueueHostedService.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a6cdfb70d2dbfb35be00ec715ac92a52109263c205c7a5df5cebb663c74e52f2"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Icons/Controllers/IconsController.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"f747bfbff94855d4af59317d3732ecc5b5846ff00e97b594b2e1904e1fad3e10"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Icons/Models/DomainName.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"273446162db548eb892c9c8394d58415faae40ac9103c2dce887e212396c5198"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Icons/Models/Icon.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"1cf90348756e4d254ac3e5d901e5ebcbb3d6dd5f059d0778c5b00d0a6ef64a77"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (ArgumentException) \u2014 narrow/filtered/commented, treated as intentional"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Icons/Models/IconLink.cs"},"region":{"startLine":123}}}],"partialFingerprints":{"codehealthFindingId/v1":"2339e7ef4fbd926e41bd478cd5bfd19c9e71059585320e964a94c036126eb533"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Add others here \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Icons/Services/DomainMappingService.cs"},"region":{"startLine":11}}}],"partialFingerprints":{"codehealthFindingId/v1":"dd03430f3e75a1db9051ae67653a1c6646730ce407b69f5821bfb1514ae84b2a"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] PostPrelogin"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Identity/Controllers/AccountsController.cs"},"region":{"startLine":203}}}],"partialFingerprints":{"codehealthFindingId/v1":"8aaa774ae0d9f58aa28c0ea5304f3c1826724125a88d532b5d4781f8151790f0"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] GetNow"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Identity/Controllers/InfoController.cs"},"region":{"startLine":14}}}],"partialFingerprints":{"codehealthFindingId/v1":"cfe73ee83f26a82f6d6dda444d34b1a2c324590d121932cc374d55275010b24b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Identity/Controllers/SsoController.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"5565a93175f3a48d8b6da987e2e0592292bcb9f820c9bc41fef95c737741e6ce"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Identity/IdentityServer/ApiClient.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0ab5ca2badc561f6b86b8e31480f37bcbe20377010a554c5bef2a7544b342d25"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Identity/IdentityServer/AuthorizationCodeStore.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"f148425fbc43d27d058e09487c1cbaa2e062fbd5377a2d881caf04ec57a85150"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Identity/IdentityServer/ClientProviders/InstallationClientProvider.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a260cfb0ea89f2df8d857a2cdcac8b5e158c25de5aab6847b7a41f0e80b6b7b7"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Identity/IdentityServer/ClientProviders/OrganizationClientProvider.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ceabacca9629661c68ecd07bbfa67ed12b3c8ab1d6e162c152b5bfea3557c57c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Identity/IdentityServer/ClientProviders/SecretsManagerApiKeyProvider.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0299c14fddc6b1dfd0b48ac64e63d4f5f8dde41b9a8b0d7b07144f8e581535e0"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Identity/IdentityServer/CustomValidatorRequestContext.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"990a718838e69bab1425be0c08598e65e5116d246e691af1f135528afdcce963"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: PM-24471 replace magic string with a constant for webauthn \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Identity/IdentityServer/Enums/CustomGrantTypes.cs"},"region":{"startLine":9}}}],"partialFingerprints":{"codehealthFindingId/v1":"6e09c7d77cac5194345d342cf9cfcf5ae6604594c4318daf75c3bada8a4e052f"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Identity/IdentityServer/IUserDecryptionOptionsBuilder.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"3d75addc825e53aab0004e4b8f2d743f2781a8e8c30b801b3e910a2c3132a021"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Identity/IdentityServer/PersistedGrantStore.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"bf09354ee7d3e25ceed3acf1b33279014e0983d211a3a1c5e9f836c8cb9c9d40"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Identity/IdentityServer/RequestValidators/BaseRequestValidator.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"8e94d13453ebf87de18aba5d3790f9d823e698779fc5b28eedcff10e7f6052b0"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: PM-24324 - This should be its own validator at some point. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Identity/IdentityServer/RequestValidators/BaseRequestValidator.cs"},"region":{"startLine":426}}}],"partialFingerprints":{"codehealthFindingId/v1":"9bdc863785ae2def9bd0f4d5fba29a08e14535ebbf06a1224e7f22273053a304"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: PM-34091 - delete when cleaning up the feature flag; the bump call reads \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Identity/IdentityServer/RequestValidators/BaseRequestValidator.cs"},"region":{"startLine":455}}}],"partialFingerprints":{"codehealthFindingId/v1":"9bdc863785ae2def9bd0f4d5fba29a08e14535ebbf06a1224e7f22273053a304"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: PM-34091 - remove feature flag check when cleaning up \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Identity/IdentityServer/RequestValidators/BaseRequestValidator.cs"},"region":{"startLine":460}}}],"partialFingerprints":{"codehealthFindingId/v1":"9bdc863785ae2def9bd0f4d5fba29a08e14535ebbf06a1224e7f22273053a304"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] BuildErrorResultAsync"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Identity/IdentityServer/RequestValidators/BaseRequestValidator.cs"},"region":{"startLine":490}}}],"partialFingerprints":{"codehealthFindingId/v1":"628551dde2ae20cf9529db5d0c46babb5c1204d121cb9300ccb3e94ded2a53ec"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] SetTwoFactorResult"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Identity/IdentityServer/RequestValidators/BaseRequestValidator.cs"},"region":{"startLine":542}}}],"partialFingerprints":{"codehealthFindingId/v1":"628551dde2ae20cf9529db5d0c46babb5c1204d121cb9300ccb3e94ded2a53ec"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] SetErrorResult"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Identity/IdentityServer/RequestValidators/BaseRequestValidator.cs"},"region":{"startLine":545}}}],"partialFingerprints":{"codehealthFindingId/v1":"628551dde2ae20cf9529db5d0c46babb5c1204d121cb9300ccb3e94ded2a53ec"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: PM-34091 - delete when cleaning up the feature flag; the bump call reads \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Identity/IdentityServer/RequestValidators/CustomTokenRequestValidator.cs"},"region":{"startLine":227}}}],"partialFingerprints":{"codehealthFindingId/v1":"18723f07013d71f34c149ae38ae851e83de4c04589dea162560d389319591074"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: PM-34091 - remove feature flag check when cleaning up \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Identity/IdentityServer/RequestValidators/CustomTokenRequestValidator.cs"},"region":{"startLine":238}}}],"partialFingerprints":{"codehealthFindingId/v1":"18723f07013d71f34c149ae38ae851e83de4c04589dea162560d389319591074"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] SetTwoFactorResult"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Identity/IdentityServer/RequestValidators/CustomTokenRequestValidator.cs"},"region":{"startLine":180}}}],"partialFingerprints":{"codehealthFindingId/v1":"b251d53317a5da2fb810f3f067e08f43a1e7e0b3bc2866f7f36b02775f1c88cb"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] SetErrorResult"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Identity/IdentityServer/RequestValidators/CustomTokenRequestValidator.cs"},"region":{"startLine":191}}}],"partialFingerprints":{"codehealthFindingId/v1":"b251d53317a5da2fb810f3f067e08f43a1e7e0b3bc2866f7f36b02775f1c88cb"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Identity/IdentityServer/RequestValidators/DeviceValidator.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"2c31fcdc3db96a83a84d13e5c710f610d02a8d61e394976b6adfb942375a7100"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Identity/IdentityServer/RequestValidators/ResourceOwnerPasswordValidator.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"f717f63814ea9a7d392a2dff92ff3235cbb2b2d4a8b5460d07c18abea9fda123"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] SetTwoFactorResult"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Identity/IdentityServer/RequestValidators/ResourceOwnerPasswordValidator.cs"},"region":{"startLine":150}}}],"partialFingerprints":{"codehealthFindingId/v1":"e80b5339ff664fd0d8a4984c007c97a4dbe4078b06fa1f1b7c88210801dd0829"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] SetErrorResult"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Identity/IdentityServer/RequestValidators/ResourceOwnerPasswordValidator.cs"},"region":{"startLine":158}}}],"partialFingerprints":{"codehealthFindingId/v1":"e80b5339ff664fd0d8a4984c007c97a4dbe4078b06fa1f1b7c88210801dd0829"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Identity/IdentityServer/RequestValidators/TwoFactorAuthenticationValidator.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"09495b5f74e6a9a27ae633c7bf27ae75f4553ab474a29a0634fbe2fc984d05d4"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] SetTwoFactorResult"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Identity/IdentityServer/RequestValidators/WebAuthnGrantValidator.cs"},"region":{"startLine":136}}}],"partialFingerprints":{"codehealthFindingId/v1":"12b5d622c019121d2accd10ff8272db92346c5c266809f95ffc0dd66c3aa15a8"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] SetErrorResult"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Identity/IdentityServer/RequestValidators/WebAuthnGrantValidator.cs"},"region":{"startLine":144}}}],"partialFingerprints":{"codehealthFindingId/v1":"12b5d622c019121d2accd10ff8272db92346c5c266809f95ffc0dd66c3aa15a8"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Identity/Models/RedirectViewModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"558561f36523cc906e5f02ea5d422d41e821a9e223027c2b78cb72f4680e134c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Identity/Models/Request/Accounts/PasswordPreloginRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"1aba4bf3b0a08a7c1c77a335defbf90cc952ba7800cb5396f221e6ee48450b63"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Remove when OrganizationUser methods are moved out of OrganizationService, this noop dependency should \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Identity/Startup.cs"},"region":{"startLine":153}}}],"partialFingerprints":{"codehealthFindingId/v1":"4c48f3302f0014de2a51e4896bdb1b9630c86fec9ce875036f7c5d8b1ce1d23b"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: no longer be required - see PM-1880 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Identity/Startup.cs"},"region":{"startLine":154}}}],"partialFingerprints":{"codehealthFindingId/v1":"4c48f3302f0014de2a51e4896bdb1b9630c86fec9ce875036f7c5d8b1ce1d23b"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO-NRE: collectionDetails should be checked for null and probably return early \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.Dapper/AdminConsole/Repositories/CollectionRepository.cs"},"region":{"startLine":219}}}],"partialFingerprints":{"codehealthFindingId/v1":"3cce46265e5ad031e84f386040c9c370bd118057d2ce28c3122b33eb630ab1b8"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.Dapper/Auth/Helpers/EmergencyAccessHelpers.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0a0a0adcf13e250a9bcc53cd2600f6c15653f77506d4c8f262051270f1f19252"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.Dapper/Billing/Repositories/ClientOrganizationMigrationRecordRepository.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"1c64e39bcb93597bfb38c31db422619f8c60ae7781c7295f2395c0fed4f6bd0b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.Dapper/Billing/Repositories/OrganizationInstallationRepository.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"5bc60e323ee32ff2cca430af32137832f3e3b2c8d293a76fdd5e7f54a45af23f"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.Dapper/Dirt/OrganizationReportRepository.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"41c006be6398595763abf0e4f18028e4923d4b7b42c3258c18f63f1bc623deb3"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO (PM-35501): Add SecurityStamp so the rotation done in \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.Dapper/Repositories/UserRepository.cs"},"region":{"startLine":492}}}],"partialFingerprints":{"codehealthFindingId/v1":"2a25b54c40602842bc6eb5126e5d3f5259a571a766d899712490c2a5c0364e91"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO Need to add User.LastPasswordChangeDate here in PM-34905 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.Dapper/Repositories/UserRepository.cs"},"region":{"startLine":495}}}],"partialFingerprints":{"codehealthFindingId/v1":"2a25b54c40602842bc6eb5126e5d3f5259a571a766d899712490c2a5c0364e91"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.Dapper/SecretsManager/Repositories/ApiKeyRepository.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"2b9011a6cef5d3a2aad970f40b7df8095d4d26e2b13f8e4a252ca28f8be953ac"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.Dapper/Vault/Helpers/CipherHelpers.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"51803b7ec98afbcfbbc607dc6dae185660c3b3063d9751e7b576dec6e348972b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.Dapper/Vault/Helpers/FolderHelpers.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"83dbf7865041b50ab26795a5046445d8ba550bdbdda0b893f2c4858a150c7679"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.Dapper/Vault/Repositories/CipherRepository.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"19e9af0a3cbdfad346f6f83a85652a07388fb2e31d94654666ed7f0b112da11a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.Dapper/Vault/Repositories/FolderRepository.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ab37c4b82bed73ad6e2efe43497ab424266981ec4d0f0def718add196961e48c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/AdminConsole/Models/Collection.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"bdcb3069e3ee6f1c359eb418e8831d2e3594e55863a773a689e8311e0cb238d2"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/AdminConsole/Models/CollectionGroup.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6329d3baa0c55060906d338308c862523496c2b86f792918fd4afcc94446c0b5"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/AdminConsole/Models/CollectionUser.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"4489da3ecbb1dbe411f49bdfd3477965a1e9c125100e2033af18e7d25f9cb272"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/AdminConsole/Models/Organization.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"b8bf1712aedd4bcd79d8d3dec860f93436522f78704c79b0c3064c4a140e281a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/AdminConsole/Models/Policy.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d4cee0292fa107d54dc95816948d9454ed11de089b52d5e769b43a8c27547a00"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/AdminConsole/Models/Provider/ProviderOrganization.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"4fa4b267e64fbcb73e9fa3bd7b76a86a2ef31e1db64832129c0ac2bb7e53ca52"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/AdminConsole/Models/Provider/ProviderUser.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"22b2c74193c20f8232f6533f65df0e7768e5a48029f6ba5ce9883f82f1314126"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO-NRE: Probably need to null check and return early \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/AdminConsole/Repositories/CollectionRepository.cs"},"region":{"startLine":504}}}],"partialFingerprints":{"codehealthFindingId/v1":"14b8ad1966a55c321c5276a61d1120fab0434d52be8e69cd3c1a3401d6475b39"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/AdminConsole/Repositories/GroupRepository.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d3d796994d4d8732ae3c7838527a3a0fd6436c1c3dacf25ff431a51acc36db92"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/AdminConsole/Repositories/OrganizationRepository.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"2313b1dca0396ffe21d240b5fe5d51c3f5f54a8d64d3acd71fa3c74407ce1468"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/AdminConsole/Repositories/OrganizationUserRepository.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"3b4ba41cc9b44364e49e9733b284719d6c4983d4818972a90c6912f512cdfdad"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/AdminConsole/Repositories/PolicyRepository.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6a0a51d69837a273a2a58d74b106915d9cc5ec89a042d52cda29328cd7bcfdd5"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/AdminConsole/Repositories/ProviderOrganizationRepository.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"37796ff02b1599eab2ca0332a680c253fa857c31813faed9741424ac6753a2a3"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/AdminConsole/Repositories/ProviderRepository.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"2a831e030b9f7019e11e56486b1d5a16d693fda1141e230f5a49ac8a6f2a11b2"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/AdminConsole/Repositories/ProviderUserRepository.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d69b6e3f76b6aa0275de1c15150112e354af970b1fd8d39d6816767fb40ad62a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/Auth/Models/AuthRequest.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"7c56052282237a8b779cbe44306276fbde17fa50e3c452077df10ce4708c9f90"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/Auth/Models/EmergencyAccess.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0172ddd572e0b2d689d057bbf481ffab365f0d78a1a908b354694484e6a0b122"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/Auth/Models/SsoConfig.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"57412b350cec0fca677c7f371d69f82b6d9ec1b35594098ab1f15a6766023458"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/Auth/Models/SsoUser.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0af7a5c36d6be59eebb45c1868b6c73a69a7d7a2f227dd9ff1ac25c88f64c30f"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/Auth/Models/WebAuthnCredential.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"90da53f018ca9ce80a167087fe4e54b08fdeee83055f010c3ee0d4b9407d58e1"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: in future, this probably is not necessary as we have no synced EA data. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/Auth/Repositories/EmergencyAccessRepository.cs"},"region":{"startLine":32}}}],"partialFingerprints":{"codehealthFindingId/v1":"3f418ea0bc476b27c0588287414b5fd6a4fcc32b4505c17a369bb4657b16a1b9"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/Billing/Models/OrganizationInstallation.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ab8d576ccba78b99ca0a32eb08a44f504521343ccc9e39d4fcbc9995d65bb5de"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/Billing/Models/ProviderInvoiceItem.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c5f826fb856c77947826f419a79700b29459bfd7aab2b15dfddaa8539c7446a2"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/Billing/Models/ProviderPlan.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"f01a828e723809727003764c9b75e78504bda173711304d0dc7ad700d055dc85"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/Billing/Repositories/ClientOrganizationMigrationRecordRepository.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"7897836d82f4306d5e0fdca34245fb0c7880951b59e5c5375fa60eae034330e9"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/Billing/Repositories/OrganizationInstallationRepository.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"98f3eb7d6f76a2ce4bbbcd6e5af00d4dc3780b5409dcfeebed1d1434e3068834"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/Converters/DataProtectionConverter.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0fb9ba3d6bb59b279f49278e172e189025d3795fca75b5b3af854434124f407e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/Dirt/Models/OrganizationApplication.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"aa82f7dda99449142b33972843ef8bbee2c783a8e6bc53fd463a5378f4901f79"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/Dirt/Models/OrganizationReport.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"b3adbdf3cd4078b96e3db26646cc9feb5096310bf7b5c14659b30895b7b38c55"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/Dirt/Models/PasswordHealthReportApplication.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"1a76e0a9a1b70d705983996d3f09445140516674be0d87943ffd1abfaf939ad7"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/Dirt/Repositories/OrganizationReportRepository.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"fa584fc2abbe2311a0e435c852727ea966a101ea27ee759a960cc0b409484051"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: We should move away from using LINQ syntax for EF (TDL-48). \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/EntityFrameworkServiceCollectionExtensions.cs"},"region":{"startLine":44}}}],"partialFingerprints":{"codehealthFindingId/v1":"995f70b1454a3d7d1a8fc9ed5abcaa89e298e4bb9a62bbca9fb402861d3071a0"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/KeyManagement/Models/UserSignatureKeyPair.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"3df6bd4b3883b6aa284a98d77dbae8db2ce3ddacbe856eaef314e5000b696506"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/Models/CollectionCipher.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"694e71d01c72199cc5a6c9e5958ebdd1ca4041c34a60c758bb02879c974d134c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/Models/Device.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a207828c6a19c926f47762eca3ddafc031efc92855383423a826ba04a3249f1e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/Models/Group.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"f1c051a33fcfa3ea22032917d01c039fceb1c0dfde38f145520c44da66e80f1a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/Models/GroupUser.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"66d351e3f3e7de2d368fc1f9ac05a9fbb4df6ca91cca63ee22cce93a017ccfa6"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/Models/OrganizationApiKey.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a4ea849dd18f78960c3c3e110a110d931f5fd5ca21671346a5fbbf89233e56c0"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/Models/OrganizationConnection.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"bf55b1539303739ebe1256c79f2a09d9ac7fbd15d52db10395f495cc7127c712"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/Models/OrganizationDomain.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"46b815078ff4f960e51bd5abc85b3721fe245548541396578cc4e8e7258be6b8"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/Models/OrganizationSponsorship.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e55bb89350084e1c79c87d21a7fe004c221c90f7a348c59a6029f1ccd3f190e4"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/Models/OrganizationUser.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a59e983189f21cf89cc13ac538f0baf6ff6b9e063cd4df312a2018ff538905fb"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/Models/Transaction.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"4a40120f3bea364af6ca4781818ac8dde098374d3f8a0db7338caecf82b13ed9"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/Models/User.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"7146efc405d9e5e0df0ddc9d763ad0d137fb5014538dc956ff08721fa3758a39"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/NotificationCenter/Models/Notification.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"752e4fc96634557831e964a8aec48962138a82339787894b6db69132c9de8d0a"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/NotificationCenter/Models/NotificationStatus.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"5f62a42966100f8a2ac153225de2ba81350a0c6f8a9b0b9f80eb1d36754f65e0"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: This differs from SQL server implementation, we should have both return empty collection \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/Repositories/OrganizationSponsorshipRepository.cs"},"region":{"startLine":21}}}],"partialFingerprints":{"codehealthFindingId/v1":"763ee7954b878c2d3c939f7e851c45caf44caff45ff69e8a98802cda9421f020"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/Repositories/Queries/UserCipherDetailsQuery.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a3a31abb85d0fc032da86229d74338bf3c553216a9707075000d49b9da4a2ad2"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO (PM-35501): Persist SecurityStamp so the rotation done in \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/Repositories/UserRepository.cs"},"region":{"startLine":566}}}],"partialFingerprints":{"codehealthFindingId/v1":"efc202c0436cc35e3870b936258abcb340cee8e9651cbeb9758915a8cfaaecbf"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/SecretsManager/Models/AccessPolicy.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"feb894831ae2a01a0b405fbe1061c13e9404424edd4400aa9859f70f34d26d1f"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/SecretsManager/Models/ApiKey.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"f970a7a88198f1cab7a108d61742d73ca785c230ddc1dd46cc32307ce52bcb48"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/SecretsManager/Models/Project.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e41a8a9a39c85c79cde885cc36bbf11bed12936306e9a6b12c77fdd33f9431f9"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/SecretsManager/Models/Secret.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e5856e2f6db78244b4376c38e67296a10efede1e7e0944c629d7c51f7f341f82"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/SecretsManager/Models/ServiceAccount.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"3cf7cd5f86490f7bc3c928a4ab018ae33fd031b24bf39984b7323a37d749342b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/Tools/Models/Send.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c3210c5b5593fcce097383a05900455cc9a5fa322f617474d1397b4cf1dfa5a0"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/Vault/Models/Cipher.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"b6eb27e3579954b6f8adada3676a77c3146ba3d26aae7b844f1ffb36c35b19c9"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/Vault/Models/Folder.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"f990f406aaafe2be3b49f9d8b1f22941b3d64ee3f2ffe48bcc74343d5a60b480"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/Vault/Models/SecurityTask.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0477cd85ab6cd91b7e34934232e14e8f5bff5a9941d84160fa4e7e23c5080ab3"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/Vault/Repositories/CipherRepository.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"3b686aefadb3b8e6047f47ca215f7b2304a2481dbbe960bb3457c837740d5f19"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/Vault/Repositories/FolderRepository.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6755e7e5e9bdf452779f8c0dd66b7f290aabc9ff60cf32f99a0397d69e8790c5"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/Vault/Repositories/Queries/UserSecurityTasksByCipherIdsQuery.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d859d1071e46a62398caa59c2ac6afa376ab630c54afaa867e55403d90550de4"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Notifications/AnonymousNotificationsHub.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"69aa129329c7a565f51ceb9f8b167b44856f8c77ebe72a32bcf6cc5711726e11"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Notifications/HeartbeatHostedService.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a02b74f5a4d4e1920a705c8f05fb7bb5b17de5f1c4de33013c430d2484c5d55c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Notifications/NotificationsHub.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c51e85de4889aef6a2ad41a2a1ed29a41eb69b64f9ea05e0f5da1140991680cd"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Notifications/SubjectUserIdProvider.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6a17f87f7d03a6f8c0b628c6663047cdd810aa71190888f3f1f014a65db2bfa8"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/SharedWeb/Health/HealthCheckServiceExtensions.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"1631f23e6e06eaf74b56ca5b3f24dff9890e9c83ebdeac1a37b1d8e20f479fa5"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/SharedWeb/Utilities/DisplayAttributeHelpers.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"7d2a73bb84983f3d1183d1a5a9095796e2b42ba9fb1e8dfd63cc76f3f2431297"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/SharedWeb/Utilities/ExceptionHandlerFilterAttribute.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"f3ed0744e92dbe5d51266ec0c762e5e814c72d826f7a6d2af3a88c74576e488d"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/SharedWeb/Utilities/ServiceCollectionExtensions.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"910bed0fee5667fbc1e4030fb0d310557e15a7fb63dc48866a847a26415dacac"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch \u2014 narrow/filtered/commented, treated as intentional"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/SharedWeb/Utilities/ServiceCollectionExtensions.cs"},"region":{"startLine":615}}}],"partialFingerprints":{"codehealthFindingId/v1":"6933c5b437a89f8c7a7426ffd614d033a51c1379217870e3f83a0f5263b76655"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Commercial.Core/AdminConsole/Providers/RemoveOrganizationFromProviderCommand.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a916b81887727ba09029a3a3433d4753b6564c0e56e5232688cfbeba157263e2"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Commercial.Core/AdminConsole/Services/ProviderService.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c5121670ac15a2d5865c1b2f8d61c868416f7e383ade5ffbfba01a87711a51d2"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Commercial.Core/Billing/Providers/Models/ProviderClientInvoiceReportRow.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"dcd261a492a537312b6a3dc3fa6fc949d85fe6256626c4ede142909bfd58ddf9"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Potentially DRY this out with the GetOrganizationWarningsQuery \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Commercial.Core/Billing/Providers/Queries/GetProviderWarningsQuery.cs"},"region":{"startLine":93}}}],"partialFingerprints":{"codehealthFindingId/v1":"d8bfe75c1702c45f597c058016c0a364fb896abaa2014bf096bcb15c28284af3"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Commercial.Core/Billing/Providers/Services/ProviderBillingService.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"59177d95b428a8c55f9590f4f29917f60a550adbf857c23128deb21c29efcf40"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Replace with SPROC \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Commercial.Core/Billing/Providers/Services/ProviderBillingService.cs"},"region":{"startLine":875}}}],"partialFingerprints":{"codehealthFindingId/v1":"9bcf90756ea30314ce01a2beee2fd317bf9081adfe234e9949330425138ecd7e"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Replace with SPROC \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Commercial.Core/Billing/Providers/Services/ProviderBillingService.cs"},"region":{"startLine":889}}}],"partialFingerprints":{"codehealthFindingId/v1":"9bcf90756ea30314ce01a2beee2fd317bf9081adfe234e9949330425138ecd7e"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Commercial.Core/SecretsManager/Commands/Porting/ImportCommand.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a9756f64ce15157902de938218980501930d48dfb58ac5a02d362c000a8eed21"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Commercial.Core/SecretsManager/Commands/Projects/CreateProjectCommand.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"f0a6e94b1b7aac0a56520a3560fca2ba73fcecfc8295179ff1513abbe2c80c54"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Commercial.Core/SecretsManager/Commands/ServiceAccounts/CreateServiceAccountCommand.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ab8fe2eaf6cd57e819cc6253887854a368450aaa40e9bd58abe248a75f5c0674"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Commercial.Core/SecretsManager/Queries/AccessClientQuery.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"77f50fb80533ce86903fe437eef1e0a90c95cc92d11aa4f6fa8cf13d9628a974"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Scim/Context/ScimContext.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"50e1990e49c6193c4a39e9166e37d65137f1ce8bb9809cc2dcd1c19d1f136f96"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Scim/Controllers/v2/GroupsController.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0eb325de233d3ef3ffa5b04c90d69382d4042b6355f8622f35495c09cea2a89f"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Scim/Controllers/v2/UsersController.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c80849c43130ea25d1ad28be5613243e9ba0c662d9b25a9a2b98f11f952808fd"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Scim/Groups/GetGroupsListQuery.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ccb56406bad38f56137af9756fa50e73df2f78ed1075893d3ddb9825d6ece132"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Scim/Groups/PatchGroupCommand.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e463a6985473b760d2976f37b4d8462197b1087cec53ca959c0254596173cfe5"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Scim/Models/BaseScimGroupModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"3fc6517f160579eb27d98566157de61f32897beb1a8fdc2ed195b74a9ff8cd85"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Scim/Models/BaseScimModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"43717ce635e9f235b6fdb71b75b1e40e9ae75c508350c039f8d9f023e18e1834"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Scim/Models/BaseScimUserModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"1c24ffea8928f7b2670de9b25b321f9d1ec744e5b27df201f5a50a6e3e01a8b0"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Scim/Models/ScimErrorResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"2afd65d05776e3858f3ad061026966dee7524158dd1579e37fed984e9a6d6e97"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Scim/Models/ScimGroupRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"49aa6296ecdd5a11bf6a5f0a090c0329ee68e8da107ac89fd38c2a0b23ecfff7"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Scim/Models/ScimGroupResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"58965cc60c66d3a21376847427b323c358ff883fc50c7fda1a0a6b0d76bd40c5"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Scim/Models/ScimListResponseModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a27f18833eee4f6dd090b685684cb6ae984774853b46ac4e4cebbd87caa98540"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Scim/Models/ScimPatchModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6e217aba8271b5819455cb68f5fc5b6f9fbb5fbabaa84956edab7b6700046412"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Scim/Models/ScimUserRequestModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"130c9b32323f88925789563194f7a47bd991410f730fb2375378ac3975317c23"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Remove when OrganizationUser methods are moved out of OrganizationService, this noop dependency should \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Scim/Startup.cs"},"region":{"startLine":78}}}],"partialFingerprints":{"codehealthFindingId/v1":"4f39e0d1b142e8d3a404f497e0f59fe4ab96d0cd3d6ddb7f0b2e2cebf963c808"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: no longer be required - see PM-1880 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Scim/Startup.cs"},"region":{"startLine":79}}}],"partialFingerprints":{"codehealthFindingId/v1":"4f39e0d1b142e8d3a404f497e0f59fe4ab96d0cd3d6ddb7f0b2e2cebf963c808"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Scim/Users/GetUsersListQuery.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"1fe7277d623aa41f0e0fb7ec871d710c1a2f3125667dc49ecd35b936a67c1c41"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Scim/Users/Interfaces/IPostUserCommand.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"26e9fa576f8981a3d56443880fdeadedbfa4c84efb23044c37e626e903a21bda"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Sso/Controllers/AccountController.cs"},"region":{"startLine":164}}}],"partialFingerprints":{"codehealthFindingId/v1":"eb094f5fc980dd88532ce27e6a4bbc2d63065ed2c18e5ac593907c9658e14f22"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Sso/Controllers/AccountController.cs"},"region":{"startLine":287}}}],"partialFingerprints":{"codehealthFindingId/v1":"eb094f5fc980dd88532ce27e6a4bbc2d63065ed2c18e5ac593907c9658e14f22"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Sso/Controllers/AccountController.cs"},"region":{"startLine":336}}}],"partialFingerprints":{"codehealthFindingId/v1":"eb094f5fc980dd88532ce27e6a4bbc2d63065ed2c18e5ac593907c9658e14f22"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Sso/Controllers/AccountController.cs"},"region":{"startLine":359}}}],"partialFingerprints":{"codehealthFindingId/v1":"eb094f5fc980dd88532ce27e6a4bbc2d63065ed2c18e5ac593907c9658e14f22"}},{"ruleId":"D17","level":"warning","message":{"text":"HackComment: // HACK: Temporary workaround for the time being that doesn\u0027t try to sign out of OneLogin schemes, \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Sso/Controllers/AccountController.cs"},"region":{"startLine":373}}}],"partialFingerprints":{"codehealthFindingId/v1":"03bc6c1c4f934667d093a0d47c37bcd107cdc6d874c743ad9b684afdab5ddfde"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Sso/Controllers/AccountController.cs"},"region":{"startLine":409}}}],"partialFingerprints":{"codehealthFindingId/v1":"eb094f5fc980dd88532ce27e6a4bbc2d63065ed2c18e5ac593907c9658e14f22"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: //Todo: Validate provider is a valid GUID with TryParse instead. When this is invalid it throws an exception \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Sso/Controllers/AccountController.cs"},"region":{"startLine":412}}}],"partialFingerprints":{"codehealthFindingId/v1":"b792c2f1edd6910eed2271c4fe403cf6ae665dc8c2ee7137953ec848c802c435"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: support non-org (server-wide) SSO in the future? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Sso/Controllers/AccountController.cs"},"region":{"startLine":770}}}],"partialFingerprints":{"codehealthFindingId/v1":"b792c2f1edd6910eed2271c4fe403cf6ae665dc8c2ee7137953ec848c802c435"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Sso/Controllers/AccountController.cs"},"region":{"startLine":876}}}],"partialFingerprints":{"codehealthFindingId/v1":"eb094f5fc980dd88532ce27e6a4bbc2d63065ed2c18e5ac593907c9658e14f22"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Sso/Controllers/AccountController.cs"},"region":{"startLine":923}}}],"partialFingerprints":{"codehealthFindingId/v1":"eb094f5fc980dd88532ce27e6a4bbc2d63065ed2c18e5ac593907c9658e14f22"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Sso/Controllers/HomeController.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"3d797b47465c3091b635577537910cb44b037ee17cc3ca830a74a48c2db8c216"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Sso/Models/ErrorViewModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ccee9caa184fa3b902a6e1308ebb85ebc8a7aaa9f8de16e3f5bd076abdc4ade7"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Sso/Models/RedirectViewModel.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"1b8132342c065fa5f232fd4f6c10702aa09fa6610eb2f7270a40d1b3f8296335"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Sso/Models/SamlEnvironment.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d1454d833fd9fe58ffaee834838516be4b505856f239332579f4b7b778981be7"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Remove when OrganizationUser methods are moved out of OrganizationService, this noop dependency should \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Sso/Startup.cs"},"region":{"startLine":86}}}],"partialFingerprints":{"codehealthFindingId/v1":"ffb7211b40c5698a790aed1b9b1df09d6f80c64e455fabdb25815834963a1dd0"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: no longer be required - see PM-1880 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Sso/Startup.cs"},"region":{"startLine":87}}}],"partialFingerprints":{"codehealthFindingId/v1":"ffb7211b40c5698a790aed1b9b1df09d6f80c64e455fabdb25815834963a1dd0"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Sso/Utilities/ClaimsExtensions.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"044d747d0b6f918fb0322abe34a8bba96fc5cc0806164b50619c82415ed0060f"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Sso/Utilities/DynamicAuthenticationSchemeProvider.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d07d1bf16e67429f27fe9e259deed9b0c7ed76cb911a5c770fe710209f28381f"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Sso/Utilities/ExtendedOptionsMonitorCache.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"056ad7dec9f789f07c7886e401643226308adad61eaa8a6fd0d9eba3daed9f8b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Sso/Utilities/OpenIdConnectOptionsExtensions.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c008e885d8c817ff8e170322b4ae70fd35ded23abfcbf56962ce01c1efecd4eb"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Sso/Utilities/Saml2OptionsExtensions.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"2fd8b989a640ace1c21181f74c959181c839dc38a9d520eaa4fa594c81c4facd"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Sso/Utilities/ServiceCollectionExtensions.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9334457f40acf3fc407ad5cc9fb020490087b36d7edb658a1216b556cbf221cb"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/test/SSO.Test/Controllers/AccountControllerTest.cs"},"region":{"startLine":391}}}],"partialFingerprints":{"codehealthFindingId/v1":"0b78eb333cd3a65df42246923068077397c96e9b044169e94baa08961698a78a"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/test/SSO.Test/Controllers/AccountControllerTest.cs"},"region":{"startLine":459}}}],"partialFingerprints":{"codehealthFindingId/v1":"0b78eb333cd3a65df42246923068077397c96e9b044169e94baa08961698a78a"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/test/SSO.Test/Controllers/AccountControllerTest.cs"},"region":{"startLine":518}}}],"partialFingerprints":{"codehealthFindingId/v1":"0b78eb333cd3a65df42246923068077397c96e9b044169e94baa08961698a78a"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Delete this test when the PM37165_RotateUserApiKeyCommand flag is cleaned up \u2014 the legacy path \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Api.IntegrationTest/Controllers/AccountsControllerTest.cs"},"region":{"startLine":1546}}}],"partialFingerprints":{"codehealthFindingId/v1":"36b8b10d6972c4f374c2530b7b830abf846b0c440b5022bc5e31b6fb8016c9f2"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: When the PM37165_RotateUserApiKeyCommand flag is cleaned up, rename this to \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Api.IntegrationTest/Controllers/AccountsControllerTest.cs"},"region":{"startLine":1570}}}],"partialFingerprints":{"codehealthFindingId/v1":"36b8b10d6972c4f374c2530b7b830abf846b0c440b5022bc5e31b6fb8016c9f2"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Delete this test when the PM37165_RotateUserApiKeyCommand flag is cleaned up. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Api.Test/Auth/Controllers/AccountsControllerTests.cs"},"region":{"startLine":357}}}],"partialFingerprints":{"codehealthFindingId/v1":"5e03ab4719ecfeed1b04b392823aa87da35195218d08be46feb00a5da3896600"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: When the PM37165_RotateUserApiKeyCommand flag is cleaned up, rename this to \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Api.Test/Auth/Controllers/AccountsControllerTests.cs"},"region":{"startLine":374}}}],"partialFingerprints":{"codehealthFindingId/v1":"5e03ab4719ecfeed1b04b392823aa87da35195218d08be46feb00a5da3896600"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable CS0618 // asserting the legacy path while it still exists"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Api.Test/Auth/Controllers/AccountsControllerTests.cs"},"region":{"startLine":368}}}],"partialFingerprints":{"codehealthFindingId/v1":"fbc1921a3eae3d70bf8025cd8f53fb5694b0e1e5842511baf02fb1683f4f1699"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable CS0618 // asserting the legacy path was NOT called"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Api.Test/Auth/Controllers/AccountsControllerTests.cs"},"region":{"startLine":387}}}],"partialFingerprints":{"codehealthFindingId/v1":"fbc1921a3eae3d70bf8025cd8f53fb5694b0e1e5842511baf02fb1683f4f1699"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: On server, make public certificate required for SAML2 SSO: https://bitwarden.atlassian.net/browse/PM-26028 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Api.Test/Auth/Models/Request/OrganizationSsoRequestModelTests.cs"},"region":{"startLine":277}}}],"partialFingerprints":{"codehealthFindingId/v1":"ef6107368bc487887612d7aabd2aaacb656f5fc7d69ee9481b9c6758efd7f1e6"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable CS0618 // Type or member is obsolete"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Api.Test/Auth/Models/Request/OrganizationSsoRequestModelTests.cs"},"region":{"startLine":125}}}],"partialFingerprints":{"codehealthFindingId/v1":"c755141333705434057379c1613c910f98a0a24ab002bee778f1864b448082c7"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostDeleteAsync_AllParamsProvided_Succeeds"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Api.Test/Dirt/Controllers/OrganizationIntegrationControllerTests.cs"},"region":{"startLine":168}}}],"partialFingerprints":{"codehealthFindingId/v1":"f88f69d81da9a003a78f63f843e977de3e72a76d0009a82954bc3ef0a744bc95"}},{"ruleId":"D17","level":"note","message":{"text":"ObsoleteWithoutCallers: [Obsolete] PostDeleteAsync_AllParamsProvided_Succeeds"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Api.Test/Dirt/Controllers/OrganizationIntegrationsConfigurationControllerTests.cs"},"region":{"startLine":38}}}],"partialFingerprints":{"codehealthFindingId/v1":"981020b6d8baa73341e130ebeeeb37f19f3a2f052a2108f039d0be580cdc303e"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Re-enable in PM-37469 when UseRiskInsights access control is restored \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Api.Test/Dirt/OrganizationReportsControllerTests.cs"},"region":{"startLine":227}}}],"partialFingerprints":{"codehealthFindingId/v1":"130e3c7e2c495d44f27adab1dbbb246e47920b1c0667af66fecfc438ed809da3"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Re-enable in PM-37469 when UseRiskInsights access control is restored \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Api.Test/Dirt/OrganizationReportsControllerTests.cs"},"region":{"startLine":1644}}}],"partialFingerprints":{"codehealthFindingId/v1":"130e3c7e2c495d44f27adab1dbbb246e47920b1c0667af66fecfc438ed809da3"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Re-enable in PM-37469 when UseRiskInsights access control is restored \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Api.Test/Dirt/OrganizationReportsControllerTests.cs"},"region":{"startLine":1662}}}],"partialFingerprints":{"codehealthFindingId/v1":"130e3c7e2c495d44f27adab1dbbb246e47920b1c0667af66fecfc438ed809da3"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Remove this test after https://bitwarden.atlassian.net/browse/PM-31001 is resolved. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Api.Test/KeyManagement/Validators/OrganizationUserRotationValidatorTests.cs"},"region":{"startLine":203}}}],"partialFingerprints":{"codehealthFindingId/v1":"0bad6ae9a1650bf78efab9e7bd5eeb3fd4fb8508db0bf1587928cf1345ab6a94"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Api.Test/Tools/Controllers/ImportCiphersControllerTests.cs"},"region":{"startLine":838}}}],"partialFingerprints":{"codehealthFindingId/v1":"0e3ec375d07ced2acadd79dc4d4da6e36bc39214926b4f559d1546382031e6c5"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Common/AutoFixture/Attributes/BitMemberAutoDataAttribute.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d24b9b59236580305bbec56f566f0d0a9d92ff0d68e07abddd28a10e95d499e3"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Common/AutoFixture/Attributes/CustomAutoDataAttribute.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"678c641b5a1647bc2203b8d3c5e18f089366a6a6f5ae6e7c23a6d53db24cbe31"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Common/AutoFixture/Attributes/EnvironmentDataAttribute.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9f2356dbd02e6a99a88bec961210ac8cda970024dc127bf8a112750a67626296"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Common/AutoFixture/Attributes/JsonDocumentCustomizeAttribute.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"bfab904f4d45e92aff7bd6f53bb320f20bdbec2ed7d95eb8bb7f92a7e908525b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Common/AutoFixture/BuilderWithoutAutoProperties.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"fadc11d617b93dcb785665345bb55b516b03980205156958f65efd9820d42587"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Common/AutoFixture/JsonDocumentFixtures.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"f2d0b8a65d053cf302b4dfc26d31a94796f3e84ef0d2fc8dbed34b64f77764ff"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Common/AutoFixture/SutProvider.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"1c63eaa702e457078c68c15bcef5b8caa510da95dfa17d68fb8ef30dbdad86f3"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Common/AutoFixture/SutProviderCustomization.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"674d225cf9ea66ae156cd786720342ba8eaa498ff00e79eee3c52c9c53d85553"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Common/AutoFixture/SutProviderExtensions.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"67716e5d8b6edbc466bf135ede5de795c6b0c632c1cc3121614de4a1a86bdcf2"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Common/Fakes/FakeDataProtectorTokenFactory.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"62dc598ab97df4891c1570b0cbd0281e19685d5f29fa8ea8554f38152047d0a3"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Common/Helpers/AssertHelper.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"33b8b476b1f8362884a9b9ef9e304f58fc413f1a17100492955ed6bfd127a81d"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Common/MockedHttpClient/HttpResponseBuilder.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e37e3c43279a4141effb839d0aa0a5f9de411cfe18cc57e573987877ef8f522c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Common/MockedHttpClient/MockedHttpResponse.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"8c2581f8ee60529f44350c0bec46b9871cada98980a61f4894d444cfd96d91c6"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Determine if we need to test Braintree.CreditCard \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/Billing/Services/SubscriberServiceTests.cs"},"region":{"startLine":874}}}],"partialFingerprints":{"codehealthFindingId/v1":"9b3a444b9a79af40404c052f051bf3d27b106d58fa6e112952107445d02d6741"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Determine if we need to test Braintree.UsBankAccount \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/Billing/Services/SubscriberServiceTests.cs"},"region":{"startLine":876}}}],"partialFingerprints":{"codehealthFindingId/v1":"9b3a444b9a79af40404c052f051bf3d27b106d58fa6e112952107445d02d6741"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/NotificationCenter/Authorization/NotificationAuthorizationHandlerTest.cs"},"region":{"startLine":301}}}],"partialFingerprints":{"codehealthFindingId/v1":"3cbfc38df814bac5eaa128fa7569b3667be21936e01dd2858204ff7b9509e765"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: call ReferenceEventService - see AC-1481 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/OrganizationFeatures/OrganizationSubscriptionUpdate/UpdateSecretsManagerSubscriptionCommandTests.cs"},"region":{"startLine":102}}}],"partialFingerprints":{"codehealthFindingId/v1":"c107db0a26c2238e257933562512e26e450023dea10251526ff6ce9d5d5eac8b"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: call ReferenceEventService - see AC-1481 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/OrganizationFeatures/OrganizationSubscriptionUpdate/UpdateSecretsManagerSubscriptionCommandTests.cs"},"region":{"startLine":152}}}],"partialFingerprints":{"codehealthFindingId/v1":"c107db0a26c2238e257933562512e26e450023dea10251526ff6ce9d5d5eac8b"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: call ReferenceEventService - see AC-1481 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/OrganizationFeatures/OrganizationSubscriptionUpdate/UpdateSecretsManagerSubscriptionCommandTests.cs"},"region":{"startLine":273}}}],"partialFingerprints":{"codehealthFindingId/v1":"c107db0a26c2238e257933562512e26e450023dea10251526ff6ce9d5d5eac8b"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: call ReferenceEventService - see AC-1481 \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/OrganizationFeatures/OrganizationSubscriptionUpdate/UpdateSecretsManagerSubscriptionCommandTests.cs"},"region":{"startLine":1209}}}],"partialFingerprints":{"codehealthFindingId/v1":"c107db0a26c2238e257933562512e26e450023dea10251526ff6ce9d5d5eac8b"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: What options? \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/Platform/Push/Engines/PushTestBase.cs"},"region":{"startLine":522}}}],"partialFingerprints":{"codehealthFindingId/v1":"b8240006f33c9fa824eeff646d67e73c60e9dfafcdd07a15530ae4482ee3c35c"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Switch to use env variable \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/Services/HandlebarsMailServiceTests.cs"},"region":{"startLine":128}}}],"partialFingerprints":{"codehealthFindingId/v1":"fedb0e77b07abac1a6b8633cfaa6308fef43d7761244d8a5bea6a800db659a08"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: #pragma warning disable CS0618 // intentionally exercising the obsolete legacy path"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/Services/UserServiceTests.cs"},"region":{"startLine":638}}}],"partialFingerprints":{"codehealthFindingId/v1":"44ba670a59e81320d6225b730b63c8eb24bad33d9337b88d910671be20b157c5"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/TempDirectory.cs"},"region":{"startLine":34}}}],"partialFingerprints":{"codehealthFindingId/v1":"aadec21b70030eaa2ed1e7300e1dce8580e0286004b1c679784a4efc4aa88601"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Add more asserts to make sure important aspects of \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/Utilities/CoreHelpersTests.cs"},"region":{"startLine":33}}}],"partialFingerprints":{"codehealthFindingId/v1":"c7fd45f72d69ef78f85748b956cbaca36d16b69441bcf631c8c5aa2a65b0d1bf"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Test the other ToArrayTVP Methods \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/Utilities/CoreHelpersTests.cs"},"region":{"startLine":118}}}],"partialFingerprints":{"codehealthFindingId/v1":"c7fd45f72d69ef78f85748b956cbaca36d16b69441bcf631c8c5aa2a65b0d1bf"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Add more tests \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/Utilities/CoreHelpersTests.cs"},"region":{"startLine":138}}}],"partialFingerprints":{"codehealthFindingId/v1":"c7fd45f72d69ef78f85748b956cbaca36d16b69441bcf631c8c5aa2a65b0d1bf"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Should probably add more Asserts down the line \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/Utilities/CoreHelpersTests.cs"},"region":{"startLine":162}}}],"partialFingerprints":{"codehealthFindingId/v1":"c7fd45f72d69ef78f85748b956cbaca36d16b69441bcf631c8c5aa2a65b0d1bf"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: PM-34091 - when cleaning up the feature flag, refactor this summary. \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Identity.IntegrationTest/Endpoints/DevicesLastActivityDateBumpTests.cs"},"region":{"startLine":15}}}],"partialFingerprints":{"codehealthFindingId/v1":"f6ab9a5b18941f28731b4d432ac394320dc8aa542512474fd699ee6bf2a5d389"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: PM-34091 - when cleaning up the feature flag, drop the SubstituteService \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Identity.IntegrationTest/Endpoints/DevicesLastActivityDateBumpTests.cs"},"region":{"startLine":38}}}],"partialFingerprints":{"codehealthFindingId/v1":"f6ab9a5b18941f28731b4d432ac394320dc8aa542512474fd699ee6bf2a5d389"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: PM-34091 - when cleaning up the feature flag, drop the SubstituteService \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Identity.IntegrationTest/Endpoints/DevicesLastActivityDateBumpTests.cs"},"region":{"startLine":77}}}],"partialFingerprints":{"codehealthFindingId/v1":"f6ab9a5b18941f28731b4d432ac394320dc8aa542512474fd699ee6bf2a5d389"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: PM-34091 - when cleaning up the feature flag, delete this helper AND the \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Identity.IntegrationTest/Endpoints/DevicesLastActivityDateBumpTests.cs"},"region":{"startLine":138}}}],"partialFingerprints":{"codehealthFindingId/v1":"f6ab9a5b18941f28731b4d432ac394320dc8aa542512474fd699ee6bf2a5d389"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Identity.IntegrationTest/Endpoints/IdentityServerSsoTests.cs"},"region":{"startLine":577}}}],"partialFingerprints":{"codehealthFindingId/v1":"f95dff5ef26cb670e11937bc032505b6126447c8abb0bf2304def4901be080ea"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Identity.IntegrationTest/Endpoints/IdentityServerSsoTests.cs"},"region":{"startLine":599}}}],"partialFingerprints":{"codehealthFindingId/v1":"f95dff5ef26cb670e11937bc032505b6126447c8abb0bf2304def4901be080ea"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO PM-27326 decrease back to 1 once legacy testing is removed \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Identity.Test/Controllers/AccountsControllerTests.cs"},"region":{"startLine":497}}}],"partialFingerprints":{"codehealthFindingId/v1":"34c2ce92a702028d76c3d0f7f1972aac824ae67de0e1dfd1b0ab9c2fb91af9ba"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO PM-27326 decrease back to 1 once legacy testing is removed \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Identity.Test/Controllers/AccountsControllerTests.cs"},"region":{"startLine":674}}}],"partialFingerprints":{"codehealthFindingId/v1":"34c2ce92a702028d76c3d0f7f1972aac824ae67de0e1dfd1b0ab9c2fb91af9ba"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: PM-34091 - remove feature flag mock setup when cleaning up feature flag \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Identity.Test/IdentityServer/BaseRequestValidatorTests.cs"},"region":{"startLine":1302}}}],"partialFingerprints":{"codehealthFindingId/v1":"ab8697a217c9bb27a002ec134e3b45bddf01f193c6676a4a6850b1ed2cf5580a"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: PM-34091 - remove this test when cleaning up feature flag (disabled case will no longer exist) \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Identity.Test/IdentityServer/BaseRequestValidatorTests.cs"},"region":{"startLine":1354}}}],"partialFingerprints":{"codehealthFindingId/v1":"ab8697a217c9bb27a002ec134e3b45bddf01f193c6676a4a6850b1ed2cf5580a"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: PM-34091 - remove feature flag mock setup when cleaning up feature flag \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Identity.Test/IdentityServer/BaseRequestValidatorTests.cs"},"region":{"startLine":1397}}}],"partialFingerprints":{"codehealthFindingId/v1":"ab8697a217c9bb27a002ec134e3b45bddf01f193c6676a4a6850b1ed2cf5580a"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: PM-34091 - remove feature flag mock setup when cleaning up feature flag \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Identity.Test/IdentityServer/BaseRequestValidatorTests.cs"},"region":{"startLine":1441}}}],"partialFingerprints":{"codehealthFindingId/v1":"ab8697a217c9bb27a002ec134e3b45bddf01f193c6676a4a6850b1ed2cf5580a"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: PM-34091 - remove feature flag mock setup when cleaning up feature flag \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Identity.Test/IdentityServer/BaseRequestValidatorTests.cs"},"region":{"startLine":1484}}}],"partialFingerprints":{"codehealthFindingId/v1":"ab8697a217c9bb27a002ec134e3b45bddf01f193c6676a4a6850b1ed2cf5580a"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: PM-34091 - remove feature flag mock setup when cleaning up feature flag \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Identity.Test/IdentityServer/BaseRequestValidatorTests.cs"},"region":{"startLine":1528}}}],"partialFingerprints":{"codehealthFindingId/v1":"ab8697a217c9bb27a002ec134e3b45bddf01f193c6676a4a6850b1ed2cf5580a"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: PM-34091 - delete these two tests when cleaning up the feature flag; they \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Identity.Test/IdentityServer/BaseRequestValidatorTests.cs"},"region":{"startLine":1577}}}],"partialFingerprints":{"codehealthFindingId/v1":"ab8697a217c9bb27a002ec134e3b45bddf01f193c6676a4a6850b1ed2cf5580a"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: PM-34091 - remove feature flag mock setup when cleaning up feature flag \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Identity.Test/IdentityServer/CustomTokenRequestValidatorTests.cs"},"region":{"startLine":101}}}],"partialFingerprints":{"codehealthFindingId/v1":"972cf32aa1fa5a7a028bfb7de35cf2c7ef52f76b7b8d9d996ff71ab58e06149b"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: PM-34091 - remove feature flag mock setup when cleaning up feature flag \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Identity.Test/IdentityServer/CustomTokenRequestValidatorTests.cs"},"region":{"startLine":121}}}],"partialFingerprints":{"codehealthFindingId/v1":"972cf32aa1fa5a7a028bfb7de35cf2c7ef52f76b7b8d9d996ff71ab58e06149b"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: PM-34091 - remove feature flag mock setup when cleaning up feature flag \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Identity.Test/IdentityServer/CustomTokenRequestValidatorTests.cs"},"region":{"startLine":146}}}],"partialFingerprints":{"codehealthFindingId/v1":"972cf32aa1fa5a7a028bfb7de35cf2c7ef52f76b7b8d9d996ff71ab58e06149b"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: PM-34091 - remove feature flag mock setup when cleaning up feature flag \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Identity.Test/IdentityServer/CustomTokenRequestValidatorTests.cs"},"region":{"startLine":172}}}],"partialFingerprints":{"codehealthFindingId/v1":"972cf32aa1fa5a7a028bfb7de35cf2c7ef52f76b7b8d9d996ff71ab58e06149b"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: PM-34091 - remove feature flag mock setup when cleaning up feature flag \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Identity.Test/IdentityServer/CustomTokenRequestValidatorTests.cs"},"region":{"startLine":207}}}],"partialFingerprints":{"codehealthFindingId/v1":"972cf32aa1fa5a7a028bfb7de35cf2c7ef52f76b7b8d9d996ff71ab58e06149b"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: PM-34091 - remove feature flag mock setup when cleaning up feature flag \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Identity.Test/IdentityServer/CustomTokenRequestValidatorTests.cs"},"region":{"startLine":238}}}],"partialFingerprints":{"codehealthFindingId/v1":"972cf32aa1fa5a7a028bfb7de35cf2c7ef52f76b7b8d9d996ff71ab58e06149b"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: PM-34091 - remove this test when cleaning up feature flag (disabled case will no longer exist) \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Identity.Test/IdentityServer/CustomTokenRequestValidatorTests.cs"},"region":{"startLine":305}}}],"partialFingerprints":{"codehealthFindingId/v1":"972cf32aa1fa5a7a028bfb7de35cf2c7ef52f76b7b8d9d996ff71ab58e06149b"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: PM-34091 - delete this test and the next when cleaning up the feature flag; \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Identity.Test/IdentityServer/CustomTokenRequestValidatorTests.cs"},"region":{"startLine":336}}}],"partialFingerprints":{"codehealthFindingId/v1":"972cf32aa1fa5a7a028bfb7de35cf2c7ef52f76b7b8d9d996ff71ab58e06149b"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: PM-34091 - when cleaning up the feature flag, drop the CurrentContext \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Identity.Test/IdentityServer/CustomTokenRequestValidatorTests.cs"},"region":{"startLine":401}}}],"partialFingerprints":{"codehealthFindingId/v1":"972cf32aa1fa5a7a028bfb7de35cf2c7ef52f76b7b8d9d996ff71ab58e06149b"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (NullReferenceException) in test code (best-effort teardown)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Identity.Test/IdentityServer/RequestValidators/WebAuthnGrantValidatorTests.cs"},"region":{"startLine":221}}}],"partialFingerprints":{"codehealthFindingId/v1":"1ec6f9625a781aed28774fe791008305957f1e7ad1da0439b922bc0f3fa8ed15"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] SetErrorResult"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Identity.Test/Wrappers/BaseRequestValidatorTestWrapper.cs"},"region":{"startLine":108}}}],"partialFingerprints":{"codehealthFindingId/v1":"34985991280f31a73582daeee886a3919a276fe8cb5681cbff99f33258486194"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] SetTwoFactorResult"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Identity.Test/Wrappers/BaseRequestValidatorTestWrapper.cs"},"region":{"startLine":126}}}],"partialFingerprints":{"codehealthFindingId/v1":"34985991280f31a73582daeee886a3919a276fe8cb5681cbff99f33258486194"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Make a base EF Customization with IgnoreVirtualMembers/GlobalSettings/All repos and inherit \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Infrastructure.EFIntegration.Test/Auth/AutoFixture/EmergencyAccessFixtures.cs"},"region":{"startLine":40}}}],"partialFingerprints":{"codehealthFindingId/v1":"ae1e70b99f1b44d5d94abef4dcd7e4992d9ac178ffb547b83f844a6e5f14d140"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: EF does not enforce this being NOT NULL \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Infrastructure.IntegrationTest/AdminConsole/Repositories/OrganizationUserRepository/OrganizationUserRepositoryTests.cs"},"region":{"startLine":209}}}],"partialFingerprints":{"codehealthFindingId/v1":"e81c9277c6662f6286274befa93ae24677e3517252321a2e9054c8b60c4f8af2"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: EF does not enforce this being NOT NULL \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Infrastructure.IntegrationTest/AdminConsole/Repositories/OrganizationUserRepository/OrganizationUserRepositoryTests.cs"},"region":{"startLine":210}}}],"partialFingerprints":{"codehealthFindingId/v1":"e81c9277c6662f6286274befa93ae24677e3517252321a2e9054c8b60c4f8af2"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: EF does not enforce this being NOT NULL \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Infrastructure.IntegrationTest/AdminConsole/Repositories/OrganizationUserRepository/OrganizationUserRepositoryTests.cs"},"region":{"startLine":254}}}],"partialFingerprints":{"codehealthFindingId/v1":"e81c9277c6662f6286274befa93ae24677e3517252321a2e9054c8b60c4f8af2"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: EF does not enforce this being NOT NULL \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Infrastructure.IntegrationTest/AdminConsole/Repositories/OrganizationUserRepository/OrganizationUserRepositoryTests.cs"},"region":{"startLine":255}}}],"partialFingerprints":{"codehealthFindingId/v1":"e81c9277c6662f6286274befa93ae24677e3517252321a2e9054c8b60c4f8af2"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: EF does not enforce this being NOT NULL \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Infrastructure.IntegrationTest/AdminConsole/Repositories/OrganizationUserRepository/OrganizationUserRepositoryTests.cs"},"region":{"startLine":348}}}],"partialFingerprints":{"codehealthFindingId/v1":"e81c9277c6662f6286274befa93ae24677e3517252321a2e9054c8b60c4f8af2"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: EF does not enforce this being NOT NULL \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Infrastructure.IntegrationTest/AdminConsole/Repositories/OrganizationUserRepository/OrganizationUserRepositoryTests.cs"},"region":{"startLine":349}}}],"partialFingerprints":{"codehealthFindingId/v1":"e81c9277c6662f6286274befa93ae24677e3517252321a2e9054c8b60c4f8af2"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: EF does not enforce this being NOT NULL \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Infrastructure.IntegrationTest/AdminConsole/Repositories/OrganizationUserRepository/OrganizationUserRepositoryTests.cs"},"region":{"startLine":417}}}],"partialFingerprints":{"codehealthFindingId/v1":"e81c9277c6662f6286274befa93ae24677e3517252321a2e9054c8b60c4f8af2"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: EF does not enforce this being NOT NULL \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Infrastructure.IntegrationTest/AdminConsole/Repositories/OrganizationUserRepository/OrganizationUserRepositoryTests.cs"},"region":{"startLine":418}}}],"partialFingerprints":{"codehealthFindingId/v1":"e81c9277c6662f6286274befa93ae24677e3517252321a2e9054c8b60c4f8af2"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: EF does not enforce this being NOT NULL \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Infrastructure.IntegrationTest/AdminConsole/Repositories/OrganizationUserRepository/OrganizationUserRepositoryTests.cs"},"region":{"startLine":486}}}],"partialFingerprints":{"codehealthFindingId/v1":"e81c9277c6662f6286274befa93ae24677e3517252321a2e9054c8b60c4f8af2"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: EF does not enforce this being NOT NULL \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Infrastructure.IntegrationTest/AdminConsole/Repositories/OrganizationUserRepository/OrganizationUserRepositoryTests.cs"},"region":{"startLine":487}}}],"partialFingerprints":{"codehealthFindingId/v1":"e81c9277c6662f6286274befa93ae24677e3517252321a2e9054c8b60c4f8af2"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: EF does not enforce this being NOT NULL \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Infrastructure.IntegrationTest/AdminConsole/Repositories/OrganizationUserRepository/OrganizationUserRepositoryTests.cs"},"region":{"startLine":873}}}],"partialFingerprints":{"codehealthFindingId/v1":"e81c9277c6662f6286274befa93ae24677e3517252321a2e9054c8b60c4f8af2"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: EF does not enforce this being NOT NULL \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Infrastructure.IntegrationTest/AdminConsole/Repositories/OrganizationUserRepository/OrganizationUserRepositoryTests.cs"},"region":{"startLine":874}}}],"partialFingerprints":{"codehealthFindingId/v1":"e81c9277c6662f6286274befa93ae24677e3517252321a2e9054c8b60c4f8af2"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: EF does not enforce this being NOT NULL \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Infrastructure.IntegrationTest/AdminConsole/Repositories/OrganizationUserRepository/OrganizationUserRepositoryTests.cs"},"region":{"startLine":907}}}],"partialFingerprints":{"codehealthFindingId/v1":"e81c9277c6662f6286274befa93ae24677e3517252321a2e9054c8b60c4f8af2"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: EF does not enforce this being NOT NULL \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Infrastructure.IntegrationTest/AdminConsole/Repositories/OrganizationUserRepository/OrganizationUserRepositoryTests.cs"},"region":{"startLine":908}}}],"partialFingerprints":{"codehealthFindingId/v1":"e81c9277c6662f6286274befa93ae24677e3517252321a2e9054c8b60c4f8af2"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: EF does not enforce this being NOT NULL \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Infrastructure.IntegrationTest/AdminConsole/Repositories/OrganizationUserRepository/OrganizationUserRepositoryTests.cs"},"region":{"startLine":940}}}],"partialFingerprints":{"codehealthFindingId/v1":"e81c9277c6662f6286274befa93ae24677e3517252321a2e9054c8b60c4f8af2"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: EF does not enforce this being NOT NULL, \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Infrastructure.IntegrationTest/AdminConsole/Repositories/OrganizationUserRepository/OrganizationUserRepositoryTests.cs"},"region":{"startLine":941}}}],"partialFingerprints":{"codehealthFindingId/v1":"e81c9277c6662f6286274befa93ae24677e3517252321a2e9054c8b60c4f8af2"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: EF Doesn\u0027t enforce this as not null \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Infrastructure.IntegrationTest/Auth/Repositories/AuthRequestRepositoryTests.cs"},"region":{"startLine":340}}}],"partialFingerprints":{"codehealthFindingId/v1":"e77ce816b53b879baa05cfe34007d1ec4447d61dbbb98e3ca33ac3ce0dfc1219"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: EF Doesn\u0027t enforce this as not null \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Infrastructure.IntegrationTest/Auth/Repositories/AuthRequestRepositoryTests.cs"},"region":{"startLine":341}}}],"partialFingerprints":{"codehealthFindingId/v1":"e77ce816b53b879baa05cfe34007d1ec4447d61dbbb98e3ca33ac3ce0dfc1219"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: EF Doesn\u0027t enforce this as not null \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Infrastructure.IntegrationTest/Auth/Repositories/AuthRequestRepositoryTests.cs"},"region":{"startLine":342}}}],"partialFingerprints":{"codehealthFindingId/v1":"e77ce816b53b879baa05cfe34007d1ec4447d61dbbb98e3ca33ac3ce0dfc1219"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: EF Doesn\u0027t enforce this as not null \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Infrastructure.IntegrationTest/Auth/Repositories/AuthRequestRepositoryTests.cs"},"region":{"startLine":343}}}],"partialFingerprints":{"codehealthFindingId/v1":"e77ce816b53b879baa05cfe34007d1ec4447d61dbbb98e3ca33ac3ce0dfc1219"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Could support keyed services/optional/nullable \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Infrastructure.IntegrationTest/DatabaseDataAttribute.cs"},"region":{"startLine":183}}}],"partialFingerprints":{"codehealthFindingId/v1":"400406d5fada77b5c32f1f262bf64bf7390d234a73bac03b5892aaebedb6d3ab"}},{"ruleId":"D17","level":"warning","message":{"text":"ObsoleteWithCallers: [Obsolete] DatabaseTheoryAttribute"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Infrastructure.IntegrationTest/DatabaseTheoryAttribute.cs"},"region":{"startLine":6}}}],"partialFingerprints":{"codehealthFindingId/v1":"a28c68cc161ad468f85a48fa3763428e8d3b67b63ddc349ce0114e6b87cd493f"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: EF Should enforce this \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Infrastructure.IntegrationTest/Tools/SendRepositoryTests.cs"},"region":{"startLine":22}}}],"partialFingerprints":{"codehealthFindingId/v1":"5a0ce20cadc759a578942e36c6cb7625072152a666e1ebe80a00bc57ba10c221"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: EF should enforce this \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Infrastructure.IntegrationTest/Tools/SendRepositoryTests.cs"},"region":{"startLine":25}}}],"partialFingerprints":{"codehealthFindingId/v1":"5a0ce20cadc759a578942e36c6cb7625072152a666e1ebe80a00bc57ba10c221"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: EF Should enforce this \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Infrastructure.IntegrationTest/Tools/SendRepositoryTests.cs"},"region":{"startLine":51}}}],"partialFingerprints":{"codehealthFindingId/v1":"5a0ce20cadc759a578942e36c6cb7625072152a666e1ebe80a00bc57ba10c221"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: EF should enforce this \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Infrastructure.IntegrationTest/Tools/SendRepositoryTests.cs"},"region":{"startLine":54}}}],"partialFingerprints":{"codehealthFindingId/v1":"5a0ce20cadc759a578942e36c6cb7625072152a666e1ebe80a00bc57ba10c221"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: EF Should enforce this \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Infrastructure.IntegrationTest/Tools/SendRepositoryTests.cs"},"region":{"startLine":60}}}],"partialFingerprints":{"codehealthFindingId/v1":"5a0ce20cadc759a578942e36c6cb7625072152a666e1ebe80a00bc57ba10c221"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: EF should enforce this \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Infrastructure.IntegrationTest/Tools/SendRepositoryTests.cs"},"region":{"startLine":63}}}],"partialFingerprints":{"codehealthFindingId/v1":"5a0ce20cadc759a578942e36c6cb7625072152a666e1ebe80a00bc57ba10c221"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: EF does not enforce this as NOT NULL \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Infrastructure.IntegrationTest/Vault/Repositories/CipherRepositoryTests.cs"},"region":{"startLine":40}}}],"partialFingerprints":{"codehealthFindingId/v1":"f1cca6a7047a3dfe39bc99b13a2c6da6bccb3f25675748089531aeeccfb9c0fc"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: EF does not enforce this as NOT NULL \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Infrastructure.IntegrationTest/Vault/Repositories/CipherRepositoryTests.cs"},"region":{"startLine":77}}}],"partialFingerprints":{"codehealthFindingId/v1":"f1cca6a7047a3dfe39bc99b13a2c6da6bccb3f25675748089531aeeccfb9c0fc"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: EF does not enforce this as NOT NULL \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Infrastructure.IntegrationTest/Vault/Repositories/CipherRepositoryTests.cs"},"region":{"startLine":113}}}],"partialFingerprints":{"codehealthFindingId/v1":"f1cca6a7047a3dfe39bc99b13a2c6da6bccb3f25675748089531aeeccfb9c0fc"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: EF does not enforce this as NOT NULL \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Infrastructure.IntegrationTest/Vault/Repositories/CipherRepositoryTests.cs"},"region":{"startLine":153}}}],"partialFingerprints":{"codehealthFindingId/v1":"f1cca6a7047a3dfe39bc99b13a2c6da6bccb3f25675748089531aeeccfb9c0fc"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: EF does not enforce this as NOT NULL \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Infrastructure.IntegrationTest/Vault/Repositories/CipherRepositoryTests.cs"},"region":{"startLine":160}}}],"partialFingerprints":{"codehealthFindingId/v1":"f1cca6a7047a3dfe39bc99b13a2c6da6bccb3f25675748089531aeeccfb9c0fc"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: EF does not enforce this as NOT NULL \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Infrastructure.IntegrationTest/Vault/Repositories/CipherRepositoryTests.cs"},"region":{"startLine":184}}}],"partialFingerprints":{"codehealthFindingId/v1":"f1cca6a7047a3dfe39bc99b13a2c6da6bccb3f25675748089531aeeccfb9c0fc"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Should we force similar casing for guids across DB\u0027s \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Infrastructure.IntegrationTest/Vault/Repositories/CipherRepositoryTests.cs"},"region":{"startLine":198}}}],"partialFingerprints":{"codehealthFindingId/v1":"f1cca6a7047a3dfe39bc99b13a2c6da6bccb3f25675748089531aeeccfb9c0fc"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Eventually add the license file to CI \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/IntegrationTestCommon/Factories/WebApplicationFactoryBase.cs"},"region":{"startLine":199}}}],"partialFingerprints":{"codehealthFindingId/v1":"109e299f6db06c52b6d844eaaf7a29b34fb2ee1c6003ee96f78a8ffea3f6217d"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Install and use azurite in CI pipeline \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/IntegrationTestCommon/Factories/WebApplicationFactoryBase.cs"},"region":{"startLine":207}}}],"partialFingerprints":{"codehealthFindingId/v1":"109e299f6db06c52b6d844eaaf7a29b34fb2ee1c6003ee96f78a8ffea3f6217d"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Install and use azurite in CI pipeline \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/IntegrationTestCommon/Factories/WebApplicationFactoryBase.cs"},"region":{"startLine":214}}}],"partialFingerprints":{"codehealthFindingId/v1":"109e299f6db06c52b6d844eaaf7a29b34fb2ee1c6003ee96f78a8ffea3f6217d"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/IntegrationTestCommon/Factories/WebApplicationFactoryExtensions.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"606a401eef167c5212cb31b37fae45e7d9cd36ad66804bb6d69fcdd74395cc3c"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/IntegrationTestCommon/FakeRemoteIpAddressMiddleware.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"df17c3e0f15fa1da4c49662ebf65939c400c48a26b135123b8d1e34891f29f72"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/IntegrationTestCommon/SqlServerTestDatabase.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9cbbc0448ad89c3b5dc4e9d0a9e5e7f69c911e4e18c615efccbc8cf11ec5e852"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/Migrator/DbMigrator.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"f4ad081cd359367ba1e68c2d8f15605e91595c403501ae883d126f165f8726d8"}},{"ruleId":"D17","level":"note","message":{"text":"Justified suppression: empty catch (JsonException) \u2014 narrow/filtered/commented, treated as intentional"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/RustSdk/RustSdkService.cs"},"region":{"startLine":179}}}],"partialFingerprints":{"codehealthFindingId/v1":"57399511817c3385e02ebf0284cc287b625f761284a870a0e2fc98cd669f6398"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Remove JsonIgnore condition when Rust SDK supports BankAccount cipher type \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/Seeder/Models/EncryptedCipherDto.cs"},"region":{"startLine":40}}}],"partialFingerprints":{"codehealthFindingId/v1":"e4cd35f177fcd9b8afda0596a8ddc865a1d1206e5bcffa63d55fffaf322a0932"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Remove JsonIgnore condition when Rust SDK supports DriversLicense cipher type \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/Seeder/Models/EncryptedCipherDto.cs"},"region":{"startLine":45}}}],"partialFingerprints":{"codehealthFindingId/v1":"e4cd35f177fcd9b8afda0596a8ddc865a1d1206e5bcffa63d55fffaf322a0932"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: Remove JsonIgnore condition when Rust SDK supports Passport cipher type \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/Seeder/Models/EncryptedCipherDto.cs"},"region":{"startLine":50}}}],"partialFingerprints":{"codehealthFindingId/v1":"e4cd35f177fcd9b8afda0596a8ddc865a1d1206e5bcffa63d55fffaf322a0932"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/Server/Program.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"87041e03b552b4cfbbb6107e9fde22bb200953ea4c7613bd7ce23ee36c5244f9"}},{"ruleId":"D17","level":"warning","message":{"text":"TodoComment: // TODO: This should be removed when asp.net natively support avif \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/Server/Startup.cs"},"region":{"startLine":64}}}],"partialFingerprints":{"codehealthFindingId/v1":"309b822fc8ed46488508f2afbc34cac6213cb5331cabe82056799649149478fc"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/Setup/AppIdBuilder.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a9087415b47d83229df611e347970cccfed45f4f38eac879f5ea6e34c07754fc"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/Setup/Configuration.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"3cff3acd16fefb651a4ddd4512f35f66749e5b4111f8e309bab3d8fc01fbb393"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/Setup/Context.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"76e6d4cb024989b8cd185cc28733fa8b6527d56de4367fd75e9ba94d12e70d7b"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/Setup/EnvironmentFileBuilder.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a4f5833c8b0d0f3fa8092efc7c3e592171aca214ef7411a61be6ebaff2f8a4bc"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/Setup/Helpers.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"21cd6089e5c4767d44ff90a6221ea37af6d3173efec201cdcda6cfd2f0e6b139"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/Setup/NginxConfigBuilder.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"29ee4ab62cc63917036f68998416c74dd64c157603c564a500198b18ed233545"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/Setup/Program.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"241a5418e1a7a731675de5d589fb40c9f18d2735fadde0fc80618071421aa929"}},{"ruleId":"D17","level":"warning","message":{"text":"FixmeComment: // FIXME: Update this file to be null safe and then delete the line below \u2014 source code is not a task system: move the work to your tracker and leave a reference instead (e.g. \u0060// REF: PROJ-123\u0060), so the task is planned where tasks live and the ticket links back to the code."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/Setup/YamlComments.cs"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"f715384756e8e24b84157b9752db0dc69b95d4b30e495a0890258d7c576ae10d"}},{"ruleId":"D17","level":"error","message":{"text":"NoWarnInCsproj: 1701"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Core.csproj"},"region":{"startLine":11}}}],"partialFingerprints":{"codehealthFindingId/v1":"5ca0f04afe5a7493c70ffb686617affb729ea94dc4269c2f4d110bd08fbc8d2e"}},{"ruleId":"D17","level":"error","message":{"text":"NoWarnInCsproj: 1702"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Core.csproj"},"region":{"startLine":11}}}],"partialFingerprints":{"codehealthFindingId/v1":"5ca0f04afe5a7493c70ffb686617affb729ea94dc4269c2f4d110bd08fbc8d2e"}},{"ruleId":"D17","level":"error","message":{"text":"NoWarnInCsproj: 1591"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Core.csproj"},"region":{"startLine":11}}}],"partialFingerprints":{"codehealthFindingId/v1":"5ca0f04afe5a7493c70ffb686617affb729ea94dc4269c2f4d110bd08fbc8d2e"}},{"ruleId":"D17","level":"error","message":{"text":"NoWarnInCsproj: 1573"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Core.csproj"},"region":{"startLine":11}}}],"partialFingerprints":{"codehealthFindingId/v1":"5ca0f04afe5a7493c70ffb686617affb729ea94dc4269c2f4d110bd08fbc8d2e"}},{"ruleId":"D17","level":"error","message":{"text":"NoWarnInCsproj: 1701"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Core.csproj"},"region":{"startLine":15}}}],"partialFingerprints":{"codehealthFindingId/v1":"5ca0f04afe5a7493c70ffb686617affb729ea94dc4269c2f4d110bd08fbc8d2e"}},{"ruleId":"D17","level":"note","message":{"text":"DuplicateNoWarn: NoWarn 1701 is listed more than once in this project file \u2014 remove the duplicate."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Core.csproj"},"region":{"startLine":15}}}],"partialFingerprints":{"codehealthFindingId/v1":"4efb08226dc9e0c23cf7dc9acf7b5ddee4514fd02cde2798c78af41746649b7d"}},{"ruleId":"D17","level":"error","message":{"text":"NoWarnInCsproj: 1702"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Core.csproj"},"region":{"startLine":15}}}],"partialFingerprints":{"codehealthFindingId/v1":"5ca0f04afe5a7493c70ffb686617affb729ea94dc4269c2f4d110bd08fbc8d2e"}},{"ruleId":"D17","level":"note","message":{"text":"DuplicateNoWarn: NoWarn 1702 is listed more than once in this project file \u2014 remove the duplicate."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Core.csproj"},"region":{"startLine":15}}}],"partialFingerprints":{"codehealthFindingId/v1":"4efb08226dc9e0c23cf7dc9acf7b5ddee4514fd02cde2798c78af41746649b7d"}},{"ruleId":"D17","level":"error","message":{"text":"NoWarnInCsproj: 1591"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Core.csproj"},"region":{"startLine":15}}}],"partialFingerprints":{"codehealthFindingId/v1":"5ca0f04afe5a7493c70ffb686617affb729ea94dc4269c2f4d110bd08fbc8d2e"}},{"ruleId":"D17","level":"note","message":{"text":"DuplicateNoWarn: NoWarn 1591 is listed more than once in this project file \u2014 remove the duplicate."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Core.csproj"},"region":{"startLine":15}}}],"partialFingerprints":{"codehealthFindingId/v1":"4efb08226dc9e0c23cf7dc9acf7b5ddee4514fd02cde2798c78af41746649b7d"}},{"ruleId":"D17","level":"error","message":{"text":"NoWarnInCsproj: 1573"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Core.csproj"},"region":{"startLine":15}}}],"partialFingerprints":{"codehealthFindingId/v1":"5ca0f04afe5a7493c70ffb686617affb729ea94dc4269c2f4d110bd08fbc8d2e"}},{"ruleId":"D17","level":"note","message":{"text":"DuplicateNoWarn: NoWarn 1573 is listed more than once in this project file \u2014 remove the duplicate."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Core.csproj"},"region":{"startLine":15}}}],"partialFingerprints":{"codehealthFindingId/v1":"4efb08226dc9e0c23cf7dc9acf7b5ddee4514fd02cde2798c78af41746649b7d"}},{"ruleId":"D17","level":"error","message":{"text":"NoWarnInCsproj: 1701"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Api.csproj"},"region":{"startLine":14}}}],"partialFingerprints":{"codehealthFindingId/v1":"db53ddf5b937dc2e6ddf6aa0f18ec2941bdeab75f9b9dc886c726b85161a28c0"}},{"ruleId":"D17","level":"error","message":{"text":"NoWarnInCsproj: 1702"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Api.csproj"},"region":{"startLine":14}}}],"partialFingerprints":{"codehealthFindingId/v1":"db53ddf5b937dc2e6ddf6aa0f18ec2941bdeab75f9b9dc886c726b85161a28c0"}},{"ruleId":"D17","level":"error","message":{"text":"NoWarnInCsproj: 1591"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Api.csproj"},"region":{"startLine":14}}}],"partialFingerprints":{"codehealthFindingId/v1":"db53ddf5b937dc2e6ddf6aa0f18ec2941bdeab75f9b9dc886c726b85161a28c0"}},{"ruleId":"D17","level":"error","message":{"text":"NoWarnInCsproj: 1701"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Api.csproj"},"region":{"startLine":18}}}],"partialFingerprints":{"codehealthFindingId/v1":"db53ddf5b937dc2e6ddf6aa0f18ec2941bdeab75f9b9dc886c726b85161a28c0"}},{"ruleId":"D17","level":"note","message":{"text":"DuplicateNoWarn: NoWarn 1701 is listed more than once in this project file \u2014 remove the duplicate."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Api.csproj"},"region":{"startLine":18}}}],"partialFingerprints":{"codehealthFindingId/v1":"a855f300c7d20b7fc4fa0bc39b8233c29648d585a3b8020ab7dc9d4339a13016"}},{"ruleId":"D17","level":"error","message":{"text":"NoWarnInCsproj: 1702"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Api.csproj"},"region":{"startLine":18}}}],"partialFingerprints":{"codehealthFindingId/v1":"db53ddf5b937dc2e6ddf6aa0f18ec2941bdeab75f9b9dc886c726b85161a28c0"}},{"ruleId":"D17","level":"note","message":{"text":"DuplicateNoWarn: NoWarn 1702 is listed more than once in this project file \u2014 remove the duplicate."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Api.csproj"},"region":{"startLine":18}}}],"partialFingerprints":{"codehealthFindingId/v1":"a855f300c7d20b7fc4fa0bc39b8233c29648d585a3b8020ab7dc9d4339a13016"}},{"ruleId":"D17","level":"error","message":{"text":"NoWarnInCsproj: 1591"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Api.csproj"},"region":{"startLine":18}}}],"partialFingerprints":{"codehealthFindingId/v1":"db53ddf5b937dc2e6ddf6aa0f18ec2941bdeab75f9b9dc886c726b85161a28c0"}},{"ruleId":"D17","level":"note","message":{"text":"DuplicateNoWarn: NoWarn 1591 is listed more than once in this project file \u2014 remove the duplicate."},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Api.csproj"},"region":{"startLine":18}}}],"partialFingerprints":{"codehealthFindingId/v1":"a855f300c7d20b7fc4fa0bc39b8233c29648d585a3b8020ab7dc9d4339a13016"}},{"ruleId":"D17","level":"error","message":{"text":"NoWarnInCsproj: 1701"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/Setup/Setup.csproj"},"region":{"startLine":5}}}],"partialFingerprints":{"codehealthFindingId/v1":"f67ec2fba1d5aa12061073a617b413918d3593db1de94640d4fa0a25bdcdb955"}},{"ruleId":"D17","level":"error","message":{"text":"NoWarnInCsproj: 1702"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/Setup/Setup.csproj"},"region":{"startLine":5}}}],"partialFingerprints":{"codehealthFindingId/v1":"f67ec2fba1d5aa12061073a617b413918d3593db1de94640d4fa0a25bdcdb955"}},{"ruleId":"D17","level":"error","message":{"text":"NoWarnInCsproj: 1705"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/Setup/Setup.csproj"},"region":{"startLine":5}}}],"partialFingerprints":{"codehealthFindingId/v1":"f67ec2fba1d5aa12061073a617b413918d3593db1de94640d4fa0a25bdcdb955"}},{"ruleId":"D17","level":"error","message":{"text":"NoWarnInCsproj: NU1701"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/Setup/Setup.csproj"},"region":{"startLine":5}}}],"partialFingerprints":{"codehealthFindingId/v1":"f67ec2fba1d5aa12061073a617b413918d3593db1de94640d4fa0a25bdcdb955"}},{"ruleId":"D18","level":"note","message":{"text":"Build did not complete in the analyzer: \u0060dotnet build\u0060 reported 1 error(s) but no C# compiler diagnostic \u2014 an SDK / target-framework / restore mismatch in the analyzer environment, not a code defect (common for an older codebase whose target framework the analyzer\u0027s SDK can\u0027t build). Solution Shape is scored on structure and is NOT capped; the C# semantic analysis loads independently and is unaffected."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"e4adc356084fc62de5b75482ff17529e286737cf4f3bd564cadee2ddffa84b35"}},{"ruleId":"D18","level":"note","message":{"text":"AppHost (Production): 2 .cs files, 333 LoC (240 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"AppHost/AppHost.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"13c64d7bb9728ebd4bfcc1f96fd7268de5bd65670a2344bd9db91bbb8c64748a"}},{"ruleId":"D18","level":"note","message":{"text":"MicroBenchmarks (Production): 4 .cs files, 153 LoC (111 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"perf/MicroBenchmarks/MicroBenchmarks.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"2fcf74c014b2112b7ee87fc3bb2c40bd714d5727bf4760f5b0d2c1d54295affb"}},{"ruleId":"D18","level":"note","message":{"text":"Admin (Production): 88 .cs files, 7170 LoC (6042 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/Admin.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0f0c06a603364dc44ef88650e59e69089aacd41d55b9c524af5d8244f81d075e"}},{"ruleId":"D18","level":"note","message":{"text":"Api (Production): 470 .cs files, 35325 LoC (27719 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Api.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a2b41689ddd69521497952d247c748da809ee9128d3452dc5a6a869f0fe1ab4d"}},{"ruleId":"D18","level":"note","message":{"text":"Billing (Production): 53 .cs files, 6447 LoC (5075 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Billing/Billing.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"3de292955890017dc253b9b69a5c52a695de99d3f1bf442b78d756f127176c1b"}},{"ruleId":"D18","level":"note","message":{"text":"Core (Production): 1565 .cs files, 90699 LoC (66911 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Core.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"489a93ea1d2de78c88a7f9c0a20672748d5835abb02fb485b0d1560dbc237f3c"}},{"ruleId":"D18","level":"note","message":{"text":"Events (Production): 7 .cs files, 672 LoC (497 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Events/Events.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"26f31aad5322feb2481c154e495047ceacde6428d4554a74d2b903d6af22a28e"}},{"ruleId":"D18","level":"note","message":{"text":"EventsProcessor (Production): 5 .cs files, 515 LoC (383 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventsProcessor/EventsProcessor.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a327966d697b8c7f55785b17d21fd3620426f5d4cb019210af2f3d1a7c2b2c99"}},{"ruleId":"D18","level":"note","message":{"text":"Icons (Production): 29 .cs files, 2147 LoC (1659 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Icons/Icons.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d810a19c89b61f00fd5150d85cf725585e3a87d2333bd5445e2fde9e780a5459"}},{"ruleId":"D18","level":"note","message":{"text":"Identity (Production): 53 .cs files, 5389 LoC (3927 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Identity/Identity.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"310bfe8a01b74ef424eca8d81b866ab6494d5e7eb0e96ce4db3f3d2abcd25cf0"}},{"ruleId":"D18","level":"note","message":{"text":"Infrastructure.Dapper (Production): 61 .cs files, 8634 LoC (7216 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.Dapper/Infrastructure.Dapper.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"4ae07af2911e4897a7692ca4798c9405310f0073f30bd02cf77f86e3366bcd6b"}},{"ruleId":"D18","level":"note","message":{"text":"Infrastructure.EntityFramework (Production): 207 .cs files, 15363 LoC (12885 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Infrastructure.EntityFramework/Infrastructure.EntityFramework.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6e8d2def3e0ed23d5daad7a5320bea314703dbbf9a979593f5c4e4dbb758fdf0"}},{"ruleId":"D18","level":"note","message":{"text":"Notifications (Production): 16 .cs files, 1186 LoC (958 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Notifications/Notifications.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"43bf048bf90129304335984e85dcd3da13d1b5d9422968f16aa9f5d219d7d4d0"}},{"ruleId":"D18","level":"note","message":{"text":"SharedWeb (Production): 22 .cs files, 1980 LoC (1593 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/SharedWeb/SharedWeb.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0f79b867001a84d095d2956bf67a0d4ca304d6dc559b56a7fbbfb835fe622865"}},{"ruleId":"D18","level":"note","message":{"text":"Commercial.Core (Production): 45 .cs files, 4804 LoC (3976 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Commercial.Core/Commercial.Core.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"7d8683c699de74d2a8ac06dcb7fb8c9bde7f3aab4111c0e71d9e62460ab62d71"}},{"ruleId":"D18","level":"note","message":{"text":"Commercial.Infrastructure.EntityFramework (Production): 6 .cs files, 2010 LoC (1724 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Commercial.Infrastructure.EntityFramework/Commercial.Infrastructure.EntityFramework.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6bde2d7fdd2bb3fbfea104ce300f21a4c9be875af00b2363d6e221bc37c56099"}},{"ruleId":"D18","level":"note","message":{"text":"Scim (Production): 43 .cs files, 2340 LoC (1860 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Scim/Scim.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d6056a5f7f87311bb3d564e5c3851edd275ece41e8100a84d465685fc193e770"}},{"ruleId":"D18","level":"note","message":{"text":"Sso (Production): 30 .cs files, 2975 LoC (2205 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Sso/Sso.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a0e6bcc0e0ec5e33c586f2c170b679f514891e0ed42ce8e6976ef5abb8839bae"}},{"ruleId":"D18","level":"note","message":{"text":"Commercial.Core.Test (Test): 46 .cs files, 11625 LoC (9576 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/test/Commercial.Core.Test/Commercial.Core.Test.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"caaf681bf28341fc28a22a2ce17c55f0305720ca9e3551159487ff1269025c44"}},{"ruleId":"D18","level":"note","message":{"text":"Scim.IntegrationTest (Test): 5 .cs files, 1828 LoC (1526 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/test/Scim.IntegrationTest/Scim.IntegrationTest.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"777cca791f23b991196fdae64f0710412620c8f95121f5f4b00b0091e882e0c5"}},{"ruleId":"D18","level":"note","message":{"text":"Scim.Test (Test): 8 .cs files, 1927 LoC (1583 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/test/Scim.Test/Scim.Test.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"2f8ba39507f7a6d2900d22d670505ad30abfcf20cce6bcec87704e9fba12a0e2"}},{"ruleId":"D18","level":"note","message":{"text":"Sso.IntegrationTest (Test): 6 .cs files, 1300 LoC (847 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/test/Sso.IntegrationTest/Sso.IntegrationTest.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"95a6312acaf2a359f1902f3f9ea8d4f8f39b41389b24ad7f38687e76af47409e"}},{"ruleId":"D18","level":"note","message":{"text":"SSO.Test (Test): 3 .cs files, 1054 LoC (805 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/test/SSO.Test/SSO.Test.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"5996b220bf0e455798999c645bfd4704591b0a0d835e7772fae8aa7e5e98b77a"}},{"ruleId":"D18","level":"note","message":{"text":"Admin.Test (Test): 14 .cs files, 3995 LoC (3270 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Admin.Test/Admin.Test.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a63fdd692fcb0a80e1d423e4d94d1c071595c76f018dd16b1234a47846069bb7"}},{"ruleId":"D18","level":"note","message":{"text":"Api.IntegrationTest (Test): 57 .cs files, 18619 LoC (14640 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Api.IntegrationTest/Api.IntegrationTest.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c382facf073bbf17330693ee0bb13337e05fe5a4a1fcda0e1ceef4c18b52e961"}},{"ruleId":"D18","level":"note","message":{"text":"Api.Test (Test): 149 .cs files, 38344 LoC (30769 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Api.Test/Api.Test.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"35dfddfac11804c64c98ad4de1fe85812ce799770e9cc2d7f50114b5d435d02e"}},{"ruleId":"D18","level":"note","message":{"text":"Billing.Test (Test): 17 .cs files, 15069 LoC (12293 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Billing.Test/Billing.Test.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d991cb366fda4e4c8ca768fa343d0ed125435b7e5fe59ce31a74e0e2b2fcd32d"}},{"ruleId":"D18","level":"note","message":{"text":"Common (Test): 36 .cs files, 2167 LoC (1539 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Common/Common.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"4557c63c6a89a91ef8c97851afcfe7b0670f22eca3dbe779ba358283c0a0e26a"}},{"ruleId":"D18","level":"note","message":{"text":"Core.IntegrationTest (Test): 2 .cs files, 316 LoC (246 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.IntegrationTest/Core.IntegrationTest.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"1ae47bab4d058849aa8d1b8cf6b498cd2ddbb609ba7f15b27e4f3334dc1f4319"}},{"ruleId":"D18","level":"note","message":{"text":"Core.Test (Test): 517 .cs files, 127407 LoC (101819 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Core.Test/Core.Test.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"65deb2f517e48a3ae857e193320e51f16fe8a9bbfd29e85c1dd98191e66b03c3"}},{"ruleId":"D18","level":"note","message":{"text":"Events.IntegrationTest (Test): 4 .cs files, 570 LoC (473 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Events.IntegrationTest/Events.IntegrationTest.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e89f300ea6fcdd9240e7a136370d368eb07771de0988214d497accb638885ded"}},{"ruleId":"D18","level":"note","message":{"text":"Events.Test (Test): 3 .cs files, 996 LoC (881 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Events.Test/Events.Test.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"bbf6a29d115eff618dbd496077afe1b3adcc88c21f23ff5bce802c53159963e4"}},{"ruleId":"D18","level":"note","message":{"text":"EventsProcessor.Test (Test): 3 .cs files, 17 LoC (12 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/EventsProcessor.Test/EventsProcessor.Test.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"cdb0ef623d7d7b360fa9feb387a996c4983d2f2d23a7169a25fe5d39e1975875"}},{"ruleId":"D18","level":"note","message":{"text":"Icons.Test (Test): 9 .cs files, 693 LoC (553 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Icons.Test/Icons.Test.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"bdd7b9758dfba9996d843b41939b7c5f8f83cb364332290858f5fbaa772dd18b"}},{"ruleId":"D18","level":"note","message":{"text":"Identity.IntegrationTest (Test): 16 .cs files, 4846 LoC (3595 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Identity.IntegrationTest/Identity.IntegrationTest.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"847a4b5af01301046201f06ded50b770f4c20454066c13409935dd7dfcffb8d9"}},{"ruleId":"D18","level":"note","message":{"text":"Identity.Test (Test): 27 .cs files, 8969 LoC (6638 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Identity.Test/Identity.Test.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a666e017fd306653de595c11ec3d9d2148f99062c9e38cc11348d86e8b43a8da"}},{"ruleId":"D18","level":"note","message":{"text":"Infrastructure.Dapper.Test (Test): 3 .cs files, 187 LoC (168 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Infrastructure.Dapper.Test/Infrastructure.Dapper.Test.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"74b1e8d8805dd4f65c6aac2a9f1e86fd646bba4464c9225d06c5cacfe1cad913"}},{"ruleId":"D18","level":"note","message":{"text":"Infrastructure.EFIntegration.Test (Test): 63 .cs files, 5196 LoC (4268 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Infrastructure.EFIntegration.Test/Infrastructure.EFIntegration.Test.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"5a8e8799e7d65123479662373487f33bc172fcdb92d41f1668f7d4ba86632777"}},{"ruleId":"D18","level":"note","message":{"text":"Infrastructure.IntegrationTest (Test): 46 .cs files, 14447 LoC (11313 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Infrastructure.IntegrationTest/Infrastructure.IntegrationTest.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6c8a294db95190a245e70a64849cf5b4a31de3d2ae681d6326c49440751537f0"}},{"ruleId":"D18","level":"note","message":{"text":"IntegrationTestCommon (Production): 7 .cs files, 973 LoC (716 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/IntegrationTestCommon/IntegrationTestCommon.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"00c594326b2f3af75f756e8940b128191cfac84226de0787fa9040cccff350d5"}},{"ruleId":"D18","level":"note","message":{"text":"Notifications.Test (Test): 4 .cs files, 347 LoC (308 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Notifications.Test/Notifications.Test.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0f4bd7b68fb450f50646442a245613ca07841ee80513294aaa970f2ebf1697f9"}},{"ruleId":"D18","level":"note","message":{"text":"SeederApi.IntegrationTest (Test): 15 .cs files, 2562 LoC (2036 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/SeederApi.IntegrationTest/SeederApi.IntegrationTest.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"04eea9196a82d53cea6fec02b4d3b83b2b103e1e97e98edc54a121eced3a81fe"}},{"ruleId":"D18","level":"note","message":{"text":"Server.IntegrationTest (Test): 4 .cs files, 155 LoC (122 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Server.IntegrationTest/Server.IntegrationTest.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"644b7d344fddd142fe1981ad26c15f045261eda653643a2ef9fa43bcdb4f8bb0"}},{"ruleId":"D18","level":"note","message":{"text":"Setup.Test (Test): 2 .cs files, 144 LoC (118 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/Setup.Test/Setup.Test.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"239b12c5f7b0793d672bb6393e8694970cd108deeb9bd776bbf5b17f225c9192"}},{"ruleId":"D18","level":"note","message":{"text":"SharedWeb.Test (Test): 12 .cs files, 1088 LoC (816 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"test/SharedWeb.Test/SharedWeb.Test.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"368a5a8e7c366109df49a5d313cc457aeaedaa220689de6a651ae55c161ca036"}},{"ruleId":"D18","level":"note","message":{"text":"Migrator (Production): 4 .cs files, 285 LoC (234 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/Migrator/Migrator.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d938ae8aa0e2edd3f36aed8d0529267781e46517d490d207c64b52c92ed43ca5"}},{"ruleId":"D18","level":"note","message":{"text":"MsSqlMigratorUtility (Production): 1 .cs files, 46 LoC (40 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/MsSqlMigratorUtility/MsSqlMigratorUtility.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"bf18c3929ec8dc0113620689969e22d23e6d8e80a1b6f155f125be274ee56821"}},{"ruleId":"D18","level":"note","message":{"text":"MySqlMigrations (Production): 297 .cs files, 407299 LoC (289812 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/MySqlMigrations/MySqlMigrations.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"1789d167f01d34d69468f016cf9e3c9f01f8b6c546a9b2d6701366ca1c80f3b2"}},{"ruleId":"D18","level":"note","message":{"text":"PostgresMigrations (Production): 297 .cs files, 409129 LoC (291057 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/PostgresMigrations/PostgresMigrations.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a2671138132e4b637cddaeb47a08abe8225ef8a8919317bf2f95987fd02e66ec"}},{"ruleId":"D18","level":"note","message":{"text":"RustSdk (Production): 4 .cs files, 289 LoC (196 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/RustSdk/RustSdk.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"3990fa3a7e82e6388ffb390637f3b890b83e4899328efac5e39a498a12b59564"}},{"ruleId":"D18","level":"note","message":{"text":"Seeder (Production): 131 .cs files, 11191 LoC (7971 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/Seeder/Seeder.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"13166e1bdca3f6bf223336b8369d69399a46b212ea18f0a18ade0997dddedd30"}},{"ruleId":"D18","level":"note","message":{"text":"SeederApi (Production): 28 .cs files, 1035 LoC (792 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/SeederApi/SeederApi.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c5335030b061ec59120a7906e33f52703f04e4c42fc6587973abd79946b2fa6e"}},{"ruleId":"D18","level":"note","message":{"text":"SeederUtility (Production): 13 .cs files, 949 LoC (757 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/SeederUtility/SeederUtility.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"8b25b9582233a8b5e70d77f2431f0de2e6370e29496aaffcc868074d2d542ab8"}},{"ruleId":"D18","level":"note","message":{"text":"Server (Production): 2 .cs files, 155 LoC (135 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/Server/Server.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a7a945cb2fd0d2a358a695a120e71f820ef07a7f663fd51c811ea545b621934f"}},{"ruleId":"D18","level":"note","message":{"text":"Setup (Production): 10 .cs files, 1839 LoC (1566 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/Setup/Setup.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"3ec75e46a385d4a37a363eb50a6662ba66ba1547e90b27adcc4957c72eaf811e"}},{"ruleId":"D18","level":"note","message":{"text":"SqliteMigrations (Production): 253 .cs files, 370643 LoC (263675 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/SqliteMigrations/SqliteMigrations.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0e3cf4da2555e48e55a3fff127281d65c5753c9c41fe793075dfb131964a00ec"}},{"ruleId":"D18","level":"note","message":{"text":"SqlServerEFScaffold (Production): 3 .cs files, 1797 LoC (1260 significant)"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/SqlServerEFScaffold/SqlServerEFScaffold.csproj"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"494a8a7234f2c0f84f8cc4fef2af98b0e33cd2272cc66e2baf7dc918d02a4df3"}},{"ruleId":"D19","level":"warning","message":{"text":"LLM evaluation failed: documentation evaluation failed: Name or service not known (canine-dgx1:80)"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"84619704bc3bcb3f3b19b21245ed20bfef89f3b900efe4ba59acd9f2f01c53cb"}},{"ruleId":"D20","level":"note","message":{"text":"No ADRs found: No ADRs found at common paths; consider documenting architectural decisions in Docs/ADL/ or similar."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"d2bea044ff79d7d275f5a91a6e2f548586178eaf480274c33960ad020c854631"}},{"ruleId":"D21","level":"warning","message":{"text":"LLM evaluation failed: naming-consistency evaluation failed: Name or service not known (canine-dgx1:80)"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"f1ae115dd06b671c0a43940af011b21b5b96f5c4933cd4b95a9fc33856f94e45"}},{"ruleId":"D22","level":"note","message":{"text":"No exposed public API: No intentionally-exposed types (IsPackable or .Contracts) to evaluate."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"2712d35e1d1ba8e91a90125d29842b77d4ca65e0eeaa52476c739f7165820a6f"}},{"ruleId":"D23","level":"error","message":{"text":"Dimension evaluation failed: Dimension threw: Name or service not known (canine-dgx1:80)"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"23d3af50e7d3bd6d11e18aeaaed67b4c5bd5bf1a98b2e37c9096f9e9b60ad470"}},{"ruleId":"D24","level":"warning","message":{"text":"LLM evaluation failed: comment-value evaluation failed: Name or service not known (canine-dgx1:80)"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"0c868e6efee1b0dce8351bfc608279bd0d6c4f03b8a164d980102e4103c28c0d"}},{"ruleId":"D25","level":"note","message":{"text":"no ADRs to check: No ADRs found, so conformance can\u0027t be assessed."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"5f96235c58be08aaae505ba823e9095f206fbc6a447f646e346ee9bd81a5f481"}},{"ruleId":"D26","level":"error","message":{"text":"Dimension evaluation failed: Dimension threw: Name or service not known (canine-dgx1:80)"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"fca9cb083949c29969d3435df65dbc359827f107d039c64b81132f075a6df164"}},{"ruleId":"D28","level":"error","message":{"text":"Secret: jwt: matched rule \u0027jwt\u0027"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/Settings/GlobalSettings.cs"},"region":{"startLine":516}}}],"partialFingerprints":{"codehealthFindingId/v1":"cc4de832f7ab3932587e102618f764921c1486098ab356aed8c08dd492b428eb"}},{"ruleId":"D28","level":"error","message":{"text":"Secret: private-key: matched rule \u0027private-key\u0027"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/Seeder/Data/Generators/SshKeyDataGenerator.cs"},"region":{"startLine":12}}}],"partialFingerprints":{"codehealthFindingId/v1":"6a98e8d28c646493fea7654faaaeddde80e31b1336753e9b012bbff3f68c7bac"}},{"ruleId":"D28","level":"error","message":{"text":"Secret: private-key: matched rule \u0027private-key\u0027"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/RustSdk/rust/src/rsa_keys.rs"},"region":{"startLine":7}}}],"partialFingerprints":{"codehealthFindingId/v1":"6e012265fdd07a9d60e686934e896c0d131cc1442c4962cac3f50c6bcd016f63"}},{"ruleId":"D28","level":"note","message":{"text":"Rotate the exposed credentials \u2014 git history can\u0027t be un-committed: These secrets are in git HISTORY: deleting the file does not remove them (the commit persists on every clone, fork and backup). The remediation is to ROTATE each exposed credential and treat it as compromised \u2014 not to delete the file. Rewriting history is disruptive and unreliable across existing forks."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"3cdfd7beb31b791ae18dcb425e21eb157c842e7bbcd522cc330573c1a6538db1"}},{"ruleId":"D30","level":"error","message":{"text":"High CVE: MessagePack 2.5.192: MessagePack 2.5.192 (transitive) has a High advisory. https://github.com/advisories/[GHSA redacted]"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"2fef6fbf567a64c3284bd5a4acf151b316e767577548ae5d5e3ea2f42e3c47f6"}},{"ruleId":"D30","level":"error","message":{"text":"High CVE: AutoMapper 14.0.0: AutoMapper 14.0.0 (transitive) has a High advisory; affects 41 projects \u2014 one upgrade fixes all. https://github.com/advisories/[GHSA redacted]"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"2f3f977fd628450f0f2d394acbc594ffb0c42971e812ca2f57d11b102cf0de54"}},{"ruleId":"D30","level":"error","message":{"text":"High CVE: SQLitePCLRaw.lib.e_sqlite3 2.1.6: SQLitePCLRaw.lib.e_sqlite3 2.1.6 (transitive) has a High advisory; affects 41 projects \u2014 one upgrade fixes all. https://github.com/advisories/[GHSA redacted]"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"f2298334374a8ad552bf08dd33c123201fb6d055ca950accf76ab4281db4fbe5"}},{"ruleId":"D30","level":"error","message":{"text":"High CVE: Microsoft.AspNetCore.SignalR.Protocols.MessagePack 10.0.8: Microsoft.AspNetCore.SignalR.Protocols.MessagePack 10.0.8 (direct) has a High advisory; affects 2 projects \u2014 one upgrade fixes all. https://github.com/advisories/[GHSA redacted]"},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"f714a70a74cef31edc3fd19f5f9fa182e37a453bc603783b2874cfcb8d3dbf86"}},{"ruleId":"D31","level":"error","message":{"text":"High IaC: DS-0002: Image user should not be \u0027root\u0027"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Scim/Dockerfile"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"176cff549c60a08354e088617ac1feec61f1f9f9ed94ae25545182cd2d29fa45"}},{"ruleId":"D31","level":"error","message":{"text":"High IaC: DS-0002: Image user should not be \u0027root\u0027"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Sso/Dockerfile"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"8b2be74e6e27d0da3507fe60d80a20812ef1c7d853b650444f0ed8faaa497132"}},{"ruleId":"D31","level":"error","message":{"text":"High IaC: DS-0002: Image user should not be \u0027root\u0027"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/Dockerfile"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"994b7cd25a5c96400c26f97d39a06d073726623b5018a001717677bcae33c243"}},{"ruleId":"D31","level":"error","message":{"text":"High IaC: DS-0002: Image user should not be \u0027root\u0027"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Api/Dockerfile"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c25d9dc86a65519b36f228ade18ca1fb2a5701444faa7515ce865ebf37729dcf"}},{"ruleId":"D31","level":"error","message":{"text":"High IaC: DS-0002: Image user should not be \u0027root\u0027"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Billing/Dockerfile"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c76f6f261f9cbc5001ca2c2177360d1c2fbc64e24058b851e0263250a4a1b6ed"}},{"ruleId":"D31","level":"error","message":{"text":"High IaC: DS-0002: Image user should not be \u0027root\u0027"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Events/Dockerfile"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"92bcd42c00f9b63e99a209f6c037f002b81ae80709b58df71a0df924be844138"}},{"ruleId":"D31","level":"error","message":{"text":"High IaC: DS-0002: Image user should not be \u0027root\u0027"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/EventsProcessor/Dockerfile"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"2e9f0025d5dbe7eb52a2960c9a6aad7469e6516b222c18b16a32ae52e0a7cfc3"}},{"ruleId":"D31","level":"error","message":{"text":"High IaC: DS-0002: Image user should not be \u0027root\u0027"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Icons/Dockerfile"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"b65df9ab1e027a167281c7b4631c64da8fce6690b0d7c0cdfecfe92961c813da"}},{"ruleId":"D31","level":"error","message":{"text":"High IaC: DS-0002: Image user should not be \u0027root\u0027"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Identity/Dockerfile"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"abd606d9930aa3ef62b0e8a97c3faded4bc8c07664b1835cc990d9efe05f3049"}},{"ruleId":"D31","level":"error","message":{"text":"High IaC: DS-0002: Image user should not be \u0027root\u0027"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Notifications/Dockerfile"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"26b954511ac491607d8ed02c19079d8f52b323c333ee0d122dc49bff5fe6ea71"}},{"ruleId":"D31","level":"error","message":{"text":"High IaC: DS-0002: Image user should not be \u0027root\u0027"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/Attachments/Dockerfile"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d96d62b2ca4ba16e4a366e7901fea42ced79a14f3408f243f2f130274d095249"}},{"ruleId":"D31","level":"error","message":{"text":"High IaC: DS-0002: Image user should not be \u0027root\u0027"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/MsSql/Dockerfile"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"b011826918ba08dfd453f5feadc5b3a96a665c7922596192941cd6a418a9fa97"}},{"ruleId":"D31","level":"error","message":{"text":"High IaC: DS-0002: Image user should not be \u0027root\u0027"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/MsSqlMigratorUtility/Dockerfile"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"904d4551a196adc1f9e8580f6f20a03062747cc3cb7dc252244347f75eb7c8e6"}},{"ruleId":"D31","level":"error","message":{"text":"High IaC: DS-0002: Image user should not be \u0027root\u0027"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/Nginx/Dockerfile"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"5cda5597b1558d874e690e65604fa35707c6905a2ac95250e8a62a4aa1d334e2"}},{"ruleId":"D31","level":"error","message":{"text":"High IaC: DS-0002: Image user should not be \u0027root\u0027"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/SeederApi/Dockerfile"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"221118e368dce972564c09ab9134d79c0b3b66f47045cdcc5e06b8d98a9e85d3"}},{"ruleId":"D31","level":"error","message":{"text":"High IaC: DS-0029: \u0027apt-get\u0027 missing \u0027--no-install-recommends\u0027"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/SeederApi/Dockerfile"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"4e5107bd285665adcc21901622fe06e475034422a98e93ec2225b15267b07791"}},{"ruleId":"D31","level":"error","message":{"text":"High IaC: DS-0029: \u0027apt-get\u0027 missing \u0027--no-install-recommends\u0027"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/SeederApi/Dockerfile"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"4e5107bd285665adcc21901622fe06e475034422a98e93ec2225b15267b07791"}},{"ruleId":"D31","level":"error","message":{"text":"High IaC: DS-0002: Image user should not be \u0027root\u0027"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/Setup/Dockerfile"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"7cd1f8494dbc263dcc625270fbb3cb99a10b9b9ba317944034fab4a932b8e8d2"}},{"ruleId":"D31","level":"note","message":{"text":"Low IaC: DS-0026: No HEALTHCHECK defined"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/MsSqlMigratorUtility/Dockerfile"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"05a9d6e1ebf334568ecd5572c63eef1003ca5f321bc2c0af6a101bc1d16affe9"}},{"ruleId":"D31","level":"note","message":{"text":"Low IaC: DS-0026: No HEALTHCHECK defined"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/Setup/Dockerfile"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"7095a50e7a5db67752917ee1d6d89a8d16dc67c439b664f6a12aab3c8760a0f0"}},{"ruleId":"D32","level":"note","message":{"text":"Not applicable: No PII/GDPR-handling patterns detected (p/gdpr ruleset) \u2014 no data-compliance surface to assess."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"df51e593e9b0b9805626d04fe36a3d12c504b5d7d5da30dc59b5b0f134b5753b"}},{"ruleId":"D33","level":"error","message":{"text":"High CVE: [CVE redacted]: glob: [CVE redacted]"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/MailTemplates/Mjml/package-lock.json"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"3e0b47fa01814d7ba3950ca5c311d5a6c4010259eff4e60f28d3628966b560c8"}},{"ruleId":"D33","level":"error","message":{"text":"High CVE: [CVE redacted]: html-minifier: [CVE redacted]"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/MailTemplates/Mjml/package-lock.json"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"8a386f45b16c9711768cfefbd2397b950dc164e715ada2fa319df59866edf3c5"}},{"ruleId":"D33","level":"error","message":{"text":"High CVE: [CVE redacted]: js-cookie: [CVE redacted]"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/MailTemplates/Mjml/package-lock.json"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6bde1f70876a141655140b4c76ced03d7c43a10f352b5fef61cb724dddbb514b"}},{"ruleId":"D33","level":"error","message":{"text":"High CVE: [CVE redacted]: lodash: [CVE redacted]"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/MailTemplates/Mjml/package-lock.json"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"8fd07b11d5a228f4f728d1f4ba45d722cb1661054ab37a73a80e817f6cb87e43"}},{"ruleId":"D33","level":"error","message":{"text":"High CVE: [CVE redacted]: minimatch: [CVE redacted]"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/MailTemplates/Mjml/package-lock.json"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ee3e7492eb1d04d57719dc744f45cdf7b80760a44bea10762c1163fa66cc7427"}},{"ruleId":"D33","level":"error","message":{"text":"High CVE: [CVE redacted]: minimatch: [CVE redacted]"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/MailTemplates/Mjml/package-lock.json"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"849e9c945158afef554c1bc614cde7b693a3372381870923fa3c0e441e39d47e"}},{"ruleId":"D33","level":"error","message":{"text":"High CVE: [CVE redacted]: minimatch: [CVE redacted]"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/MailTemplates/Mjml/package-lock.json"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"86adecc617ac26a11c9b0f684993767d85889de2aa3c28537b1edefbf84712bc"}},{"ruleId":"D33","level":"error","message":{"text":"High CVE: [CVE redacted]: minimatch: [CVE redacted]"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/MailTemplates/Mjml/package-lock.json"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ee3e7492eb1d04d57719dc744f45cdf7b80760a44bea10762c1163fa66cc7427"}},{"ruleId":"D33","level":"error","message":{"text":"High CVE: [CVE redacted]: minimatch: [CVE redacted]"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/MailTemplates/Mjml/package-lock.json"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"849e9c945158afef554c1bc614cde7b693a3372381870923fa3c0e441e39d47e"}},{"ruleId":"D33","level":"error","message":{"text":"High CVE: [CVE redacted]: minimatch: [CVE redacted]"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/MailTemplates/Mjml/package-lock.json"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"86adecc617ac26a11c9b0f684993767d85889de2aa3c28537b1edefbf84712bc"}},{"ruleId":"D33","level":"error","message":{"text":"High CVE: [CVE redacted]: picomatch: [CVE redacted]"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/MailTemplates/Mjml/package-lock.json"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"d68cd341b7bf196af13095e19bd2ad866be9219faf1b0858511c8beb96c1365b"}},{"ruleId":"D33","level":"warning","message":{"text":"Medium CVE: [CVE redacted]: brace-expansion: [CVE redacted]"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/MailTemplates/Mjml/package-lock.json"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"8d3ce8ae8b5b9ebe9cad7aae0d237851ef958d0666953f2059ca8a34ce02920e"}},{"ruleId":"D33","level":"warning","message":{"text":"Medium CVE: [CVE redacted]: lodash: [CVE redacted]"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/MailTemplates/Mjml/package-lock.json"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"556d908ec2aed9e70f0bb76de68bd79e81f1e5e0515ddcf112f0fa16097ada26"}},{"ruleId":"D33","level":"warning","message":{"text":"Medium CVE: [CVE redacted]: lodash: [CVE redacted]"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/MailTemplates/Mjml/package-lock.json"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a06372edd72e0e80c8d7eed696ca1f81a6d301b960a49a12e8d9bd985838b0ae"}},{"ruleId":"D33","level":"warning","message":{"text":"Medium CVE: [CVE redacted]: mjml: [CVE redacted]"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/MailTemplates/Mjml/package-lock.json"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"b7f600eae9f6b6d61ab563d3c170e195fe877b92a3f18afc3c20f44fc72f297b"}},{"ruleId":"D33","level":"warning","message":{"text":"Medium CVE: [CVE redacted]: picomatch: [CVE redacted]"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/MailTemplates/Mjml/package-lock.json"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"b08f97e7e762cf1d655f7388fc8548e9730361586d775101f0fee180b037ca0b"}},{"ruleId":"D34","level":"note","message":{"text":"early-stage repository \u2014 too little history to judge knowledge freshness: early-stage repository \u2014 too little history to judge knowledge freshness (0 commit(s) sampled)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"58b42e8ad1f5e125e8a2d365554e56d01e64a556b28e0c9985ff169722b7c54a"}},{"ruleId":"D36","level":"note","message":{"text":"No build provenance: No SLSA provenance generation or build attestation found in CI (e.g. slsa-github-generator, actions/attest-build-provenance)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"1b213f6eedd4b140d0bc37bdf1496f72811a643f34064f12518b32e9e83bcfc7"}},{"ruleId":"D36","level":"note","message":{"text":"No SBOM: No SBOM generation or committed SBOM found (e.g. syft / anchore/sbom-action / *.spdx.json / *.cdx.json)."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"eb00976a698a5d68999b7ee6d27206fd374e916853e7ff1ead5eed42386f043f"}},{"ruleId":"D36","level":"warning","message":{"text":"Unpinned build actions: CI references GitHub Actions by a floating ref (@main / @tag) rather than a pinned commit SHA, weakening build integrity."},"locations":[],"partialFingerprints":{"codehealthFindingId/v1":"90f83b4fa27db32740afe9540c905f3c0499caed87f61049a8a903ecc95b41c3"}},{"ruleId":"D38","level":"error","message":{"text":"High CVE: [GHSA redacted]: fast-uri: [GHSA redacted]"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Sso/package-lock.json"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"3ebb2602d198466df4fa7f3885c304478136cf5a9cb88451e8dfb6cb45618a1f"}},{"ruleId":"D38","level":"error","message":{"text":"High CVE: [GHSA redacted]: fast-uri: [GHSA redacted]"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Sso/package-lock.json"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"95cf3b28e58cc8aa83d2c7f955691e84429a61bc87f555f471044943f208ee82"}},{"ruleId":"D38","level":"error","message":{"text":"High CVE: [GHSA redacted]: picomatch: [GHSA redacted]"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Sso/package-lock.json"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"30ba807fc63d4ba74ce54e302883f33a1f0f52a96e0389f84478e538810809b5"}},{"ruleId":"D38","level":"error","message":{"text":"High CVE: [GHSA redacted]: fast-uri: [GHSA redacted]"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/package-lock.json"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"7d51729e06a49881037bee3522293a1c1653117eac905dcf6556665e7c731f4d"}},{"ruleId":"D38","level":"error","message":{"text":"High CVE: [GHSA redacted]: fast-uri: [GHSA redacted]"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/package-lock.json"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"6e15af5261789c5a711bcdc935d05523a5084c250c3a0c6c33ff8d371d29ca09"}},{"ruleId":"D38","level":"error","message":{"text":"High CVE: [GHSA redacted]: immutable: [GHSA redacted]"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/package-lock.json"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a0a1a8954c6a019f2c5cb1b902cb017322d436e7347ad08a7cd1d3717b35695c"}},{"ruleId":"D38","level":"error","message":{"text":"High CVE: [GHSA redacted]: picomatch: [GHSA redacted]"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/package-lock.json"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"763849cd655920a140deb6116396399bec9aaae35feeb3b0747e9133b38aef6f"}},{"ruleId":"D38","level":"error","message":{"text":"High CVE: [GHSA redacted]: serialize-javascript: [GHSA redacted]"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/package-lock.json"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"e8d10e9e09043693c5e666be23c61ef88c0140d866cb5bd7fd3f83d8dadc4822"}},{"ruleId":"D38","level":"error","message":{"text":"High CVE: [GHSA redacted]: glob: [GHSA redacted]"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/MailTemplates/Mjml/package-lock.json"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"45bd2325b304f2ab4b71b03c6a7eb4713cdbf644582c6e3550a65a8797c19662"}},{"ruleId":"D38","level":"error","message":{"text":"High CVE: [GHSA redacted]: html-minifier: [GHSA redacted]"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/MailTemplates/Mjml/package-lock.json"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ee412e316846f4fc2657c0e0610df9588ce68ac40eed3258a77e93f0eb14ba84"}},{"ruleId":"D38","level":"error","message":{"text":"High CVE: [GHSA redacted]: js-cookie: [GHSA redacted]"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/MailTemplates/Mjml/package-lock.json"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"632d078b31a2f84de48de4704c4f519fde81caf5aebcf128914e8fa581bdfc0a"}},{"ruleId":"D38","level":"error","message":{"text":"High CVE: [GHSA redacted]: lodash: [GHSA redacted]"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/MailTemplates/Mjml/package-lock.json"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"3e22bcab2647d323b6e7663fa85517f200e034324074391fe64001b90637dfaa"}},{"ruleId":"D38","level":"error","message":{"text":"High CVE: [GHSA redacted]: minimatch: [GHSA redacted]"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/MailTemplates/Mjml/package-lock.json"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"7f0dfcc0293ecfc270d6b39774e9aba528624df3bd99da8cd61cd8696e841e76"}},{"ruleId":"D38","level":"error","message":{"text":"High CVE: [GHSA redacted]: minimatch: [GHSA redacted]"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/MailTemplates/Mjml/package-lock.json"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"54fddb7ad4ea4b646fee5a532286234078c85968a1d02703627982404a11c03b"}},{"ruleId":"D38","level":"error","message":{"text":"High CVE: [GHSA redacted]: minimatch: [GHSA redacted]"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/MailTemplates/Mjml/package-lock.json"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"20a919041196d8f1843fbe2377768531e25b8fd61b3ab134ef7a0c7162c9327d"}},{"ruleId":"D38","level":"error","message":{"text":"High CVE: [GHSA redacted]: minimatch: [GHSA redacted]"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/MailTemplates/Mjml/package-lock.json"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"7f0dfcc0293ecfc270d6b39774e9aba528624df3bd99da8cd61cd8696e841e76"}},{"ruleId":"D38","level":"error","message":{"text":"High CVE: [GHSA redacted]: minimatch: [GHSA redacted]"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/MailTemplates/Mjml/package-lock.json"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"54fddb7ad4ea4b646fee5a532286234078c85968a1d02703627982404a11c03b"}},{"ruleId":"D38","level":"error","message":{"text":"High CVE: [GHSA redacted]: minimatch: [GHSA redacted]"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/MailTemplates/Mjml/package-lock.json"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"20a919041196d8f1843fbe2377768531e25b8fd61b3ab134ef7a0c7162c9327d"}},{"ruleId":"D38","level":"error","message":{"text":"High CVE: [GHSA redacted]: minimatch: [GHSA redacted]"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/MailTemplates/Mjml/package-lock.json"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"7f0dfcc0293ecfc270d6b39774e9aba528624df3bd99da8cd61cd8696e841e76"}},{"ruleId":"D38","level":"error","message":{"text":"High CVE: [GHSA redacted]: minimatch: [GHSA redacted]"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/MailTemplates/Mjml/package-lock.json"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"54fddb7ad4ea4b646fee5a532286234078c85968a1d02703627982404a11c03b"}},{"ruleId":"D38","level":"error","message":{"text":"High CVE: [GHSA redacted]: minimatch: [GHSA redacted]"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/MailTemplates/Mjml/package-lock.json"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"20a919041196d8f1843fbe2377768531e25b8fd61b3ab134ef7a0c7162c9327d"}},{"ruleId":"D38","level":"error","message":{"text":"High CVE: [GHSA redacted]: picomatch: [GHSA redacted]"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/MailTemplates/Mjml/package-lock.json"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"8e0b738e3e9a79b4ecaea532df9e7cba932dc9f744bc8f0658b63dc71000d11b"}},{"ruleId":"D38","level":"warning","message":{"text":"Medium CVE: [GHSA redacted]: ajv: [GHSA redacted]"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Sso/package-lock.json"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"df5d9d38e70e87487ebd8b869ec733d8cb18a7c37b23db2d1b7f6fc2efe58150"}},{"ruleId":"D38","level":"warning","message":{"text":"Medium CVE: [GHSA redacted]: picomatch: [GHSA redacted]"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Sso/package-lock.json"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0167b37f34020c8f03cee32a13a5e603b691b24975d2f9271e5c846f0cd29e99"}},{"ruleId":"D38","level":"warning","message":{"text":"Medium CVE: [GHSA redacted]: postcss: [GHSA redacted]"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"bitwarden_license/src/Sso/package-lock.json"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ac405c5c2efef038a7e19e00956fedf4359dbaf62b306ef12c354c77c6658fd7"}},{"ruleId":"D38","level":"warning","message":{"text":"Medium CVE: [GHSA redacted]: ajv: [GHSA redacted]"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/package-lock.json"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9e504b6d3dfd2d2a5c95af6511edd96943d878b56afe5d2a2213bcb4b4897d9f"}},{"ruleId":"D38","level":"warning","message":{"text":"Medium CVE: [GHSA redacted]: picomatch: [GHSA redacted]"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/package-lock.json"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0106857560ed5c4ca13e7fccf042d0ef2cc970a251d6752daff230d674803f14"}},{"ruleId":"D38","level":"warning","message":{"text":"Medium CVE: [GHSA redacted]: postcss: [GHSA redacted]"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/package-lock.json"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"ab219edd24e43055315c0b851ae4c066850cc524de3a1445efa6193bda6f4dc6"}},{"ruleId":"D38","level":"warning","message":{"text":"Medium CVE: [GHSA redacted]: serialize-javascript: [GHSA redacted]"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Admin/package-lock.json"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"347a272772be990c590577ced70210e04c509bf1407f9d8d1e28c65efb7271e7"}},{"ruleId":"D38","level":"warning","message":{"text":"Medium CVE: [GHSA redacted]: brace-expansion: [GHSA redacted]"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/MailTemplates/Mjml/package-lock.json"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9d2fa48711c586b476502e1ff3006803690cbdda83dcce502cc04c0ecc47ed1c"}},{"ruleId":"D38","level":"warning","message":{"text":"Medium CVE: [GHSA redacted]: brace-expansion: [GHSA redacted]"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/MailTemplates/Mjml/package-lock.json"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"9d2fa48711c586b476502e1ff3006803690cbdda83dcce502cc04c0ecc47ed1c"}},{"ruleId":"D38","level":"warning","message":{"text":"Medium CVE: [GHSA redacted]: lodash: [GHSA redacted]"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/MailTemplates/Mjml/package-lock.json"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"554eb0902920cb1f960e3ba7a796d8a22fa81844d92df243cfb7308c351b33f3"}},{"ruleId":"D38","level":"warning","message":{"text":"Medium CVE: [GHSA redacted]: lodash: [GHSA redacted]"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/MailTemplates/Mjml/package-lock.json"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"0c14a8deac8a6e94d0f583d046d98037615b9ee87992cd0aae36dd151c3c552a"}},{"ruleId":"D38","level":"warning","message":{"text":"Medium CVE: [GHSA redacted]: mjml: [GHSA redacted]"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/MailTemplates/Mjml/package-lock.json"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"a41d27e1fe4a1a412087a3630691c9a9c13f1aa08704d38448358517f45b7f18"}},{"ruleId":"D38","level":"warning","message":{"text":"Medium CVE: [GHSA redacted]: picomatch: [GHSA redacted]"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"src/Core/MailTemplates/Mjml/package-lock.json"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"27ed5fa161eba8d5c93fe88d81cdee849bb9f781590160a0e8c246b1ba671262"}},{"ruleId":"D38","level":"warning","message":{"text":"Medium CVE: RUSTSEC-2026-0097: rand: RUSTSEC-2026-0097"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/RustSdk/rust/Cargo.lock"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"bce1b5e814a3cdfc6d655c174e2d8dbe118bcef135b93370a855d708e5aa6481"}},{"ruleId":"D38","level":"warning","message":{"text":"Medium CVE: RUSTSEC-2023-0071: rsa: RUSTSEC-2023-0071"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/RustSdk/rust/Cargo.lock"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"74f74dd15aea408b68eb37caee5be2b95b3e141ebb89a7e0579eb7f571a7f26b"}},{"ruleId":"D38","level":"note","message":{"text":"Low CVE: [GHSA redacted]: rand: [GHSA redacted]"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/RustSdk/rust/Cargo.lock"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"598f00e0a98d7cbbb4357724045ecaa7a18fc2ef5edf841ca2bda20c05f1e9c4"}},{"ruleId":"D38","level":"note","message":{"text":"Low CVE: [GHSA redacted]: rsa: [GHSA redacted]"},"locations":[{"physicalLocation":{"artifactLocation":{"uri":"util/RustSdk/rust/Cargo.lock"},"region":{"startLine":1}}}],"partialFingerprints":{"codehealthFindingId/v1":"c9a561a115f742e937149b1852f1634a7f4f93deb02fcc1d344a6d2ebc558065"}}],"properties":{"codehealthPublication":{"public":true,"notice":"This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings \u2014 which rule fired, in which file, on which line, and how to fix it \u2014 are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.","securityFindingsRedacted":0,"secretScannerRunsExcluded":0}}}]}