OnePassword.NET
2.2.0
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
<PackageReference Include="OnePassword.NET" Version="2.2.0" />
paket add OnePassword.NET --version 2.2.0
#r "nuget: OnePassword.NET, 2.2.0"
// 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 ).
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 | Versions 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. |
-
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 |