Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
} catch (e) {
if (e instanceof RestError) {
console.log("Rest Error: ", e.message);
} else {
throw e;
}
}
// The client can also be configured using a a customized Pipeline. This allows control
// over the request policy factories( for example, adding your own RequestPolicyFactory),
// as well as providng a custom-implementation of HTTP Client.
// This is a more advanced scenario. For more information, see
// https://github.com/Azure/ms-rest-js/blob/master/docs/architectureOverview.md
const customPipeline: Pipeline = {
requestPolicyFactories: [
deserializationPolicy(),
exponentialRetryPolicy(),
signingPolicy(credential),
]
};
const client2 = new SecretsClient(url, credential, customPipeline);
for await (const version of client2.getSecretVersions(secretName)) {
const secret = await client2.getSecret(secretName, { version: version.version });
console.log("secret: ", secret);
}
await client.deleteSecret(secretName);
}
public static getDefaultPipeline(
credential: ServiceClientCredentials,
pipelineOptions: NewPipelineOptions = {}
): Pipeline {
// Order is important. Closer to the API at the top & closer to the network at the bottom.
// The credential's policy factory must appear close to the wire so it can sign any
// changes made by other factories (like UniqueRequestIDPolicyFactory)
const retryOptions = pipelineOptions.retryOptions || {};
const userAgentString: string = SecretsClient.getUserAgentString(pipelineOptions.telemetry);
const requestPolicyFactories: RequestPolicyFactory[] = [
proxyPolicy(getDefaultProxySettings((pipelineOptions.proxyOptions || {}).proxySettings)),
userAgentPolicy({ value: userAgentString }),
generateClientRequestIdPolicy(),
deserializationPolicy(), // Default deserializationPolicy is provided by protocol layer
throttlingRetryPolicy(),
systemErrorRetryPolicy(),
exponentialRetryPolicy(
retryOptions.retryCount,
retryOptions.retryIntervalInMS,
RetryConstants.MIN_RETRY_INTERVAL_MS, // Minimum retry interval to prevent frequent retries
retryOptions.maxRetryDelayInMs
),
redirectPolicy(),
signingPolicy(credential)
];
return {
httpClient: pipelineOptions.HTTPClient,
httpPipelineLogger: pipelineOptions.logger,
requestPolicyFactories
public static newPipeline(
credential: Credential,
pipelineOptions: INewPipelineOptions = {}
): Pipeline {
// Order is important. Closer to the API at the top & closer to the network at the bottom.
// The credential's policy factory must appear close to the wire so it can sign any
// changes made by other factories (like UniqueRequestIDPolicyFactory)
const factories: RequestPolicyFactory[] = [
new TelemetryPolicyFactory(pipelineOptions.telemetry),
new UniqueRequestIDPolicyFactory(),
new BrowserPolicyFactory(),
deserializationPolicy(), // Default deserializationPolicy is provided by protocol layer
new RetryPolicyFactory(pipelineOptions.retryOptions),
new LoggingPolicyFactory(),
credential
];
return new Pipeline(factories, {
HTTPClient: pipelineOptions.httpClient,
logger: pipelineOptions.logger
});
}
public createPipeline(credential: Credential): Pipeline {
const isAnonymousCreds = credential instanceof AnonymousCredential;
const policyFactoryLength = 3 + (isAnonymousCreds ? 0 : 1); // [deserilizationPolicy, BatchHeaderFilterPolicyFactory, (Optional)Credential, BatchRequestAssemblePolicyFactory]
let factories: RequestPolicyFactory[] = new Array(policyFactoryLength);
factories[0] = deserializationPolicy(); // Default deserializationPolicy is provided by protocol layer
factories[1] = new BatchHeaderFilterPolicyFactory(); // Use batch header filter policy to exclude unnecessary headers
if (!isAnonymousCreds) {
factories[2] = credential;
}
factories[policyFactoryLength - 1] = new BatchRequestAssemblePolicyFactory(this); // Use batch assemble policy to assemble request and intercept request from going to wire
return new Pipeline(factories, {});
}
public static getDefaultPipeline(
credential: ServiceClientCredentials,
pipelineOptions: NewPipelineOptions = {}
): Pipeline {
// Order is important. Closer to the API at the top & closer to the network at the bottom.
// The credential's policy factory must appear close to the wire so it can sign any
// changes made by other factories (like UniqueRequestIDPolicyFactory)
const retryOptions = pipelineOptions.retryOptions || {};
const userAgentString: string = KeysClient.getUserAgentString(pipelineOptions.telemetry);
const requestPolicyFactories: RequestPolicyFactory[] = [
proxyPolicy(getDefaultProxySettings((pipelineOptions.proxyOptions || {}).proxySettings)),
userAgentPolicy({ value: userAgentString }),
generateClientRequestIdPolicy(),
deserializationPolicy(), // Default deserializationPolicy is provided by protocol layer
throttlingRetryPolicy(),
systemErrorRetryPolicy(),
exponentialRetryPolicy(
retryOptions.retryCount,
retryOptions.retryIntervalInMS,
RetryConstants.MIN_RETRY_INTERVAL_MS, // Minimum retry interval to prevent frequent retries
retryOptions.maxRetryDelayInMs
),
redirectPolicy(),
signingPolicy(credential)
];
return {
httpClient: pipelineOptions.HTTPClient,
httpPipelineLogger: pipelineOptions.logger,
requestPolicyFactories