From d4e284f50ab293e42b026f2dcdcfabb36ba93b61 Mon Sep 17 00:00:00 2001 From: Graham Walker Date: Fri, 13 Jun 2025 16:37:02 -0500 Subject: [PATCH] PM-20574 fixing directory for entities and removing scripts from other databases --- src/Api/Dirt/Controllers/ReportsController.cs | 4 +- .../Response/MemberAccessReportModel.cs | 2 +- .../MemberCipherDetailsResponseModel.cs | 2 +- .../Entities/OrganizationApplication.cs | 2 +- .../Entities/OrganizationReport.cs | 2 +- .../PasswordHealthReportApplication.cs | 2 +- .../Models/Data/MemberAccessCipherDetails.cs | 2 +- ...dPasswordHealthReportApplicationCommand.cs | 4 +- ...pPasswordHealthReportApplicationCommand.cs | 2 +- ...GetPasswordHealthReportApplicationQuery.cs | 4 +- ...dPasswordHealthReportApplicationCommand.cs | 2 +- ...GetPasswordHealthReportApplicationQuery.cs | 2 +- .../MemberAccessCipherDetailsQuery.cs | 2 +- .../IMemberAccessCipherDetailsQuery.cs | 2 +- .../IOrganizationApplicationRepository.cs | 4 +- .../IOrganizationReportRepository.cs | 4 +- ...sswordHealthReportApplicationRepository.cs | 4 +- .../DapperServiceCollectionExtensions.cs | 2 +- .../Dirt/OrganizationApplicationRepository.cs | 4 +- .../Dirt/OrganizationReportRepository.cs | 4 +- ...sswordHealthReportApplicationRepository.cs | 4 +- .../Dirt/Models/OrganizationApplication.cs | 4 +- .../Dirt/Models/OrganizationReport.cs | 4 +- .../Models/PasswordHealthReportApplication.cs | 4 +- .../OrganizationApplicationRepository.cs | 8 +- .../OrganizationReportRepository.cs | 4 +- ...sswordHealthReportApplicationRepository.cs | 8 +- ...ityFrameworkServiceCollectionExtensions.cs | 2 +- ...wordHealthReportApplicationCommandTests.cs | 4 +- ...wordHealthReportApplicationCommandTests.cs | 4 +- ...sswordHealthReportApplicationQueryTests.cs | 4 +- ...PasswordHealthReportApplicationFixtures.cs | 2 +- ...dHealthReportApplicationRepositoryTests.cs | 4 +- ...l => 2025-06-13-00_OrganizationReport.sql} | 0 ...2025-06-13-01_OrganizationApplication.sql} | 0 ...2025-06-13_02_UpdateOrgDeleteByIdProc.sql} | 0 .../2025-06-10-00_OrganizationReport.sql | 111 - .../2025-06-10-01_OrganizationApplication.sql | 126 - .../2025-06-10_02_UpdateOrgDeleteByIdProc.sql | 161 - ...ddOrgUserDefaultCollection.sql.Designer.cs | 3208 ----------------- ...6-02_00_AddOrgUserDefaultCollection.sql.cs | 21 - .../2025-06-10-00_OrganizationReport.psql | 105 - ...2025-06-10-01_OrganizationApplication.psql | 120 - ...2025-06-10_02_UpdateOrgDeleteByIdProc.psql | 161 - .../2025-06-10-00_OrganizationReport.sql | 105 - .../2025-06-10-01_OrganizationApplication.sql | 120 - .../2025-06-10_02_UpdateOrgDeleteByIdProc.sql | 161 - 47 files changed, 56 insertions(+), 4455 deletions(-) rename src/Core/Dirt/{Reports => }/Entities/OrganizationApplication.cs (92%) rename src/Core/Dirt/{Reports => }/Entities/OrganizationReport.cs (92%) rename src/Core/Dirt/{Reports => }/Entities/PasswordHealthReportApplication.cs (92%) rename src/Core/Dirt/{Reports => }/Models/Data/MemberAccessCipherDetails.cs (96%) rename src/Core/Dirt/{Reports => }/Repositories/IOrganizationApplicationRepository.cs (72%) rename src/Core/Dirt/{Reports => }/Repositories/IOrganizationReportRepository.cs (70%) rename src/Core/Dirt/{Reports => }/Repositories/IPasswordHealthReportApplicationRepository.cs (74%) rename util/Migrator/DbScripts/{2025-06-10-00_OrganizationReport.sql => 2025-06-13-00_OrganizationReport.sql} (100%) rename util/Migrator/DbScripts/{2025-06-10-01_OrganizationApplication.sql => 2025-06-13-01_OrganizationApplication.sql} (100%) rename util/Migrator/DbScripts/{2025-06-10_02_UpdateOrgDeleteByIdProc.sql => 2025-06-13_02_UpdateOrgDeleteByIdProc.sql} (100%) delete mode 100644 util/MySqlMigrations/HelperScripts/2025-06-10-00_OrganizationReport.sql delete mode 100644 util/MySqlMigrations/HelperScripts/2025-06-10-01_OrganizationApplication.sql delete mode 100644 util/MySqlMigrations/HelperScripts/2025-06-10_02_UpdateOrgDeleteByIdProc.sql delete mode 100644 util/MySqlMigrations/Migrations/20250613160900_2025-06-02_00_AddOrgUserDefaultCollection.sql.Designer.cs delete mode 100644 util/MySqlMigrations/Migrations/20250613160900_2025-06-02_00_AddOrgUserDefaultCollection.sql.cs delete mode 100644 util/PostgresMigrations/HelperScripts/2025-06-10-00_OrganizationReport.psql delete mode 100644 util/PostgresMigrations/HelperScripts/2025-06-10-01_OrganizationApplication.psql delete mode 100644 util/PostgresMigrations/HelperScripts/2025-06-10_02_UpdateOrgDeleteByIdProc.psql delete mode 100644 util/SqliteMigrations/HelperScripts/2025-06-10-00_OrganizationReport.sql delete mode 100644 util/SqliteMigrations/HelperScripts/2025-06-10-01_OrganizationApplication.sql delete mode 100644 util/SqliteMigrations/HelperScripts/2025-06-10_02_UpdateOrgDeleteByIdProc.sql diff --git a/src/Api/Dirt/Controllers/ReportsController.cs b/src/Api/Dirt/Controllers/ReportsController.cs index 2f7a5a4328..86e35e1239 100644 --- a/src/Api/Dirt/Controllers/ReportsController.cs +++ b/src/Api/Dirt/Controllers/ReportsController.cs @@ -1,8 +1,8 @@ using Bit.Api.Dirt.Models; using Bit.Api.Dirt.Models.Response; using Bit.Core.Context; -using Bit.Core.Dirt.Reports.Entities; -using Bit.Core.Dirt.Reports.Models.Data; +using Bit.Core.Dirt.Entities; +using Bit.Core.Dirt.Models.Data; using Bit.Core.Dirt.Reports.ReportFeatures.Interfaces; using Bit.Core.Dirt.Reports.ReportFeatures.OrganizationReportMembers.Interfaces; using Bit.Core.Dirt.Reports.ReportFeatures.Requests; diff --git a/src/Api/Dirt/Models/Response/MemberAccessReportModel.cs b/src/Api/Dirt/Models/Response/MemberAccessReportModel.cs index b8356e5d44..38a5ed90d8 100644 --- a/src/Api/Dirt/Models/Response/MemberAccessReportModel.cs +++ b/src/Api/Dirt/Models/Response/MemberAccessReportModel.cs @@ -1,4 +1,4 @@ -using Bit.Core.Dirt.Reports.Models.Data; +using Bit.Core.Dirt.Models.Data; namespace Bit.Api.Dirt.Models.Response; diff --git a/src/Api/Dirt/Models/Response/MemberCipherDetailsResponseModel.cs b/src/Api/Dirt/Models/Response/MemberCipherDetailsResponseModel.cs index 30065ad05a..e7e970db6c 100644 --- a/src/Api/Dirt/Models/Response/MemberCipherDetailsResponseModel.cs +++ b/src/Api/Dirt/Models/Response/MemberCipherDetailsResponseModel.cs @@ -1,4 +1,4 @@ -using Bit.Core.Dirt.Reports.Models.Data; +using Bit.Core.Dirt.Models.Data; namespace Bit.Api.Dirt.Models.Response; diff --git a/src/Core/Dirt/Reports/Entities/OrganizationApplication.cs b/src/Core/Dirt/Entities/OrganizationApplication.cs similarity index 92% rename from src/Core/Dirt/Reports/Entities/OrganizationApplication.cs rename to src/Core/Dirt/Entities/OrganizationApplication.cs index 0c5ded4be8..259dbd60dd 100644 --- a/src/Core/Dirt/Reports/Entities/OrganizationApplication.cs +++ b/src/Core/Dirt/Entities/OrganizationApplication.cs @@ -3,7 +3,7 @@ using Bit.Core.Entities; using Bit.Core.Utilities; -namespace Bit.Core.Dirt.Reports.Entities; +namespace Bit.Core.Dirt.Entities; public class OrganizationApplication : ITableObject, IRevisable { diff --git a/src/Core/Dirt/Reports/Entities/OrganizationReport.cs b/src/Core/Dirt/Entities/OrganizationReport.cs similarity index 92% rename from src/Core/Dirt/Reports/Entities/OrganizationReport.cs rename to src/Core/Dirt/Entities/OrganizationReport.cs index fad8a5e83c..69787b4667 100644 --- a/src/Core/Dirt/Reports/Entities/OrganizationReport.cs +++ b/src/Core/Dirt/Entities/OrganizationReport.cs @@ -3,7 +3,7 @@ using Bit.Core.Entities; using Bit.Core.Utilities; -namespace Bit.Core.Dirt.Reports.Entities; +namespace Bit.Core.Dirt.Entities; public class OrganizationReport : ITableObject, IRevisable { diff --git a/src/Core/Dirt/Reports/Entities/PasswordHealthReportApplication.cs b/src/Core/Dirt/Entities/PasswordHealthReportApplication.cs similarity index 92% rename from src/Core/Dirt/Reports/Entities/PasswordHealthReportApplication.cs rename to src/Core/Dirt/Entities/PasswordHealthReportApplication.cs index db605d6b74..5a72a0aab0 100644 --- a/src/Core/Dirt/Reports/Entities/PasswordHealthReportApplication.cs +++ b/src/Core/Dirt/Entities/PasswordHealthReportApplication.cs @@ -3,7 +3,7 @@ using Bit.Core.Entities; using Bit.Core.Utilities; -namespace Bit.Core.Dirt.Reports.Entities; +namespace Bit.Core.Dirt.Entities; public class PasswordHealthReportApplication : ITableObject, IRevisable { diff --git a/src/Core/Dirt/Reports/Models/Data/MemberAccessCipherDetails.cs b/src/Core/Dirt/Models/Data/MemberAccessCipherDetails.cs similarity index 96% rename from src/Core/Dirt/Reports/Models/Data/MemberAccessCipherDetails.cs rename to src/Core/Dirt/Models/Data/MemberAccessCipherDetails.cs index 759337d5cf..c1949ffb24 100644 --- a/src/Core/Dirt/Reports/Models/Data/MemberAccessCipherDetails.cs +++ b/src/Core/Dirt/Models/Data/MemberAccessCipherDetails.cs @@ -1,4 +1,4 @@ -namespace Bit.Core.Dirt.Reports.Models.Data; +namespace Bit.Core.Dirt.Models.Data; public class MemberAccessDetails { diff --git a/src/Core/Dirt/Reports/ReportFeatures/AddPasswordHealthReportApplicationCommand.cs b/src/Core/Dirt/Reports/ReportFeatures/AddPasswordHealthReportApplicationCommand.cs index f8232ffa92..159cbb5c77 100644 --- a/src/Core/Dirt/Reports/ReportFeatures/AddPasswordHealthReportApplicationCommand.cs +++ b/src/Core/Dirt/Reports/ReportFeatures/AddPasswordHealthReportApplicationCommand.cs @@ -1,7 +1,7 @@ -using Bit.Core.Dirt.Reports.Entities; +using Bit.Core.Dirt.Entities; using Bit.Core.Dirt.Reports.ReportFeatures.Interfaces; using Bit.Core.Dirt.Reports.ReportFeatures.Requests; -using Bit.Core.Dirt.Reports.Repositories; +using Bit.Core.Dirt.Repositories; using Bit.Core.Exceptions; using Bit.Core.Repositories; diff --git a/src/Core/Dirt/Reports/ReportFeatures/DropPasswordHealthReportApplicationCommand.cs b/src/Core/Dirt/Reports/ReportFeatures/DropPasswordHealthReportApplicationCommand.cs index 55914dca37..b955c2c958 100644 --- a/src/Core/Dirt/Reports/ReportFeatures/DropPasswordHealthReportApplicationCommand.cs +++ b/src/Core/Dirt/Reports/ReportFeatures/DropPasswordHealthReportApplicationCommand.cs @@ -1,6 +1,6 @@ using Bit.Core.Dirt.Reports.ReportFeatures.Interfaces; using Bit.Core.Dirt.Reports.ReportFeatures.Requests; -using Bit.Core.Dirt.Reports.Repositories; +using Bit.Core.Dirt.Repositories; using Bit.Core.Exceptions; namespace Bit.Core.Dirt.Reports.ReportFeatures; diff --git a/src/Core/Dirt/Reports/ReportFeatures/GetPasswordHealthReportApplicationQuery.cs b/src/Core/Dirt/Reports/ReportFeatures/GetPasswordHealthReportApplicationQuery.cs index d9b5e79a0c..40d86338db 100644 --- a/src/Core/Dirt/Reports/ReportFeatures/GetPasswordHealthReportApplicationQuery.cs +++ b/src/Core/Dirt/Reports/ReportFeatures/GetPasswordHealthReportApplicationQuery.cs @@ -1,6 +1,6 @@ -using Bit.Core.Dirt.Reports.Entities; +using Bit.Core.Dirt.Entities; using Bit.Core.Dirt.Reports.ReportFeatures.Interfaces; -using Bit.Core.Dirt.Reports.Repositories; +using Bit.Core.Dirt.Repositories; using Bit.Core.Exceptions; namespace Bit.Core.Dirt.Reports.ReportFeatures; diff --git a/src/Core/Dirt/Reports/ReportFeatures/Interfaces/IAddPasswordHealthReportApplicationCommand.cs b/src/Core/Dirt/Reports/ReportFeatures/Interfaces/IAddPasswordHealthReportApplicationCommand.cs index 0a4aa29f2f..0fd21751de 100644 --- a/src/Core/Dirt/Reports/ReportFeatures/Interfaces/IAddPasswordHealthReportApplicationCommand.cs +++ b/src/Core/Dirt/Reports/ReportFeatures/Interfaces/IAddPasswordHealthReportApplicationCommand.cs @@ -1,4 +1,4 @@ -using Bit.Core.Dirt.Reports.Entities; +using Bit.Core.Dirt.Entities; using Bit.Core.Dirt.Reports.ReportFeatures.Requests; namespace Bit.Core.Dirt.Reports.ReportFeatures.Interfaces; diff --git a/src/Core/Dirt/Reports/ReportFeatures/Interfaces/IGetPasswordHealthReportApplicationQuery.cs b/src/Core/Dirt/Reports/ReportFeatures/Interfaces/IGetPasswordHealthReportApplicationQuery.cs index ae2f759756..f7fe80b098 100644 --- a/src/Core/Dirt/Reports/ReportFeatures/Interfaces/IGetPasswordHealthReportApplicationQuery.cs +++ b/src/Core/Dirt/Reports/ReportFeatures/Interfaces/IGetPasswordHealthReportApplicationQuery.cs @@ -1,4 +1,4 @@ -using Bit.Core.Dirt.Reports.Entities; +using Bit.Core.Dirt.Entities; namespace Bit.Core.Dirt.Reports.ReportFeatures.Interfaces; diff --git a/src/Core/Dirt/Reports/ReportFeatures/MemberAccessCipherDetailsQuery.cs b/src/Core/Dirt/Reports/ReportFeatures/MemberAccessCipherDetailsQuery.cs index 4a8039e6bc..16b2219118 100644 --- a/src/Core/Dirt/Reports/ReportFeatures/MemberAccessCipherDetailsQuery.cs +++ b/src/Core/Dirt/Reports/ReportFeatures/MemberAccessCipherDetailsQuery.cs @@ -2,7 +2,7 @@ using Bit.Core.AdminConsole.Entities; using Bit.Core.AdminConsole.Repositories; using Bit.Core.Auth.UserFeatures.TwoFactorAuth.Interfaces; -using Bit.Core.Dirt.Reports.Models.Data; +using Bit.Core.Dirt.Models.Data; using Bit.Core.Dirt.Reports.ReportFeatures.OrganizationReportMembers.Interfaces; using Bit.Core.Dirt.Reports.ReportFeatures.Requests; using Bit.Core.Entities; diff --git a/src/Core/Dirt/Reports/ReportFeatures/OrganizationReportMembers/Interfaces/IMemberAccessCipherDetailsQuery.cs b/src/Core/Dirt/Reports/ReportFeatures/OrganizationReportMembers/Interfaces/IMemberAccessCipherDetailsQuery.cs index 98ed780db3..df58dec50d 100644 --- a/src/Core/Dirt/Reports/ReportFeatures/OrganizationReportMembers/Interfaces/IMemberAccessCipherDetailsQuery.cs +++ b/src/Core/Dirt/Reports/ReportFeatures/OrganizationReportMembers/Interfaces/IMemberAccessCipherDetailsQuery.cs @@ -1,4 +1,4 @@ -using Bit.Core.Dirt.Reports.Models.Data; +using Bit.Core.Dirt.Models.Data; using Bit.Core.Dirt.Reports.ReportFeatures.Requests; namespace Bit.Core.Dirt.Reports.ReportFeatures.OrganizationReportMembers.Interfaces; diff --git a/src/Core/Dirt/Reports/Repositories/IOrganizationApplicationRepository.cs b/src/Core/Dirt/Repositories/IOrganizationApplicationRepository.cs similarity index 72% rename from src/Core/Dirt/Reports/Repositories/IOrganizationApplicationRepository.cs rename to src/Core/Dirt/Repositories/IOrganizationApplicationRepository.cs index 593c572a95..f89e84e415 100644 --- a/src/Core/Dirt/Reports/Repositories/IOrganizationApplicationRepository.cs +++ b/src/Core/Dirt/Repositories/IOrganizationApplicationRepository.cs @@ -1,7 +1,7 @@ -using Bit.Core.Dirt.Reports.Entities; +using Bit.Core.Dirt.Entities; using Bit.Core.Repositories; -namespace Bit.Core.Dirt.Reports.Repositories; +namespace Bit.Core.Dirt.Repositories; public interface IOrganizationApplicationRepository : IRepository { diff --git a/src/Core/Dirt/Reports/Repositories/IOrganizationReportRepository.cs b/src/Core/Dirt/Repositories/IOrganizationReportRepository.cs similarity index 70% rename from src/Core/Dirt/Reports/Repositories/IOrganizationReportRepository.cs rename to src/Core/Dirt/Repositories/IOrganizationReportRepository.cs index 67e697f340..6efb6cf23a 100644 --- a/src/Core/Dirt/Reports/Repositories/IOrganizationReportRepository.cs +++ b/src/Core/Dirt/Repositories/IOrganizationReportRepository.cs @@ -1,7 +1,7 @@ -using Bit.Core.Dirt.Reports.Entities; +using Bit.Core.Dirt.Entities; using Bit.Core.Repositories; -namespace Bit.Core.Dirt.Reports.Repositories; +namespace Bit.Core.Dirt.Repositories; public interface IOrganizationReportRepository : IRepository { diff --git a/src/Core/Dirt/Reports/Repositories/IPasswordHealthReportApplicationRepository.cs b/src/Core/Dirt/Repositories/IPasswordHealthReportApplicationRepository.cs similarity index 74% rename from src/Core/Dirt/Reports/Repositories/IPasswordHealthReportApplicationRepository.cs rename to src/Core/Dirt/Repositories/IPasswordHealthReportApplicationRepository.cs index 5b57932868..a67f696e44 100644 --- a/src/Core/Dirt/Reports/Repositories/IPasswordHealthReportApplicationRepository.cs +++ b/src/Core/Dirt/Repositories/IPasswordHealthReportApplicationRepository.cs @@ -1,7 +1,7 @@ -using Bit.Core.Dirt.Reports.Entities; +using Bit.Core.Dirt.Entities; using Bit.Core.Repositories; -namespace Bit.Core.Dirt.Reports.Repositories; +namespace Bit.Core.Dirt.Repositories; public interface IPasswordHealthReportApplicationRepository : IRepository { diff --git a/src/Infrastructure.Dapper/DapperServiceCollectionExtensions.cs b/src/Infrastructure.Dapper/DapperServiceCollectionExtensions.cs index 07d07b26e0..0882bfad79 100644 --- a/src/Infrastructure.Dapper/DapperServiceCollectionExtensions.cs +++ b/src/Infrastructure.Dapper/DapperServiceCollectionExtensions.cs @@ -2,7 +2,7 @@ using Bit.Core.Auth.Repositories; using Bit.Core.Billing.Providers.Repositories; using Bit.Core.Billing.Repositories; -using Bit.Core.Dirt.Reports.Repositories; +using Bit.Core.Dirt.Repositories; using Bit.Core.KeyManagement.Repositories; using Bit.Core.NotificationCenter.Repositories; using Bit.Core.Platform.Installations; diff --git a/src/Infrastructure.Dapper/Dirt/OrganizationApplicationRepository.cs b/src/Infrastructure.Dapper/Dirt/OrganizationApplicationRepository.cs index dc2ccc59e6..46a126de2a 100644 --- a/src/Infrastructure.Dapper/Dirt/OrganizationApplicationRepository.cs +++ b/src/Infrastructure.Dapper/Dirt/OrganizationApplicationRepository.cs @@ -1,6 +1,6 @@ using System.Data; -using Bit.Core.Dirt.Reports.Entities; -using Bit.Core.Dirt.Reports.Repositories; +using Bit.Core.Dirt.Entities; +using Bit.Core.Dirt.Repositories; using Bit.Core.Settings; using Bit.Infrastructure.Dapper.Repositories; using Dapper; diff --git a/src/Infrastructure.Dapper/Dirt/OrganizationReportRepository.cs b/src/Infrastructure.Dapper/Dirt/OrganizationReportRepository.cs index b1d2679200..923d1767e3 100644 --- a/src/Infrastructure.Dapper/Dirt/OrganizationReportRepository.cs +++ b/src/Infrastructure.Dapper/Dirt/OrganizationReportRepository.cs @@ -1,6 +1,6 @@ using System.Data; -using Bit.Core.Dirt.Reports.Entities; -using Bit.Core.Dirt.Reports.Repositories; +using Bit.Core.Dirt.Entities; +using Bit.Core.Dirt.Repositories; using Bit.Core.Settings; using Bit.Infrastructure.Dapper.Repositories; using Dapper; diff --git a/src/Infrastructure.Dapper/Dirt/PasswordHealthReportApplicationRepository.cs b/src/Infrastructure.Dapper/Dirt/PasswordHealthReportApplicationRepository.cs index 2445de8a9e..266386433f 100644 --- a/src/Infrastructure.Dapper/Dirt/PasswordHealthReportApplicationRepository.cs +++ b/src/Infrastructure.Dapper/Dirt/PasswordHealthReportApplicationRepository.cs @@ -1,6 +1,6 @@ using System.Data; -using Bit.Core.Dirt.Reports.Entities; -using Bit.Core.Dirt.Reports.Repositories; +using Bit.Core.Dirt.Entities; +using Bit.Core.Dirt.Repositories; using Bit.Core.Settings; using Bit.Infrastructure.Dapper.Repositories; using Dapper; diff --git a/src/Infrastructure.EntityFramework/Dirt/Models/OrganizationApplication.cs b/src/Infrastructure.EntityFramework/Dirt/Models/OrganizationApplication.cs index 68ebdbf9ef..9aaec0af2c 100644 --- a/src/Infrastructure.EntityFramework/Dirt/Models/OrganizationApplication.cs +++ b/src/Infrastructure.EntityFramework/Dirt/Models/OrganizationApplication.cs @@ -2,7 +2,7 @@ using Bit.Infrastructure.EntityFramework.AdminConsole.Models; namespace Bit.Infrastructure.EntityFramework.Dirt.Models; -public class OrganizationApplication : Core.Dirt.Reports.Entities.OrganizationApplication +public class OrganizationApplication : Core.Dirt.Entities.OrganizationApplication { public virtual Organization Organization { get; set; } } @@ -11,7 +11,7 @@ public class OrganizationApplicationProfile : Profile { public OrganizationApplicationProfile() { - CreateMap() + CreateMap() .ReverseMap(); } } diff --git a/src/Infrastructure.EntityFramework/Dirt/Models/OrganizationReport.cs b/src/Infrastructure.EntityFramework/Dirt/Models/OrganizationReport.cs index 55f377c629..a7d08e142f 100644 --- a/src/Infrastructure.EntityFramework/Dirt/Models/OrganizationReport.cs +++ b/src/Infrastructure.EntityFramework/Dirt/Models/OrganizationReport.cs @@ -2,7 +2,7 @@ using Bit.Infrastructure.EntityFramework.AdminConsole.Models; namespace Bit.Infrastructure.EntityFramework.Dirt.Models; -public class OrganizationReport : Core.Dirt.Reports.Entities.OrganizationReport +public class OrganizationReport : Core.Dirt.Entities.OrganizationReport { public virtual Organization Organization { get; set; } } @@ -11,7 +11,7 @@ public class OrganizationReportProfile : Profile { public OrganizationReportProfile() { - CreateMap() + CreateMap() .ReverseMap(); } } diff --git a/src/Infrastructure.EntityFramework/Dirt/Models/PasswordHealthReportApplication.cs b/src/Infrastructure.EntityFramework/Dirt/Models/PasswordHealthReportApplication.cs index 222bfbeb65..bc471f0844 100644 --- a/src/Infrastructure.EntityFramework/Dirt/Models/PasswordHealthReportApplication.cs +++ b/src/Infrastructure.EntityFramework/Dirt/Models/PasswordHealthReportApplication.cs @@ -3,7 +3,7 @@ using Bit.Infrastructure.EntityFramework.AdminConsole.Models; namespace Bit.Infrastructure.EntityFramework.Dirt.Models; -public class PasswordHealthReportApplication : Core.Dirt.Reports.Entities.PasswordHealthReportApplication +public class PasswordHealthReportApplication : Core.Dirt.Entities.PasswordHealthReportApplication { public virtual Organization Organization { get; set; } } @@ -12,7 +12,7 @@ public class PasswordHealthReportApplicationProfile : Profile { public PasswordHealthReportApplicationProfile() { - CreateMap() + CreateMap() .ReverseMap(); } } diff --git a/src/Infrastructure.EntityFramework/Dirt/Repositories/OrganizationApplicationRepository.cs b/src/Infrastructure.EntityFramework/Dirt/Repositories/OrganizationApplicationRepository.cs index 1b1940aad8..f408ed85ba 100644 --- a/src/Infrastructure.EntityFramework/Dirt/Repositories/OrganizationApplicationRepository.cs +++ b/src/Infrastructure.EntityFramework/Dirt/Repositories/OrganizationApplicationRepository.cs @@ -1,5 +1,5 @@ using AutoMapper; -using Bit.Core.Dirt.Reports.Repositories; +using Bit.Core.Dirt.Repositories; using Bit.Infrastructure.EntityFramework.Dirt.Models; using Bit.Infrastructure.EntityFramework.Repositories; using LinqToDB; @@ -8,14 +8,14 @@ using Microsoft.Extensions.DependencyInjection; namespace Bit.Infrastructure.EntityFramework.Dirt.Repositories; public class OrganizationApplicationRepository : - Repository, + Repository, IOrganizationApplicationRepository { public OrganizationApplicationRepository(IServiceScopeFactory serviceScopeFactory, IMapper mapper) : base(serviceScopeFactory, mapper, (DatabaseContext context) => context.OrganizationApplications) { } - public async Task> GetByOrganizationIdAsync(Guid organizationId) + public async Task> GetByOrganizationIdAsync(Guid organizationId) { using (var scope = ServiceScopeFactory.CreateScope()) { @@ -23,7 +23,7 @@ public class OrganizationApplicationRepository : var results = await dbContext.OrganizationApplications .Where(p => p.OrganizationId == organizationId) .ToListAsync(); - return Mapper.Map>(results); + return Mapper.Map>(results); } } } diff --git a/src/Infrastructure.EntityFramework/Dirt/Repositories/OrganizationReportRepository.cs b/src/Infrastructure.EntityFramework/Dirt/Repositories/OrganizationReportRepository.cs index 8cc4050d74..7c7bd56dae 100644 --- a/src/Infrastructure.EntityFramework/Dirt/Repositories/OrganizationReportRepository.cs +++ b/src/Infrastructure.EntityFramework/Dirt/Repositories/OrganizationReportRepository.cs @@ -1,6 +1,6 @@ using AutoMapper; -using Bit.Core.Dirt.Reports.Entities; -using Bit.Core.Dirt.Reports.Repositories; +using Bit.Core.Dirt.Entities; +using Bit.Core.Dirt.Repositories; using Bit.Infrastructure.EntityFramework.Repositories; using LinqToDB; using Microsoft.Extensions.DependencyInjection; diff --git a/src/Infrastructure.EntityFramework/Dirt/Repositories/PasswordHealthReportApplicationRepository.cs b/src/Infrastructure.EntityFramework/Dirt/Repositories/PasswordHealthReportApplicationRepository.cs index 604a0d87a1..296a542a8b 100644 --- a/src/Infrastructure.EntityFramework/Dirt/Repositories/PasswordHealthReportApplicationRepository.cs +++ b/src/Infrastructure.EntityFramework/Dirt/Repositories/PasswordHealthReportApplicationRepository.cs @@ -1,5 +1,5 @@ using AutoMapper; -using Bit.Core.Dirt.Reports.Repositories; +using Bit.Core.Dirt.Repositories; using Bit.Infrastructure.EntityFramework.Dirt.Models; using Bit.Infrastructure.EntityFramework.Repositories; using LinqToDB; @@ -8,14 +8,14 @@ using Microsoft.Extensions.DependencyInjection; namespace Bit.Infrastructure.EntityFramework.Dirt.Repositories; public class PasswordHealthReportApplicationRepository : - Repository, + Repository, IPasswordHealthReportApplicationRepository { public PasswordHealthReportApplicationRepository(IServiceScopeFactory serviceScopeFactory, IMapper mapper) : base(serviceScopeFactory, mapper, (DatabaseContext context) => context.PasswordHealthReportApplications) { } - public async Task> GetByOrganizationIdAsync(Guid organizationId) + public async Task> GetByOrganizationIdAsync(Guid organizationId) { using (var scope = ServiceScopeFactory.CreateScope()) { @@ -23,7 +23,7 @@ public class PasswordHealthReportApplicationRepository : var results = await dbContext.PasswordHealthReportApplications .Where(p => p.OrganizationId == organizationId) .ToListAsync(); - return Mapper.Map>(results); + return Mapper.Map>(results); } } } diff --git a/src/Infrastructure.EntityFramework/EntityFrameworkServiceCollectionExtensions.cs b/src/Infrastructure.EntityFramework/EntityFrameworkServiceCollectionExtensions.cs index ddb06959b2..86951e2f7d 100644 --- a/src/Infrastructure.EntityFramework/EntityFrameworkServiceCollectionExtensions.cs +++ b/src/Infrastructure.EntityFramework/EntityFrameworkServiceCollectionExtensions.cs @@ -2,7 +2,7 @@ using Bit.Core.Auth.Repositories; using Bit.Core.Billing.Providers.Repositories; using Bit.Core.Billing.Repositories; -using Bit.Core.Dirt.Reports.Repositories; +using Bit.Core.Dirt.Repositories; using Bit.Core.Enums; using Bit.Core.KeyManagement.Repositories; using Bit.Core.NotificationCenter.Repositories; diff --git a/test/Core.Test/Dirt/ReportFeatures/AddPasswordHealthReportApplicationCommandTests.cs b/test/Core.Test/Dirt/ReportFeatures/AddPasswordHealthReportApplicationCommandTests.cs index be54bc5310..849732685c 100644 --- a/test/Core.Test/Dirt/ReportFeatures/AddPasswordHealthReportApplicationCommandTests.cs +++ b/test/Core.Test/Dirt/ReportFeatures/AddPasswordHealthReportApplicationCommandTests.cs @@ -1,9 +1,9 @@ using AutoFixture; using Bit.Core.AdminConsole.Entities; -using Bit.Core.Dirt.Reports.Entities; +using Bit.Core.Dirt.Entities; using Bit.Core.Dirt.Reports.ReportFeatures; using Bit.Core.Dirt.Reports.ReportFeatures.Requests; -using Bit.Core.Dirt.Reports.Repositories; +using Bit.Core.Dirt.Repositories; using Bit.Core.Exceptions; using Bit.Core.Repositories; using Bit.Test.Common.AutoFixture; diff --git a/test/Core.Test/Dirt/ReportFeatures/DeletePasswordHealthReportApplicationCommandTests.cs b/test/Core.Test/Dirt/ReportFeatures/DeletePasswordHealthReportApplicationCommandTests.cs index 7756995805..6265f463c7 100644 --- a/test/Core.Test/Dirt/ReportFeatures/DeletePasswordHealthReportApplicationCommandTests.cs +++ b/test/Core.Test/Dirt/ReportFeatures/DeletePasswordHealthReportApplicationCommandTests.cs @@ -1,8 +1,8 @@ using AutoFixture; -using Bit.Core.Dirt.Reports.Entities; +using Bit.Core.Dirt.Entities; using Bit.Core.Dirt.Reports.ReportFeatures; using Bit.Core.Dirt.Reports.ReportFeatures.Requests; -using Bit.Core.Dirt.Reports.Repositories; +using Bit.Core.Dirt.Repositories; using Bit.Core.Exceptions; using Bit.Test.Common.AutoFixture; using Bit.Test.Common.AutoFixture.Attributes; diff --git a/test/Core.Test/Dirt/ReportFeatures/GetPasswordHealthReportApplicationQueryTests.cs b/test/Core.Test/Dirt/ReportFeatures/GetPasswordHealthReportApplicationQueryTests.cs index eddfd6c1bc..8513ddb9cb 100644 --- a/test/Core.Test/Dirt/ReportFeatures/GetPasswordHealthReportApplicationQueryTests.cs +++ b/test/Core.Test/Dirt/ReportFeatures/GetPasswordHealthReportApplicationQueryTests.cs @@ -1,7 +1,7 @@ using AutoFixture; -using Bit.Core.Dirt.Reports.Entities; +using Bit.Core.Dirt.Entities; using Bit.Core.Dirt.Reports.ReportFeatures; -using Bit.Core.Dirt.Reports.Repositories; +using Bit.Core.Dirt.Repositories; using Bit.Core.Exceptions; using Bit.Test.Common.AutoFixture; using Bit.Test.Common.AutoFixture.Attributes; diff --git a/test/Infrastructure.EFIntegration.Test/AutoFixture/PasswordHealthReportApplicationFixtures.cs b/test/Infrastructure.EFIntegration.Test/AutoFixture/PasswordHealthReportApplicationFixtures.cs index f6100fc71f..31ab99dc4a 100644 --- a/test/Infrastructure.EFIntegration.Test/AutoFixture/PasswordHealthReportApplicationFixtures.cs +++ b/test/Infrastructure.EFIntegration.Test/AutoFixture/PasswordHealthReportApplicationFixtures.cs @@ -1,6 +1,6 @@ using AutoFixture; using AutoFixture.Kernel; -using Bit.Core.Dirt.Reports.Entities; +using Bit.Core.Dirt.Entities; using Bit.Infrastructure.EntityFramework.AdminConsole.Repositories; using Bit.Infrastructure.EntityFramework.Dirt.Repositories; using Bit.Infrastructure.EntityFramework.Repositories; diff --git a/test/Infrastructure.EFIntegration.Test/Dirt/Repositories/PasswordHealthReportApplicationRepositoryTests.cs b/test/Infrastructure.EFIntegration.Test/Dirt/Repositories/PasswordHealthReportApplicationRepositoryTests.cs index d796635153..5dfbb3e942 100644 --- a/test/Infrastructure.EFIntegration.Test/Dirt/Repositories/PasswordHealthReportApplicationRepositoryTests.cs +++ b/test/Infrastructure.EFIntegration.Test/Dirt/Repositories/PasswordHealthReportApplicationRepositoryTests.cs @@ -1,7 +1,7 @@ using AutoFixture; using Bit.Core.AdminConsole.Entities; -using Bit.Core.Dirt.Reports.Entities; -using Bit.Core.Dirt.Reports.Repositories; +using Bit.Core.Dirt.Entities; +using Bit.Core.Dirt.Repositories; using Bit.Core.Repositories; using Bit.Core.Test.AutoFixture.Attributes; using Bit.Infrastructure.Dapper.Dirt; diff --git a/util/Migrator/DbScripts/2025-06-10-00_OrganizationReport.sql b/util/Migrator/DbScripts/2025-06-13-00_OrganizationReport.sql similarity index 100% rename from util/Migrator/DbScripts/2025-06-10-00_OrganizationReport.sql rename to util/Migrator/DbScripts/2025-06-13-00_OrganizationReport.sql diff --git a/util/Migrator/DbScripts/2025-06-10-01_OrganizationApplication.sql b/util/Migrator/DbScripts/2025-06-13-01_OrganizationApplication.sql similarity index 100% rename from util/Migrator/DbScripts/2025-06-10-01_OrganizationApplication.sql rename to util/Migrator/DbScripts/2025-06-13-01_OrganizationApplication.sql diff --git a/util/Migrator/DbScripts/2025-06-10_02_UpdateOrgDeleteByIdProc.sql b/util/Migrator/DbScripts/2025-06-13_02_UpdateOrgDeleteByIdProc.sql similarity index 100% rename from util/Migrator/DbScripts/2025-06-10_02_UpdateOrgDeleteByIdProc.sql rename to util/Migrator/DbScripts/2025-06-13_02_UpdateOrgDeleteByIdProc.sql diff --git a/util/MySqlMigrations/HelperScripts/2025-06-10-00_OrganizationReport.sql b/util/MySqlMigrations/HelperScripts/2025-06-10-00_OrganizationReport.sql deleted file mode 100644 index dfe13253a3..0000000000 --- a/util/MySqlMigrations/HelperScripts/2025-06-10-00_OrganizationReport.sql +++ /dev/null @@ -1,111 +0,0 @@ -IF OBJECT_ID('dbo.OrganizationReport') IS NULL -BEGIN - CREATE TABLE [dbo].[OrganizationReport] - ( - [Id] UNIQUEIDENTIFIER NOT NULL, - [OrganizationId] UNIQUEIDENTIFIER NOT NULL, - [Date] DATETIME2 (7) NOT NULL, - [ReportData] NVARCHAR(MAX) NOT NULL, - [CreationDate] DATETIME2 (7) NOT NULL, - [RevisionDate] DATETIME2 (7) NOT NULL, - CONSTRAINT [PK_OrganizationReport] PRIMARY KEY CLUSTERED ([Id] ASC), - CONSTRAINT [FK_OrganizationReport_Organization] FOREIGN KEY ([OrganizationId]) REFERENCES [dbo].[Organization] ([Id]) - ); - - CREATE NONCLUSTERED INDEX [IX_OrganizationReport_OrganizationId] - ON [dbo].[OrganizationReport]([OrganizationId] ASC); -END -GO - -IF OBJECT_ID('dbo.OrganizationReportView') IS NOT NULL -BEGIN - DROP VIEW [dbo].[OrganizationReportView] -END -GO - -CREATE VIEW [dbo].[OrganizationReportView] AS - SELECT * FROM [dbo].[OrganizationReport]; -GO - -CREATE OR ALTER PROCEDURE [dbo].[OrganizationReport_Create] - @Id UNIQUEIDENTIFIER, - @OrganizationId UNIQUEIDENTIFIER, - @Date DATETIME2(7), - @ReportData NVARCHAR(MAX), - @CreationDate DATETIME2(7), - @RevisionDate DATETIME2(7) -AS - SET NOCOUNT ON; - INSERT INTO [dbo].[OrganizationReport]( [Id],[OrganizationId],[Date],[ReportData],[CreationDate],[RevisionDate] ) - VALUES ( @Id,@OrganizationId,@Date,@ReportData,@CreationDate,@RevisionDate); -GO - -CREATE OR ALTER PROCEDURE [dbo].[OrganizationReport_ReadByOrganizationId] - @OrganizationId UNIQUEIDENTIFIER -AS - SET NOCOUNT ON; - - IF @OrganizationId IS NULL - THROW 50000, 'OrganizationId cannot be null', 1; - - SELECT - [Id], - [OrganizationId], - [Date], - [ReportData], - [CreationDate], - [RevisionDate] - FROM [dbo].[OrganizationReport] - WHERE [OrganizationId] = @OrganizationId; -GO - -CREATE OR ALTER PROCEDURE [dbo].[OrganizationReport_ReadById] - @Id UNIQUEIDENTIFIER -AS - SET NOCOUNT ON; - - IF @Id IS NULL - THROW 50000, 'Id cannot be null', 1; - - SELECT - [Id], - [OrganizationId], - [Date], - [ReportData], - [CreationDate], - [RevisionDate] - FROM [dbo].[OrganizationReport] - WHERE [Id] = @Id; -GO - -CREATE OR ALTER PROCEDURE [dbo].[OrganizationReport_Update] - @Id UNIQUEIDENTIFIER OUTPUT, - @OrganizationId UNIQUEIDENTIFIER, - @Date DATETIME2(7), - @ReportData NVARCHAR(MAX), - @RevisionDate DATETIME2(7) -AS - SET NOCOUNT ON; - UPDATE [dbo].[OrganizationReport] - SET [OrganizationId] = @OrganizationId, - [Date] = @Date, - [ReportData] = @ReportData, - [RevisionDate] = @RevisionDate - WHERE [Id] = @Id; -GO - -CREATE OR ALTER PROCEDURE [dbo].[OrganizationReport_DeleteById] - @Id UNIQUEIDENTIFIER -AS - SET NOCOUNT ON; - - IF @Id IS NULL - THROW 50000, 'Id cannot be null', 1; - - DELETE FROM [dbo].[OrganizationReport] - WHERE [Id] = @Id; -GO - - - - diff --git a/util/MySqlMigrations/HelperScripts/2025-06-10-01_OrganizationApplication.sql b/util/MySqlMigrations/HelperScripts/2025-06-10-01_OrganizationApplication.sql deleted file mode 100644 index b16f5857b0..0000000000 --- a/util/MySqlMigrations/HelperScripts/2025-06-10-01_OrganizationApplication.sql +++ /dev/null @@ -1,126 +0,0 @@ -IF OBJECT_ID('dbo.OrganizationApplication') IS NULL -BEGIN - CREATE TABLE [dbo].[OrganizationApplication] ( - [Id] UNIQUEIDENTIFIER NOT NULL, - [OrganizationId] UNIQUEIDENTIFIER NOT NULL, - [Applications] NVARCHAR(MAX) NOT NULL, - [CreationDate] DATETIME2 (7) NOT NULL, - [RevisionDate] DATETIME2 (7) NOT NULL, - CONSTRAINT [PK_OrganizationApplication] PRIMARY KEY CLUSTERED ([Id] ASC), - CONSTRAINT [FK_OrganizationApplication_Organization] FOREIGN KEY ([OrganizationId]) REFERENCES [dbo].[Organization] ([Id]) - ); - - CREATE NONCLUSTERED INDEX [IX_OrganizationApplication_OrganizationId] - ON [dbo].[OrganizationApplication]([OrganizationId] ASC); -END -GO - -IF OBJECT_ID('dbo.OrganizationApplicationView') IS NOT NULL -BEGIN - DROP VIEW [dbo].[OrganizationApplicationView]; -END -GO - -CREATE VIEW [dbo].[OrganizationApplicationView] AS - SELECT * FROM [dbo].[OrganizationApplication]; -GO - -CREATE OR ALTER PROCEDURE [dbo].[OrganizationApplication_Create] - @Id UNIQUEIDENTIFIER, - @OrganizationId UNIQUEIDENTIFIER, - @Applications NVARCHAR(MAX), - @CreationDate DATETIME2(7), - @RevisionDate DATETIME2(7) -AS - SET NOCOUNT ON; - - INSERT INTO [dbo].[OrganizationApplication] - ( - [Id], - [OrganizationId], - [Applications], - [CreationDate], - [RevisionDate] - ) - VALUES - ( - @Id, - @OrganizationId, - @Applications, - @CreationDate, - @RevisionDate - ); -GO - -CREATE OR ALTER PROCEDURE [dbo].[OrganizationApplication_ReadByOrganizationId] - @OrganizationId UNIQUEIDENTIFIER -AS - SET NOCOUNT ON; - - IF @OrganizationId IS NULL - THROW 50000, 'OrganizationId cannot be null', 1; - - SELECT - [Id], - [OrganizationId], - [Applications], - [CreationDate], - [RevisionDate] - FROM [dbo].[OrganizationApplication] - WHERE [OrganizationId] = @OrganizationId; -GO - -CREATE OR ALTER PROCEDURE [dbo].[OrganizationApplication_ReadById] - @Id UNIQUEIDENTIFIER -AS - SET NOCOUNT ON; - - IF @Id IS NULL - THROW 50000, 'Id cannot be null', 1; - - SELECT - [Id], - [OrganizationId], - [Applications], - [CreationDate], - [RevisionDate] - FROM [dbo].[OrganizationApplication] - WHERE [Id] = @Id; -GO - -CREATE OR ALTER PROCEDURE [dbo].[OrganizationApplication_Update] - @Id UNIQUEIDENTIFIER, - @OrganizationId UNIQUEIDENTIFIER, - @Applications NVARCHAR(MAX), - @RevisionDate DATETIME2(7) -AS - SET NOCOUNT ON; - UPDATE [dbo].[OrganizationApplication] - SET - [OrganizationId] = @OrganizationId, - [Applications] = @Applications, - [RevisionDate] = @RevisionDate - WHERE [Id] = @Id; -GO - -CREATE OR ALTER PROCEDURE [dbo].[OrganizationApplication_DeleteById] - @Id UNIQUEIDENTIFIER -AS - SET NOCOUNT ON; - - IF @Id IS NULL - THROW 50000, 'Id cannot be null', 1; - - DELETE FROM [dbo].[OrganizationApplication] - WHERE [Id] = @Id; -GO - - - - - - - - - - diff --git a/util/MySqlMigrations/HelperScripts/2025-06-10_02_UpdateOrgDeleteByIdProc.sql b/util/MySqlMigrations/HelperScripts/2025-06-10_02_UpdateOrgDeleteByIdProc.sql deleted file mode 100644 index 9f311a53af..0000000000 --- a/util/MySqlMigrations/HelperScripts/2025-06-10_02_UpdateOrgDeleteByIdProc.sql +++ /dev/null @@ -1,161 +0,0 @@ -CREATE OR ALTER PROCEDURE [dbo].[Organization_DeleteById] - @Id UNIQUEIDENTIFIER -WITH RECOMPILE -AS -BEGIN - SET NOCOUNT ON - - EXEC [dbo].[User_BumpAccountRevisionDateByOrganizationId] @Id - - DECLARE @BatchSize INT = 100 - WHILE @BatchSize > 0 - BEGIN - BEGIN TRANSACTION Organization_DeleteById_Ciphers - - DELETE TOP(@BatchSize) - FROM - [dbo].[Cipher] - WHERE - [UserId] IS NULL - AND [OrganizationId] = @Id - - SET @BatchSize = @@ROWCOUNT - - COMMIT TRANSACTION Organization_DeleteById_Ciphers - END - - BEGIN TRANSACTION Organization_DeleteById - - DELETE - FROM - [dbo].[AuthRequest] - WHERE - [OrganizationId] = @Id - - DELETE - FROM - [dbo].[SsoUser] - WHERE - [OrganizationId] = @Id - - DELETE - FROM - [dbo].[SsoConfig] - WHERE - [OrganizationId] = @Id - - DELETE CU - FROM - [dbo].[CollectionUser] CU - INNER JOIN - [dbo].[OrganizationUser] OU ON [CU].[OrganizationUserId] = [OU].[Id] - WHERE - [OU].[OrganizationId] = @Id - - DELETE AP - FROM - [dbo].[AccessPolicy] AP - INNER JOIN - [dbo].[OrganizationUser] OU ON [AP].[OrganizationUserId] = [OU].[Id] - WHERE - [OU].[OrganizationId] = @Id - - DELETE GU - FROM - [dbo].[GroupUser] GU - INNER JOIN - [dbo].[OrganizationUser] OU ON [GU].[OrganizationUserId] = [OU].[Id] - WHERE - [OU].[OrganizationId] = @Id - - DELETE - FROM - [dbo].[OrganizationUser] - WHERE - [OrganizationId] = @Id - - DELETE - FROM - [dbo].[ProviderOrganization] - WHERE - [OrganizationId] = @Id - - EXEC [dbo].[OrganizationApiKey_OrganizationDeleted] @Id - EXEC [dbo].[OrganizationConnection_OrganizationDeleted] @Id - EXEC [dbo].[OrganizationSponsorship_OrganizationDeleted] @Id - EXEC [dbo].[OrganizationDomain_OrganizationDeleted] @Id - EXEC [dbo].[OrganizationIntegration_OrganizationDeleted] @Id - - DELETE - FROM - [dbo].[Project] - WHERE - [OrganizationId] = @Id - - DELETE - FROM - [dbo].[Secret] - WHERE - [OrganizationId] = @Id - - DELETE AK - FROM - [dbo].[ApiKey] AK - INNER JOIN - [dbo].[ServiceAccount] SA ON [AK].[ServiceAccountId] = [SA].[Id] - WHERE - [SA].[OrganizationId] = @Id - - DELETE AP - FROM - [dbo].[AccessPolicy] AP - INNER JOIN - [dbo].[ServiceAccount] SA ON [AP].[GrantedServiceAccountId] = [SA].[Id] - WHERE - [SA].[OrganizationId] = @Id - - DELETE - FROM - [dbo].[ServiceAccount] - WHERE - [OrganizationId] = @Id - - -- Delete Notification Status - DELETE - NS - FROM - [dbo].[NotificationStatus] NS - INNER JOIN - [dbo].[Notification] N ON N.[Id] = NS.[NotificationId] - WHERE - N.[OrganizationId] = @Id - - -- Delete Notification - DELETE - FROM - [dbo].[Notification] - WHERE - [OrganizationId] = @Id - - -- Delete Organization Application - DELETE - FROM - [dbo].[OrganizationApplication] - WHERE - [Id] = @Id - - -- Delete Organization Report - DELETE - FROM - [dbo].[OrganizationReport] - WHERE - [Id] = @Id - - DELETE - FROM - [dbo].[Organization] - WHERE - [Id] = @Id - COMMIT TRANSACTION Organization_DeleteById - END - GO diff --git a/util/MySqlMigrations/Migrations/20250613160900_2025-06-02_00_AddOrgUserDefaultCollection.sql.Designer.cs b/util/MySqlMigrations/Migrations/20250613160900_2025-06-02_00_AddOrgUserDefaultCollection.sql.Designer.cs deleted file mode 100644 index 58f56953b8..0000000000 --- a/util/MySqlMigrations/Migrations/20250613160900_2025-06-02_00_AddOrgUserDefaultCollection.sql.Designer.cs +++ /dev/null @@ -1,3208 +0,0 @@ -// -using System; -using Bit.Infrastructure.EntityFramework.Repositories; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Metadata; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; - -#nullable disable - -namespace Bit.MySqlMigrations.Migrations -{ - [DbContext(typeof(DatabaseContext))] - [Migration("20250613160900_2025-06-02_00_AddOrgUserDefaultCollection.sql")] - partial class _20250602_00_AddOrgUserDefaultCollectionsql - { - /// - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .HasAnnotation("ProductVersion", "8.0.8") - .HasAnnotation("Relational:MaxIdentifierLength", 64); - - MySqlModelBuilderExtensions.AutoIncrementColumns(modelBuilder); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.AdminConsole.Models.Organization", b => - { - b.Property("Id") - .HasColumnType("char(36)"); - - b.Property("AllowAdminAccessToAllCollectionItems") - .HasColumnType("tinyint(1)") - .HasDefaultValue(true); - - b.Property("BillingEmail") - .IsRequired() - .HasMaxLength(256) - .HasColumnType("varchar(256)"); - - b.Property("BusinessAddress1") - .HasMaxLength(50) - .HasColumnType("varchar(50)"); - - b.Property("BusinessAddress2") - .HasMaxLength(50) - .HasColumnType("varchar(50)"); - - b.Property("BusinessAddress3") - .HasMaxLength(50) - .HasColumnType("varchar(50)"); - - b.Property("BusinessCountry") - .HasMaxLength(2) - .HasColumnType("varchar(2)"); - - b.Property("BusinessName") - .HasMaxLength(50) - .HasColumnType("varchar(50)"); - - b.Property("BusinessTaxNumber") - .HasMaxLength(30) - .HasColumnType("varchar(30)"); - - b.Property("CreationDate") - .HasColumnType("datetime(6)"); - - b.Property("Enabled") - .HasColumnType("tinyint(1)"); - - b.Property("ExpirationDate") - .HasColumnType("datetime(6)"); - - b.Property("Gateway") - .HasColumnType("tinyint unsigned"); - - b.Property("GatewayCustomerId") - .HasMaxLength(50) - .HasColumnType("varchar(50)"); - - b.Property("GatewaySubscriptionId") - .HasMaxLength(50) - .HasColumnType("varchar(50)"); - - b.Property("Identifier") - .HasMaxLength(50) - .HasColumnType("varchar(50)"); - - b.Property("LicenseKey") - .HasMaxLength(100) - .HasColumnType("varchar(100)"); - - b.Property("LimitCollectionCreation") - .HasColumnType("tinyint(1)"); - - b.Property("LimitCollectionDeletion") - .HasColumnType("tinyint(1)"); - - b.Property("LimitItemDeletion") - .HasColumnType("tinyint(1)"); - - b.Property("MaxAutoscaleSeats") - .HasColumnType("int"); - - b.Property("MaxAutoscaleSmSeats") - .HasColumnType("int"); - - b.Property("MaxAutoscaleSmServiceAccounts") - .HasColumnType("int"); - - b.Property("MaxCollections") - .HasColumnType("smallint"); - - b.Property("MaxStorageGb") - .HasColumnType("smallint"); - - b.Property("Name") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)"); - - b.Property("OwnersNotifiedOfAutoscaling") - .HasColumnType("datetime(6)"); - - b.Property("Plan") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)"); - - b.Property("PlanType") - .HasColumnType("tinyint unsigned"); - - b.Property("PrivateKey") - .HasColumnType("longtext"); - - b.Property("PublicKey") - .HasColumnType("longtext"); - - b.Property("ReferenceData") - .HasColumnType("longtext"); - - b.Property("RevisionDate") - .HasColumnType("datetime(6)"); - - b.Property("Seats") - .HasColumnType("int"); - - b.Property("SelfHost") - .HasColumnType("tinyint(1)"); - - b.Property("SmSeats") - .HasColumnType("int"); - - b.Property("SmServiceAccounts") - .HasColumnType("int"); - - b.Property("Status") - .HasColumnType("tinyint unsigned"); - - b.Property("Storage") - .HasColumnType("bigint"); - - b.Property("TwoFactorProviders") - .HasColumnType("longtext"); - - b.Property("Use2fa") - .HasColumnType("tinyint(1)"); - - b.Property("UseAdminSponsoredFamilies") - .HasColumnType("tinyint(1)"); - - b.Property("UseApi") - .HasColumnType("tinyint(1)"); - - b.Property("UseCustomPermissions") - .HasColumnType("tinyint(1)"); - - b.Property("UseDirectory") - .HasColumnType("tinyint(1)"); - - b.Property("UseEvents") - .HasColumnType("tinyint(1)"); - - b.Property("UseGroups") - .HasColumnType("tinyint(1)"); - - b.Property("UseKeyConnector") - .HasColumnType("tinyint(1)"); - - b.Property("UseOrganizationDomains") - .HasColumnType("tinyint(1)"); - - b.Property("UsePasswordManager") - .HasColumnType("tinyint(1)"); - - b.Property("UsePolicies") - .HasColumnType("tinyint(1)"); - - b.Property("UseResetPassword") - .HasColumnType("tinyint(1)"); - - b.Property("UseRiskInsights") - .HasColumnType("tinyint(1)"); - - b.Property("UseScim") - .HasColumnType("tinyint(1)"); - - b.Property("UseSecretsManager") - .HasColumnType("tinyint(1)"); - - b.Property("UseSso") - .HasColumnType("tinyint(1)"); - - b.Property("UseTotp") - .HasColumnType("tinyint(1)"); - - b.Property("UsersGetPremium") - .HasColumnType("tinyint(1)"); - - b.HasKey("Id"); - - b.HasIndex("Id", "Enabled") - .HasAnnotation("Npgsql:IndexInclude", new[] { "UseTotp" }); - - b.ToTable("Organization", (string)null); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.AdminConsole.Models.OrganizationIntegration", b => - { - b.Property("Id") - .HasColumnType("char(36)"); - - b.Property("Configuration") - .HasColumnType("longtext"); - - b.Property("CreationDate") - .HasColumnType("datetime(6)"); - - b.Property("OrganizationId") - .HasColumnType("char(36)"); - - b.Property("RevisionDate") - .HasColumnType("datetime(6)"); - - b.Property("Type") - .HasColumnType("int"); - - b.HasKey("Id"); - - b.HasIndex("OrganizationId") - .HasAnnotation("SqlServer:Clustered", false); - - b.HasIndex("OrganizationId", "Type") - .IsUnique() - .HasAnnotation("SqlServer:Clustered", false); - - b.ToTable("OrganizationIntegration", (string)null); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.AdminConsole.Models.OrganizationIntegrationConfiguration", b => - { - b.Property("Id") - .HasColumnType("char(36)"); - - b.Property("Configuration") - .HasColumnType("longtext"); - - b.Property("CreationDate") - .HasColumnType("datetime(6)"); - - b.Property("EventType") - .HasColumnType("int"); - - b.Property("OrganizationIntegrationId") - .HasColumnType("char(36)"); - - b.Property("RevisionDate") - .HasColumnType("datetime(6)"); - - b.Property("Template") - .HasColumnType("longtext"); - - b.HasKey("Id"); - - b.HasIndex("OrganizationIntegrationId"); - - b.ToTable("OrganizationIntegrationConfiguration", (string)null); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.AdminConsole.Models.Policy", b => - { - b.Property("Id") - .HasColumnType("char(36)"); - - b.Property("CreationDate") - .HasColumnType("datetime(6)"); - - b.Property("Data") - .HasColumnType("longtext"); - - b.Property("Enabled") - .HasColumnType("tinyint(1)"); - - b.Property("OrganizationId") - .HasColumnType("char(36)"); - - b.Property("RevisionDate") - .HasColumnType("datetime(6)"); - - b.Property("Type") - .HasColumnType("tinyint unsigned"); - - b.HasKey("Id"); - - b.HasIndex("OrganizationId") - .HasAnnotation("SqlServer:Clustered", false); - - b.HasIndex("OrganizationId", "Type") - .IsUnique() - .HasAnnotation("SqlServer:Clustered", false); - - b.ToTable("Policy", (string)null); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.AdminConsole.Models.Provider.Provider", b => - { - b.Property("Id") - .HasColumnType("char(36)"); - - b.Property("BillingEmail") - .HasColumnType("longtext"); - - b.Property("BillingPhone") - .HasColumnType("longtext"); - - b.Property("BusinessAddress1") - .HasColumnType("longtext"); - - b.Property("BusinessAddress2") - .HasColumnType("longtext"); - - b.Property("BusinessAddress3") - .HasColumnType("longtext"); - - b.Property("BusinessCountry") - .HasColumnType("longtext"); - - b.Property("BusinessName") - .HasColumnType("longtext"); - - b.Property("BusinessTaxNumber") - .HasColumnType("longtext"); - - b.Property("CreationDate") - .HasColumnType("datetime(6)"); - - b.Property("DiscountId") - .HasColumnType("longtext"); - - b.Property("Enabled") - .HasColumnType("tinyint(1)"); - - b.Property("Gateway") - .HasColumnType("tinyint unsigned"); - - b.Property("GatewayCustomerId") - .HasColumnType("longtext"); - - b.Property("GatewaySubscriptionId") - .HasColumnType("longtext"); - - b.Property("Name") - .HasColumnType("longtext"); - - b.Property("RevisionDate") - .HasColumnType("datetime(6)"); - - b.Property("Status") - .HasColumnType("tinyint unsigned"); - - b.Property("Type") - .HasColumnType("tinyint unsigned"); - - b.Property("UseEvents") - .HasColumnType("tinyint(1)"); - - b.HasKey("Id"); - - b.ToTable("Provider", (string)null); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.AdminConsole.Models.Provider.ProviderOrganization", b => - { - b.Property("Id") - .HasColumnType("char(36)"); - - b.Property("CreationDate") - .HasColumnType("datetime(6)"); - - b.Property("Key") - .HasColumnType("longtext"); - - b.Property("OrganizationId") - .HasColumnType("char(36)"); - - b.Property("ProviderId") - .HasColumnType("char(36)"); - - b.Property("RevisionDate") - .HasColumnType("datetime(6)"); - - b.Property("Settings") - .HasColumnType("longtext"); - - b.HasKey("Id"); - - b.HasIndex("OrganizationId"); - - b.HasIndex("ProviderId"); - - b.ToTable("ProviderOrganization", (string)null); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.AdminConsole.Models.Provider.ProviderUser", b => - { - b.Property("Id") - .HasColumnType("char(36)"); - - b.Property("CreationDate") - .HasColumnType("datetime(6)"); - - b.Property("Email") - .HasColumnType("longtext"); - - b.Property("Key") - .HasColumnType("longtext"); - - b.Property("Permissions") - .HasColumnType("longtext"); - - b.Property("ProviderId") - .HasColumnType("char(36)"); - - b.Property("RevisionDate") - .HasColumnType("datetime(6)"); - - b.Property("Status") - .HasColumnType("tinyint unsigned"); - - b.Property("Type") - .HasColumnType("tinyint unsigned"); - - b.Property("UserId") - .HasColumnType("char(36)"); - - b.HasKey("Id"); - - b.HasIndex("ProviderId"); - - b.HasIndex("UserId"); - - b.ToTable("ProviderUser", (string)null); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Auth.Models.AuthRequest", b => - { - b.Property("Id") - .HasColumnType("char(36)"); - - b.Property("AccessCode") - .HasMaxLength(25) - .HasColumnType("varchar(25)"); - - b.Property("Approved") - .HasColumnType("tinyint(1)"); - - b.Property("AuthenticationDate") - .HasColumnType("datetime(6)"); - - b.Property("CreationDate") - .HasColumnType("datetime(6)"); - - b.Property("Key") - .HasColumnType("longtext"); - - b.Property("MasterPasswordHash") - .HasColumnType("longtext"); - - b.Property("OrganizationId") - .HasColumnType("char(36)"); - - b.Property("PublicKey") - .HasColumnType("longtext"); - - b.Property("RequestCountryName") - .HasMaxLength(200) - .HasColumnType("varchar(200)"); - - b.Property("RequestDeviceIdentifier") - .HasMaxLength(50) - .HasColumnType("varchar(50)"); - - b.Property("RequestDeviceType") - .HasColumnType("tinyint unsigned"); - - b.Property("RequestIpAddress") - .HasMaxLength(50) - .HasColumnType("varchar(50)"); - - b.Property("ResponseDate") - .HasColumnType("datetime(6)"); - - b.Property("ResponseDeviceId") - .HasColumnType("char(36)"); - - b.Property("Type") - .HasColumnType("tinyint unsigned"); - - b.Property("UserId") - .HasColumnType("char(36)"); - - b.HasKey("Id"); - - b.HasIndex("OrganizationId"); - - b.HasIndex("ResponseDeviceId"); - - b.HasIndex("UserId"); - - b.ToTable("AuthRequest", (string)null); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Auth.Models.EmergencyAccess", b => - { - b.Property("Id") - .HasColumnType("char(36)"); - - b.Property("CreationDate") - .HasColumnType("datetime(6)"); - - b.Property("Email") - .HasMaxLength(256) - .HasColumnType("varchar(256)"); - - b.Property("GranteeId") - .HasColumnType("char(36)"); - - b.Property("GrantorId") - .HasColumnType("char(36)"); - - b.Property("KeyEncrypted") - .HasColumnType("longtext"); - - b.Property("LastNotificationDate") - .HasColumnType("datetime(6)"); - - b.Property("RecoveryInitiatedDate") - .HasColumnType("datetime(6)"); - - b.Property("RevisionDate") - .HasColumnType("datetime(6)"); - - b.Property("Status") - .HasColumnType("tinyint unsigned"); - - b.Property("Type") - .HasColumnType("tinyint unsigned"); - - b.Property("WaitTimeDays") - .HasColumnType("int"); - - b.HasKey("Id"); - - b.HasIndex("GranteeId"); - - b.HasIndex("GrantorId"); - - b.ToTable("EmergencyAccess", (string)null); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Auth.Models.Grant", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("ClientId") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("varchar(200)"); - - b.Property("ConsumedDate") - .HasColumnType("datetime(6)"); - - b.Property("CreationDate") - .HasColumnType("datetime(6)"); - - b.Property("Data") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("Description") - .HasMaxLength(200) - .HasColumnType("varchar(200)"); - - b.Property("ExpirationDate") - .HasColumnType("datetime(6)"); - - b.Property("Key") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("varchar(200)"); - - b.Property("SessionId") - .HasMaxLength(100) - .HasColumnType("varchar(100)"); - - b.Property("SubjectId") - .HasMaxLength(200) - .HasColumnType("varchar(200)"); - - b.Property("Type") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)"); - - b.HasKey("Id") - .HasName("PK_Grant") - .HasAnnotation("SqlServer:Clustered", true); - - b.HasIndex("ExpirationDate") - .HasAnnotation("SqlServer:Clustered", false); - - b.HasIndex("Key") - .IsUnique(); - - b.ToTable("Grant", (string)null); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Auth.Models.SsoConfig", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("bigint"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("CreationDate") - .HasColumnType("datetime(6)"); - - b.Property("Data") - .HasColumnType("longtext"); - - b.Property("Enabled") - .HasColumnType("tinyint(1)"); - - b.Property("OrganizationId") - .HasColumnType("char(36)"); - - b.Property("RevisionDate") - .HasColumnType("datetime(6)"); - - b.HasKey("Id"); - - b.HasIndex("OrganizationId"); - - b.ToTable("SsoConfig", (string)null); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Auth.Models.SsoUser", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("bigint"); - - MySqlPropertyBuilderExtensions.UseMySqlIdentityColumn(b.Property("Id")); - - b.Property("CreationDate") - .HasColumnType("datetime(6)"); - - b.Property("ExternalId") - .HasMaxLength(300) - .HasColumnType("varchar(300)"); - - b.Property("OrganizationId") - .HasColumnType("char(36)"); - - b.Property("UserId") - .HasColumnType("char(36)"); - - b.HasKey("Id"); - - b.HasIndex("OrganizationId") - .HasAnnotation("SqlServer:Clustered", false); - - b.HasIndex("UserId"); - - b.HasIndex("OrganizationId", "ExternalId") - .IsUnique() - .HasAnnotation("Npgsql:IndexInclude", new[] { "UserId" }) - .HasAnnotation("SqlServer:Clustered", false); - - b.HasIndex("OrganizationId", "UserId") - .IsUnique() - .HasAnnotation("SqlServer:Clustered", false); - - b.ToTable("SsoUser", (string)null); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Auth.Models.WebAuthnCredential", b => - { - b.Property("Id") - .HasColumnType("char(36)"); - - b.Property("AaGuid") - .HasColumnType("char(36)"); - - b.Property("Counter") - .HasColumnType("int"); - - b.Property("CreationDate") - .HasColumnType("datetime(6)"); - - b.Property("CredentialId") - .HasMaxLength(256) - .HasColumnType("varchar(256)"); - - b.Property("EncryptedPrivateKey") - .HasMaxLength(2000) - .HasColumnType("varchar(2000)"); - - b.Property("EncryptedPublicKey") - .HasMaxLength(2000) - .HasColumnType("varchar(2000)"); - - b.Property("EncryptedUserKey") - .HasMaxLength(2000) - .HasColumnType("varchar(2000)"); - - b.Property("Name") - .HasMaxLength(50) - .HasColumnType("varchar(50)"); - - b.Property("PublicKey") - .HasMaxLength(256) - .HasColumnType("varchar(256)"); - - b.Property("RevisionDate") - .HasColumnType("datetime(6)"); - - b.Property("SupportsPrf") - .HasColumnType("tinyint(1)"); - - b.Property("Type") - .HasMaxLength(20) - .HasColumnType("varchar(20)"); - - b.Property("UserId") - .HasColumnType("char(36)"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("WebAuthnCredential", (string)null); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Billing.Models.ClientOrganizationMigrationRecord", b => - { - b.Property("Id") - .HasColumnType("char(36)"); - - b.Property("ExpirationDate") - .HasColumnType("datetime(6)"); - - b.Property("GatewayCustomerId") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)"); - - b.Property("GatewaySubscriptionId") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)"); - - b.Property("MaxAutoscaleSeats") - .HasColumnType("int"); - - b.Property("MaxStorageGb") - .HasColumnType("smallint"); - - b.Property("OrganizationId") - .HasColumnType("char(36)"); - - b.Property("PlanType") - .HasColumnType("tinyint unsigned"); - - b.Property("ProviderId") - .HasColumnType("char(36)"); - - b.Property("Seats") - .HasColumnType("int"); - - b.Property("Status") - .HasColumnType("tinyint unsigned"); - - b.HasKey("Id"); - - b.HasIndex("ProviderId", "OrganizationId") - .IsUnique(); - - b.ToTable("ClientOrganizationMigrationRecord", (string)null); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Billing.Models.OrganizationInstallation", b => - { - b.Property("Id") - .HasColumnType("char(36)"); - - b.Property("CreationDate") - .HasColumnType("datetime(6)"); - - b.Property("InstallationId") - .HasColumnType("char(36)"); - - b.Property("OrganizationId") - .HasColumnType("char(36)"); - - b.Property("RevisionDate") - .HasColumnType("datetime(6)"); - - b.HasKey("Id") - .HasAnnotation("SqlServer:Clustered", true); - - b.HasIndex("InstallationId") - .HasAnnotation("SqlServer:Clustered", false); - - b.HasIndex("OrganizationId") - .HasAnnotation("SqlServer:Clustered", false); - - b.ToTable("OrganizationInstallation", (string)null); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Billing.Models.ProviderInvoiceItem", b => - { - b.Property("Id") - .HasColumnType("char(36)"); - - b.Property("AssignedSeats") - .HasColumnType("int"); - - b.Property("ClientId") - .HasColumnType("char(36)"); - - b.Property("ClientName") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)"); - - b.Property("Created") - .HasColumnType("datetime(6)"); - - b.Property("InvoiceId") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)"); - - b.Property("InvoiceNumber") - .HasMaxLength(50) - .HasColumnType("varchar(50)"); - - b.Property("PlanName") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)"); - - b.Property("ProviderId") - .HasColumnType("char(36)"); - - b.Property("Total") - .HasColumnType("decimal(65,30)"); - - b.Property("UsedSeats") - .HasColumnType("int"); - - b.HasKey("Id"); - - b.HasIndex("ProviderId"); - - b.ToTable("ProviderInvoiceItem", (string)null); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Billing.Models.ProviderPlan", b => - { - b.Property("Id") - .HasColumnType("char(36)"); - - b.Property("AllocatedSeats") - .HasColumnType("int"); - - b.Property("PlanType") - .HasColumnType("tinyint unsigned"); - - b.Property("ProviderId") - .HasColumnType("char(36)"); - - b.Property("PurchasedSeats") - .HasColumnType("int"); - - b.Property("SeatMinimum") - .HasColumnType("int"); - - b.HasKey("Id"); - - b.HasIndex("ProviderId"); - - b.HasIndex("Id", "PlanType") - .IsUnique(); - - b.ToTable("ProviderPlan", (string)null); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Dirt.Models.OrganizationApplication", b => - { - b.Property("Id") - .HasColumnType("char(36)"); - - b.Property("Applications") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("CreationDate") - .HasColumnType("datetime(6)"); - - b.Property("OrganizationId") - .HasColumnType("char(36)"); - - b.Property("RevisionDate") - .HasColumnType("datetime(6)"); - - b.HasKey("Id"); - - b.HasIndex("Id") - .HasAnnotation("SqlServer:Clustered", true); - - b.HasIndex("OrganizationId") - .HasAnnotation("SqlServer:Clustered", false); - - b.ToTable("OrganizationApplication", (string)null); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Dirt.Models.OrganizationReport", b => - { - b.Property("Id") - .HasColumnType("char(36)"); - - b.Property("CreationDate") - .HasColumnType("datetime(6)"); - - b.Property("Date") - .HasColumnType("datetime(6)"); - - b.Property("OrganizationId") - .HasColumnType("char(36)"); - - b.Property("ReportData") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("RevisionDate") - .HasColumnType("datetime(6)"); - - b.HasKey("Id"); - - b.HasIndex("Id") - .HasAnnotation("SqlServer:Clustered", true); - - b.HasIndex("OrganizationId") - .HasAnnotation("SqlServer:Clustered", false); - - b.ToTable("OrganizationReport", (string)null); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Dirt.Models.PasswordHealthReportApplication", b => - { - b.Property("Id") - .HasColumnType("char(36)"); - - b.Property("CreationDate") - .HasColumnType("datetime(6)"); - - b.Property("OrganizationId") - .HasColumnType("char(36)"); - - b.Property("RevisionDate") - .HasColumnType("datetime(6)"); - - b.Property("Uri") - .HasColumnType("longtext"); - - b.HasKey("Id"); - - b.HasIndex("Id") - .HasAnnotation("SqlServer:Clustered", true); - - b.HasIndex("OrganizationId") - .HasAnnotation("SqlServer:Clustered", false); - - b.ToTable("PasswordHealthReportApplication", (string)null); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.Cache", b => - { - b.Property("Id") - .HasMaxLength(449) - .HasColumnType("varchar(449)"); - - b.Property("AbsoluteExpiration") - .HasColumnType("datetime(6)"); - - b.Property("ExpiresAtTime") - .HasColumnType("datetime(6)"); - - b.Property("SlidingExpirationInSeconds") - .HasColumnType("bigint"); - - b.Property("Value") - .IsRequired() - .HasColumnType("longblob"); - - b.HasKey("Id") - .HasAnnotation("SqlServer:Clustered", true); - - b.HasIndex("ExpiresAtTime") - .HasAnnotation("SqlServer:Clustered", false); - - b.ToTable("Cache", (string)null); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.Collection", b => - { - b.Property("Id") - .HasColumnType("char(36)"); - - b.Property("CreationDate") - .HasColumnType("datetime(6)"); - - b.Property("DefaultUserCollectionEmail") - .HasColumnType("longtext"); - - b.Property("ExternalId") - .HasMaxLength(300) - .HasColumnType("varchar(300)"); - - b.Property("Name") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("OrganizationId") - .HasColumnType("char(36)"); - - b.Property("RevisionDate") - .HasColumnType("datetime(6)"); - - b.Property("Type") - .HasColumnType("int"); - - b.HasKey("Id"); - - b.HasIndex("OrganizationId"); - - b.ToTable("Collection", (string)null); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.CollectionCipher", b => - { - b.Property("CollectionId") - .HasColumnType("char(36)"); - - b.Property("CipherId") - .HasColumnType("char(36)"); - - b.HasKey("CollectionId", "CipherId"); - - b.HasIndex("CipherId"); - - b.ToTable("CollectionCipher", (string)null); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.CollectionGroup", b => - { - b.Property("CollectionId") - .HasColumnType("char(36)"); - - b.Property("GroupId") - .HasColumnType("char(36)"); - - b.Property("HidePasswords") - .HasColumnType("tinyint(1)"); - - b.Property("Manage") - .HasColumnType("tinyint(1)"); - - b.Property("ReadOnly") - .HasColumnType("tinyint(1)"); - - b.HasKey("CollectionId", "GroupId"); - - b.HasIndex("GroupId"); - - b.ToTable("CollectionGroups"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.CollectionUser", b => - { - b.Property("CollectionId") - .HasColumnType("char(36)"); - - b.Property("OrganizationUserId") - .HasColumnType("char(36)"); - - b.Property("HidePasswords") - .HasColumnType("tinyint(1)"); - - b.Property("Manage") - .HasColumnType("tinyint(1)"); - - b.Property("ReadOnly") - .HasColumnType("tinyint(1)"); - - b.HasKey("CollectionId", "OrganizationUserId"); - - b.HasIndex("OrganizationUserId"); - - b.ToTable("CollectionUsers"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.Device", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("char(36)"); - - b.Property("Active") - .HasColumnType("tinyint(1)") - .HasDefaultValue(true); - - b.Property("CreationDate") - .HasColumnType("datetime(6)"); - - b.Property("EncryptedPrivateKey") - .HasColumnType("longtext"); - - b.Property("EncryptedPublicKey") - .HasColumnType("longtext"); - - b.Property("EncryptedUserKey") - .HasColumnType("longtext"); - - b.Property("Identifier") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)"); - - b.Property("Name") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)"); - - b.Property("PushToken") - .HasMaxLength(255) - .HasColumnType("varchar(255)"); - - b.Property("RevisionDate") - .HasColumnType("datetime(6)"); - - b.Property("Type") - .HasColumnType("tinyint unsigned"); - - b.Property("UserId") - .HasColumnType("char(36)"); - - b.HasKey("Id"); - - b.HasIndex("Identifier") - .HasAnnotation("SqlServer:Clustered", false); - - b.HasIndex("UserId") - .HasAnnotation("SqlServer:Clustered", false); - - b.HasIndex("UserId", "Identifier") - .IsUnique() - .HasAnnotation("SqlServer:Clustered", false); - - b.ToTable("Device", (string)null); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.Event", b => - { - b.Property("Id") - .HasColumnType("char(36)"); - - b.Property("ActingUserId") - .HasColumnType("char(36)"); - - b.Property("CipherId") - .HasColumnType("char(36)"); - - b.Property("CollectionId") - .HasColumnType("char(36)"); - - b.Property("Date") - .HasColumnType("datetime(6)"); - - b.Property("DeviceType") - .HasColumnType("tinyint unsigned"); - - b.Property("DomainName") - .HasColumnType("longtext"); - - b.Property("GroupId") - .HasColumnType("char(36)"); - - b.Property("InstallationId") - .HasColumnType("char(36)"); - - b.Property("IpAddress") - .HasMaxLength(50) - .HasColumnType("varchar(50)"); - - b.Property("OrganizationId") - .HasColumnType("char(36)"); - - b.Property("OrganizationUserId") - .HasColumnType("char(36)"); - - b.Property("PolicyId") - .HasColumnType("char(36)"); - - b.Property("ProviderId") - .HasColumnType("char(36)"); - - b.Property("ProviderOrganizationId") - .HasColumnType("char(36)"); - - b.Property("ProviderUserId") - .HasColumnType("char(36)"); - - b.Property("SecretId") - .HasColumnType("char(36)"); - - b.Property("ServiceAccountId") - .HasColumnType("char(36)"); - - b.Property("SystemUser") - .HasColumnType("tinyint unsigned"); - - b.Property("Type") - .HasColumnType("int"); - - b.Property("UserId") - .HasColumnType("char(36)"); - - b.HasKey("Id"); - - b.HasIndex("Date", "OrganizationId", "ActingUserId", "CipherId") - .HasAnnotation("SqlServer:Clustered", false); - - b.ToTable("Event", (string)null); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.Group", b => - { - b.Property("Id") - .HasColumnType("char(36)"); - - b.Property("CreationDate") - .HasColumnType("datetime(6)"); - - b.Property("ExternalId") - .HasMaxLength(300) - .HasColumnType("varchar(300)"); - - b.Property("Name") - .IsRequired() - .HasMaxLength(100) - .HasColumnType("varchar(100)"); - - b.Property("OrganizationId") - .HasColumnType("char(36)"); - - b.Property("RevisionDate") - .HasColumnType("datetime(6)"); - - b.HasKey("Id"); - - b.HasIndex("OrganizationId"); - - b.ToTable("Group", (string)null); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.GroupUser", b => - { - b.Property("GroupId") - .HasColumnType("char(36)"); - - b.Property("OrganizationUserId") - .HasColumnType("char(36)"); - - b.HasKey("GroupId", "OrganizationUserId"); - - b.HasIndex("OrganizationUserId"); - - b.ToTable("GroupUser", (string)null); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.OrganizationApiKey", b => - { - b.Property("Id") - .HasColumnType("char(36)"); - - b.Property("ApiKey") - .IsRequired() - .HasMaxLength(30) - .HasColumnType("varchar(30)"); - - b.Property("OrganizationId") - .HasColumnType("char(36)"); - - b.Property("RevisionDate") - .HasColumnType("datetime(6)"); - - b.Property("Type") - .HasColumnType("tinyint unsigned"); - - b.HasKey("Id"); - - b.HasIndex("OrganizationId"); - - b.ToTable("OrganizationApiKey", (string)null); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.OrganizationConnection", b => - { - b.Property("Id") - .HasColumnType("char(36)"); - - b.Property("Config") - .HasColumnType("longtext"); - - b.Property("Enabled") - .HasColumnType("tinyint(1)"); - - b.Property("OrganizationId") - .HasColumnType("char(36)"); - - b.Property("Type") - .HasColumnType("tinyint unsigned"); - - b.HasKey("Id"); - - b.HasIndex("OrganizationId"); - - b.ToTable("OrganizationConnection", (string)null); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.OrganizationDomain", b => - { - b.Property("Id") - .HasColumnType("char(36)"); - - b.Property("CreationDate") - .HasColumnType("datetime(6)"); - - b.Property("DomainName") - .IsRequired() - .HasMaxLength(255) - .HasColumnType("varchar(255)"); - - b.Property("JobRunCount") - .HasColumnType("int"); - - b.Property("LastCheckedDate") - .HasColumnType("datetime(6)"); - - b.Property("NextRunDate") - .HasColumnType("datetime(6)"); - - b.Property("OrganizationId") - .HasColumnType("char(36)"); - - b.Property("Txt") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("VerifiedDate") - .HasColumnType("datetime(6)"); - - b.HasKey("Id"); - - b.HasIndex("OrganizationId"); - - b.ToTable("OrganizationDomain", (string)null); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.OrganizationSponsorship", b => - { - b.Property("Id") - .HasColumnType("char(36)"); - - b.Property("FriendlyName") - .HasMaxLength(256) - .HasColumnType("varchar(256)"); - - b.Property("IsAdminInitiated") - .HasColumnType("tinyint(1)"); - - b.Property("LastSyncDate") - .HasColumnType("datetime(6)"); - - b.Property("Notes") - .HasColumnType("longtext"); - - b.Property("OfferedToEmail") - .HasMaxLength(256) - .HasColumnType("varchar(256)"); - - b.Property("PlanSponsorshipType") - .HasColumnType("tinyint unsigned"); - - b.Property("SponsoredOrganizationId") - .HasColumnType("char(36)"); - - b.Property("SponsoringOrganizationId") - .HasColumnType("char(36)"); - - b.Property("SponsoringOrganizationUserId") - .HasColumnType("char(36)"); - - b.Property("ToDelete") - .HasColumnType("tinyint(1)"); - - b.Property("ValidUntil") - .HasColumnType("datetime(6)"); - - b.HasKey("Id"); - - b.HasIndex("SponsoredOrganizationId"); - - b.HasIndex("SponsoringOrganizationId"); - - b.HasIndex("SponsoringOrganizationUserId") - .HasAnnotation("SqlServer:Clustered", false); - - b.ToTable("OrganizationSponsorship", (string)null); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.OrganizationUser", b => - { - b.Property("Id") - .HasColumnType("char(36)"); - - b.Property("AccessSecretsManager") - .HasColumnType("tinyint(1)"); - - b.Property("CreationDate") - .HasColumnType("datetime(6)"); - - b.Property("Email") - .HasMaxLength(256) - .HasColumnType("varchar(256)"); - - b.Property("ExternalId") - .HasMaxLength(300) - .HasColumnType("varchar(300)"); - - b.Property("Key") - .HasColumnType("longtext"); - - b.Property("OrganizationId") - .HasColumnType("char(36)"); - - b.Property("Permissions") - .HasColumnType("longtext"); - - b.Property("ResetPasswordKey") - .HasColumnType("longtext"); - - b.Property("RevisionDate") - .HasColumnType("datetime(6)"); - - b.Property("Status") - .HasColumnType("smallint"); - - b.Property("Type") - .HasColumnType("tinyint unsigned"); - - b.Property("UserId") - .HasColumnType("char(36)"); - - b.HasKey("Id"); - - b.HasIndex("OrganizationId") - .HasAnnotation("SqlServer:Clustered", false); - - b.HasIndex("UserId") - .HasAnnotation("SqlServer:Clustered", false); - - b.ToTable("OrganizationUser", (string)null); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.Send", b => - { - b.Property("Id") - .HasColumnType("char(36)"); - - b.Property("AccessCount") - .HasColumnType("int"); - - b.Property("CipherId") - .HasColumnType("char(36)"); - - b.Property("CreationDate") - .HasColumnType("datetime(6)"); - - b.Property("Data") - .HasColumnType("longtext"); - - b.Property("DeletionDate") - .HasColumnType("datetime(6)"); - - b.Property("Disabled") - .HasColumnType("tinyint(1)"); - - b.Property("Emails") - .HasMaxLength(1024) - .HasColumnType("varchar(1024)"); - - b.Property("ExpirationDate") - .HasColumnType("datetime(6)"); - - b.Property("HideEmail") - .HasColumnType("tinyint(1)"); - - b.Property("Key") - .HasColumnType("longtext"); - - b.Property("MaxAccessCount") - .HasColumnType("int"); - - b.Property("OrganizationId") - .HasColumnType("char(36)"); - - b.Property("Password") - .HasMaxLength(300) - .HasColumnType("varchar(300)"); - - b.Property("RevisionDate") - .HasColumnType("datetime(6)"); - - b.Property("Type") - .HasColumnType("tinyint unsigned"); - - b.Property("UserId") - .HasColumnType("char(36)"); - - b.HasKey("Id"); - - b.HasIndex("DeletionDate") - .HasAnnotation("SqlServer:Clustered", false); - - b.HasIndex("OrganizationId"); - - b.HasIndex("UserId") - .HasAnnotation("SqlServer:Clustered", false); - - b.HasIndex("UserId", "OrganizationId") - .HasAnnotation("SqlServer:Clustered", false); - - b.ToTable("Send", (string)null); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.TaxRate", b => - { - b.Property("Id") - .HasMaxLength(40) - .HasColumnType("varchar(40)"); - - b.Property("Active") - .HasColumnType("tinyint(1)"); - - b.Property("Country") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)"); - - b.Property("PostalCode") - .IsRequired() - .HasMaxLength(10) - .HasColumnType("varchar(10)"); - - b.Property("Rate") - .HasColumnType("decimal(65,30)"); - - b.Property("State") - .HasMaxLength(2) - .HasColumnType("varchar(2)"); - - b.HasKey("Id"); - - b.ToTable("TaxRate", (string)null); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.Transaction", b => - { - b.Property("Id") - .HasColumnType("char(36)"); - - b.Property("Amount") - .HasColumnType("decimal(65,30)"); - - b.Property("CreationDate") - .HasColumnType("datetime(6)"); - - b.Property("Details") - .HasMaxLength(100) - .HasColumnType("varchar(100)"); - - b.Property("Gateway") - .HasColumnType("tinyint unsigned"); - - b.Property("GatewayId") - .HasMaxLength(50) - .HasColumnType("varchar(50)"); - - b.Property("OrganizationId") - .HasColumnType("char(36)"); - - b.Property("PaymentMethodType") - .HasColumnType("tinyint unsigned"); - - b.Property("ProviderId") - .HasColumnType("char(36)"); - - b.Property("Refunded") - .HasColumnType("tinyint(1)"); - - b.Property("RefundedAmount") - .HasColumnType("decimal(65,30)"); - - b.Property("Type") - .HasColumnType("tinyint unsigned"); - - b.Property("UserId") - .HasColumnType("char(36)"); - - b.HasKey("Id"); - - b.HasIndex("OrganizationId"); - - b.HasIndex("ProviderId"); - - b.HasIndex("UserId") - .HasAnnotation("SqlServer:Clustered", false); - - b.HasIndex("UserId", "OrganizationId", "CreationDate") - .HasAnnotation("SqlServer:Clustered", false); - - b.ToTable("Transaction", (string)null); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.User", b => - { - b.Property("Id") - .HasColumnType("char(36)"); - - b.Property("AccountRevisionDate") - .HasColumnType("datetime(6)"); - - b.Property("ApiKey") - .IsRequired() - .HasMaxLength(30) - .HasColumnType("varchar(30)"); - - b.Property("AvatarColor") - .HasMaxLength(7) - .HasColumnType("varchar(7)"); - - b.Property("CreationDate") - .HasColumnType("datetime(6)"); - - b.Property("Culture") - .IsRequired() - .HasMaxLength(10) - .HasColumnType("varchar(10)"); - - b.Property("Email") - .IsRequired() - .HasMaxLength(256) - .HasColumnType("varchar(256)"); - - b.Property("EmailVerified") - .HasColumnType("tinyint(1)"); - - b.Property("EquivalentDomains") - .HasColumnType("longtext"); - - b.Property("ExcludedGlobalEquivalentDomains") - .HasColumnType("longtext"); - - b.Property("FailedLoginCount") - .HasColumnType("int"); - - b.Property("ForcePasswordReset") - .HasColumnType("tinyint(1)"); - - b.Property("Gateway") - .HasColumnType("tinyint unsigned"); - - b.Property("GatewayCustomerId") - .HasMaxLength(50) - .HasColumnType("varchar(50)"); - - b.Property("GatewaySubscriptionId") - .HasMaxLength(50) - .HasColumnType("varchar(50)"); - - b.Property("Kdf") - .HasColumnType("tinyint unsigned"); - - b.Property("KdfIterations") - .HasColumnType("int"); - - b.Property("KdfMemory") - .HasColumnType("int"); - - b.Property("KdfParallelism") - .HasColumnType("int"); - - b.Property("Key") - .HasColumnType("longtext"); - - b.Property("LastEmailChangeDate") - .HasColumnType("datetime(6)"); - - b.Property("LastFailedLoginDate") - .HasColumnType("datetime(6)"); - - b.Property("LastKdfChangeDate") - .HasColumnType("datetime(6)"); - - b.Property("LastKeyRotationDate") - .HasColumnType("datetime(6)"); - - b.Property("LastPasswordChangeDate") - .HasColumnType("datetime(6)"); - - b.Property("LicenseKey") - .HasMaxLength(100) - .HasColumnType("varchar(100)"); - - b.Property("MasterPassword") - .HasMaxLength(300) - .HasColumnType("varchar(300)"); - - b.Property("MasterPasswordHint") - .HasMaxLength(50) - .HasColumnType("varchar(50)"); - - b.Property("MaxStorageGb") - .HasColumnType("smallint"); - - b.Property("Name") - .HasMaxLength(50) - .HasColumnType("varchar(50)"); - - b.Property("Premium") - .HasColumnType("tinyint(1)"); - - b.Property("PremiumExpirationDate") - .HasColumnType("datetime(6)"); - - b.Property("PrivateKey") - .HasColumnType("longtext"); - - b.Property("PublicKey") - .HasColumnType("longtext"); - - b.Property("ReferenceData") - .HasColumnType("longtext"); - - b.Property("RenewalReminderDate") - .HasColumnType("datetime(6)"); - - b.Property("RevisionDate") - .HasColumnType("datetime(6)"); - - b.Property("SecurityStamp") - .IsRequired() - .HasMaxLength(50) - .HasColumnType("varchar(50)"); - - b.Property("Storage") - .HasColumnType("bigint"); - - b.Property("TwoFactorProviders") - .HasColumnType("longtext"); - - b.Property("TwoFactorRecoveryCode") - .HasMaxLength(32) - .HasColumnType("varchar(32)"); - - b.Property("UsesKeyConnector") - .HasColumnType("tinyint(1)"); - - b.Property("VerifyDevices") - .HasColumnType("tinyint(1)"); - - b.HasKey("Id"); - - b.HasIndex("Email") - .IsUnique() - .HasAnnotation("SqlServer:Clustered", false); - - b.HasIndex("Premium", "PremiumExpirationDate", "RenewalReminderDate") - .HasAnnotation("SqlServer:Clustered", false); - - b.ToTable("User", (string)null); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.NotificationCenter.Models.Notification", b => - { - b.Property("Id") - .HasColumnType("char(36)"); - - b.Property("Body") - .HasMaxLength(3000) - .HasColumnType("varchar(3000)"); - - b.Property("ClientType") - .HasColumnType("tinyint unsigned"); - - b.Property("CreationDate") - .HasColumnType("datetime(6)"); - - b.Property("Global") - .HasColumnType("tinyint(1)"); - - b.Property("OrganizationId") - .HasColumnType("char(36)"); - - b.Property("Priority") - .HasColumnType("tinyint unsigned"); - - b.Property("RevisionDate") - .HasColumnType("datetime(6)"); - - b.Property("TaskId") - .HasColumnType("char(36)"); - - b.Property("Title") - .HasMaxLength(256) - .HasColumnType("varchar(256)"); - - b.Property("UserId") - .HasColumnType("char(36)"); - - b.HasKey("Id") - .HasAnnotation("SqlServer:Clustered", true); - - b.HasIndex("OrganizationId") - .HasAnnotation("SqlServer:Clustered", false); - - b.HasIndex("TaskId") - .HasAnnotation("SqlServer:Clustered", false); - - b.HasIndex("UserId") - .HasAnnotation("SqlServer:Clustered", false); - - b.HasIndex("ClientType", "Global", "UserId", "OrganizationId", "Priority", "CreationDate") - .IsDescending(false, false, false, false, true, true) - .HasAnnotation("SqlServer:Clustered", false); - - b.ToTable("Notification", (string)null); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.NotificationCenter.Models.NotificationStatus", b => - { - b.Property("UserId") - .HasColumnType("char(36)"); - - b.Property("NotificationId") - .HasColumnType("char(36)"); - - b.Property("DeletedDate") - .HasColumnType("datetime(6)"); - - b.Property("ReadDate") - .HasColumnType("datetime(6)"); - - b.HasKey("UserId", "NotificationId") - .HasAnnotation("SqlServer:Clustered", true); - - b.HasIndex("NotificationId"); - - b.ToTable("NotificationStatus", (string)null); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Platform.Installation", b => - { - b.Property("Id") - .HasColumnType("char(36)"); - - b.Property("CreationDate") - .HasColumnType("datetime(6)"); - - b.Property("Email") - .IsRequired() - .HasMaxLength(256) - .HasColumnType("varchar(256)"); - - b.Property("Enabled") - .HasColumnType("tinyint(1)"); - - b.Property("Key") - .IsRequired() - .HasMaxLength(150) - .HasColumnType("varchar(150)"); - - b.Property("LastActivityDate") - .HasColumnType("datetime(6)"); - - b.HasKey("Id"); - - b.ToTable("Installation", (string)null); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.SecretsManager.Models.AccessPolicy", b => - { - b.Property("Id") - .HasColumnType("char(36)"); - - b.Property("CreationDate") - .HasColumnType("datetime(6)"); - - b.Property("Discriminator") - .IsRequired() - .HasMaxLength(34) - .HasColumnType("varchar(34)"); - - b.Property("Read") - .HasColumnType("tinyint(1)"); - - b.Property("RevisionDate") - .HasColumnType("datetime(6)"); - - b.Property("Write") - .HasColumnType("tinyint(1)"); - - b.HasKey("Id") - .HasAnnotation("SqlServer:Clustered", true); - - b.ToTable("AccessPolicy", (string)null); - - b.HasDiscriminator().HasValue("AccessPolicy"); - - b.UseTphMappingStrategy(); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.SecretsManager.Models.ApiKey", b => - { - b.Property("Id") - .HasColumnType("char(36)"); - - b.Property("ClientSecretHash") - .HasMaxLength(128) - .HasColumnType("varchar(128)"); - - b.Property("CreationDate") - .HasColumnType("datetime(6)"); - - b.Property("EncryptedPayload") - .IsRequired() - .HasMaxLength(4000) - .HasColumnType("varchar(4000)"); - - b.Property("ExpireAt") - .HasColumnType("datetime(6)"); - - b.Property("Key") - .IsRequired() - .HasColumnType("longtext"); - - b.Property("Name") - .IsRequired() - .HasMaxLength(200) - .HasColumnType("varchar(200)"); - - b.Property("RevisionDate") - .HasColumnType("datetime(6)"); - - b.Property("Scope") - .IsRequired() - .HasMaxLength(4000) - .HasColumnType("varchar(4000)"); - - b.Property("ServiceAccountId") - .HasColumnType("char(36)"); - - b.HasKey("Id") - .HasAnnotation("SqlServer:Clustered", true); - - b.HasIndex("ServiceAccountId") - .HasAnnotation("SqlServer:Clustered", false); - - b.ToTable("ApiKey", (string)null); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.SecretsManager.Models.Project", b => - { - b.Property("Id") - .HasColumnType("char(36)"); - - b.Property("CreationDate") - .HasColumnType("datetime(6)"); - - b.Property("DeletedDate") - .HasColumnType("datetime(6)"); - - b.Property("Name") - .HasColumnType("longtext"); - - b.Property("OrganizationId") - .HasColumnType("char(36)"); - - b.Property("RevisionDate") - .HasColumnType("datetime(6)"); - - b.HasKey("Id") - .HasAnnotation("SqlServer:Clustered", true); - - b.HasIndex("DeletedDate") - .HasAnnotation("SqlServer:Clustered", false); - - b.HasIndex("OrganizationId") - .HasAnnotation("SqlServer:Clustered", false); - - b.ToTable("Project", (string)null); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.SecretsManager.Models.Secret", b => - { - b.Property("Id") - .HasColumnType("char(36)"); - - b.Property("CreationDate") - .HasColumnType("datetime(6)"); - - b.Property("DeletedDate") - .HasColumnType("datetime(6)"); - - b.Property("Key") - .HasColumnType("longtext"); - - b.Property("Note") - .HasColumnType("longtext"); - - b.Property("OrganizationId") - .HasColumnType("char(36)"); - - b.Property("RevisionDate") - .HasColumnType("datetime(6)"); - - b.Property("Value") - .HasColumnType("longtext"); - - b.HasKey("Id") - .HasAnnotation("SqlServer:Clustered", true); - - b.HasIndex("DeletedDate") - .HasAnnotation("SqlServer:Clustered", false); - - b.HasIndex("OrganizationId") - .HasAnnotation("SqlServer:Clustered", false); - - b.ToTable("Secret", (string)null); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.SecretsManager.Models.ServiceAccount", b => - { - b.Property("Id") - .HasColumnType("char(36)"); - - b.Property("CreationDate") - .HasColumnType("datetime(6)"); - - b.Property("Name") - .HasColumnType("longtext"); - - b.Property("OrganizationId") - .HasColumnType("char(36)"); - - b.Property("RevisionDate") - .HasColumnType("datetime(6)"); - - b.HasKey("Id") - .HasAnnotation("SqlServer:Clustered", true); - - b.HasIndex("OrganizationId") - .HasAnnotation("SqlServer:Clustered", false); - - b.ToTable("ServiceAccount", (string)null); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Vault.Models.Cipher", b => - { - b.Property("Id") - .HasColumnType("char(36)"); - - b.Property("Attachments") - .HasColumnType("longtext"); - - b.Property("CreationDate") - .HasColumnType("datetime(6)"); - - b.Property("Data") - .HasColumnType("longtext"); - - b.Property("DeletedDate") - .HasColumnType("datetime(6)"); - - b.Property("Favorites") - .HasColumnType("longtext"); - - b.Property("Folders") - .HasColumnType("longtext"); - - b.Property("Key") - .HasColumnType("longtext"); - - b.Property("OrganizationId") - .HasColumnType("char(36)"); - - b.Property("Reprompt") - .HasColumnType("tinyint unsigned"); - - b.Property("RevisionDate") - .HasColumnType("datetime(6)"); - - b.Property("Type") - .HasColumnType("tinyint unsigned"); - - b.Property("UserId") - .HasColumnType("char(36)"); - - b.HasKey("Id"); - - b.HasIndex("OrganizationId"); - - b.HasIndex("UserId"); - - b.ToTable("Cipher", (string)null); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Vault.Models.Folder", b => - { - b.Property("Id") - .HasColumnType("char(36)"); - - b.Property("CreationDate") - .HasColumnType("datetime(6)"); - - b.Property("Name") - .HasColumnType("longtext"); - - b.Property("RevisionDate") - .HasColumnType("datetime(6)"); - - b.Property("UserId") - .HasColumnType("char(36)"); - - b.HasKey("Id"); - - b.HasIndex("UserId"); - - b.ToTable("Folder", (string)null); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Vault.Models.SecurityTask", b => - { - b.Property("Id") - .HasColumnType("char(36)"); - - b.Property("CipherId") - .HasColumnType("char(36)"); - - b.Property("CreationDate") - .HasColumnType("datetime(6)"); - - b.Property("OrganizationId") - .HasColumnType("char(36)"); - - b.Property("RevisionDate") - .HasColumnType("datetime(6)"); - - b.Property("Status") - .HasColumnType("tinyint unsigned"); - - b.Property("Type") - .HasColumnType("tinyint unsigned"); - - b.HasKey("Id") - .HasAnnotation("SqlServer:Clustered", true); - - b.HasIndex("CipherId") - .HasAnnotation("SqlServer:Clustered", false); - - b.HasIndex("OrganizationId") - .HasAnnotation("SqlServer:Clustered", false); - - b.ToTable("SecurityTask", (string)null); - }); - - modelBuilder.Entity("ProjectSecret", b => - { - b.Property("ProjectsId") - .HasColumnType("char(36)"); - - b.Property("SecretsId") - .HasColumnType("char(36)"); - - b.HasKey("ProjectsId", "SecretsId"); - - b.HasIndex("SecretsId"); - - b.ToTable("ProjectSecret"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.SecretsManager.Models.GroupProjectAccessPolicy", b => - { - b.HasBaseType("Bit.Infrastructure.EntityFramework.SecretsManager.Models.AccessPolicy"); - - b.Property("GrantedProjectId") - .ValueGeneratedOnUpdateSometimes() - .HasColumnType("char(36)") - .HasColumnName("GrantedProjectId"); - - b.Property("GroupId") - .ValueGeneratedOnUpdateSometimes() - .HasColumnType("char(36)") - .HasColumnName("GroupId"); - - b.HasIndex("GrantedProjectId"); - - b.HasIndex("GroupId"); - - b.HasDiscriminator().HasValue("group_project"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.SecretsManager.Models.GroupSecretAccessPolicy", b => - { - b.HasBaseType("Bit.Infrastructure.EntityFramework.SecretsManager.Models.AccessPolicy"); - - b.Property("GrantedSecretId") - .ValueGeneratedOnUpdateSometimes() - .HasColumnType("char(36)") - .HasColumnName("GrantedSecretId"); - - b.Property("GroupId") - .ValueGeneratedOnUpdateSometimes() - .HasColumnType("char(36)") - .HasColumnName("GroupId"); - - b.HasIndex("GrantedSecretId"); - - b.HasIndex("GroupId"); - - b.HasDiscriminator().HasValue("group_secret"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.SecretsManager.Models.GroupServiceAccountAccessPolicy", b => - { - b.HasBaseType("Bit.Infrastructure.EntityFramework.SecretsManager.Models.AccessPolicy"); - - b.Property("GrantedServiceAccountId") - .ValueGeneratedOnUpdateSometimes() - .HasColumnType("char(36)") - .HasColumnName("GrantedServiceAccountId"); - - b.Property("GroupId") - .ValueGeneratedOnUpdateSometimes() - .HasColumnType("char(36)") - .HasColumnName("GroupId"); - - b.HasIndex("GrantedServiceAccountId"); - - b.HasIndex("GroupId"); - - b.HasDiscriminator().HasValue("group_service_account"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.SecretsManager.Models.ServiceAccountProjectAccessPolicy", b => - { - b.HasBaseType("Bit.Infrastructure.EntityFramework.SecretsManager.Models.AccessPolicy"); - - b.Property("GrantedProjectId") - .ValueGeneratedOnUpdateSometimes() - .HasColumnType("char(36)") - .HasColumnName("GrantedProjectId"); - - b.Property("ServiceAccountId") - .ValueGeneratedOnUpdateSometimes() - .HasColumnType("char(36)") - .HasColumnName("ServiceAccountId"); - - b.HasIndex("GrantedProjectId"); - - b.HasIndex("ServiceAccountId"); - - b.HasDiscriminator().HasValue("service_account_project"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.SecretsManager.Models.ServiceAccountSecretAccessPolicy", b => - { - b.HasBaseType("Bit.Infrastructure.EntityFramework.SecretsManager.Models.AccessPolicy"); - - b.Property("GrantedSecretId") - .ValueGeneratedOnUpdateSometimes() - .HasColumnType("char(36)") - .HasColumnName("GrantedSecretId"); - - b.Property("ServiceAccountId") - .ValueGeneratedOnUpdateSometimes() - .HasColumnType("char(36)") - .HasColumnName("ServiceAccountId"); - - b.HasIndex("GrantedSecretId"); - - b.HasIndex("ServiceAccountId"); - - b.HasDiscriminator().HasValue("service_account_secret"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.SecretsManager.Models.UserProjectAccessPolicy", b => - { - b.HasBaseType("Bit.Infrastructure.EntityFramework.SecretsManager.Models.AccessPolicy"); - - b.Property("GrantedProjectId") - .ValueGeneratedOnUpdateSometimes() - .HasColumnType("char(36)") - .HasColumnName("GrantedProjectId"); - - b.Property("OrganizationUserId") - .ValueGeneratedOnUpdateSometimes() - .HasColumnType("char(36)") - .HasColumnName("OrganizationUserId"); - - b.HasIndex("GrantedProjectId"); - - b.HasIndex("OrganizationUserId"); - - b.HasDiscriminator().HasValue("user_project"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.SecretsManager.Models.UserSecretAccessPolicy", b => - { - b.HasBaseType("Bit.Infrastructure.EntityFramework.SecretsManager.Models.AccessPolicy"); - - b.Property("GrantedSecretId") - .ValueGeneratedOnUpdateSometimes() - .HasColumnType("char(36)") - .HasColumnName("GrantedSecretId"); - - b.Property("OrganizationUserId") - .ValueGeneratedOnUpdateSometimes() - .HasColumnType("char(36)") - .HasColumnName("OrganizationUserId"); - - b.HasIndex("GrantedSecretId"); - - b.HasIndex("OrganizationUserId"); - - b.HasDiscriminator().HasValue("user_secret"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.SecretsManager.Models.UserServiceAccountAccessPolicy", b => - { - b.HasBaseType("Bit.Infrastructure.EntityFramework.SecretsManager.Models.AccessPolicy"); - - b.Property("GrantedServiceAccountId") - .ValueGeneratedOnUpdateSometimes() - .HasColumnType("char(36)") - .HasColumnName("GrantedServiceAccountId"); - - b.Property("OrganizationUserId") - .ValueGeneratedOnUpdateSometimes() - .HasColumnType("char(36)") - .HasColumnName("OrganizationUserId"); - - b.HasIndex("GrantedServiceAccountId"); - - b.HasIndex("OrganizationUserId"); - - b.HasDiscriminator().HasValue("user_service_account"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.AdminConsole.Models.OrganizationIntegration", b => - { - b.HasOne("Bit.Infrastructure.EntityFramework.AdminConsole.Models.Organization", "Organization") - .WithMany() - .HasForeignKey("OrganizationId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Organization"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.AdminConsole.Models.OrganizationIntegrationConfiguration", b => - { - b.HasOne("Bit.Infrastructure.EntityFramework.AdminConsole.Models.OrganizationIntegration", "OrganizationIntegration") - .WithMany() - .HasForeignKey("OrganizationIntegrationId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("OrganizationIntegration"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.AdminConsole.Models.Policy", b => - { - b.HasOne("Bit.Infrastructure.EntityFramework.AdminConsole.Models.Organization", "Organization") - .WithMany("Policies") - .HasForeignKey("OrganizationId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Organization"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.AdminConsole.Models.Provider.ProviderOrganization", b => - { - b.HasOne("Bit.Infrastructure.EntityFramework.AdminConsole.Models.Organization", "Organization") - .WithMany() - .HasForeignKey("OrganizationId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("Bit.Infrastructure.EntityFramework.AdminConsole.Models.Provider.Provider", "Provider") - .WithMany() - .HasForeignKey("ProviderId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Organization"); - - b.Navigation("Provider"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.AdminConsole.Models.Provider.ProviderUser", b => - { - b.HasOne("Bit.Infrastructure.EntityFramework.AdminConsole.Models.Provider.Provider", "Provider") - .WithMany() - .HasForeignKey("ProviderId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("Bit.Infrastructure.EntityFramework.Models.User", "User") - .WithMany() - .HasForeignKey("UserId"); - - b.Navigation("Provider"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Auth.Models.AuthRequest", b => - { - b.HasOne("Bit.Infrastructure.EntityFramework.AdminConsole.Models.Organization", "Organization") - .WithMany() - .HasForeignKey("OrganizationId"); - - b.HasOne("Bit.Infrastructure.EntityFramework.Models.Device", "ResponseDevice") - .WithMany() - .HasForeignKey("ResponseDeviceId"); - - b.HasOne("Bit.Infrastructure.EntityFramework.Models.User", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Organization"); - - b.Navigation("ResponseDevice"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Auth.Models.EmergencyAccess", b => - { - b.HasOne("Bit.Infrastructure.EntityFramework.Models.User", "Grantee") - .WithMany() - .HasForeignKey("GranteeId"); - - b.HasOne("Bit.Infrastructure.EntityFramework.Models.User", "Grantor") - .WithMany() - .HasForeignKey("GrantorId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Grantee"); - - b.Navigation("Grantor"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Auth.Models.SsoConfig", b => - { - b.HasOne("Bit.Infrastructure.EntityFramework.AdminConsole.Models.Organization", "Organization") - .WithMany("SsoConfigs") - .HasForeignKey("OrganizationId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Organization"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Auth.Models.SsoUser", b => - { - b.HasOne("Bit.Infrastructure.EntityFramework.AdminConsole.Models.Organization", "Organization") - .WithMany("SsoUsers") - .HasForeignKey("OrganizationId"); - - b.HasOne("Bit.Infrastructure.EntityFramework.Models.User", "User") - .WithMany("SsoUsers") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Organization"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Auth.Models.WebAuthnCredential", b => - { - b.HasOne("Bit.Infrastructure.EntityFramework.Models.User", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("User"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Billing.Models.OrganizationInstallation", b => - { - b.HasOne("Bit.Infrastructure.EntityFramework.Platform.Installation", "Installation") - .WithMany() - .HasForeignKey("InstallationId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("Bit.Infrastructure.EntityFramework.AdminConsole.Models.Organization", "Organization") - .WithMany() - .HasForeignKey("OrganizationId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Installation"); - - b.Navigation("Organization"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Billing.Models.ProviderInvoiceItem", b => - { - b.HasOne("Bit.Infrastructure.EntityFramework.AdminConsole.Models.Provider.Provider", "Provider") - .WithMany() - .HasForeignKey("ProviderId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Provider"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Billing.Models.ProviderPlan", b => - { - b.HasOne("Bit.Infrastructure.EntityFramework.AdminConsole.Models.Provider.Provider", "Provider") - .WithMany() - .HasForeignKey("ProviderId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Provider"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Dirt.Models.OrganizationApplication", b => - { - b.HasOne("Bit.Infrastructure.EntityFramework.AdminConsole.Models.Organization", "Organization") - .WithMany() - .HasForeignKey("OrganizationId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Organization"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Dirt.Models.OrganizationReport", b => - { - b.HasOne("Bit.Infrastructure.EntityFramework.AdminConsole.Models.Organization", "Organization") - .WithMany() - .HasForeignKey("OrganizationId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Organization"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Dirt.Models.PasswordHealthReportApplication", b => - { - b.HasOne("Bit.Infrastructure.EntityFramework.AdminConsole.Models.Organization", "Organization") - .WithMany() - .HasForeignKey("OrganizationId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Organization"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.Collection", b => - { - b.HasOne("Bit.Infrastructure.EntityFramework.AdminConsole.Models.Organization", "Organization") - .WithMany("Collections") - .HasForeignKey("OrganizationId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Organization"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.CollectionCipher", b => - { - b.HasOne("Bit.Infrastructure.EntityFramework.Vault.Models.Cipher", "Cipher") - .WithMany("CollectionCiphers") - .HasForeignKey("CipherId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("Bit.Infrastructure.EntityFramework.Models.Collection", "Collection") - .WithMany("CollectionCiphers") - .HasForeignKey("CollectionId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Cipher"); - - b.Navigation("Collection"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.CollectionGroup", b => - { - b.HasOne("Bit.Infrastructure.EntityFramework.Models.Collection", "Collection") - .WithMany("CollectionGroups") - .HasForeignKey("CollectionId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("Bit.Infrastructure.EntityFramework.Models.Group", "Group") - .WithMany() - .HasForeignKey("GroupId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Collection"); - - b.Navigation("Group"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.CollectionUser", b => - { - b.HasOne("Bit.Infrastructure.EntityFramework.Models.Collection", "Collection") - .WithMany("CollectionUsers") - .HasForeignKey("CollectionId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("Bit.Infrastructure.EntityFramework.Models.OrganizationUser", "OrganizationUser") - .WithMany("CollectionUsers") - .HasForeignKey("OrganizationUserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Collection"); - - b.Navigation("OrganizationUser"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.Device", b => - { - b.HasOne("Bit.Infrastructure.EntityFramework.Models.User", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("User"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.Group", b => - { - b.HasOne("Bit.Infrastructure.EntityFramework.AdminConsole.Models.Organization", "Organization") - .WithMany("Groups") - .HasForeignKey("OrganizationId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Organization"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.GroupUser", b => - { - b.HasOne("Bit.Infrastructure.EntityFramework.Models.Group", "Group") - .WithMany("GroupUsers") - .HasForeignKey("GroupId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("Bit.Infrastructure.EntityFramework.Models.OrganizationUser", "OrganizationUser") - .WithMany("GroupUsers") - .HasForeignKey("OrganizationUserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Group"); - - b.Navigation("OrganizationUser"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.OrganizationApiKey", b => - { - b.HasOne("Bit.Infrastructure.EntityFramework.AdminConsole.Models.Organization", "Organization") - .WithMany("ApiKeys") - .HasForeignKey("OrganizationId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Organization"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.OrganizationConnection", b => - { - b.HasOne("Bit.Infrastructure.EntityFramework.AdminConsole.Models.Organization", "Organization") - .WithMany("Connections") - .HasForeignKey("OrganizationId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Organization"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.OrganizationDomain", b => - { - b.HasOne("Bit.Infrastructure.EntityFramework.AdminConsole.Models.Organization", "Organization") - .WithMany("Domains") - .HasForeignKey("OrganizationId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Organization"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.OrganizationSponsorship", b => - { - b.HasOne("Bit.Infrastructure.EntityFramework.AdminConsole.Models.Organization", "SponsoredOrganization") - .WithMany() - .HasForeignKey("SponsoredOrganizationId"); - - b.HasOne("Bit.Infrastructure.EntityFramework.AdminConsole.Models.Organization", "SponsoringOrganization") - .WithMany() - .HasForeignKey("SponsoringOrganizationId"); - - b.Navigation("SponsoredOrganization"); - - b.Navigation("SponsoringOrganization"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.OrganizationUser", b => - { - b.HasOne("Bit.Infrastructure.EntityFramework.AdminConsole.Models.Organization", "Organization") - .WithMany("OrganizationUsers") - .HasForeignKey("OrganizationId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("Bit.Infrastructure.EntityFramework.Models.User", "User") - .WithMany("OrganizationUsers") - .HasForeignKey("UserId"); - - b.Navigation("Organization"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.Send", b => - { - b.HasOne("Bit.Infrastructure.EntityFramework.AdminConsole.Models.Organization", "Organization") - .WithMany() - .HasForeignKey("OrganizationId"); - - b.HasOne("Bit.Infrastructure.EntityFramework.Models.User", "User") - .WithMany() - .HasForeignKey("UserId"); - - b.Navigation("Organization"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.Transaction", b => - { - b.HasOne("Bit.Infrastructure.EntityFramework.AdminConsole.Models.Organization", "Organization") - .WithMany("Transactions") - .HasForeignKey("OrganizationId"); - - b.HasOne("Bit.Infrastructure.EntityFramework.AdminConsole.Models.Provider.Provider", "Provider") - .WithMany() - .HasForeignKey("ProviderId"); - - b.HasOne("Bit.Infrastructure.EntityFramework.Models.User", "User") - .WithMany("Transactions") - .HasForeignKey("UserId"); - - b.Navigation("Organization"); - - b.Navigation("Provider"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.NotificationCenter.Models.Notification", b => - { - b.HasOne("Bit.Infrastructure.EntityFramework.AdminConsole.Models.Organization", "Organization") - .WithMany() - .HasForeignKey("OrganizationId"); - - b.HasOne("Bit.Infrastructure.EntityFramework.Vault.Models.SecurityTask", "Task") - .WithMany() - .HasForeignKey("TaskId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("Bit.Infrastructure.EntityFramework.Models.User", "User") - .WithMany() - .HasForeignKey("UserId"); - - b.Navigation("Organization"); - - b.Navigation("Task"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.NotificationCenter.Models.NotificationStatus", b => - { - b.HasOne("Bit.Infrastructure.EntityFramework.NotificationCenter.Models.Notification", "Notification") - .WithMany() - .HasForeignKey("NotificationId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("Bit.Infrastructure.EntityFramework.Models.User", "User") - .WithMany() - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Notification"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.SecretsManager.Models.ApiKey", b => - { - b.HasOne("Bit.Infrastructure.EntityFramework.SecretsManager.Models.ServiceAccount", "ServiceAccount") - .WithMany("ApiKeys") - .HasForeignKey("ServiceAccountId"); - - b.Navigation("ServiceAccount"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.SecretsManager.Models.Project", b => - { - b.HasOne("Bit.Infrastructure.EntityFramework.AdminConsole.Models.Organization", "Organization") - .WithMany() - .HasForeignKey("OrganizationId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Organization"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.SecretsManager.Models.Secret", b => - { - b.HasOne("Bit.Infrastructure.EntityFramework.AdminConsole.Models.Organization", "Organization") - .WithMany() - .HasForeignKey("OrganizationId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Organization"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.SecretsManager.Models.ServiceAccount", b => - { - b.HasOne("Bit.Infrastructure.EntityFramework.AdminConsole.Models.Organization", "Organization") - .WithMany() - .HasForeignKey("OrganizationId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Organization"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Vault.Models.Cipher", b => - { - b.HasOne("Bit.Infrastructure.EntityFramework.AdminConsole.Models.Organization", "Organization") - .WithMany("Ciphers") - .HasForeignKey("OrganizationId"); - - b.HasOne("Bit.Infrastructure.EntityFramework.Models.User", "User") - .WithMany("Ciphers") - .HasForeignKey("UserId"); - - b.Navigation("Organization"); - - b.Navigation("User"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Vault.Models.Folder", b => - { - b.HasOne("Bit.Infrastructure.EntityFramework.Models.User", "User") - .WithMany("Folders") - .HasForeignKey("UserId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("User"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Vault.Models.SecurityTask", b => - { - b.HasOne("Bit.Infrastructure.EntityFramework.Vault.Models.Cipher", "Cipher") - .WithMany() - .HasForeignKey("CipherId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("Bit.Infrastructure.EntityFramework.AdminConsole.Models.Organization", "Organization") - .WithMany() - .HasForeignKey("OrganizationId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Cipher"); - - b.Navigation("Organization"); - }); - - modelBuilder.Entity("ProjectSecret", b => - { - b.HasOne("Bit.Infrastructure.EntityFramework.SecretsManager.Models.Project", null) - .WithMany() - .HasForeignKey("ProjectsId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.HasOne("Bit.Infrastructure.EntityFramework.SecretsManager.Models.Secret", null) - .WithMany() - .HasForeignKey("SecretsId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.SecretsManager.Models.GroupProjectAccessPolicy", b => - { - b.HasOne("Bit.Infrastructure.EntityFramework.SecretsManager.Models.Project", "GrantedProject") - .WithMany("GroupAccessPolicies") - .HasForeignKey("GrantedProjectId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("Bit.Infrastructure.EntityFramework.Models.Group", "Group") - .WithMany() - .HasForeignKey("GroupId") - .OnDelete(DeleteBehavior.Cascade); - - b.Navigation("GrantedProject"); - - b.Navigation("Group"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.SecretsManager.Models.GroupSecretAccessPolicy", b => - { - b.HasOne("Bit.Infrastructure.EntityFramework.SecretsManager.Models.Secret", "GrantedSecret") - .WithMany("GroupAccessPolicies") - .HasForeignKey("GrantedSecretId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("Bit.Infrastructure.EntityFramework.Models.Group", "Group") - .WithMany() - .HasForeignKey("GroupId") - .OnDelete(DeleteBehavior.Cascade); - - b.Navigation("GrantedSecret"); - - b.Navigation("Group"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.SecretsManager.Models.GroupServiceAccountAccessPolicy", b => - { - b.HasOne("Bit.Infrastructure.EntityFramework.SecretsManager.Models.ServiceAccount", "GrantedServiceAccount") - .WithMany("GroupAccessPolicies") - .HasForeignKey("GrantedServiceAccountId"); - - b.HasOne("Bit.Infrastructure.EntityFramework.Models.Group", "Group") - .WithMany() - .HasForeignKey("GroupId") - .OnDelete(DeleteBehavior.Cascade); - - b.Navigation("GrantedServiceAccount"); - - b.Navigation("Group"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.SecretsManager.Models.ServiceAccountProjectAccessPolicy", b => - { - b.HasOne("Bit.Infrastructure.EntityFramework.SecretsManager.Models.Project", "GrantedProject") - .WithMany("ServiceAccountAccessPolicies") - .HasForeignKey("GrantedProjectId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("Bit.Infrastructure.EntityFramework.SecretsManager.Models.ServiceAccount", "ServiceAccount") - .WithMany("ProjectAccessPolicies") - .HasForeignKey("ServiceAccountId"); - - b.Navigation("GrantedProject"); - - b.Navigation("ServiceAccount"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.SecretsManager.Models.ServiceAccountSecretAccessPolicy", b => - { - b.HasOne("Bit.Infrastructure.EntityFramework.SecretsManager.Models.Secret", "GrantedSecret") - .WithMany("ServiceAccountAccessPolicies") - .HasForeignKey("GrantedSecretId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("Bit.Infrastructure.EntityFramework.SecretsManager.Models.ServiceAccount", "ServiceAccount") - .WithMany() - .HasForeignKey("ServiceAccountId"); - - b.Navigation("GrantedSecret"); - - b.Navigation("ServiceAccount"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.SecretsManager.Models.UserProjectAccessPolicy", b => - { - b.HasOne("Bit.Infrastructure.EntityFramework.SecretsManager.Models.Project", "GrantedProject") - .WithMany("UserAccessPolicies") - .HasForeignKey("GrantedProjectId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("Bit.Infrastructure.EntityFramework.Models.OrganizationUser", "OrganizationUser") - .WithMany() - .HasForeignKey("OrganizationUserId"); - - b.Navigation("GrantedProject"); - - b.Navigation("OrganizationUser"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.SecretsManager.Models.UserSecretAccessPolicy", b => - { - b.HasOne("Bit.Infrastructure.EntityFramework.SecretsManager.Models.Secret", "GrantedSecret") - .WithMany("UserAccessPolicies") - .HasForeignKey("GrantedSecretId") - .OnDelete(DeleteBehavior.Cascade); - - b.HasOne("Bit.Infrastructure.EntityFramework.Models.OrganizationUser", "OrganizationUser") - .WithMany() - .HasForeignKey("OrganizationUserId"); - - b.Navigation("GrantedSecret"); - - b.Navigation("OrganizationUser"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.SecretsManager.Models.UserServiceAccountAccessPolicy", b => - { - b.HasOne("Bit.Infrastructure.EntityFramework.SecretsManager.Models.ServiceAccount", "GrantedServiceAccount") - .WithMany("UserAccessPolicies") - .HasForeignKey("GrantedServiceAccountId"); - - b.HasOne("Bit.Infrastructure.EntityFramework.Models.OrganizationUser", "OrganizationUser") - .WithMany() - .HasForeignKey("OrganizationUserId"); - - b.Navigation("GrantedServiceAccount"); - - b.Navigation("OrganizationUser"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.AdminConsole.Models.Organization", b => - { - b.Navigation("ApiKeys"); - - b.Navigation("Ciphers"); - - b.Navigation("Collections"); - - b.Navigation("Connections"); - - b.Navigation("Domains"); - - b.Navigation("Groups"); - - b.Navigation("OrganizationUsers"); - - b.Navigation("Policies"); - - b.Navigation("SsoConfigs"); - - b.Navigation("SsoUsers"); - - b.Navigation("Transactions"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.Collection", b => - { - b.Navigation("CollectionCiphers"); - - b.Navigation("CollectionGroups"); - - b.Navigation("CollectionUsers"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.Group", b => - { - b.Navigation("GroupUsers"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.OrganizationUser", b => - { - b.Navigation("CollectionUsers"); - - b.Navigation("GroupUsers"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Models.User", b => - { - b.Navigation("Ciphers"); - - b.Navigation("Folders"); - - b.Navigation("OrganizationUsers"); - - b.Navigation("SsoUsers"); - - b.Navigation("Transactions"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.SecretsManager.Models.Project", b => - { - b.Navigation("GroupAccessPolicies"); - - b.Navigation("ServiceAccountAccessPolicies"); - - b.Navigation("UserAccessPolicies"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.SecretsManager.Models.Secret", b => - { - b.Navigation("GroupAccessPolicies"); - - b.Navigation("ServiceAccountAccessPolicies"); - - b.Navigation("UserAccessPolicies"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.SecretsManager.Models.ServiceAccount", b => - { - b.Navigation("ApiKeys"); - - b.Navigation("GroupAccessPolicies"); - - b.Navigation("ProjectAccessPolicies"); - - b.Navigation("UserAccessPolicies"); - }); - - modelBuilder.Entity("Bit.Infrastructure.EntityFramework.Vault.Models.Cipher", b => - { - b.Navigation("CollectionCiphers"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/util/MySqlMigrations/Migrations/20250613160900_2025-06-02_00_AddOrgUserDefaultCollection.sql.cs b/util/MySqlMigrations/Migrations/20250613160900_2025-06-02_00_AddOrgUserDefaultCollection.sql.cs deleted file mode 100644 index a2af61a7b9..0000000000 --- a/util/MySqlMigrations/Migrations/20250613160900_2025-06-02_00_AddOrgUserDefaultCollection.sql.cs +++ /dev/null @@ -1,21 +0,0 @@ -using Microsoft.EntityFrameworkCore.Migrations; - -#nullable disable - -namespace Bit.MySqlMigrations.Migrations; - -/// -public partial class _20250602_00_AddOrgUserDefaultCollectionsql : Migration -{ - /// - protected override void Up(MigrationBuilder migrationBuilder) - { - - } - - /// - protected override void Down(MigrationBuilder migrationBuilder) - { - - } -} diff --git a/util/PostgresMigrations/HelperScripts/2025-06-10-00_OrganizationReport.psql b/util/PostgresMigrations/HelperScripts/2025-06-10-00_OrganizationReport.psql deleted file mode 100644 index 1152876624..0000000000 --- a/util/PostgresMigrations/HelperScripts/2025-06-10-00_OrganizationReport.psql +++ /dev/null @@ -1,105 +0,0 @@ -IF OBJECT_ID('dbo.OrganizationReport') IS NULL -BEGIN - CREATE TABLE [dbo].[OrganizationReport] - ( - [Id] UNIQUEIDENTIFIER NOT NULL, - [OrganizationId] UNIQUEIDENTIFIER NOT NULL, - [Date] DATETIME2 (7) NOT NULL, - [ReportData] NVARCHAR(MAX) NOT NULL, - [CreationDate] DATETIME2 (7) NOT NULL, - [RevisionDate] DATETIME2 (7) NOT NULL, - CONSTRAINT [PK_OrganizationReport] PRIMARY KEY CLUSTERED ([Id] ASC), - CONSTRAINT [FK_OrganizationReport_Organization] FOREIGN KEY ([OrganizationId]) REFERENCES [dbo].[Organization] ([Id]) - ); - - CREATE NONCLUSTERED INDEX [IX_OrganizationReport_OrganizationId] - ON [dbo].[OrganizationReport]([OrganizationId] ASC); -END -GO - -CREATE OR ALTER VIEW[dbo].[OrganizationReportView] AS - SELECT * FROM [dbo].[OrganizationReport]; -GO - -CREATE OR ALTER PROCEDURE [dbo].[OrganizationReport_Create] - @Id UNIQUEIDENTIFIER, - @OrganizationId UNIQUEIDENTIFIER, - @Date DATETIME2(7), - @ReportData NVARCHAR(MAX), - @CreationDate DATETIME2(7), - @RevisionDate DATETIME2(7) -AS - SET NOCOUNT ON; - INSERT INTO [dbo].[OrganizationReport]( [Id],[OrganizationId],[Date],[ReportData],[CreationDate],[RevisionDate] ) - VALUES ( @Id,@OrganizationId,@Date,@ReportData,@CreationDate,@RevisionDate); -GO - -CREATE OR ALTER PROCEDURE [dbo].[OrganizationReport_ReadByOrganizationId] - @OrganizationId UNIQUEIDENTIFIER -AS - SET NOCOUNT ON; - - IF @OrganizationId IS NULL - THROW 50000, 'OrganizationId cannot be null', 1; - - SELECT - [Id], - [OrganizationId], - [Date], - [ReportData], - [CreationDate], - [RevisionDate] - FROM [dbo].[OrganizationReport] - WHERE [OrganizationId] = @OrganizationId; -GO - -CREATE OR ALTER PROCEDURE [dbo].[OrganizationReport_ReadById] - @Id UNIQUEIDENTIFIER -AS - SET NOCOUNT ON; - - IF @Id IS NULL - THROW 50000, 'Id cannot be null', 1; - - SELECT - [Id], - [OrganizationId], - [Date], - [ReportData], - [CreationDate], - [RevisionDate] - FROM [dbo].[OrganizationReport] - WHERE [Id] = @Id; -GO - -CREATE OR ALTER PROCEDURE [dbo].[OrganizationReport_Update] - @Id UNIQUEIDENTIFIER OUTPUT, - @OrganizationId UNIQUEIDENTIFIER, - @Date DATETIME2(7), - @ReportData NVARCHAR(MAX), - @RevisionDate DATETIME2(7) -AS - SET NOCOUNT ON; - UPDATE [dbo].[OrganizationReport] - SET [OrganizationId] = @OrganizationId, - [Date] = @Date, - [ReportData] = @ReportData, - [RevisionDate] = @RevisionDate - WHERE [Id] = @Id; -GO - -CREATE OR ALTER PROCEDURE [dbo].[OrganizationReport_DeleteById] - @Id UNIQUEIDENTIFIER -AS - SET NOCOUNT ON; - - IF @Id IS NULL - THROW 50000, 'Id cannot be null', 1; - - DELETE FROM [dbo].[OrganizationReport] - WHERE [Id] = @Id; -GO - - - - diff --git a/util/PostgresMigrations/HelperScripts/2025-06-10-01_OrganizationApplication.psql b/util/PostgresMigrations/HelperScripts/2025-06-10-01_OrganizationApplication.psql deleted file mode 100644 index 00c6942eb5..0000000000 --- a/util/PostgresMigrations/HelperScripts/2025-06-10-01_OrganizationApplication.psql +++ /dev/null @@ -1,120 +0,0 @@ -IF OBJECT_ID('dbo.OrganizationApplication') IS NULL -BEGIN - CREATE TABLE [dbo].[OrganizationApplication] ( - [Id] UNIQUEIDENTIFIER NOT NULL, - [OrganizationId] UNIQUEIDENTIFIER NOT NULL, - [Applications] NVARCHAR(MAX) NOT NULL, - [CreationDate] DATETIME2 (7) NOT NULL, - [RevisionDate] DATETIME2 (7) NOT NULL, - CONSTRAINT [PK_OrganizationApplication] PRIMARY KEY CLUSTERED ([Id] ASC), - CONSTRAINT [FK_OrganizationApplication_Organization] FOREIGN KEY ([OrganizationId]) REFERENCES [dbo].[Organization] ([Id]) - ); - - CREATE NONCLUSTERED INDEX [IX_OrganizationApplication_OrganizationId] - ON [dbo].[OrganizationApplication]([OrganizationId] ASC); -END -GO - -CREATE OR ALTER VIEW[dbo].[OrganizationApplicationView] AS - SELECT * FROM [dbo].[OrganizationApplication]; -GO - -CREATE OR ALTER PROCEDURE [dbo].[OrganizationApplication_Create] - @Id UNIQUEIDENTIFIER, - @OrganizationId UNIQUEIDENTIFIER, - @Applications NVARCHAR(MAX), - @CreationDate DATETIME2(7), - @RevisionDate DATETIME2(7) -AS - SET NOCOUNT ON; - - INSERT INTO [dbo].[OrganizationApplication] - ( - [Id], - [OrganizationId], - [Applications], - [CreationDate], - [RevisionDate] - ) - VALUES - ( - @Id, - @OrganizationId, - @Applications, - @CreationDate, - @RevisionDate - ); -GO - -CREATE OR ALTER PROCEDURE [dbo].[OrganizationApplication_ReadByOrganizationId] - @OrganizationId UNIQUEIDENTIFIER -AS - SET NOCOUNT ON; - - IF @OrganizationId IS NULL - THROW 50000, 'OrganizationId cannot be null', 1; - - SELECT - [Id], - [OrganizationId], - [Applications], - [CreationDate], - [RevisionDate] - FROM [dbo].[OrganizationApplication] - WHERE [OrganizationId] = @OrganizationId; -GO - -CREATE OR ALTER PROCEDURE [dbo].[OrganizationApplication_ReadById] - @Id UNIQUEIDENTIFIER -AS - SET NOCOUNT ON; - - IF @Id IS NULL - THROW 50000, 'Id cannot be null', 1; - - SELECT - [Id], - [OrganizationId], - [Applications], - [CreationDate], - [RevisionDate] - FROM [dbo].[OrganizationApplication] - WHERE [Id] = @Id; -GO - -CREATE OR ALTER PROCEDURE [dbo].[OrganizationApplication_Update] - @Id UNIQUEIDENTIFIER, - @OrganizationId UNIQUEIDENTIFIER, - @Applications NVARCHAR(MAX), - @RevisionDate DATETIME2(7) -AS - SET NOCOUNT ON; - UPDATE [dbo].[OrganizationApplication] - SET - [OrganizationId] = @OrganizationId, - [Applications] = @Applications, - [RevisionDate] = @RevisionDate - WHERE [Id] = @Id; -GO - -CREATE OR ALTER PROCEDURE [dbo].[OrganizationApplication_DeleteById] - @Id UNIQUEIDENTIFIER -AS - SET NOCOUNT ON; - - IF @Id IS NULL - THROW 50000, 'Id cannot be null', 1; - - DELETE FROM [dbo].[OrganizationApplication] - WHERE [Id] = @Id; -GO - - - - - - - - - - diff --git a/util/PostgresMigrations/HelperScripts/2025-06-10_02_UpdateOrgDeleteByIdProc.psql b/util/PostgresMigrations/HelperScripts/2025-06-10_02_UpdateOrgDeleteByIdProc.psql deleted file mode 100644 index 9f311a53af..0000000000 --- a/util/PostgresMigrations/HelperScripts/2025-06-10_02_UpdateOrgDeleteByIdProc.psql +++ /dev/null @@ -1,161 +0,0 @@ -CREATE OR ALTER PROCEDURE [dbo].[Organization_DeleteById] - @Id UNIQUEIDENTIFIER -WITH RECOMPILE -AS -BEGIN - SET NOCOUNT ON - - EXEC [dbo].[User_BumpAccountRevisionDateByOrganizationId] @Id - - DECLARE @BatchSize INT = 100 - WHILE @BatchSize > 0 - BEGIN - BEGIN TRANSACTION Organization_DeleteById_Ciphers - - DELETE TOP(@BatchSize) - FROM - [dbo].[Cipher] - WHERE - [UserId] IS NULL - AND [OrganizationId] = @Id - - SET @BatchSize = @@ROWCOUNT - - COMMIT TRANSACTION Organization_DeleteById_Ciphers - END - - BEGIN TRANSACTION Organization_DeleteById - - DELETE - FROM - [dbo].[AuthRequest] - WHERE - [OrganizationId] = @Id - - DELETE - FROM - [dbo].[SsoUser] - WHERE - [OrganizationId] = @Id - - DELETE - FROM - [dbo].[SsoConfig] - WHERE - [OrganizationId] = @Id - - DELETE CU - FROM - [dbo].[CollectionUser] CU - INNER JOIN - [dbo].[OrganizationUser] OU ON [CU].[OrganizationUserId] = [OU].[Id] - WHERE - [OU].[OrganizationId] = @Id - - DELETE AP - FROM - [dbo].[AccessPolicy] AP - INNER JOIN - [dbo].[OrganizationUser] OU ON [AP].[OrganizationUserId] = [OU].[Id] - WHERE - [OU].[OrganizationId] = @Id - - DELETE GU - FROM - [dbo].[GroupUser] GU - INNER JOIN - [dbo].[OrganizationUser] OU ON [GU].[OrganizationUserId] = [OU].[Id] - WHERE - [OU].[OrganizationId] = @Id - - DELETE - FROM - [dbo].[OrganizationUser] - WHERE - [OrganizationId] = @Id - - DELETE - FROM - [dbo].[ProviderOrganization] - WHERE - [OrganizationId] = @Id - - EXEC [dbo].[OrganizationApiKey_OrganizationDeleted] @Id - EXEC [dbo].[OrganizationConnection_OrganizationDeleted] @Id - EXEC [dbo].[OrganizationSponsorship_OrganizationDeleted] @Id - EXEC [dbo].[OrganizationDomain_OrganizationDeleted] @Id - EXEC [dbo].[OrganizationIntegration_OrganizationDeleted] @Id - - DELETE - FROM - [dbo].[Project] - WHERE - [OrganizationId] = @Id - - DELETE - FROM - [dbo].[Secret] - WHERE - [OrganizationId] = @Id - - DELETE AK - FROM - [dbo].[ApiKey] AK - INNER JOIN - [dbo].[ServiceAccount] SA ON [AK].[ServiceAccountId] = [SA].[Id] - WHERE - [SA].[OrganizationId] = @Id - - DELETE AP - FROM - [dbo].[AccessPolicy] AP - INNER JOIN - [dbo].[ServiceAccount] SA ON [AP].[GrantedServiceAccountId] = [SA].[Id] - WHERE - [SA].[OrganizationId] = @Id - - DELETE - FROM - [dbo].[ServiceAccount] - WHERE - [OrganizationId] = @Id - - -- Delete Notification Status - DELETE - NS - FROM - [dbo].[NotificationStatus] NS - INNER JOIN - [dbo].[Notification] N ON N.[Id] = NS.[NotificationId] - WHERE - N.[OrganizationId] = @Id - - -- Delete Notification - DELETE - FROM - [dbo].[Notification] - WHERE - [OrganizationId] = @Id - - -- Delete Organization Application - DELETE - FROM - [dbo].[OrganizationApplication] - WHERE - [Id] = @Id - - -- Delete Organization Report - DELETE - FROM - [dbo].[OrganizationReport] - WHERE - [Id] = @Id - - DELETE - FROM - [dbo].[Organization] - WHERE - [Id] = @Id - COMMIT TRANSACTION Organization_DeleteById - END - GO diff --git a/util/SqliteMigrations/HelperScripts/2025-06-10-00_OrganizationReport.sql b/util/SqliteMigrations/HelperScripts/2025-06-10-00_OrganizationReport.sql deleted file mode 100644 index 1152876624..0000000000 --- a/util/SqliteMigrations/HelperScripts/2025-06-10-00_OrganizationReport.sql +++ /dev/null @@ -1,105 +0,0 @@ -IF OBJECT_ID('dbo.OrganizationReport') IS NULL -BEGIN - CREATE TABLE [dbo].[OrganizationReport] - ( - [Id] UNIQUEIDENTIFIER NOT NULL, - [OrganizationId] UNIQUEIDENTIFIER NOT NULL, - [Date] DATETIME2 (7) NOT NULL, - [ReportData] NVARCHAR(MAX) NOT NULL, - [CreationDate] DATETIME2 (7) NOT NULL, - [RevisionDate] DATETIME2 (7) NOT NULL, - CONSTRAINT [PK_OrganizationReport] PRIMARY KEY CLUSTERED ([Id] ASC), - CONSTRAINT [FK_OrganizationReport_Organization] FOREIGN KEY ([OrganizationId]) REFERENCES [dbo].[Organization] ([Id]) - ); - - CREATE NONCLUSTERED INDEX [IX_OrganizationReport_OrganizationId] - ON [dbo].[OrganizationReport]([OrganizationId] ASC); -END -GO - -CREATE OR ALTER VIEW[dbo].[OrganizationReportView] AS - SELECT * FROM [dbo].[OrganizationReport]; -GO - -CREATE OR ALTER PROCEDURE [dbo].[OrganizationReport_Create] - @Id UNIQUEIDENTIFIER, - @OrganizationId UNIQUEIDENTIFIER, - @Date DATETIME2(7), - @ReportData NVARCHAR(MAX), - @CreationDate DATETIME2(7), - @RevisionDate DATETIME2(7) -AS - SET NOCOUNT ON; - INSERT INTO [dbo].[OrganizationReport]( [Id],[OrganizationId],[Date],[ReportData],[CreationDate],[RevisionDate] ) - VALUES ( @Id,@OrganizationId,@Date,@ReportData,@CreationDate,@RevisionDate); -GO - -CREATE OR ALTER PROCEDURE [dbo].[OrganizationReport_ReadByOrganizationId] - @OrganizationId UNIQUEIDENTIFIER -AS - SET NOCOUNT ON; - - IF @OrganizationId IS NULL - THROW 50000, 'OrganizationId cannot be null', 1; - - SELECT - [Id], - [OrganizationId], - [Date], - [ReportData], - [CreationDate], - [RevisionDate] - FROM [dbo].[OrganizationReport] - WHERE [OrganizationId] = @OrganizationId; -GO - -CREATE OR ALTER PROCEDURE [dbo].[OrganizationReport_ReadById] - @Id UNIQUEIDENTIFIER -AS - SET NOCOUNT ON; - - IF @Id IS NULL - THROW 50000, 'Id cannot be null', 1; - - SELECT - [Id], - [OrganizationId], - [Date], - [ReportData], - [CreationDate], - [RevisionDate] - FROM [dbo].[OrganizationReport] - WHERE [Id] = @Id; -GO - -CREATE OR ALTER PROCEDURE [dbo].[OrganizationReport_Update] - @Id UNIQUEIDENTIFIER OUTPUT, - @OrganizationId UNIQUEIDENTIFIER, - @Date DATETIME2(7), - @ReportData NVARCHAR(MAX), - @RevisionDate DATETIME2(7) -AS - SET NOCOUNT ON; - UPDATE [dbo].[OrganizationReport] - SET [OrganizationId] = @OrganizationId, - [Date] = @Date, - [ReportData] = @ReportData, - [RevisionDate] = @RevisionDate - WHERE [Id] = @Id; -GO - -CREATE OR ALTER PROCEDURE [dbo].[OrganizationReport_DeleteById] - @Id UNIQUEIDENTIFIER -AS - SET NOCOUNT ON; - - IF @Id IS NULL - THROW 50000, 'Id cannot be null', 1; - - DELETE FROM [dbo].[OrganizationReport] - WHERE [Id] = @Id; -GO - - - - diff --git a/util/SqliteMigrations/HelperScripts/2025-06-10-01_OrganizationApplication.sql b/util/SqliteMigrations/HelperScripts/2025-06-10-01_OrganizationApplication.sql deleted file mode 100644 index acf222912a..0000000000 --- a/util/SqliteMigrations/HelperScripts/2025-06-10-01_OrganizationApplication.sql +++ /dev/null @@ -1,120 +0,0 @@ -IF OBJECT_ID('dbo.OrganizationApplication') IS NULL -BEGIN - CREATE TABLE [dbo].[OrganizationApplication] ( - [Id] UNIQUEIDENTIFIER NOT NULL, - [OrganizationId] UNIQUEIDENTIFIER NOT NULL, - [Applications] NVARCHAR(MAX) NOT NULL, - [CreationDate] DATETIME2 (7) NOT NULL, - [RevisionDate] DATETIME2 (7) NOT NULL, - CONSTRAINT [PK_OrganizationApplication] PRIMARY KEY CLUSTERED ([Id] ASC), - CONSTRAINT [FK_OrganizationApplication_Organization] FOREIGN KEY ([OrganizationId]) REFERENCES [dbo].[Organization] ([Id]) - ); - - CREATE NONCLUSTERED INDEX [IX_OrganizationApplication_OrganizationId] - ON [dbo].[OrganizationApplication]([OrganizationId] ASC); -END -GO - -CREATE OR ALTER VIEW [dbo].[OrganizationApplicationView] AS - SELECT * FROM [dbo].[OrganizationApplication]; -GO - -CREATE OR ALTER PROCEDURE [dbo].[OrganizationApplication_Create] - @Id UNIQUEIDENTIFIER, - @OrganizationId UNIQUEIDENTIFIER, - @Applications NVARCHAR(MAX), - @CreationDate DATETIME2(7), - @RevisionDate DATETIME2(7) -AS - SET NOCOUNT ON; - - INSERT INTO [dbo].[OrganizationApplication] - ( - [Id], - [OrganizationId], - [Applications], - [CreationDate], - [RevisionDate] - ) - VALUES - ( - @Id, - @OrganizationId, - @Applications, - @CreationDate, - @RevisionDate - ); -GO - -CREATE OR ALTER PROCEDURE [dbo].[OrganizationApplication_ReadByOrganizationId] - @OrganizationId UNIQUEIDENTIFIER -AS - SET NOCOUNT ON; - - IF @OrganizationId IS NULL - THROW 50000, 'OrganizationId cannot be null', 1; - - SELECT - [Id], - [OrganizationId], - [Applications], - [CreationDate], - [RevisionDate] - FROM [dbo].[OrganizationApplication] - WHERE [OrganizationId] = @OrganizationId; -GO - -CREATE OR ALTER PROCEDURE [dbo].[OrganizationApplication_ReadById] - @Id UNIQUEIDENTIFIER -AS - SET NOCOUNT ON; - - IF @Id IS NULL - THROW 50000, 'Id cannot be null', 1; - - SELECT - [Id], - [OrganizationId], - [Applications], - [CreationDate], - [RevisionDate] - FROM [dbo].[OrganizationApplication] - WHERE [Id] = @Id; -GO - -CREATE OR ALTER PROCEDURE [dbo].[OrganizationApplication_Update] - @Id UNIQUEIDENTIFIER, - @OrganizationId UNIQUEIDENTIFIER, - @Applications NVARCHAR(MAX), - @RevisionDate DATETIME2(7) -AS - SET NOCOUNT ON; - UPDATE [dbo].[OrganizationApplication] - SET - [OrganizationId] = @OrganizationId, - [Applications] = @Applications, - [RevisionDate] = @RevisionDate - WHERE [Id] = @Id; -GO - -CREATE OR ALTER PROCEDURE [dbo].[OrganizationApplication_DeleteById] - @Id UNIQUEIDENTIFIER -AS - SET NOCOUNT ON; - - IF @Id IS NULL - THROW 50000, 'Id cannot be null', 1; - - DELETE FROM [dbo].[OrganizationApplication] - WHERE [Id] = @Id; -GO - - - - - - - - - - diff --git a/util/SqliteMigrations/HelperScripts/2025-06-10_02_UpdateOrgDeleteByIdProc.sql b/util/SqliteMigrations/HelperScripts/2025-06-10_02_UpdateOrgDeleteByIdProc.sql deleted file mode 100644 index 9f311a53af..0000000000 --- a/util/SqliteMigrations/HelperScripts/2025-06-10_02_UpdateOrgDeleteByIdProc.sql +++ /dev/null @@ -1,161 +0,0 @@ -CREATE OR ALTER PROCEDURE [dbo].[Organization_DeleteById] - @Id UNIQUEIDENTIFIER -WITH RECOMPILE -AS -BEGIN - SET NOCOUNT ON - - EXEC [dbo].[User_BumpAccountRevisionDateByOrganizationId] @Id - - DECLARE @BatchSize INT = 100 - WHILE @BatchSize > 0 - BEGIN - BEGIN TRANSACTION Organization_DeleteById_Ciphers - - DELETE TOP(@BatchSize) - FROM - [dbo].[Cipher] - WHERE - [UserId] IS NULL - AND [OrganizationId] = @Id - - SET @BatchSize = @@ROWCOUNT - - COMMIT TRANSACTION Organization_DeleteById_Ciphers - END - - BEGIN TRANSACTION Organization_DeleteById - - DELETE - FROM - [dbo].[AuthRequest] - WHERE - [OrganizationId] = @Id - - DELETE - FROM - [dbo].[SsoUser] - WHERE - [OrganizationId] = @Id - - DELETE - FROM - [dbo].[SsoConfig] - WHERE - [OrganizationId] = @Id - - DELETE CU - FROM - [dbo].[CollectionUser] CU - INNER JOIN - [dbo].[OrganizationUser] OU ON [CU].[OrganizationUserId] = [OU].[Id] - WHERE - [OU].[OrganizationId] = @Id - - DELETE AP - FROM - [dbo].[AccessPolicy] AP - INNER JOIN - [dbo].[OrganizationUser] OU ON [AP].[OrganizationUserId] = [OU].[Id] - WHERE - [OU].[OrganizationId] = @Id - - DELETE GU - FROM - [dbo].[GroupUser] GU - INNER JOIN - [dbo].[OrganizationUser] OU ON [GU].[OrganizationUserId] = [OU].[Id] - WHERE - [OU].[OrganizationId] = @Id - - DELETE - FROM - [dbo].[OrganizationUser] - WHERE - [OrganizationId] = @Id - - DELETE - FROM - [dbo].[ProviderOrganization] - WHERE - [OrganizationId] = @Id - - EXEC [dbo].[OrganizationApiKey_OrganizationDeleted] @Id - EXEC [dbo].[OrganizationConnection_OrganizationDeleted] @Id - EXEC [dbo].[OrganizationSponsorship_OrganizationDeleted] @Id - EXEC [dbo].[OrganizationDomain_OrganizationDeleted] @Id - EXEC [dbo].[OrganizationIntegration_OrganizationDeleted] @Id - - DELETE - FROM - [dbo].[Project] - WHERE - [OrganizationId] = @Id - - DELETE - FROM - [dbo].[Secret] - WHERE - [OrganizationId] = @Id - - DELETE AK - FROM - [dbo].[ApiKey] AK - INNER JOIN - [dbo].[ServiceAccount] SA ON [AK].[ServiceAccountId] = [SA].[Id] - WHERE - [SA].[OrganizationId] = @Id - - DELETE AP - FROM - [dbo].[AccessPolicy] AP - INNER JOIN - [dbo].[ServiceAccount] SA ON [AP].[GrantedServiceAccountId] = [SA].[Id] - WHERE - [SA].[OrganizationId] = @Id - - DELETE - FROM - [dbo].[ServiceAccount] - WHERE - [OrganizationId] = @Id - - -- Delete Notification Status - DELETE - NS - FROM - [dbo].[NotificationStatus] NS - INNER JOIN - [dbo].[Notification] N ON N.[Id] = NS.[NotificationId] - WHERE - N.[OrganizationId] = @Id - - -- Delete Notification - DELETE - FROM - [dbo].[Notification] - WHERE - [OrganizationId] = @Id - - -- Delete Organization Application - DELETE - FROM - [dbo].[OrganizationApplication] - WHERE - [Id] = @Id - - -- Delete Organization Report - DELETE - FROM - [dbo].[OrganizationReport] - WHERE - [Id] = @Id - - DELETE - FROM - [dbo].[Organization] - WHERE - [Id] = @Id - COMMIT TRANSACTION Organization_DeleteById - END - GO