Add provisioning core and Key Vault packages - #39825
Add provisioning core and Key Vault packages#39825Qiaoqiao Zhang (qiaozha) wants to merge 1 commit into
Conversation
|
Azure Pipelines: Successfully started running 1 pipeline(s). 10 pipeline(s) were filtered out due to trigger conditions. There may be pipelines that require an authorized user to comment /azp run to run. |
There was a problem hiding this comment.
🟡 Changes recommended
Security vulnerabilities, invalid Bicep helpers, resource identity defects, and insufficient coverage must be addressed before approval.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Warning
- Copilot's review of this pull request may be incomplete because some of the changed files are excluded by your Copilot content exclusion settings. See Excluding content from Copilot for details.
Pull request overview
Adds the foundational Azure Provisioning authoring library and generated Key Vault provisioning package, including multi-runtime builds and CI integration.
Changes:
- Introduces provisioning primitives, expressions, resources, naming, shapes, and registries.
- Adds Key Vault resources generated from API version
2026-03-01-preview. - Configures packaging, API reports, tests, documentation, and CI.
File summaries
| File | Description |
|---|---|
sdk/core/ci.yml |
Registers provisioning core in CI. |
sdk/core/provisioning-core/CHANGELOG.md |
Adds initial release history. |
sdk/core/provisioning-core/LICENSE |
Adds package license. |
sdk/core/provisioning-core/README.md |
Documents core usage. |
sdk/core/provisioning-core/api-extractor.json |
Configures API extraction. |
sdk/core/provisioning-core/eslint.config.mjs |
Configures linting. |
sdk/core/provisioning-core/package.json |
Defines package metadata and scripts. |
sdk/core/provisioning-core/tsconfig.json |
Aggregates TypeScript projects. |
sdk/core/provisioning-core/vitest.browser.config.ts |
Configures browser tests. |
sdk/core/provisioning-core/vitest.config.ts |
Configures Node tests. |
sdk/core/provisioning-core/warp.config.yml |
Defines runtime builds. |
sdk/core/provisioning-core/config/tsconfig.lint.json |
Configures lint type checking. |
sdk/core/provisioning-core/config/tsconfig.src.browser.json |
Configures browser compilation. |
sdk/core/provisioning-core/config/tsconfig.src.cjs.json |
Configures CommonJS compilation. |
sdk/core/provisioning-core/config/tsconfig.src.esm.json |
Configures ESM compilation. |
sdk/core/provisioning-core/config/tsconfig.test.browser.json |
Configures browser test types. |
sdk/core/provisioning-core/config/tsconfig.test.node.json |
Configures Node test types. |
sdk/core/provisioning-core/review/provisioning-core-browser.api.diff.md |
Records browser API differences. |
sdk/core/provisioning-core/review/provisioning-core-node.api.md |
Records the Node API surface. |
sdk/core/provisioning-core/src/bicep.ts |
Defines Bicep type primitives. |
sdk/core/provisioning-core/src/constructs/built-in-resources/resource-group.ts |
Implements resource groups. |
sdk/core/provisioning-core/src/constructs/output.ts |
Implements deployment outputs. |
sdk/core/provisioning-core/src/constructs/parameter.ts |
Implements deployment parameters. |
sdk/core/provisioning-core/src/constructs/provisioning-component.ts |
Implements the component tree. |
sdk/core/provisioning-core/src/constructs/resource/child-resource-collection.ts |
Implements child collections. |
sdk/core/provisioning-core/src/constructs/resource/resource-proxy.ts |
Implements resource proxies. |
sdk/core/provisioning-core/src/constructs/resource/resource-query.ts |
Implements resource queries. |
sdk/core/provisioning-core/src/constructs/resource/resource-registry.ts |
Registers resource constructors. |
sdk/core/provisioning-core/src/constructs/resource/resource-type-registry.ts |
Resolves versioned resource types. |
sdk/core/provisioning-core/src/constructs/resource/resource-utils.ts |
Adds resource type guards. |
sdk/core/provisioning-core/src/constructs/resource/resource.ts |
Implements resources and loops. |
sdk/core/provisioning-core/src/constructs/stack.ts |
Implements deployment stacks. |
sdk/core/provisioning-core/src/constructs/variable.ts |
Implements deployment variables. |
sdk/core/provisioning-core/src/deployment-context/deployment-context.ts |
Defines inherited deployment context. |
sdk/core/provisioning-core/src/expression/ast-nodes.ts |
Defines expression AST nodes. |
sdk/core/provisioning-core/src/expression/expressions.ts |
Implements expression proxies. |
sdk/core/provisioning-core/src/fn.ts |
Adds Bicep expression helpers. |
sdk/core/provisioning-core/src/host.ts |
Defines host abstraction. |
sdk/core/provisioning-core/src/index.ts |
Exposes the public API. |
sdk/core/provisioning-core/src/naming/naming-policy.ts |
Implements automatic naming. |
sdk/core/provisioning-core/src/naming/naming-rules.ts |
Defines naming constraints. |
sdk/core/provisioning-core/src/shape/shape-registry.ts |
Registers model shapes. |
sdk/core/provisioning-core/src/shape/shape.ts |
Implements shape navigation. |
sdk/core/provisioning-core/src/types.ts |
Adds shared type aliases. |
sdk/core/provisioning-core/src/util.ts |
Adds validation utilities. |
sdk/core/provisioning-core/test/core.spec.ts |
Adds core smoke tests. |
sdk/keyvault/ci.yml |
Routes provisioning changes away from data-plane CI. |
sdk/keyvault/ci.mgmt.yml |
Registers Key Vault provisioning CI. |
sdk/keyvault/provisioning-keyvault/CHANGELOG.md |
Adds initial release history. |
sdk/keyvault/provisioning-keyvault/LICENSE |
Adds package license. |
sdk/keyvault/provisioning-keyvault/README.md |
Documents Key Vault usage. |
sdk/keyvault/provisioning-keyvault/api-extractor.json |
Configures API extraction. |
sdk/keyvault/provisioning-keyvault/eslint.config.mjs |
Configures linting. |
sdk/keyvault/provisioning-keyvault/package.json |
Defines package metadata and scripts. |
sdk/keyvault/provisioning-keyvault/provision.config.json |
Configures provisioning generation. |
sdk/keyvault/provisioning-keyvault/tsconfig.json |
Aggregates TypeScript projects. |
sdk/keyvault/provisioning-keyvault/vitest.browser.config.ts |
Configures browser tests. |
sdk/keyvault/provisioning-keyvault/vitest.config.ts |
Configures Node tests. |
sdk/keyvault/provisioning-keyvault/warp.config.yml |
Defines runtime builds. |
sdk/keyvault/provisioning-keyvault/config/tsconfig.lint.json |
Configures lint type checking. |
sdk/keyvault/provisioning-keyvault/config/tsconfig.src.browser.json |
Configures browser compilation. |
sdk/keyvault/provisioning-keyvault/config/tsconfig.src.cjs.json |
Configures CommonJS compilation. |
sdk/keyvault/provisioning-keyvault/config/tsconfig.src.esm.json |
Configures ESM compilation. |
sdk/keyvault/provisioning-keyvault/config/tsconfig.test.browser.json |
Configures browser test types. |
sdk/keyvault/provisioning-keyvault/config/tsconfig.test.node.json |
Configures Node test types. |
sdk/keyvault/provisioning-keyvault/review/provisioning-keyvault-browser.api.diff.md |
Records browser API differences. |
sdk/keyvault/provisioning-keyvault/review/provisioning-keyvault-node.api.md |
Records the Node API surface. |
sdk/keyvault/provisioning-keyvault/review/provisioning-keyvault-types-browser.api.diff.md |
Records types subpath differences. |
sdk/keyvault/provisioning-keyvault/review/provisioning-keyvault-types-node.api.md |
Records types subpath API. |
sdk/keyvault/provisioning-keyvault/schema/schema.json |
Stores generated resource schema. |
sdk/keyvault/provisioning-keyvault/src/deleted-managed-hsm.ts |
Adds deleted HSM references. |
sdk/keyvault/provisioning-keyvault/src/deleted-vault.ts |
Adds deleted vault references. |
sdk/keyvault/provisioning-keyvault/src/index.ts |
Exposes Key Vault APIs. |
sdk/keyvault/provisioning-keyvault/src/key-vault.ts |
Implements vault resources. |
sdk/keyvault/provisioning-keyvault/src/managed-hsm.ts |
Implements managed HSM resources. |
sdk/keyvault/provisioning-keyvault/src/types.ts |
Defines generated model types. |
sdk/keyvault/provisioning-keyvault/test/public-entrypoints.spec.ts |
Adds public-entrypoint smoke coverage. |
pnpm-lock.yaml |
Excluded from review by policy. |
Review details
Files excluded by content exclusion policy (1)
- pnpm-lock.yaml
- Files reviewed: 76/78 changed files
- Comments generated: 24
- Review effort level: Balanced
| for (let index = 0; index < path.length - 1; index += 1) { | ||
| const segment = String(path[index]); | ||
| const nextSegment = path[index + 1]; | ||
| const existing = current[segment]; | ||
|
|
||
| if (typeof existing === "object" && existing !== null) { | ||
| current = existing as Record<string, unknown>; | ||
| continue; | ||
| } | ||
|
|
||
| const container = (typeof nextSegment === "number" ? [] : {}) as Record<string, unknown>; | ||
| current[segment] = container; | ||
| current = container; | ||
| } | ||
|
|
||
| current[String(path[path.length - 1])] = value; |
| currentResource?: Resource, | ||
| ): Record<string, unknown> { | ||
| const entries = Object.entries(obj); | ||
| const result: Record<string, unknown> = {}; |
| export function keys(obj: ExpressionOrValue<object>): Expression<string[]> { | ||
| return createFunctionCallExpression<string[]>("keys", [obj]); | ||
| } |
| export function objectValues(obj: ExpressionOrValue<object>): Expression<unknown[]> { | ||
| return createFunctionCallExpression<unknown[]>("values", [obj]); | ||
| } |
| constructor( | ||
| context: ProvisioningComponent, | ||
| props: ExistingResourceProps & { existing: true }, | ||
| options?: ResourceOptions, |
| * const stack = new Stack("my-app"); | ||
| * const rg = new ResourceGroup(stack, "eastus"); | ||
| * const vault = new KeyVault(rg, { tenantId: "..." }); |
| type InputRecord, | ||
| } from "./expression/expressions.js"; | ||
| export type { PropertySegment } from "./types.js"; | ||
| export * as fn from "./fn.js"; |
|
|
||
| ### Features Added | ||
|
|
||
| - Initial preview of Azure Key Vault provisioning resources generated from the `2026-03-01-preview` TypeSpec contract. |
|
|
||
| ## Getting started | ||
|
|
||
| ```ts |
| "files": [ | ||
| "dist/", | ||
| "LICENSE", | ||
| "README.md" | ||
| ], |
There was a problem hiding this comment.
Reviewed the tooling (package.json/CHANGELOG.md version alignment, api-versions) and public API surface (review/provisioning-core-node.api.md, review/provisioning-keyvault-node.api.md) for the new @azure/provisioning-core and @azure/provisioning-keyvault packages. No issues found: both packages consistently use 1.0.0-beta.1 in package.json and CHANGELOG.md (no alpha versions), the Key Vault package is generated from the 2026-03-01-preview TypeSpec contract, and the API reports show no _N/AutoGenerated suffixes, no problematic unknown/void usage, and no forgotten-export warnings. The API surface and tooling look good.
📊 Structured Report
{"agent":"mgmt-reviewer","pr":39825,"summary":"clean","findings":[]}⚡ Benchmarked by Management Release Assistant
Adds the first Azure Provisioning packages to the JavaScript SDK repository.
Summary
@azure/provisioning-coreundersdk/core/provisioning-core@azure/provisioning-keyvaultfrom Key Vault TypeSpec API2026-03-01-preview53c0f6efe9872c971e8c365e3b0d41a6bd6efd3dand provisioning emitter commit790002004471dd1b221efdad6c0e5d4ffb0e68e7Manual delta tracking
Changes beyond copying core and running the Key Vault generator are consolidated by owner below.
Emitter-owned
Core-owned
ResourceGroup.managedByis retained in authored state: Azure/js-provisioning-lib#463Azure SDK repository-owned
Validation
pnpm turbo build --filter=@azure/provisioning-keyvault... --token 11.0.0-beta.1is unpublishedNotes
libnspr4.so; browser tests are configured and typecheck successfully for CI.dev-tool checkpasses 13 of 14 checks for each package; its release check throwsparsePnpmPackResult - check.check is not a functionafter package validation.