@virtru/dsp-sdk
v0.2.2
Published
The DSP Web SDK enables integration with the Virtru Data Security Platform (DSP). It provides tools for encrypting and decrypting TDF (Trusted Data Format) content, as well as managing Attribute-Based Access Control (ABAC) operations.
Readme
DSP Web SDK
The DSP Web SDK enables integration with the Virtru Data Security Platform (DSP). It provides tools for encrypting and decrypting TDF (Trusted Data Format) content, as well as managing Attribute-Based Access Control (ABAC) operations.
Overview
The DSP Web SDK is designed to help developers secure sensitive data in web applications by leveraging the Trusted Data Format (TDF) and Attribute-Based Access Control (ABAC). Key features include:
- Easy encryption and decryption of data using TDF.
- Fine-grained access control with ABAC policies.
- Seamless integration with DSP services for key management and policy enforcement.
- Support for modern web frameworks and environments.
Table of Contents
Installation
Install the SDK using your preferred package manager. This will add the SDK as a dependency to your project, making its APIs available for import.
Note: The package name is subject to change before public release.
# Using npm
npm install @virtru/dsp-sdk
Usage
The following example demonstrates how to authenticate with DSP, initialize the platform client, and perform common operations such as tagging and fetching configuration.
import { AuthProviders, DSP } from '@virtru/dsp-sdk';
const authProvider = await AuthProviders.refreshAuthProvider({
clientId: 'oids-client-id',
exchange: 'refresh',
refreshToken: 'refresh-token',
oidcOrigin: 'oidc-issuer-url',
});
const dsp = new DSP({
authProvider,
platformUrl: '/api',
});
// Tag PDP
const taggingResponse = await dsp.services.v2.taggingPDPService.tag({});
// List policy attributes
const attributesResponse = await dsp.services.v1.attributes.listAttributes({});
// Encrypts string into a NanoTDF
const nano = await dsp.createNanoTDF({
source: {
type: "buffer",
location: new TextEncoder().encode("hello world"),
},
});
await nano.pipeTo(
new WritableStream({
write(chunk) {
console.log(chunk);
},
})
);
Refer to the API documentation for a complete list of available methods and configuration options.
Testing
This section is intended for repository maintainers and contributors. To verify the integrity of the SDK and ensure all features work as expected, run the test suite using the following command:
pnpm testLinting
- ESLint is used for linting. To check for linting errors:
pnpm lint - To automatically fix linting errors:
pnpm lint:fix
