Releases: Azure/bicep
Releases · Azure/bicep
v0.33.13
Highlights
-
Add
resourceInput<>
andresourceOutput<>
utility types (#15825)
We've added two new utility types (resourceInput<> and resourceOutput<>), which deprecates the existing resource<> utility types. These three utility types are all closely related but differ in which property flags they surface:resource<>
has the flags that were originally defined in the RP types artifact. This is generally not what people want.resourceInput<>
strips out all WriteOnly flags. This means that template authors can access properties on a resourceInput<>-typed parameter that would have previously raised a BCP077 diagnostic.resourceOutput<>
strips out all ReadOnly flags.
-
Expose
fail
function (#15958) This function takes a single string argument, whose value is the message of the error that will be raised.
param storageAccountData object
resource a 'Microsoft.Storage/storageAccounts@2023-05-01' = {
name: !empty(storageAccountData.?name) ? toLower(storageAccountData.name) : fail('No storage account name was provided')
Other bugs and features
- extendable param files add a warning when referencing to a non-existent .bicepparam file (#15338)
- adding support for variables, objects and arrays in extended param files (#15834)
- Refactor and simplify handling of single quotes in module completions (#15913)
use-safe-access
linter rule: Expand to check for nullable properties (#15838)- Fix for WhatIf results not showing up properly in the deploy pane (#16048)
- Support object property name completions in lambda body syntax (#16055)
- MS Graph type provider warns on property mismatch (#15824)
- Fix unhandled exception in import closure calculation (#15833)
- Validate type clauses in UDFs (#15842)
- Allow exports of symbols that share a name with an output (#15899)
- Catch recursion in parameterized type invocations (#15903)
- Use fully qualified symbolic name as copy loop name (#15910)
- Include imported variables in max variables check (#15956)
- Rename Bicep.IO package to Azure.Bicep.IO (#16046)
- Validate that type expressions that will be compiled to ARM schema nodes can be expressed in ARM's type system prior to compilation (#15901)
- SecureOutput Feature Bug Fix (#16108)
- Allow accessing generated module names (#16058)
- Deprecate the term
provider
(#16107) - Fix linter discrepancies when optional module name is enabled (#16106)
- Emit symbolic name template when an optional module name is enabled. (#16114)
- Fix BCP159 to check existence of any nested resources (#15988)
- Decompile-params: Resolve bicep file path relative to current directory (#15986)
- Add AdditionalPropertiesDescription property to ObjectType (#15990)
v0.32.4
Highlights
- New
deployer()
function to retrieve ObjectId of the principal that is deploying the Bicep file (#15340)
resource roleAssignment 'Microsoft.Authorization/roleAssignments@2022-04-01' = {
// can be used to help make GUID unique
name: guid(deployer().objectId, readerRoleDefinitionId, resourceGroup().id)
properties: {
principalId: deployer().objectId // easily retrieve objectId
roleDefinitionId: readerRoleDefinitionId
}
}
- Support partial public registry completions (#15646). Previously, if typing the entire module reference, you would lose completions after typing a
/
Other bugs and features
Bicep team:
- Support deploying to other clouds in Deploy Pane (#15635) - thank you @alaskascooter for filing
- Only add an explicit dependency on an existing resource when the deployments engine will use the GET response (#15693) - thank you @AleksandrKomarov for filing
- Move all indexing expressions when calculating
dependsOn
expressions (#15580) - thank you @slavizh for filing - Local Deploy: Support null for InnerError field (#15583)
- InsertResource - correctly strip read-only properties (#15689)
- MS Graph type loader accepts resource identifier property flag (#15518)
- Fixed stack overflow when requesting completion in an object literal (#15579)
- Use vscode authentication instead of Azure Account extension (#15403)
- Move deploy-pane to
vscode-bicep-ui
(#15584) - Emit type and apiVersion separately for local and v2 ext resources (#15762)
- Update
jsonrpc.test.ts
reference (#15657)
- Add case-insensitive equality operators to grammar (#15640)
v0.31.92
Features and bug fixes
- Revert "Only add an explicit dependency on an existing resource when the deployments engine will use the GET response" (#15524)
- Don't collapse scope references or namespaces into objects (#15570)
- allow
using none
statements in bicepparam files atbuild-params
command (#15107) -- thanks @polatengin!
v0.31.34
Highlights
- Improve ternary type inference (#15399)
- Allow
dependsOn
for existing resources (#15459) - Tree-shake existing resources where possible (#15447)
- Sort public registry module version completion items (#15400)
- Refactor: Extract variable, parameter, type (#14701)
- Allow imported variable access from within User Defined Functions (#15142)
- Nameof function (#14704) - Thanks @miqm !
Bugs and Features
- Add deprecation warning for microsoftGraph builtin extension (#15149)
- Add deployment script snippets (#15191)
- Fix
reduce()
return type signature (#15386) - Clarify newlines before/after extractions (#15194)
- 15266 Completion for "resource<...>" should include the necessary str… (#15267)
- Allow extracting param as resource-derived type (#15282)
- Fix linter rule: Max variables limit increased from 256 -> 512 (#15464)
v0.30.23
What's Changed
- Support named pipe fallback for IPC in local mode on unsupported platforms (#15046)
New Contributors
- @gerbermarco made their first contribution in #15047
v0.30.3
Highlights
- Bicep error codes for core diagnostics documentation (#14881)
- Allow Variable Symbol Access from within user defined functions (#14531)
Bugs and Features
- Use minutes in VS Code default bicep deployment name (#14764) - thanks @Strandfelt !
- Support completions for import file paths (#14659)
- Handle operator precedence correctly in
use-safe-access
linter rule codefix (#14710) - Local mode Bicep issue fixes for #14770 (#14830)
- Support validation & completions for property access on array element (#14846)
- Rename provider -> extension in many places (#14872)
- adding code completion for extends keyword in bicepparam files (#14986)
- adding none in the suggested completions list (#14988)
- Avoid assigning invalid cyclic types to declarations (#14874)
- Trim descriptions in compiled JSON (#14870)
- Deploy pane: link to correct Portal blade for nested deployments (#14880)
- Relax bicepconfig.json validation for extensions, to allow file paths (#14873)
- Add spread & multiline objects + arrays to grammar (#14983)
- Use imported symbol identifiers rather than identity in memory to deduplicate imports when building closure (#14615)
- Enable type narrowing on assignment of non-variable symbols (#14989)
- Fix go to def for template spec modules (#14871)
- Fix obsoletion warnings (#14992)
- What If Short Circuiting Linter Rule (Default Off) (#14910)
- Added Documentation on Extendable Bicep Params (#14865)
- Fix for issue 12800 function arguments with comment before end token (#14699)
v0.29.47
v0.29.45
Highlights
- [Experimental]
Extendable Param Files
feature (#13900) - [Experimental] Support for the
local-deploy
CLI command (#14243, #14234, #14231, #14237, #14514, #14587, #14438) - New linter rule:
use-recent-module-versions
(#14309) - New linter rule:
use-safe-access
(#14322)
Breaking Changes
- Replace the
provider
keyword with theextension
keyword (#14379) - Deprecate
provider
in Bicep configuration files (#14468)
For more details about the breaking changes, see #14374.
Bugs and Features
- Added info about missing CLI option
--outdir
(#14188) - thanks @o-l-a-v! - Add trace log message when failing to find Env Var (#13777) - thanks @SimonWahlin!
- Correctly decompile negative numbers in TLEs (#14317)
- Remove experimental flag for JSONRPC command group (#14368)
- Avoid putting URLs into 'code' field in diagnostics (#14583)
- Escape strings correctly in snippets (#14582)
- Update Microsoft Graph Bicep types (#14382)
- Fix UDT syntax highlighting (#14372)
- Ensure
\n
is used when emitting template (#14581) - Fix Intellisense and other features of Bicep in Visual Studio that were broken by VS 17.10 (#14532)
Refactoring
v0.28.1
Highlights
Bicep Team
- MS Graph Extensibility is now in Public Preview!
- Support spread completions inside ternary and parenthesized expressions (#14058)
- Allow dot property access on union of objects with undeclared property (#14060)
- Allow importing from Bicep templates with required parameters (#14070)
Bugs and Features
Bicep Team
v0.27.1
Highlights
Bicep Team
- "publishSource" is now GA! (#13899)
- Implement the spread
...
operator, other new functions, and indices on lambdas (#13658)- Support completions inside object spread (#14000)
- Normalize indenting for multi-line descriptions (#14013)
- Default levels for linting rules finalized (#13847)
- Permit validation for property access on union types (#14017)
Bugs and Features
Bicep Team
- Clarify on JSONRPC format (#13825)
- Support --outdir param with build-params (#13890)
- Create 'use-secure-value-for-secure-inputs' linter rule (#13905)
- Add detailed validation for UDFs with UDTs (#14011)
- Fix for stack overflow issue (#14049)
- Check namespaces in prefer-interpolation linter rule (#14050)
- Support codefix for missing Bicep params (#14012)
- Formatting rule improvements (#13945)
- Recognize common keywords for resource type completions (#13721)
- Show full path of built JSON file so it's clickable in vscode (#13787)
- Try to fix 13333 (#13788)
- Make some minor improvements to resource filter keywords and add filter keyword support for resource snippets (#13731)
- 13842 Bicep linter doesn't recognise managementGroupResourceId as a r… (#13889)