This project presents client code to write and read a OpenTDF data formats. This included NanoTDF and collections and Base TDF3.
import { type Chunker, OpenTDF } from '@opentdf/sdk';
const oidcCredentials: RefreshTokenCredentials = {
  clientId: keycloakClientId,
  exchange: 'refresh',
  refreshToken: refreshToken,
  oidcOrigin: keycloakUrl,
};
const authProvider = await AuthProviders.refreshAuthProvider(oidcCredentials);
const client = new OpenTDF({
  authProvider,
  defaultCreateOptions: {
    defaultKASEndpoint: kasEndpoint, // Server used for Key Access Control
  },
  dpopKeys: authProvider.getSigningKey(),
});
const cipherText = await client.createNanoTDF({
  source: { type: 'stream', location: source },
});
const clearText = await client.read({ type: 'stream', location: cipherText });
import { type Chunker, OpenTDF } from '@opentdf/sdk';
const oidcCredentials: RefreshTokenCredentials = {
  clientId: keycloakClientId,
  exchange: 'refresh',
  refreshToken: refreshToken,
  oidcOrigin: keycloakUrl,
};
const authProvider = await AuthProviders.refreshAuthProvider(oidcCredentials);
const client = new OpenTDF({
  authProvider,
  defaultCreateOptions: {
    defaultKASEndpoint: kasEndpoint, // Server used for Key Access Control
  },
  dpopKeys: authProvider.getSigningKey(),
});
const cipherText = await client.createZTDF({
  source: { type: 'stream', location: source },
  autoconfigure: false,
});
const clearText = await client.read({ type: 'stream', location: cipherText });