To use the 1Password JavaScript SDK in your project:
-
Create a service account and give it the appropriate permissions in the vaults where the items you want to use with the SDK are saved.
-
Provision your service account token. We recommend provisioning your token from the environment. For example, to export your token to the
OP_SERVICE_ACCOUNT_TOKEN
environment variable:macOS or Linux
export OP_SERVICE_ACCOUNT_TOKEN=<your-service-account-token>
Windows
$Env:OP_SERVICE_ACCOUNT_TOKEN = "<your-service-account-token>"
-
Install the 1Password JavaScript SDK in your project:
## NPM npm install @1password/sdk
## PNPM pnpm add @1password/sdk
## Yarn yarn add @1password/sdk
-
Use the JavaScript SDK in your project:
import { createClient } from "@1password/sdk";
// Creates an authenticated client.
const client = await createClient({
auth: process.env.OP_SERVICE_ACCOUNT_TOKEN,
// Set the following to your own integration name and version.
integrationName: "My 1Password Integration",
integrationVersion: "v1.0.0",
});
// Fetches a secret.
const secret = await client.secrets.resolve("op://vault/item/field");
Make sure to use secret reference URIs with the syntax op://vault/item/field
to securely load secrets from 1Password into your code.
Inside createClient()
, set integrationName
to the name of your application and integrationVersion
to the version of your application.
1Password SDKs are in active development. We're keen to hear what you'd like to see next. Let us know by upvoting or filing an issue.
Operations:
- [x] Retrieve secrets
- [x] Retrieve items
- [x] Create items
- [x] Update items
- [x] Delete items
- [x] List items
- [x] Add & update tags on items
Field types:
- [x] API Keys
- [x] Passwords
- [x] Concealed fields
- [x] Text fields
- [x] Notes
- [x] SSH private keys (partially supported: supported in resolving secret references, not yet supported in item create/get/update)
- [ ] SSH public keys, fingerprint and key type
- [x] One-time passwords
- [x] URLs
- [x] Websites (used to suggest and autofill logins)
- [x] Phone numbers
- [x] Credit card types
- [ ] File attachments and Document items
- [ ] Retrieve vaults
- [ ] Create vaults (#50)
- [ ] Update vaults
- [ ] Delete vaults
- [x] List vaults
- [ ] Provision users
- [ ] Retrieve users
- [ ] List users
- [ ] Suspend users
- [ ] Create groups
- [ ] Update group membership
- [ ] Update vault access & permissions
- [ ] Watchtower insights
- [ ] Travel mode
- [ ] Events. For now, use 1Password Events Reporting API directly.
- [x] 1Password Service Accounts
- [ ] User authentication
- [ ] 1Password Connect. For now, use 1Password/connect-sdk-js.