OnePassword.NET 2.2.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package OnePassword.NET --version 2.2.0                
NuGet\Install-Package OnePassword.NET -Version 2.2.0                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="OnePassword.NET" Version="2.2.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add OnePassword.NET --version 2.2.0                
#r "nuget: OnePassword.NET, 2.2.0"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install OnePassword.NET as a Cake Addin
#addin nuget:?package=OnePassword.NET&version=2.2.0

// Install OnePassword.NET as a Cake Tool
#tool nuget:?package=OnePassword.NET&version=2.2.0                

OnePassword.NET - 1Password CLI Wrapper

This library serves as a .NET wrapper for the 1Password command-line tool op.exe ( Download | Documentation ).

nuget master

References

This library targets .NET 6.0 and .NET 7.0.

Dependencies

This library has no dependencies.

Quick Start

Creating an instance of the manager

var onePassword = new OnePasswordManager();

Adding your account and signing in for the first time

var domain = "my.1password.com";
var email = "your@email.com";
var secretKey = "A3-YOUR-SECRET-KEY";
var password = "yourpassword";

onePassword.AddAccount(domain, email, secretKey, password);
onePassword.SignIn(password);

Signing in for subsequent connections

onePassword.UseAccount(domain);
onePassword.SignIn(password);

Using Service Accounts

To signin using a Service Account, a token must be provided as part of the options.

var onePassword = new OnePasswordManager(options => {
    options.ServiceAccountToken = "yourtoken";
});

Subsequently, the following commands are not used or supported when using service accounts.

  • GetAccounts, GetAccount, AddAccount, UseAccount, ForgetAccount
  • SignIn, SignOut

For more information, see the documentation on 1Password Service Accounts.

var onePassword = new OnePasswordManager(serviceAccountToken: token);

Getting all vaults

var vaults = onePassword.GetVaults();

Selecting a specific vault

var vault = vaults.First(x => x.Name == "Private");

Creating an item using a template

var serverTemplate = onePassword.GetTemplate(Category.Server);

serverTemplate.Title = "Your Item's Title";
serverTemplate.Fields.First(x => x.Label == "username").Value = "secretuser";
serverTemplate.Fields.First(x => x.Label == "password").Value = "secretpass";

var serverItem = onePassword.CreateItem(serverTemplate, vault);

Note: If you want to reuse the same template for several items, make sure you clone the instance to avoid reference issues.

var server1 = serverTemplate.Clone();
var server2 = serverTemplate.Clone();

Getting all items in a vault

var items = onePassword.GetItems(vault);

Selecting a specific item

var item = items.First(x => x.Title == "Your Item's Title");

Editing a specific item

item.Fields.First(x => x.Label == "password").Value = "newpass";
onePassword.EditItem(item, vault);

Archiving an item

onePassword.ArchiveItem(item, vault);

Deleting an item

onePassword.DeleteItem(item, vault);

Signing out

onePassword.SignOut();

Running tests

Due to the fact that this library acts as a wrapper for the CLI and in order for tests to have any significant value, the majority of tests are integration tests which must run against an active 1Password account (preferably a Business account).

Effects on the active account

The integration tests will sign in to the specified account, then create and update a test group, a test user (optional), and a test vault. Items will then be created and update in the test vault. Finally, the test vault, user, and group will be deleted. Note: If the integration tests fail, test data may remain in the specified account.

Configuration

The integration tests are configured using the environment variables which are prefixed with OPT_ (OnePassword Tests). Environment variables which are integers must contain only numbers and those which are booleans must contain true or false as a string.

Environment Variable Description Type Default Value
OPT_COMMAND_TIMEOUT The timeout (in minutes) for each CLI command. int 2
OPT_RATE_LIMIT The rate (in milliseconds) at which commands are executed. int 250
OPT_RUN_LIVE_TESTS Activates or deactivates integration tests. bool false
OPT_CREATE_TEST_USER Activates or deactivates the creation of the test user and its related tests. bool false
OPT_ACCOUNT_ADDRESS The account address. Should be the host name only. string
OPT_ACCOUNT_EMAIL The email to use when authenticating. string
OPT_ACCOUNT_NAME The account name. Used to test account related commands. string
OPT_ACCOUNT_PASSWORD The password to use when authenticating. string
OPT_ACCOUNT_SECRET_KEY The secret key to use when authenticating. string
OPT_TEST_USER_EMAIL The test user's email address. string
OPT_TEST_USER_CONFIRM_TIMEOUT The time (in minutes) to wait for manual confirmation of the test user. int OPT_COMMAND_TIMEOUT
Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 is compatible.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net6.0

    • No dependencies.
  • net7.0

    • No dependencies.
  • net8.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2.4.2 582 6/18/2024
2.4.1 452 3/19/2024
2.4.0 133 3/14/2024
2.3.4 138 2/28/2024
2.3.3 307 1/19/2024
2.3.2 220 11/11/2023
2.3.1 111 11/8/2023
2.3.0 1,376 9/2/2023
2.2.1 229 7/2/2023
2.2.0 165 6/30/2023
2.1.3 186 5/27/2023
2.1.2 469 1/14/2023
2.1.1 325 1/13/2023
2.1.0 308 12/17/2022