mirror of
https://github.com/bitwarden/server
synced 2025-12-16 08:13:33 +00:00
SM-365: Add Export & Import Functionality for SM (#2591)
* SM-365: Add Export endpoint * SM-365: Add SM Import/Export support * SM-365: Fix DI and add temp NoAccessCheck * SM-365: Add access checks to import / export * SM-365: dotnet format * SM-365: Fix import bugs * SM-365: Fix import bug with EF & refactor based on PR comments * SM-365: Update access permissions in export * SM-365: Address PR comments * SM-365: Refactor for readability and PR comments
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using Bit.Core.SecretsManager.Commands.Porting;
|
||||
using Bit.Core.Utilities;
|
||||
|
||||
namespace Bit.Api.SecretsManager.Models.Request;
|
||||
|
||||
public class SMImportRequestModel
|
||||
{
|
||||
public IEnumerable<InnerProjectImportRequestModel> Projects { get; set; }
|
||||
public IEnumerable<InnerSecretImportRequestModel> Secrets { get; set; }
|
||||
|
||||
public class InnerProjectImportRequestModel
|
||||
{
|
||||
public InnerProjectImportRequestModel() { }
|
||||
|
||||
[Required]
|
||||
public Guid Id { get; set; }
|
||||
|
||||
[Required]
|
||||
[EncryptedString]
|
||||
[EncryptedStringLength(1000)]
|
||||
public string Name { get; set; }
|
||||
}
|
||||
|
||||
public class InnerSecretImportRequestModel
|
||||
{
|
||||
public InnerSecretImportRequestModel() { }
|
||||
|
||||
[Required]
|
||||
public Guid Id { get; set; }
|
||||
|
||||
[Required]
|
||||
[EncryptedString]
|
||||
[EncryptedStringLength(1000)]
|
||||
public string Key { get; set; }
|
||||
|
||||
[Required]
|
||||
[EncryptedString]
|
||||
[EncryptedStringLength(1000)]
|
||||
public string Value { get; set; }
|
||||
|
||||
[Required]
|
||||
[EncryptedString]
|
||||
[EncryptedStringLength(1000)]
|
||||
public string Note { get; set; }
|
||||
|
||||
[Required]
|
||||
public IEnumerable<Guid> ProjectIds { get; set; }
|
||||
}
|
||||
|
||||
public SMImport ToSMImport()
|
||||
{
|
||||
return new SMImport
|
||||
{
|
||||
Projects = Projects?.Select(p => new SMImport.InnerProject
|
||||
{
|
||||
Id = p.Id,
|
||||
Name = p.Name,
|
||||
}),
|
||||
Secrets = Secrets?.Select(s => new SMImport.InnerSecret
|
||||
{
|
||||
Id = s.Id,
|
||||
Key = s.Key,
|
||||
Value = s.Value,
|
||||
Note = s.Note,
|
||||
ProjectIds = s.ProjectIds,
|
||||
}),
|
||||
};
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user