@confluentinc/schemaregistry
Version:
Node.js client for Confluent Schema Registry
56 lines (55 loc) • 2.17 kB
TypeScript
import { ClientConfig } from '../../../rest-service';
interface Kek {
name?: string;
kmsType?: string;
kmsKeyId?: string;
kmsProps?: {
[key: string]: string;
};
doc?: string;
shared?: boolean;
ts?: number;
deleted?: boolean;
}
interface Dek {
kekName?: string;
subject?: string;
version?: number;
algorithm?: string;
encryptedKeyMaterial?: string;
encryptedKeyMaterialBytes?: Buffer;
keyMaterial?: string;
keyMaterialBytes?: Buffer;
ts?: number;
deleted?: boolean;
}
interface DekClient {
registerKek(name: string, kmsType: string, kmsKeyId: string, shared: boolean, kmsProps?: {
[key: string]: string;
}, doc?: string): Promise<Kek>;
getKek(name: string, deleted: boolean): Promise<Kek>;
registerDek(kekName: string, subject: string, algorithm: string, version: number, encryptedKeyMaterial?: string): Promise<Dek>;
getDek(kekName: string, subject: string, algorithm: string, version: number, deleted: boolean): Promise<Dek>;
close(): Promise<void>;
}
declare class DekRegistryClient implements DekClient {
private restService;
private kekCache;
private dekCache;
private kekMutex;
private dekMutex;
constructor(config: ClientConfig);
static newClient(config: ClientConfig): DekClient;
static getEncryptedKeyMaterialBytes(dek: Dek): Buffer | null;
static getKeyMaterialBytes(dek: Dek): Buffer | null;
static setKeyMaterial(dek: Dek, keyMaterialBytes: Buffer): void;
registerKek(name: string, kmsType: string, kmsKeyId: string, shared: boolean, kmsProps?: {
[key: string]: string;
}, doc?: string): Promise<Kek>;
getKek(name: string, deleted?: boolean): Promise<Kek>;
registerDek(kekName: string, subject: string, algorithm: string, version?: number, encryptedKeyMaterial?: string): Promise<Dek>;
getDek(kekName: string, subject: string, algorithm: string, version?: number, deleted?: boolean): Promise<Dek>;
close(): Promise<void>;
checkLatestDekInCache(kekName: string, subject: string, algorithm: string): Promise<boolean>;
}
export { DekRegistryClient, DekClient, Kek, Dek };