OnePassword.NET 2.4.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package OnePassword.NET --version 2.4.0                
NuGet\Install-Package OnePassword.NET -Version 2.4.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.4.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add OnePassword.NET --version 2.4.0                
#r "nuget: OnePassword.NET, 2.4.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.4.0

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

OnePassword.NET - 1Password CLI Wrapper

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

main nuget downloads

References

This library targets .NET 6.0, .NET 7.0, and .NET 8.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 576 6/18/2024
2.4.1 427 3/19/2024
2.4.0 131 3/14/2024
2.3.4 136 2/28/2024
2.3.3 303 1/19/2024
2.3.2 218 11/11/2023
2.3.1 109 11/8/2023
2.3.0 1,374 9/2/2023
2.2.1 227 7/2/2023
2.2.0 163 6/30/2023
2.1.3 184 5/27/2023
2.1.2 463 1/14/2023
2.1.1 323 1/13/2023
2.1.0 306 12/17/2022