Skip to content

opentdf/web-sdk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

977435b · May 26, 2023
May 12, 2023
May 12, 2023
May 26, 2023
Jan 20, 2023
May 12, 2023
Feb 1, 2023
Oct 28, 2022
Oct 27, 2021
Oct 27, 2021
Apr 13, 2022
May 12, 2023
Feb 10, 2023

Repository files navigation

OpenTDF Web Browser Client opentdf

This project is focused on providing web client support for the OpenTDF family of data protection formats and protocols. Notably, it is a web-friendly library @opentdf/client, and tools and support for testing it and building it into web applications.

Evaluate

Do you want a quick demonstration of OpenTDF? See Quickstart

Integrate

Ready to begin integrating into your system?
Start a local, blank cluster. See Integrate

Usage

  // currently we support only ESM import
  import { AuthProviders, NanoTDFClient } from '@opentdf/client';

  const oidcCredentials: RefreshTokenCredentials = {
    clientId: keycloakClientId,
    exchange: 'refresh',
    refreshToken: refreshToken,
    oidcOrigin: keycloakUrlWithRealm,
  }
  const authProvider = await AuthProviders.refreshAuthProvider(oidcCredentials);
  const client = new NanoTDFClient(authProvider, access);
  const cipherText = await client.encrypt(plainText);
  const clearText = await client.decrypt(cipherText);

For files:

  // currently we support only ESM import
  import { FileClient } from '@opentdf/client';

  // for file Encryption
  const fileClient = new FileClient(
    { ...oidcCredentials, kasEndpoint }, ['userWeGrantAccessTo']
  );

  const cipherStream = await fileClient.encrypt('originalFile.jpeg');
  await cipherStream.toFile('encryptedFile.tdf');

  const fromReadStream = await fileClient.decrypt(fs.createReadStream('encryptedFile.tdf'));
  await fromReadStream.toFile('decryptedFile.jpeg')

FileClient encrypt/decrypt supports Webstream, Node stream, Buffer, Array Buffer, String (as path to file).

Examples

Review examples to see how to integrate. See Examples

Distribute

make dist

Contribute

Prerequisites

Developing with this code requires a recent version of npm and node.

Build

To check out, build, and validate your installation, and test the sample web application, you may:

nvm use
make test
make start