Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[PM-12607] Move key rotation & validators to km ownership #4941

Open
wants to merge 9 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions src/Api/Auth/Controllers/AccountsController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
using Bit.Api.Auth.Models.Request;
using Bit.Api.Auth.Models.Request.Accounts;
using Bit.Api.Auth.Models.Request.WebAuthn;
using Bit.Api.Auth.Validators;
using Bit.Api.KeyManagement.Validators;
using Bit.Api.Models.Request;
using Bit.Api.Models.Request.Accounts;
using Bit.Api.Models.Response;
Expand All @@ -18,14 +18,15 @@
using Bit.Core.Auth.Models.Api.Request.Accounts;
using Bit.Core.Auth.Models.Data;
using Bit.Core.Auth.UserFeatures.TdeOffboardingPassword.Interfaces;
using Bit.Core.Auth.UserFeatures.UserKey;
using Bit.Core.Auth.UserFeatures.UserMasterPassword.Interfaces;
using Bit.Core.Billing.Models;
using Bit.Core.Billing.Services;
using Bit.Core.Context;
using Bit.Core.Entities;
using Bit.Core.Enums;
using Bit.Core.Exceptions;
using Bit.Core.KeyManagement.Models.Data;
using Bit.Core.KeyManagement.UserFeatures.UserKey;
using Bit.Core.Models.Api.Response;
using Bit.Core.Models.Business;
using Bit.Core.Repositories;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
using Bit.Api.Auth.Validators;
using Bit.Api.Vault.Models.Request;
using Bit.Api.Vault.Models.Request;
using Bit.Core.Entities;
using Bit.Core.Exceptions;
using Bit.Core.Vault.Entities;
using Bit.Core.Vault.Repositories;

namespace Bit.Api.Vault.Validators;
namespace Bit.Api.KeyManagement.Validators;

public class CipherRotationValidator : IRotationValidator<IEnumerable<CipherWithIdRequestModel>, IEnumerable<Cipher>>
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
using Bit.Core.Repositories;
using Bit.Core.Services;

namespace Bit.Api.Auth.Validators;
namespace Bit.Api.KeyManagement.Validators;

public class EmergencyAccessRotationValidator : IRotationValidator<IEnumerable<EmergencyAccessWithIdRequestModel>,
IEnumerable<EmergencyAccess>>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
using Bit.Api.Auth.Validators;
using Bit.Api.Vault.Models.Request;
using Bit.Api.Vault.Models.Request;
using Bit.Core.Entities;
using Bit.Core.Exceptions;
using Bit.Core.Vault.Entities;
using Bit.Core.Vault.Repositories;

namespace Bit.Api.Vault.Validators;
namespace Bit.Api.KeyManagement.Validators;

public class FolderRotationValidator : IRotationValidator<IEnumerable<FolderWithIdRequestModel>, IEnumerable<Folder>>
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
using Bit.Core.Entities;
using Bit.Core.Exceptions;

namespace Bit.Api.Auth.Validators;
namespace Bit.Api.KeyManagement.Validators;

/// <summary>
/// A consistent interface for domains to validate re-encrypted data before saved to database. Some examples are:<br/>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
using Bit.Api.AdminConsole.Models.Request.Organizations;
using Bit.Api.Auth.Validators;
using Bit.Core.Entities;
using Bit.Core.Exceptions;
using Bit.Core.Repositories;

namespace Bit.Api.AdminConsole.Validators;
namespace Bit.Api.KeyManagement.Validators;

/// <summary>
/// Organization user implementation for <see cref="IRotationValidator{T,R}"/>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
using Bit.Api.Auth.Validators;
using Bit.Api.Tools.Models.Request;
using Bit.Api.Tools.Models.Request;
using Bit.Core.Entities;
using Bit.Core.Exceptions;
using Bit.Core.Tools.Entities;
using Bit.Core.Tools.Repositories;
using Bit.Core.Tools.Services;

namespace Bit.Api.Tools.Validators;
namespace Bit.Api.KeyManagement.Validators;

/// <summary>
/// Send implementation for <see cref="IRotationValidator{T,R}"/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
using Bit.Core.Entities;
using Bit.Core.Exceptions;

namespace Bit.Api.Auth.Validators;
namespace Bit.Api.KeyManagement.Validators;

