https://github.com/apideck-libraries/vault-js
Apideck Vault Modal for vanilla JavaScript projects
https://github.com/apideck-libraries/vault-js
apideck integrations javascript vault
Last synced: 3 months ago
JSON representation
Apideck Vault Modal for vanilla JavaScript projects
- Host: GitHub
- URL: https://github.com/apideck-libraries/vault-js
- Owner: apideck-libraries
- License: mit
- Created: 2022-12-15T09:02:53.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-06-24T07:30:52.000Z (about 1 year ago)
- Last Synced: 2025-03-22T06:27:09.229Z (3 months ago)
- Topics: apideck, integrations, javascript, vault
- Language: TypeScript
- Homepage: https://www.apideck.com/products/vault
- Size: 597 KB
- Stars: 3
- Watchers: 7
- Forks: 0
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Vault JS
A vanilla JavaScript library to embed [Apideck Vault](https://www.apideck.com/products/vault) in any web application.
**Vault JS** | [React Vault](https://github.com/apideck-libraries/vault-react) | [Vue Vault](https://github.com/apideck-libraries/vue-vault)
## Installation
### Package
```sh
npm install @apideck/vault-js
```### Script
If you don't want to set up a build environment, you can get `@apideck/vault-js` from a CDN like unpkg.com and it will be globally available through the `window.ApideckVault` object.
```html
```
## Prerequisites
Before opening the Vault modal with `@apideck/vault-js`, you need to create a Vault session from your backend using the Vault API or one of our [SDKs](https://docs.apideck.com/sdks). Find out more in the [docs](https://docs.apideck.com/apis/vault/reference#operation/sessionsCreate).
## Usage
Pass the JWT you got from the Vault session to `@apideck/vault-js`:
```js
import { ApideckVault } from '@apideck/vault-js';ApideckVault.open({
token: 'REPLACE_WITH_SESSION_TOKEN',
});
```If you want to only show integrations for a single Unified API, you can do that by passing the `unifiedApi` option. If you want to open Vault for only a single integration, you can provide the `serviceId` option.
```js
import { ApideckVault } from '@apideck/vault-js';ApideckVault.open({
token: 'REPLACE_WITH_SESSION_TOKEN',
unifiedApi: 'accounting',
serviceId: 'quickbooks',
});
```If you want to get notified when the modal opens and closes, you can provide the `onReady` and `onClose` options.
```jsx
import { ApideckVault } from '@apideck/vault-js';ApideckVault.open({
token: 'REPLACE_WITH_SESSION_TOKEN',
onClose: () => {
console.log('closed!');
},
onReady: () => {
console.log('ready!');
},
});
```If you want to open a specific view you can pass the `initialView` prop. The available views are `settings`, `configurable-resources`, and `custom-mapping`.
```js
import { ApideckVault } from '@apideck/vault-js';ApideckVault.open({
token: 'REPLACE_WITH_SESSION_TOKEN',
unifiedApi: 'accounting',
serviceId: 'quickbooks',
initialView: 'custom-mapping',
});
```If you want to open vault in a specific language you can pass a locale. The available locales are `en` (default), `nl`, `de`, `fr`, and `es`.
```js
import { ApideckVault } from '@apideck/vault-js';ApideckVault.open({
token: 'REPLACE_WITH_SESSION_TOKEN',
locale: 'nl',
});
```You can also close the modal programmatically by calling `ApideckVault.close()`.
If you want to show a logo on top of the modal, you can set the `logo` property on the `theme` object you can provide through the session. [View Vault API documentation](https://developers.apideck.com/apis/vault/reference#operation/sessionsCreate).
### Properties
| Property | Type | Required | Default | Description |
| ------------------ | -------------------------------- | -------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| token | string | true | - | The JSON Web Token returned from the [Create Session API](https://docs.apideck.com/apis/vault/reference#operation/sessionsCreate) |
| showAttribution | boolean | false | true | Show "Powered by Apideck" in the backdrop of the modal backdrop |
| open | () => void | false | - | Function to open the Vault modal |
| close | () => void | false | - | Function to close the Vault modal |
| onReady | () => void | false | - | Function that gets called when the modal is opened |
| onClose | () => void | false | - | Function that gets called when the modal is closed |
| onConnectionChange | (connection: Connection) => void | false | - | Function that gets called when the user updates a connection. This can be linking their account, filling out settings or adding a new connection |
| onConnectionDelete | (connection: Connection) => void | false | - | Function that gets called when the user deletes a connection |
| unifiedApi | string | false | - | When unifiedApi is provided it will only show integrations from that API. |
| serviceId | string | false | - | When unifiedApi and serviceId are provided Vault opens a single integration |
| showConsumer | boolean | false | false | If true it shows the current consumer metadata at the bottom of the modal |
| initialView | ConnectionViewType | false | - | Open Vault in a specific view for a connection: "settings", "configurable-resources", or "custom-mapping" |
| locale | string | false | "en" | Open Vault in a specific language: "en", "nl", "de", "fr" or "es" |
| showLanguageSwitch | boolean | false | false | Show language switch at bottom |