Highlights
-
Multi-line interpolated strings GA! (#18666)
Basic example:
var s = $''' this is ${interpolated}'''
With multiple
$characters:var s = $$''' this is $${interpolated} this is not ${interpolated}'''
-
[Experimental] New
this.exists()andthis.existingResource()functions for resource existence checks (#17727)Example usage:
resource storageAccount 'Microsoft.Storage/storageAccounts@2021-09-01' = { name: 'mystorageaccount' location: 'eastus' sku: { name: 'Standard_LRS' } kind: 'StorageV2' properties: { minimumTlsVersion: 'TLS1_2' publicNetworkAccess: this.exists() ? 'Enabled' : 'Disabled' } }
-
New MCP Server tools (#18707, #18826)
decompile_arm_parameters_file: Converts ARM template parameter JSON files into Bicep parameters format (.bicepparam).decompile_arm_template_file: Converts ARM template JSON files into Bicep syntax (.bicep).format_bicep_file: Applies consistent formatting (indentation, spacing, line breaks) to Bicep files.get_bicep_file_diagnostics: Analyzes a Bicep file and returns all compilation diagnostics.get_file_references: Analyzes a Bicep file and returns a list of all referenced files including modules, parameter files, and other dependencies.get_deployment_snapshot: Creates a deployment snapshot from a .bicepparam file by compiling and pre-expanding the ARM template, allowing you to preview predicted resources and perform semantic diffs between Bicep implementations.
-
Publish Bicep MCP server as a nuget package (#18709)
Example
mcp.jsonconfiguration:{ "servers": { "Bicep": { "type": "stdio", "command": "dnx", "args": [ "Azure.Bicep.McpServer", "--yes" ] } } } -
bicep console: Support piping and stdin/out redirection (#18762)Example with piping:
echo "parseCidr('10.144.0.0/20')" | bicep console
Example with input redirection:
echo "parseCidr('10.144.0.0/20')" > test.txt bicep console < test.txt
Example with output redirection:
echo "parseCidr('10.144.0.0/20')" | bicep console > output.json
-
Extendable Parameter Files Improvements:
-
Multiline diagnostic pragmas (#18622)
Disable a specific diagnostic for a whole file:
#disable-diagnostics BCP422 ... resource foo 'type@version' = if (condition) {} output bar string = foo.properties.bar // <-- would normally raise BCP422 as a warning, but will not due to pragma at top of file
Disable specific diagnostics for a span:
resource foo 'type@version' = if (condition) {} #disable-diagnostics BCP422 output bar string = foo.properties.bar // <-- would normally raise BCP422 as a warning, but will not due to pragma at top of file #restore-diagnostics BCP422 output baz string = foo.properties.baz // <-- will raise BCP422 warning because it's outside of the pragma fence
-
Migrate to .NET 10 (#18458)
Bug Fixes and Features
- Use integer and boolean literal types when deriving return type for
loadJsonContent(#18466) - Update
deployment()return type signature to add conditionalmetadataproperty (#18468) - Recognize
<collection module>[<index>]!as a direct module reference for secure outputs check (#18522) - Extension config default values constraint fixes (#18606)
- Update lv 2.0 triggers to take syntactically nested resources into account (#18607)
- Making the scope property a fully qualified resource Id (#18165)
- Expand support for types in local extension (#18662)
- Improved extension configuration experience (#18828)
- Fix handling registry module resource derived types in params file (#18661)
- Fix completion to correctly suggest imported types in bicepparam files (#18523)
- Fix quoted property names and enhance symbol resolution (#18509)
- Fix nested function calls losing bindings when using extendable parameters (#18876)
- Always use named pipes on Windows for gRPC (#18712)
- Remove DSC experimental feature (#18821)
- Simplify YAML/JSON parser code path with Result pattern (#18713)
- Refactor external inputs processing logic to use
InlineDependencyVisitorand dedicatedFunctionFlag(#18740) - Update CSAT survey to be always on instead of annual (#18657)
Documentation
- Add troubleshooting steps for MCP tools not showing (#18563)
- Revise Bicep MCP Server Docs (#18699)
- Revise local deploy debugging guide for Bicep extensions (#18701)
- Add unit testing guide for Bicep extensions (#18702)
- Add beginner tip to Bicep getting started section (#18706)
- Improve documentation for extendable parameter files (#18656)
- Add bicep local-deploy arguments table docs (#18788)
Community Contributions
- E2E Tests for playground with playwright (#18521) - thanks @ShpendKe !
- Add: bicep local-deploy arguments table docs (#18788) - thanks @johnlokerse !
- Add beginner tip to Bicep getting started section (#18706) - @JennyCloud !
- Fix grammar in codebase documentation (#18768) - thanks @JennyCloud !