public class WebAuthnLoginKeyRotationValidator : IRotationValidator<IEnumerable<WebAuthnLoginRotateKeyRequestModel>, IEnumerable<WebAuthnLoginRotateKeyData>>
{
Expand Down
5 changes: 1 addition & 4 deletions src/Api/Startup.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,10 @@
using IdentityModel;
using System.Globalization;
using Bit.Api.AdminConsole.Models.Request.Organizations;
using Bit.Api.AdminConsole.Validators;
using Bit.Api.Auth.Models.Request;
using Bit.Api.Auth.Validators;
using Bit.Api.KeyManagement.Validators;
using Bit.Api.Tools.Models.Request;
using Bit.Api.Tools.Validators;
using Bit.Api.Vault.Models.Request;
using Bit.Api.Vault.Validators;
using Bit.Core.Auth.Entities;
using Bit.Core.IdentityServer;
using Bit.SharedWeb.Health;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
using Bit.Core.AdminConsole.Enums;
using Bit.Core.Auth.UserFeatures.UserKey;
using Bit.Core.Entities;
using Bit.Core.Enums;
using Bit.Core.KeyManagement.UserFeatures.UserKey;
using Bit.Core.Models.Data;
using Bit.Core.Models.Data.Organizations.OrganizationUsers;

Expand Down
2 changes: 1 addition & 1 deletion src/Core/Auth/Repositories/IEmergencyAccessRepository.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
using Bit.Core.Auth.Entities;
using Bit.Core.Auth.Models.Data;
using Bit.Core.Auth.UserFeatures.UserKey;
using Bit.Core.KeyManagement.UserFeatures.UserKey;

#nullable enable

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
using Bit.Core.Auth.Entities;
using Bit.Core.Auth.Models.Data;
using Bit.Core.Auth.UserFeatures.UserKey;
using Bit.Core.KeyManagement.UserFeatures.UserKey;
using Bit.Core.Repositories;

#nullable enable
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@
using Bit.Core.Auth.UserFeatures.TdeOffboardingPassword.Interfaces;
using Bit.Core.Auth.UserFeatures.TwoFactorAuth;
using Bit.Core.Auth.UserFeatures.TwoFactorAuth.Interfaces;
using Bit.Core.Auth.UserFeatures.UserKey;
using Bit.Core.Auth.UserFeatures.UserKey.Implementations;
using Bit.Core.Auth.UserFeatures.UserMasterPassword;
using Bit.Core.Auth.UserFeatures.UserMasterPassword.Interfaces;
using Bit.Core.Auth.UserFeatures.WebAuthnLogin;
using Bit.Core.Auth.UserFeatures.WebAuthnLogin.Implementations;
using Bit.Core.KeyManagement.UserFeatures.UserKey;
using Bit.Core.KeyManagement.UserFeatures.UserKey.Implementations;
using Bit.Core.Services;
using Bit.Core.Settings;
using Microsoft.Extensions.DependencyInjection;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
using Bit.Core.Auth.Entities;
using Bit.Core.Auth.Models.Data;
using Bit.Core.Entities;
using Bit.Core.Tools.Entities;
using Bit.Core.Vault.Entities;

namespace Bit.Core.Auth.Models.Data;
namespace Bit.Core.KeyManagement.Models.Data;

public class RotateUserKeyData
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
using Bit.Core.Auth.Models.Data;
using Bit.Core.Entities;
using Bit.Core.Entities;
using Bit.Core.KeyManagement.Models.Data;
using Microsoft.AspNetCore.Identity;
using Microsoft.Data.SqlClient;

namespace Bit.Core.Auth.UserFeatures.UserKey;
namespace Bit.Core.KeyManagement.UserFeatures.UserKey;

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⛏️ Namespace doesn't correspond to file location, due to UserFeatures not existing under KeyManagement

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

wrong namespace as already pointed out by @djsmith85

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Any automated linting, we could put in places to prevent this in the future?

/// <summary>
/// Responsible for rotation of a user key and updating database with re-encrypted data
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
using Bit.Core.Auth.Models.Data;
using Bit.Core.Auth.Repositories;
using Bit.Core.Auth.Repositories;
using Bit.Core.Entities;
using Bit.Core.KeyManagement.Models.Data;
using Bit.Core.Repositories;
using Bit.Core.Services;
using Bit.Core.Tools.Repositories;
using Bit.Core.Vault.Repositories;
using Microsoft.AspNetCore.Identity;

namespace Bit.Core.Auth.UserFeatures.UserKey.Implementations;
namespace Bit.Core.KeyManagement.UserFeatures.UserKey.Implementations;

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

wrong namespace to the file location, should be:

Suggested change
namespace Bit.Core.KeyManagement.UserFeatures.UserKey.Implementations;
namespace Bit.Core.KeyManagement.UserKey.Implementations;

Or move the file to "UserFeatures" directory.

/// <inheritdoc />
public class RotateUserKeyCommand : IRotateUserKeyCommand
Expand Down
4 changes: 2 additions & 2 deletions src/Core/Repositories/IUserRepository.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
using Bit.Core.Auth.UserFeatures.UserKey;
using Bit.Core.Entities;
using Bit.Core.Entities;
using Bit.Core.KeyManagement.UserFeatures.UserKey;
using Bit.Core.Models.Data;

#nullable enable
Expand Down
2 changes: 1 addition & 1 deletion src/Core/Tools/Repositories/ISendRepository.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#nullable enable

using Bit.Core.Auth.UserFeatures.UserKey;
using Bit.Core.KeyManagement.UserFeatures.UserKey;
using Bit.Core.Repositories;
using Bit.Core.Tools.Entities;

Expand Down
4 changes: 2 additions & 2 deletions src/Core/Vault/Repositories/ICipherRepository.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
using Bit.Core.Auth.UserFeatures.UserKey;
using Bit.Core.Entities;
using Bit.Core.Entities;
using Bit.Core.KeyManagement.UserFeatures.UserKey;
using Bit.Core.Repositories;
using Bit.Core.Vault.Entities;
using Bit.Core.Vault.Models.Data;
Expand Down
2 changes: 1 addition & 1 deletion src/Core/Vault/Repositories/IFolderRepository.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
using Bit.Core.Auth.UserFeatures.UserKey;
using Bit.Core.KeyManagement.UserFeatures.UserKey;
using Bit.Core.Repositories;
using Bit.Core.Vault.Entities;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
using System.Text.Json;
using Bit.Core.AdminConsole.Entities;
using Bit.Core.AdminConsole.Enums;
using Bit.Core.Auth.UserFeatures.UserKey;
using Bit.Core.Entities;
using Bit.Core.Enums;
using Bit.Core.KeyManagement.UserFeatures.UserKey;
using Bit.Core.Models.Data;
using Bit.Core.Models.Data.Organizations.OrganizationUsers;
using Bit.Core.Repositories;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
using System.Data;
using Bit.Core.Auth.Entities;
using Bit.Core.Auth.Models.Data;
using Bit.Core.Auth.UserFeatures.UserKey;
using Bit.Core.KeyManagement.UserFeatures.UserKey;
using Bit.Core.Repositories;
using Bit.Core.Settings;
using Bit.Infrastructure.Dapper.Auth.Helpers;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
using Bit.Core.Auth.Entities;
using Bit.Core.Auth.Models.Data;
using Bit.Core.Auth.Repositories;
using Bit.Core.Auth.UserFeatures.UserKey;
using Bit.Core.KeyManagement.UserFeatures.UserKey;
using Bit.Core.Settings;
using Bit.Core.Utilities;
using Bit.Infrastructure.Dapper.Repositories;
Expand Down
2 changes: 1 addition & 1 deletion src/Infrastructure.Dapper/Repositories/UserRepository.cs
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
using System.Data;
using System.Text.Json;
using Bit.Core;
using Bit.Core.Auth.UserFeatures.UserKey;
using Bit.Core.Entities;
using Bit.Core.KeyManagement.UserFeatures.UserKey;
using Bit.Core.Models.Data;
using Bit.Core.Repositories;
using Bit.Core.Settings;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#nullable enable

using System.Data;
using Bit.Core.Auth.UserFeatures.UserKey;
using Bit.Core.KeyManagement.UserFeatures.UserKey;
using Bit.Core.Settings;
using Bit.Core.Tools.Entities;
using Bit.Core.Tools.Repositories;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
using System.Data;
using System.Text.Json;
using Bit.Core.Auth.UserFeatures.UserKey;
using Bit.Core.Entities;
using Bit.Core.KeyManagement.UserFeatures.UserKey;
using Bit.Core.Settings;
using Bit.Core.Tools.Entities;
using Bit.Core.Vault.Entities;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
using System.Data;
using Bit.Core.Auth.UserFeatures.UserKey;
using Bit.Core.KeyManagement.UserFeatures.UserKey;
using Bit.Core.Settings;
using Bit.Core.Vault.Entities;
using Bit.Core.Vault.Repositories;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
using AutoMapper;
using Bit.Core.AdminConsole.Enums;
using Bit.Core.Auth.UserFeatures.UserKey;
using Bit.Core.Enums;
using Bit.Core.KeyManagement.UserFeatures.UserKey;
using Bit.Core.Models.Data;
using Bit.Core.Models.Data.Organizations.OrganizationUsers;
using Bit.Core.Repositories;
Expand Down Expand Up @@ -248,7 +248,7 @@
}
}

