@confluentinc/schemaregistry
Version:
Node.js client for Confluent Schema Registry
63 lines (62 loc) • 2.5 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 {
config(): ClientConfig;
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>;
getDekEncryptedKeyMaterialBytes(dek: Dek): Promise<Buffer | null>;
getDekKeyMaterialBytes(dek: Dek): Promise<Buffer | null>;
setDekKeyMaterial(dek: Dek, keyMaterialBytes: Buffer): Promise<void>;
close(): Promise<void>;
}
declare class DekRegistryClient implements DekClient {
private clientConfig;
private restService;
private kekCache;
private dekCache;
private kekMutex;
private dekMutex;
constructor(config: ClientConfig);
static newClient(config: ClientConfig): DekClient;
config(): ClientConfig;
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>;
private createDek;
getDek(kekName: string, subject: string, algorithm: string, version?: number, deleted?: boolean): Promise<Dek>;
getDekEncryptedKeyMaterialBytes(dek: Dek): Promise<Buffer | null>;
getDekKeyMaterialBytes(dek: Dek): Promise<Buffer | null>;
setDekKeyMaterial(dek: Dek, keyMaterialBytes: Buffer): Promise<void>;
close(): Promise<void>;
checkLatestDekInCache(kekName: string, subject: string, algorithm: string): Promise<boolean>;
}
export { DekRegistryClient, DekClient, Kek, Dek };