Azure Citadel
  • Blogs

  • Azure Arc
    • Overview
    • Azure Arc-enabled Kubernetes
      • Prereqs
      • Background
      • Deploy Cluster
      • Connect to Arc
      • Enable GitOps
      • Deploy Application
      • Enable Azure AD
      • Enforce Policy
      • Enable Monitoring
      • Enable Azure Defender
      • Enable Data Services
      • Enable Application Delivery
    • Azure Arc-enabled Servers
      • Prereqs
      • Scenario
      • Hack Overview
      • Azure Landing Zone
      • Arc Pilot resource group
      • Azure Monitoring Agent
      • Additional policy assignments
      • Access your on prem VMs
      • Create onboarding scripts
      • Onboarding using scripts
      • Inventory
      • Monitoring
      • SSH
      • Windows Admin Center
      • Governance
      • Custom Script Extension
      • Key Vault Extension
      • Managed Identity
    • Useful Links
  • Azure CLI
    • Install
    • Get started
    • JMESPATH queries
    • Integrate with Bash
  • Azure Landing Zones
    • ALZ Accelerator
      • Prereqs
      • Elevate
      • Bootstrap
      • Demote
      • Components
    • Deploy an Azure Landing Zone
      • Create an initial ALZ config
      • Add a local override library
      • Test locally
      • Run through the CI/CD workflow
    • Libraries
      • What is a library?
      • Policies, Assignments and Roles
      • Archetypes, Overrides and Architecture
      • Metadata and Policy Default Values
      • Custom libraries
    • Example Library Configs
      • Azure Landing Zone library
      • Azure Landing Zone library with overrides
  • Azure Lighthouse
    • Minimal Lighthouse definition
    • Using service principals
    • Privileged Identity Management
  • Azure Policy
    • Azure Policy Basics
      • Policy Basics in the Azure Portal
      • Creating Policy via the CLI
      • Deploy If Not Exists
      • Management Groups and Initiatives
    • Creating Custom Policies
      • Customer scenario
      • Policy Aliases
      • Determine the logic
      • Create the custom policy
      • Define, assign and test
  • Marketplace
    • Introduction
      • Terminology
      • Offer Types
    • Partner Center
    • Offer Type
    • Publish a VM Offer HOL
      • Getting Started
      • Create VM Image
      • Test VM Image
      • VM Offer with SIG
      • VM Offer with SAS
      • Publish Offer
      • Other VM Resources
    • Publish a Solution Template HOL
      • Getting Started
      • Create ARM Template
      • Validate ARM Template
      • Create UI Definition
      • Package Assets
      • Publish Offer
    • Publish a Managed App HOL
      • Getting Started
      • Create ARM Template
      • Validate ARM Template
      • Create UI Definition
      • Package Assets
      • Publish Offer
    • Managed Apps with AKS HOL
    • Other Managed App Resources
    • SaaS Offer HOLs
    • SaaS Offer Video Series
      • Video 1 - SaaS Offer Overview
      • Video 2 - Purchasing a SaaS Offer
      • Video 3 - Purchasing a Private SaaS Plan
      • Video 4 - Publishing a SaaS Offer
      • Video 5 - Publishing a Private SaaS Plan
      • Video 6 - SaaS Offer Technical Overview
      • Video 7 - Azure AD Application Registrations
      • Video 8 - Using the SaaS Offer REST Fulfillment API
      • Video 9 - The SaaS Client Library for .NET
      • Video 10 - Building a Simple SaaS Landing Page in .NET
      • Video 11 - Building a Simple SaaS Publisher Portal in .NET
      • Video 12 - SaaS Webhook Overview
      • Video 13 - Implementing a Simple SaaS Webhook in .NET
      • Video 14 - Securing a Simple SaaS Webhook in .NET
      • Video 15 - SaaS Metered Billing Overview
      • Video 16 - The SaaS Metered Billing API with REST
  • Microsoft Fabric
    • Theory
    • Prereqs
    • Fabric Capacity
    • Set up a Remote State
    • Create a repo from a GitHub template
    • Configure an app reg for development
    • Initial Terraform workflow
    • Expanding your config
    • Configure a workload identity
    • GitHub Actions for Microsoft Fabric
    • GitLab pipeline for Microsoft Fabric
  • Packer & Ansible
    • Packer
    • Ansible
    • Dynamic Inventories
    • Playbooks & Roles
    • Custom Roles
    • Shared Image Gallery
  • Partner Admin Link
    • Understanding PAL
    • Service principals with credentials
    • PAL tagging with a service principal
    • CI/CD pipelines & OpenID Connect
    • User and guest IDs
    • Azure Lighthouse & PAL
    • PAL FAQ
  • REST API
    • REST API theory
    • Using az rest
  • Setup
  • Sovereign Landing Zones
    • ALZ Accelerator
      • Prereqs
      • Elevate
      • Bootstrap
      • Demote
      • Components
    • Deploy Sovereign Landing Zone
      • Create an initial SLZ config
      • Add a local override library
      • Test locally
      • Run through the CI/CD workflow
    • Libraries
      • What is a library?
      • Policies, Assignments and Roles
      • Archetypes, Overrides and Architecture
      • Metadata and Policy Default Values
      • Custom libraries
    • Reference Library Configs
      • Sovereign Landing Zone
      • Sovereign Landing Zone library with overrides
      • SLZ extended with a country pack
  • Terraform
    • Fundamentals
      • Initialise
      • Format
      • Validate
      • Plan
      • Apply
      • Adding resources
      • Locals and outputs
      • Managing state
      • Importing resources
      • Destroy
    • Get set up for Terraform
      • Cloud Shell
      • macOS
      • Windows with PowerShell
      • Windows with Ubuntu in WSL2
    • Using AzAPI
      • Using the REST API
      • azapi_resource
      • Removing azapi_resource
      • azapi_update_resource
      • Data sources and outputs
      • Removing azapi_update_resource
  • Virtual Machines
    • Azure Bastion with native tools & AAD
    • Managed Identities

  • About
  • Archive
  1. Home
  2. Sovereign Landing Zones
  3. Libraries
  4. Metadata and Policy Default Values
