github Azure/bicep v0.38.3

10 hours ago

Highlights

  • onlyIfNotExists GA! (#17996)

    @onlyIfNotExists()
    resource onlyDeployIfNotExists 'Microsoft...' = {
      name: 'example'
      location: 'eastus'
      properties: {
        ...
      }
    }
    
  • [Experimental] Interactive bicep console command for REPL functionaltiy (#18152)

    console.mov

    See Using the Console Command for additional information.

  • [Experimental] Interactive bicep deploy, bicep what-if and bicep teardown commands (#18041, #18052, #18053, #18096, #18104)

    deploy.mov

    See Using the Deploy Commands for additional information and code samples.

  • [Experimental] Add @validate() decorator for custom validation (#17804) - requires the userDefinedConstraints feature flag

    @validate(x => startsWith(x, 'foo')) // <-- Accepts 'food' or 'fool' but causes the deployment to fail if 'booed' was supplied
    param p string
    
  • Add loadDirectoryFileInfo function (#17241) - thanks @GABRIELNGBTUC !
    This function returns an array of objects for each file in the directory for you to use in your Bicep template.

    var directoryInfo = loadDirectoryFileInfo('./directory')
    var directoryInfoWildcard = loadDirectoryFileInfo('./directory', '*.txt')
    
  • Add an explicit any type (#17848)
    Adds a new type symbol (any). Anywhere type syntax is expected, users can now supply any:

    param foo any
    output bar any = foo
    
    func cowSay(toSay any) string => 'The cow says, "${toSay}"'
    
  • Remove moduleIdentity experimental feature (#17909)

    module mod './module.bicep' = {
      identity: {
        type: 'UserAssigned'
        userAssignedIdentities: {
          '${mid.id}': {}
        }
      }
    }
    

Bug Fixes and Features

  • Bicep MCP server
    • Updated mcp experimental docs to show EXPERIMENTAL server name (#17754)
    • Add List AVM MCP Tool (#17845)
    • fixing typos in mcp server best practices file (#17855)
  • Bicepparam
    • Remove redundant checks for empty parameter assignments in parameter evaluation (#17807)
    • fix and add test for invalid parameter type (#17193)
    • implement "base" parameters support for extended bicepparam files (#17850)
  • Fix a bug where source files with extensions cannot be published (#17808)
  • Check for Windows Style Absolute Paths (#17995)
  • Add experimentalFeaturesWarning (#17910)
  • Add "Creating a Local Extension with .NET" quickstart guide (#17726)
  • Graph extension update dynamic types link (#17851)
  • Automatically enable symbolic name compilation for resource/module collection access (#17861)
  • [docs] Add information about trace verbosity (#18093)
  • Do not require properties marked as readonly+required (#17913)
  • Add & handle readableScopes + writableScopes properties (#17849)
  • Inline existing resources with runtime names (#17904)
  • Bug fixes for moduleExtensionConfigs experimental feature. (#17860)
  • Fix quickstart instructions (#17759)
  • Fix broken local-deploy links (#17846)
  • Increase local deploy job timeout (#18040)
  • Avoid returning internal information for extensible resource snapshot (#18119)

Community Contributions

  • feat: BRM Tool - Removed deprecated pathFilter property from BRM version schema (#17720) - thanks @AlexanderSehr !
  • Add fix to decompile desiredStateConfiguration resources (#17764) - thanks @Gijsreyn !
  • Fix bicep decompile-params if file is different name (#17795) - thanks @Gijsreyn !
  • Linter rule should exclude all metadata (#17667) - thanks @guimatheus92 !

Don't miss a new bicep release

NewReleases is sending notifications on new releases.