public async Task<(OrganizationUserUserDetails? OrganizationUser, ICollection<CollectionAccessSelection> Collections)> GetDetailsByIdWithCollectionsAsync(Guid id)

Check warning on line 251 in src/Infrastructure.EntityFramework/AdminConsole/Repositories/OrganizationUserRepository.cs

View workflow job for this annotation

GitHub Actions / Build artifacts (Notifications, ./src)

The annotation for nullable reference types should only be used in code within a '#nullable' annotations context.

Check warning on line 251 in src/Infrastructure.EntityFramework/AdminConsole/Repositories/OrganizationUserRepository.cs

View workflow job for this annotation

GitHub Actions / Build artifacts (EventsProcessor, ./src)

The annotation for nullable reference types should only be used in code within a '#nullable' annotations context.

Check warning on line 251 in src/Infrastructure.EntityFramework/AdminConsole/Repositories/OrganizationUserRepository.cs

View workflow job for this annotation

GitHub Actions / Build artifacts (Icons, ./src)

The annotation for nullable reference types should only be used in code within a '#nullable' annotations context.

Check warning on line 251 in src/Infrastructure.EntityFramework/AdminConsole/Repositories/OrganizationUserRepository.cs

View workflow job for this annotation

GitHub Actions / Build artifacts (Api, ./src)