Metadata and Policy Default Values
Metadata and Policy Default Values
Libraries
What is a library?
Policies, Assignments and Roles
Archetypes, Overrides and Architecture
Metadata and Policy Default Values
Custom libraries

Metadata and Policy Default Values

Learn about the metadata file and how the policy_default_values are used.

Table of Contents

Overview

The previous pages covered the core Azure assets in the library, and the various contructs - archetypes, overrides and architectures - that are used to collate those and use against a management group structure designed for governance.

This page will cover the remaining files in the library which are located in the root of the library structure:

  • alz_library_metadata.json: Metadata for library management - name, description, path and any dependencies on other libraries.
  • alz_policy_defaults_values.json: Enables a map of values to be defined and used across multiple policy assignments.

Metadata

There needs to be a single metadata file per library.

Folder
Filename alz_library_metadata.json
Formats JSON only
Examples Azure Landing Zone library
Sovereign Landing Zone library
Example Sovereign Landing Zone country pack
Documentation Metadata
Metadata schema

Azure/Azure-Landing-Zones-Library/blob/main/schemas/library_metadata.json

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "name": {
      "type": "string"
    },
    "display_name": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "dependencies": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "path": {
            "type": "string"
          },
          "ref": {
            "type": "string"
          },
          "custom_url": {
            "type": "string"
          }
        }
      }
    }
  },
  "required": [
    "name",
    "display_name",
    "description"
  ]
}

Metadata example #1: alz

This is the default metadata file for Azure Landing Zone.

{
  "$schema": "https://raw.githubusercontent.com/Azure/Azure-Landing-Zones-Library/main/schemas/library_metadata.json",
  "name": "ALZ",
  "display_name": "Azure Landing Zones",
  "description": "This library provides the reference set of Azure Landing Zones (ALZ) policies, archetypes, and management group architecture.",
  "path": "platform/alz"
}

  • The path in the repo is platform/alz
  • There are no dependencies.

Metadata example #2: alz_custom

This is the default metadata file for a local library in ./lib when stacked on top of the main Azure Landing Zone library.

{
  "$schema": "https://raw.githubusercontent.com/Azure/Azure-Landing-Zones-Library/main/schemas/library_metadata.json",
  "name": "local",
  "display_name": "ALZ Accelerator - Azure Verified Modules for ALZ Platform Landing Zone",
  "description": "This library allows overriding policies, archetypes, and management group architecture in the ALZ Accelerator.",
  "dependencies": [
    {
      "path": "platform/alz",
      "ref": "2026.01.0"
    }
  ]
}

  • There is a dependency on the platform/alz/2026.01.0 release.

Metadata example #3: slz

This is the default metadata file for Sovereign Landing Zone. This library is essentially a custom platform library stacked on top of the main Azure Landing Zone Library.

