The core infrastructure backend (API, database, Docker, etc).
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

46 lines
1.6 KiB

using Bit.Seeder.Recipes;
using Bit.SeederUtility.Configuration;
using Bit.SeederUtility.Helpers;
using CommandDotNet;
namespace Bit.SeederUtility.Commands;
[Command("organization", Description = "Seed an organization with users and optional vault data (ciphers, collections, groups)")]
public class OrganizationCommand
{
[DefaultCommand]
public void Execute(OrganizationArgs args)
{
try
{
args.Validate();
using var deps = SeederServiceFactory.Create(new SeederServiceOptions { EnableMangling = args.Mangle });
var recipe = new OrganizationRecipe(deps.ToDependencies());
var result = recipe.Seed(args.ToOptions());
ConsoleOutput.PrintRow("Organization", result.OrganizationId);
if (result.OwnerEmail is not null)
{
ConsoleOutput.PrintRow("Owner", result.OwnerEmail);
}
ConsoleOutput.PrintRow("Password", result.Password);
if (result.ApiKey is not null)
{
ConsoleOutput.PrintRow("ApiKey", result.ApiKey);
}
ConsoleOutput.PrintCountRow("Users", result.UsersCount);
ConsoleOutput.PrintCountRow("Groups", result.GroupsCount);
ConsoleOutput.PrintCountRow("Collections", result.CollectionsCount);
ConsoleOutput.PrintCountRow("Ciphers", result.CiphersCount);
ConsoleOutput.PrintMangleMap(deps);
}
catch (Exception ex) when (ex is ArgumentException or InvalidOperationException)
{
Console.Error.WriteLine($"Error: {ex.Message}");
Environment.Exit(1);
}
}
}