The annotation for nullable reference types should only be used in code within a '#nullable' annotations context.

Check warning on line 251 in src/Infrastructure.EntityFramework/AdminConsole/Repositories/OrganizationUserRepository.cs

View workflow job for this annotation

GitHub Actions / Build artifacts (Scim, ./bitwarden_license/src, true)

The annotation for nullable reference types should only be used in code within a '#nullable' annotations context.

Check warning on line 251 in src/Infrastructure.EntityFramework/AdminConsole/Repositories/OrganizationUserRepository.cs

View workflow job for this annotation

GitHub Actions / Build artifacts (Events, ./src)

The annotation for nullable reference types should only be used in code within a '#nullable' annotations context.

Check warning on line 251 in src/Infrastructure.EntityFramework/AdminConsole/Repositories/OrganizationUserRepository.cs

View workflow job for this annotation

GitHub Actions / Build artifacts (Billing, ./src)

The annotation for nullable reference types should only be used in code within a '#nullable' annotations context.

Check warning on line 251 in src/Infrastructure.EntityFramework/AdminConsole/Repositories/OrganizationUserRepository.cs

View workflow job for this annotation

GitHub Actions / Build artifacts (Identity, ./src)

The annotation for nullable reference types should only be used in code within a '#nullable' annotations context.

Check warning on line 251 in src/Infrastructure.EntityFramework/AdminConsole/Repositories/OrganizationUserRepository.cs

View workflow job for this annotation

GitHub Actions / Build artifacts (Sso, ./bitwarden_license/src, true)

The annotation for nullable reference types should only be used in code within a '#nullable' annotations context.

Check warning on line 251 in src/Infrastructure.EntityFramework/AdminConsole/Repositories/OrganizationUserRepository.cs

View workflow job for this annotation

GitHub Actions / Build artifacts (Admin, ./src, true)

The annotation for nullable reference types should only be used in code within a '#nullable' annotations context.

Check warning on line 251 in src/Infrastructure.EntityFramework/AdminConsole/Repositories/OrganizationUserRepository.cs

View workflow job for this annotation

GitHub Actions / Quality scan

The annotation for nullable reference types should only be used in code within a '#nullable' annotations context.

Check warning on line 251 in src/Infrastructure.EntityFramework/AdminConsole/Repositories/OrganizationUserRepository.cs

View workflow job for this annotation

GitHub Actions / Run tests