{
  "$schema": "https://raw.githubusercontent.com/Azure/Azure-Landing-Zones-Library/main/schemas/library_metadata.json",
  "name": "SLZ",
  "display_name": "Sovereign Landing Zone",
  "description": "This library provides the reference set of Sovereign Landing Zone (SLZ) policies, archetypes, and management group architecture.",
  "path": "platform/slz",
  "dependencies": [
    {
      "path": "platform/alz",
      "ref": "2026.01.0"
    }
  ]
}

  • The path in the repo is platform/slz
  • The Sovereign Landing Zone library is dependent on the platform/alz/2026.01.0 release.

Metadata example #4: slz_custom

This is the default metadata file for the local library in ./lib when stacked on top of the Sovereign Landing Zone library.

{
  "$schema": "https://raw.githubusercontent.com/Azure/Azure-Landing-Zones-Library/main/schemas/library_metadata.json",
  "name": "local",
  "display_name": "ALZ Accelerator - Azure Verified Modules for SLZ Platform Landing Zone",
  "description": "This library allows overriding policies, archetypes, and management group architecture in the ALZ Accelerator.",
  "dependencies": [
    {
      "path": "platform/slz",
      "ref": "2026.01.0"
    }
  ]
}

  • There is a dependency on the platform/slz/2025.10.1 Sovereign Landing Zone library release.
  • Remember that this is the one above, and therefore the dependency is recursively chained.
  • The full dependency chain is therefore ./lib > platform/slz/2025.10.1 > platform/alz/2026.01.0.

Policy Default Values

There can be an optional Policy Default Values file per library.

Folder
Filename alz_policy_default_values.json
Formats JSON or YAML
Examples Azure Landing Zone library
Sovereign Landing Zone library
Example Sovereign Landing Zone country pack
Documentation Policy Assignment Default Values
Default Policy Values schema

Azure/Azure-Landing-Zones-Library/blob/main/schemas/default_policy_values.json

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "defaults": {
      "items": {
        "properties": {
          "default_name": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "policy_assignments": {
            "items": {
              "properties": {
                "parameter_names": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "policy_assignment_name": {
                  "type": "string"
                }
              },
              "required": [
                "policy_assignment_name",
                "parameter_names"
              ],
              "type": "object"
            },
            "type": "array"
          }
        },
        "required": [
          "default_name",
          "policy_assignments"
        ],
        "type": "object"
      },
      "type": "array"
    }
  },
  "required": [
    "defaults"
  ],
  "type": "object"
}

Metadata example #1: slz

This is the default_policy_values file for the Sovereign Landing Zone.

{
  "$schema": "https://raw.githubusercontent.com/Azure/Azure-Landing-Zones-Library/main/schemas/default_policy_values.json",
  "defaults": [
    {
      "default_name": "allowed_locations",
      "description": "Allowed Azure locations for Sovereign Landing Zone policies",
      "policy_assignments": [
        {
          "parameter_names": [
            "listOfAllowedLocations"
          ],
          "policy_assignment_name": "Enforce-Sovereign-Conf"
        },
        {
          "parameter_names": [
            "listOfAllowedLocations"
          ],
          "policy_assignment_name": "Enforce-Sovereign-Global"
        }
      ]
    }
  ]
}

  • The allowed_locations can be defined in the module’s policy_default_values map
  • It will be be consistently applied to multiple policy assignments.
  • Additional policy_default_values are pulled through from the dependencies, i.e. alz’s alz_policy_default_values.json.

Metadata example #2: nl_slz

This is the metadata file for the example country pack. It relies on the alz provider having `library_overwrite_enabled = true'.

{
  "$schema": "https://raw.githubusercontent.com/Azure/Azure-Landing-Zones-Library/main/schemas/default_policy_values.json",
  "defaults": [
    {
      "default_name": "allowed_locations",
      "description": "Allowed Azure locations for Sovereign Landing Zone policies",
      "policy_assignments": [
        {
          "parameter_names": [
            "listOfAllowedLocations"
          ],
          "policy_assignment_name": "Enforce-Sovereign-Conf"
        },
        {
          "parameter_names": [
            "listOfAllowedLocations"
          ],
          "policy_assignment_name": "Enforce-Sovereign-Global"
        },
        {
          "parameter_names": [
            "allowedLocations"
          ],
          "policy_assignment_name": "Deny-NL-Global"
        }
      ]
    }
  ]
}

  • The alz provider defines the defaults using the default_name as the key for a map.
  • If a duplicate is found then the last occurrence wins.
  • Here the local library’s metadata has dependencies on both the slz and the example nl_bio country pack.
  • The nl_bio definition is the last occurrence as it is later in the array.
  • The same applies to library definitions overwriting those in the dependent arrays.

Source: https://www.azurecitadel.com/slz/libraries/metadata/
Published: 07 Jan 2026
Printed:
Archetypes, Overrides and Architecture Metadata and Policy Default Values Custom libraries