Generic .Net Script using KSM SDK

// Depends on Keeper.SecretsManager package
// dotnet add package Keeper.SecretsManager
using SecretsManager;

while (Console.ReadLine() is string line)
{
    Console.WriteLine(line);
    var base64EncodedBytes = System.Convert.FromBase64String(line);
    var json = System.Text.Encoding.UTF8.GetString(base64EncodedBytes);
    var jsonDom = System.Text.Json.JsonSerializer.Deserialize<System.Text.Json.Nodes.JsonObject>(json)!;

    var providerRecordUid = (string)jsonDom["providerRecordUid"]!;
    var resourceRecordUid = (string)jsonDom["resourceRecordUid"]!;
    var userRecordUid = (string)jsonDom["userRecordUid"]!;
    var newPassword = (string)jsonDom["newPassword"]!;
    var oldPassword = (string)jsonDom["oldPassword"]!;
    var user = (string)jsonDom["user"]!;
    Console.WriteLine($"providerRecordUid={providerRecordUid}\n" +
        $"resourceRecordUid={resourceRecordUid}\n" +
        $"userRecordUid={userRecordUid}\n" +
        $"newPassword={newPassword}\n" +
        $"oldPassword={oldPassword}\n" +
        $"user={user}\n");

    //var storage = new LocalConfigStorage("config.json");
    var storage = new InMemoryStorage("BASE64Config==");
    var options = new SecretsManagerOptions(storage);
    var recordUids = new string[] { providerRecordUid, resourceRecordUid, userRecordUid };
    var secrets = await SecretsManagerClient.GetSecrets(options, recordUids);
    foreach (var record in secrets.Records)
    {
        Console.WriteLine($"Record UID: {record.RecordUid}, Title: {record.Data.title}");
    }
}

Last updated