The annotation for nullable reference types should only be used in code within a '#nullable' annotations context.

Check warning on line 251 in src/Infrastructure.EntityFramework/AdminConsole/Repositories/OrganizationUserRepository.cs

View workflow job for this annotation

GitHub Actions / Upload

The annotation for nullable reference types should only be used in code within a '#nullable' annotations context.
{
var organizationUserUserDetails = await GetDetailsByIdAsync(id);
using (var scope = ServiceScopeFactory.CreateScope())
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
using AutoMapper;
using Bit.Core.Auth.Enums;
using Bit.Core.Auth.Models.Data;
using Bit.Core.Auth.UserFeatures.UserKey;
using Bit.Core.KeyManagement.UserFeatures.UserKey;
using Bit.Core.Repositories;
using Bit.Infrastructure.EntityFramework.Auth.Models;
using Bit.Infrastructure.EntityFramework.Auth.Repositories.Queries;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
using AutoMapper;
using Bit.Core.Auth.Models.Data;
using Bit.Core.Auth.Repositories;
using Bit.Core.Auth.UserFeatures.UserKey;
using Bit.Core.KeyManagement.UserFeatures.UserKey;
using Bit.Infrastructure.EntityFramework.Auth.Models;
using Bit.Infrastructure.EntityFramework.Repositories;
using Microsoft.EntityFrameworkCore;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
using AutoMapper;
using Bit.Core.Auth.UserFeatures.UserKey;
using Bit.Core.KeyManagement.UserFeatures.UserKey;
using Bit.Core.Repositories;
using Bit.Infrastructure.EntityFramework.Models;
using Microsoft.EntityFrameworkCore;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#nullable enable

using AutoMapper;
using Bit.Core.Auth.UserFeatures.UserKey;
using Bit.Core.KeyManagement.UserFeatures.UserKey;
using Bit.Core.Tools.Repositories;
using Bit.Infrastructure.EntityFramework.Models;
using Bit.Infrastructure.EntityFramework.Repositories;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
using System.Text.Json;
using System.Text.Json.Nodes;
using AutoMapper;
using Bit.Core.Auth.UserFeatures.UserKey;
using Bit.Core.KeyManagement.UserFeatures.UserKey;
using Bit.Core.Utilities;
using Bit.Core.Vault.Enums;
using Bit.Core.Vault.Models.Data;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
using AutoMapper;
using Bit.Core.Auth.UserFeatures.UserKey;
using Bit.Core.KeyManagement.UserFeatures.UserKey;
using Bit.Core.Vault.Repositories;
using Bit.Infrastructure.EntityFramework.Repositories;
using Bit.Infrastructure.EntityFramework.Vault.Models;
Expand Down
4 changes: 2 additions & 2 deletions test/Api.Test/Auth/Controllers/AccountsControllerTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
using Bit.Api.Auth.Models.Request;
using Bit.Api.Auth.Models.Request.Accounts;
using Bit.Api.Auth.Models.Request.WebAuthn;
using Bit.Api.Auth.Validators;
using Bit.Api.KeyManagement.Validators;
using Bit.Api.Tools.Models.Request;
using Bit.Api.Vault.Models.Request;
using Bit.Core;
Expand All @@ -14,12 +14,12 @@
using Bit.Core.Auth.Models.Api.Request.Accounts;
using Bit.Core.Auth.Models.Data;
using Bit.Core.Auth.UserFeatures.TdeOffboardingPassword.Interfaces;
using Bit.Core.Auth.UserFeatures.UserKey;
using Bit.Core.Auth.UserFeatures.UserMasterPassword.Interfaces;
using Bit.Core.Billing.Services;
using Bit.Core.Context;
using Bit.Core.Entities;
using Bit.Core.Exceptions;
using Bit.Core.KeyManagement.UserFeatures.UserKey;
using Bit.Core.Repositories;
using Bit.Core.Services;
using Bit.Core.Settings;
Expand Down
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

namespace not updated, should be namespace Bit.Api.Test.KeyManagement.Validators;

Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
using Bit.Api.Vault.Models.Request;
using Bit.Api.Vault.Validators;
using Bit.Api.KeyManagement.Validators;
using Bit.Api.Vault.Models.Request;
using Bit.Core.Entities;
using Bit.Core.Exceptions;
using Bit.Core.Vault.Models.Data;
Expand Down
Loading
Loading