@confluentinc/schemaregistry
Version:
Node.js client for Confluent Schema Registry
37 lines (36 loc) • 1.4 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.AzureKmsDriver = void 0;
const kms_registry_1 = require("../kms-registry");
const identity_1 = require("@azure/identity");
const azure_client_1 = require("./azure-client");
class AzureKmsDriver {
/**
* Register the Azure KMS driver with the KMS registry.
*/
static register() {
(0, kms_registry_1.registerKmsDriver)(new AzureKmsDriver());
}
getKeyUrlPrefix() {
return AzureKmsDriver.PREFIX;
}
newKmsClient(config, keyUrl) {
const uriPrefix = keyUrl != null ? keyUrl : AzureKmsDriver.PREFIX;
const tenantId = config.get(AzureKmsDriver.TENANT_ID);
const clientId = config.get(AzureKmsDriver.CLIENT_ID);
const clientSecret = config.get(AzureKmsDriver.CLIENT_SECRET);
let creds;
if (tenantId != null && clientId != null && clientSecret != null) {
creds = new identity_1.ClientSecretCredential(tenantId, clientId, clientSecret);
}
else {
creds = new identity_1.DefaultAzureCredential();
}
return new azure_client_1.AzureKmsClient(uriPrefix, creds);
}
}
exports.AzureKmsDriver = AzureKmsDriver;
AzureKmsDriver.PREFIX = 'azure-kms://';
AzureKmsDriver.TENANT_ID = 'tenant.id';
AzureKmsDriver.CLIENT_ID = 'client.id';
AzureKmsDriver.CLIENT_SECRET = 'client.secret';