Skip to content

Commit

Permalink
[Key Vault] Exposing the Identifier parsers, and aligning the relevan…
Browse files Browse the repository at this point in the history
…t names with other languages (#15391)
  • Loading branch information
sadasant authored May 25, 2021
1 parent 4c6a1a3 commit 84cc669
Show file tree
Hide file tree
Showing 19 changed files with 52 additions and 41 deletions.
1 change: 1 addition & 0 deletions sdk/keyvault/keyvault-certificates/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

- Marked `ErrorModel` as deprecated. It was erronously exported publicly in 4.1 and should not be used. Please change the type to use `CertificateOperationError` instead.
- Fixed a bug with `beginDeleteCertificate` and `beginRecoverDeletedCertificate` in which unknown service errors wouldn't bubble up properly to the end users.
- Renamed the `KeyVaultCertificateId` to `KeyVaultCertificateIdentifier`, and exported a method to parse Key Vault Certificate Ids: `parseKeyVaultCertificateIdentifier`.

## 4.2.0-beta.3 (2021-04-06)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -333,7 +333,7 @@ export interface KeyVaultCertificate {
}

// @public
export interface KeyVaultCertificateId {
export interface KeyVaultCertificateIdentifier {
name: string;
sourceId: string;
vaultUrl: string;
Expand Down Expand Up @@ -424,6 +424,9 @@ export const logger: import("@azure/logger").AzureLogger;
// @public
export type MergeCertificateOptions = coreHttp.OperationOptions;

// @public
export function parseKeyVaultCertificateIdentifier(id: string): KeyVaultCertificateIdentifier;

export { PipelineOptions }

// @public
Expand Down
5 changes: 2 additions & 3 deletions sdk/keyvault/keyvault-certificates/src/identifier.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import { parseKeyvaultIdentifier } from "../../keyvault-common/src";
/**
* Represents the segments that compose a Key Vault Certificate Id.
*/
export interface KeyVaultCertificateId {
export interface KeyVaultCertificateIdentifier {
/**
* The complete representation of the Key Vault Certificate Id. For example:
*
Expand Down Expand Up @@ -46,9 +46,8 @@ export interface KeyVaultCertificateId {
* }
*```
* @param id - The Id of the Key Vault Certificate.
* @internal
*/
export function parseKeyVaultCertificateId(id: string): KeyVaultCertificateId {
export function parseKeyVaultCertificateIdentifier(id: string): KeyVaultCertificateIdentifier {
const urlParts = id.split("/");
const collection = urlParts[3];

Expand Down
5 changes: 3 additions & 2 deletions sdk/keyvault/keyvault-certificates/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ import { DeleteCertificateState } from "./lro/delete/operation";
import { CreateCertificateState } from "./lro/create/operation";
import { RecoverDeletedCertificateState } from "./lro/recover/operation";
import { parseCertificateBytes } from "./utils";
import { KeyVaultCertificateId } from "./identifier";
import { KeyVaultCertificateIdentifier, parseKeyVaultCertificateIdentifier } from "./identifier";
import {
coreContactsToCertificateContacts,
getCertificateFromCertificateBundle,
Expand Down Expand Up @@ -160,7 +160,8 @@ export {
CertificateTags,
CreateCertificateOptions,
CertificatePollerOptions,
KeyVaultCertificateId,
KeyVaultCertificateIdentifier,
parseKeyVaultCertificateIdentifier,
PollerLike,
CreateCertificateState,
DeleteCertificateState,
Expand Down
12 changes: 6 additions & 6 deletions sdk/keyvault/keyvault-certificates/src/transformations.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ import {
JsonWebKeyType as CertificateKeyType,
ErrorModel
} from "./generated/models";
import { parseKeyVaultCertificateId } from "./identifier";
import { parseKeyVaultCertificateIdentifier } from "./identifier";

export function toCoreAttributes(properties: CertificateProperties): CertificateAttributes {
return {
Expand Down Expand Up @@ -163,7 +163,7 @@ export function toPublicPolicy(policy: CoreCertificatePolicy = {}): CertificateP
}

export function toPublicIssuer(issuer: IssuerBundle = {}): CertificateIssuer {
const parsedId = parseKeyVaultCertificateId(issuer.id!);
const parsedId = parseKeyVaultCertificateIdentifier(issuer.id!);
const attributes: IssuerAttributes = issuer.attributes || {};

const publicIssuer: CertificateIssuer = {
Expand Down Expand Up @@ -194,7 +194,7 @@ export function toPublicIssuer(issuer: IssuerBundle = {}): CertificateIssuer {
export function getCertificateFromCertificateBundle(
certificateBundle: CertificateBundle
): KeyVaultCertificate {
const parsedId = parseKeyVaultCertificateId(certificateBundle.id!);
const parsedId = parseKeyVaultCertificateIdentifier(certificateBundle.id!);

const attributes: CertificateAttributes = certificateBundle.attributes || {};

Expand Down Expand Up @@ -226,7 +226,7 @@ export function getCertificateFromCertificateBundle(
export function getCertificateWithPolicyFromCertificateBundle(
certificateBundle: CertificateBundle
): KeyVaultCertificateWithPolicy {
const parsedId = parseKeyVaultCertificateId(certificateBundle.id!);
const parsedId = parseKeyVaultCertificateIdentifier(certificateBundle.id!);

const attributes: CertificateAttributes = certificateBundle.attributes || {};
const policy = toPublicPolicy(certificateBundle.policy || {});
Expand Down Expand Up @@ -279,7 +279,7 @@ export function getDeletedCertificateFromDeletedCertificateBundle(
}

export function getDeletedCertificateFromItem(item: DeletedCertificateItem): DeletedCertificate {
const parsedId = parseKeyVaultCertificateId(item.id!);
const parsedId = parseKeyVaultCertificateIdentifier(item.id!);

const attributes: any = item.attributes || {};

Expand Down Expand Up @@ -359,7 +359,7 @@ export function coreContactsToCertificateContacts(contacts: CoreContacts): Certi
export function getPropertiesFromCertificateBundle(
certificateBundle: CertificateBundle
): CertificateProperties {
const parsedId = parseKeyVaultCertificateId(certificateBundle.id!);
const parsedId = parseKeyVaultCertificateIdentifier(certificateBundle.id!);
const attributes: CertificateAttributes = certificateBundle.attributes || {};

const abstractProperties: CertificateProperties = {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.

import { parseKeyVaultCertificateId } from "../../src/identifier";
import { parseKeyVaultCertificateIdentifier } from "../../src/identifier";
import * as assert from "assert";

describe("Key Vault Certificates Identifier", () => {
it("It should work with a URI of a certificate before it gets a version", async function() {
const uri = "https://keyvault-name.vault.azure.net/certificates/certificate-name/pending";
const identifier = parseKeyVaultCertificateId(uri);
const identifier = parseKeyVaultCertificateIdentifier(uri);

assert.deepEqual(identifier, {
sourceId: "https://keyvault-name.vault.azure.net/certificates/certificate-name/pending",
Expand All @@ -19,7 +19,7 @@ describe("Key Vault Certificates Identifier", () => {

it("It should work with a URI of a certificate with a specific version", async function() {
const uri = "https://keyvault-name.vault.azure.net/certificates/certificate-name/version";
const identifier = parseKeyVaultCertificateId(uri);
const identifier = parseKeyVaultCertificateIdentifier(uri);

assert.deepEqual(identifier, {
sourceId: "https://keyvault-name.vault.azure.net/certificates/certificate-name/version",
Expand All @@ -31,7 +31,7 @@ describe("Key Vault Certificates Identifier", () => {

it("It should work with a deleted certificate recovery ID", async function() {
const uri = "https://keyvault-name.vault.azure.net/deletedcertificates/deleted-certificate";
const identifier = parseKeyVaultCertificateId(uri);
const identifier = parseKeyVaultCertificateIdentifier(uri);

assert.deepEqual(identifier, {
sourceId: "https://keyvault-name.vault.azure.net/deletedcertificates/deleted-certificate",
Expand Down
1 change: 1 addition & 0 deletions sdk/keyvault/keyvault-keys/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
- Introduced in 4.2.0-beta.1 to support additional encryption parameters for AES encryption, we have since moved these parameters outside of the options bag so a separate `KeyOperationsOptions` is now redundant.
- Fixed a bug with `beginDeleteKey` and `beginRecoverDeletedKey` in which unknown service errors wouldn't bubble up properly to the end users.
- Fixed bug with the list operations which were returning misplaced properties. Fixes customer issue: [15353](https://github.com/Azure/azure-sdk-for-js/issues/15353).
- Exported a method to parse Key Vault Key Ids: `parseKeyVaultKeyIdentifier`.

## 4.2.0-beta.5 (2021-04-06)

Expand Down
3 changes: 3 additions & 0 deletions sdk/keyvault/keyvault-keys/review/keyvault-keys.api.md
Original file line number Diff line number Diff line change
Expand Up @@ -381,6 +381,9 @@ export { PagedAsyncIterableIterator }

export { PageSettings }

// @public
export function parseKeyVaultKeyIdentifier(id: string): KeyVaultKeyIdentifier;

export { PipelineOptions }

export { PollerLike }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ import { challengeBasedAuthenticationPolicy } from "../../../keyvault-common";
import { SDK_VERSION } from "../constants";
import { UnwrapResult } from "../cryptographyClientModels";
import { KeyVaultClient } from "../generated";
import { parseKeyVaultKeyId } from "../identifier";
import { parseKeyVaultKeyIdentifier } from "../identifier";
import {
CryptographyClientOptions,
GetKeyOptions,
Expand Down Expand Up @@ -96,7 +96,7 @@ export class RemoteCryptographyProvider implements CryptographyProvider {
}

try {
const parsed = parseKeyVaultKeyId(keyId);
const parsed = parseKeyVaultKeyIdentifier(keyId);
if (parsed.name === "") {
throw new Error("Could not find 'name' of key in key URL");
}
Expand Down
4 changes: 1 addition & 3 deletions sdk/keyvault/keyvault-keys/src/identifier.ts
Original file line number Diff line number Diff line change
Expand Up @@ -45,11 +45,9 @@ export interface KeyVaultKeyIdentifier {
* name: "<key-name>"
* }
*```
* @param id - The Id of the Key Vault Key.
* @internal
*/
export function parseKeyVaultKeyId(id: string): KeyVaultKeyIdentifier {
export function parseKeyVaultKeyIdentifier(id: string): KeyVaultKeyIdentifier {
const urlParts = id.split("/");
const collection = urlParts[3];

Expand Down
3 changes: 2 additions & 1 deletion sdk/keyvault/keyvault-keys/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ import {
VerifyDataOptions
} from "./cryptographyClientModels";

import { KeyVaultKeyIdentifier } from "./identifier";
import { KeyVaultKeyIdentifier, parseKeyVaultKeyIdentifier } from "./identifier";
import {
getDeletedKeyFromDeletedKeyItem,
getKeyFromKeyBundle,
Expand Down Expand Up @@ -160,6 +160,7 @@ export {
PageSettings,
PagedAsyncIterableIterator,
KeyVaultKeyIdentifier,
parseKeyVaultKeyIdentifier,
PipelineOptions,
PollOperationState,
PollerLike,
Expand Down
6 changes: 3 additions & 3 deletions sdk/keyvault/keyvault-keys/src/transformations.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import {
KeyBundle,
KeyItem
} from "./generated/models";
import { parseKeyVaultKeyId } from "./identifier";
import { parseKeyVaultKeyIdentifier } from "./identifier";
import { DeletedKey, KeyVaultKey, JsonWebKey, KeyOperation, KeyProperties } from "./keysModels";

/**
Expand All @@ -21,7 +21,7 @@ export function getKeyFromKeyBundle(
const keyBundle = bundle as KeyBundle;
const deletedKeyBundle = bundle as DeletedKeyBundle;

const parsedId = parseKeyVaultKeyId(keyBundle.key!.kid!);
const parsedId = parseKeyVaultKeyIdentifier(keyBundle.key!.kid!);

const attributes: KeyAttributes = keyBundle.attributes || {};
delete keyBundle.attributes;
Expand Down Expand Up @@ -88,7 +88,7 @@ export function getDeletedKeyFromDeletedKeyItem(keyItem: DeletedKeyItem): Delete
* Shapes the exposed {@link KeyProperties} based on a received KeyItem.
*/
export function getKeyPropertiesFromKeyItem(keyItem: KeyItem): KeyProperties {
const parsedId = parseKeyVaultKeyId(keyItem.kid!);
const parsedId = parseKeyVaultKeyIdentifier(keyItem.kid!);
const attributes = keyItem.attributes || {};

const resultObject: KeyProperties = {
Expand Down
8 changes: 4 additions & 4 deletions sdk/keyvault/keyvault-keys/test/public/identifier.spec.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.

import { parseKeyVaultKeyId } from "../../src/identifier";
import { parseKeyVaultKeyIdentifier } from "../../src/identifier";
import * as assert from "assert";

describe("Key Vault Keys Identifier", () => {
it("It should work with a URI of a key before it gets a version", async function() {
const uri = "https://keyvault-name.vault.azure.net/keys/key-name/pending";
const identifier = parseKeyVaultKeyId(uri);
const identifier = parseKeyVaultKeyIdentifier(uri);

assert.deepEqual(identifier, {
sourceId: "https://keyvault-name.vault.azure.net/keys/key-name/pending",
Expand All @@ -19,7 +19,7 @@ describe("Key Vault Keys Identifier", () => {

it("It should work with a URI of a key with a specific version", async function() {
const uri = "https://keyvault-name.vault.azure.net/keys/key-name/version";
const identifier = parseKeyVaultKeyId(uri);
const identifier = parseKeyVaultKeyIdentifier(uri);

assert.deepEqual(identifier, {
sourceId: "https://keyvault-name.vault.azure.net/keys/key-name/version",
Expand All @@ -31,7 +31,7 @@ describe("Key Vault Keys Identifier", () => {

it("It should work with a deleted key recovery ID", async function() {
const uri = "https://keyvault-name.vault.azure.net/deletedkeys/deleted-key";
const identifier = parseKeyVaultKeyId(uri);
const identifier = parseKeyVaultKeyIdentifier(uri);

assert.deepEqual(identifier, {
sourceId: "https://keyvault-name.vault.azure.net/deletedkeys/deleted-key",
Expand Down
1 change: 1 addition & 0 deletions sdk/keyvault/keyvault-secrets/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
## 4.2.0-beta.5 (Unreleased)

- Fixed a bug with `beginDeleteSecret` and `beginRecoverDeletedSecret` in which unknown service errors wouldn't bubble up properly to the end users.
- Renamed the `KeyVaultSecretId` to `KeyVaultSecretIdentifier`, and exported a method to parse Key Vault Secret Ids: `parseKeyVaultSecretIdentifier`.

## 4.2.0-beta.4 (2021-04-06)

Expand Down
5 changes: 4 additions & 1 deletion sdk/keyvault/keyvault-secrets/review/keyvault-secrets.api.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ export interface KeyVaultSecret {
}

// @public
export interface KeyVaultSecretId {
export interface KeyVaultSecretIdentifier {
name: string;
sourceId: string;
vaultUrl: string;
Expand Down Expand Up @@ -95,6 +95,9 @@ export { PagedAsyncIterableIterator }

export { PageSettings }

// @public
export function parseKeyVaultSecretIdentifier(id: string): KeyVaultSecretIdentifier;

export { PipelineOptions }

export { PollerLike }
Expand Down
5 changes: 2 additions & 3 deletions sdk/keyvault/keyvault-secrets/src/identifier.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import { parseKeyvaultIdentifier } from "../../keyvault-common/src";
/**
* Represents the segments that compose a Key Vault Secret Id.
*/
export interface KeyVaultSecretId {
export interface KeyVaultSecretIdentifier {
/**
* The complete representation of the Key Vault Secret Id. For example:
*
Expand Down Expand Up @@ -46,9 +46,8 @@ export interface KeyVaultSecretId {
* }
*```
* @param id - The Id of the Key Vault Secret.
* @internal
*/
export function parseKeyVaultSecretId(id: string): KeyVaultSecretId {
export function parseKeyVaultSecretIdentifier(id: string): KeyVaultSecretIdentifier {
const urlParts = id.split("/");
const collection = urlParts[3];

Expand Down
5 changes: 3 additions & 2 deletions sdk/keyvault/keyvault-secrets/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ import {
SecretClientOptions,
LATEST_API_VERSION
} from "./secretsModels";
import { KeyVaultSecretId } from "./identifier";
import { KeyVaultSecretIdentifier, parseKeyVaultSecretIdentifier } from "./identifier";
import { getSecretFromSecretBundle } from "./transformations";
import { createTraceFunction } from "../../keyvault-common/src";

Expand All @@ -70,7 +70,8 @@ export {
ListDeletedSecretsOptions,
PagedAsyncIterableIterator,
PageSettings,
KeyVaultSecretId,
KeyVaultSecretIdentifier,
parseKeyVaultSecretIdentifier,
PollerLike,
PollOperationState,
KeyVaultSecret,
Expand Down
4 changes: 2 additions & 2 deletions sdk/keyvault/keyvault-secrets/src/transformations.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
// Licensed under the MIT license.

import { DeletedSecretBundle, SecretBundle } from "./generated/models";
import { parseKeyVaultSecretId } from "./identifier";
import { parseKeyVaultSecretIdentifier } from "./identifier";
import { DeletedSecret, KeyVaultSecret } from "./secretsModels";

/**
Expand All @@ -14,7 +14,7 @@ export function getSecretFromSecretBundle(
): KeyVaultSecret {
const secretBundle = bundle as SecretBundle;
const deletedSecretBundle = bundle as DeletedSecretBundle;
const parsedId = parseKeyVaultSecretId(secretBundle.id!);
const parsedId = parseKeyVaultSecretIdentifier(secretBundle.id!);

const attributes = secretBundle.attributes;
delete secretBundle.attributes;
Expand Down
8 changes: 4 additions & 4 deletions sdk/keyvault/keyvault-secrets/test/public/identifier.spec.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.

import { parseKeyVaultSecretId } from "../../src/identifier";
import { parseKeyVaultSecretIdentifier } from "../../src/identifier";
import * as assert from "assert";

describe("Key Vault Secrets Identifier", () => {
it("It should work with a URI of a secret before it gets a version", async function() {
const uri = "https://keyvault-name.vault.azure.net/secrets/secret-name/pending";
const identifier = parseKeyVaultSecretId(uri);
const identifier = parseKeyVaultSecretIdentifier(uri);

assert.deepEqual(identifier, {
sourceId: "https://keyvault-name.vault.azure.net/secrets/secret-name/pending",
Expand All @@ -19,7 +19,7 @@ describe("Key Vault Secrets Identifier", () => {

it("It should work with a URI of a secret with a specific version", async function() {
const uri = "https://keyvault-name.vault.azure.net/secrets/secret-name/version";
const identifier = parseKeyVaultSecretId(uri);
const identifier = parseKeyVaultSecretIdentifier(uri);

assert.deepEqual(identifier, {
sourceId: "https://keyvault-name.vault.azure.net/secrets/secret-name/version",
Expand All @@ -31,7 +31,7 @@ describe("Key Vault Secrets Identifier", () => {

it("It should work with a deleted secret recovery ID", async function() {
const uri = "https://keyvault-name.vault.azure.net/deletedsecrets/deleted-secret";
const identifier = parseKeyVaultSecretId(uri);
const identifier = parseKeyVaultSecretIdentifier(uri);

assert.deepEqual(identifier, {
sourceId: "https://keyvault-name.vault.azure.net/deletedsecrets/deleted-secret",
Expand Down

0 comments on commit 84cc669

Please sign in to comment.