{"nodes":[{"id":"acr-admin-account-disabled-by-default","text":"The ACR admin account is disabled by default, has two independently regenerable passwords, and is not recommended for production or multi-user scenarios.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-admin-account-disabled-by-default.json"},{"id":"acr-admin-account-disabled-by-default-two-passwords","text":"ACR admin account is disabled by default, provides full push/pull access, has two independently regenerable passwords, and is not recommended for production or multi-user scenarios.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-admin-account-disabled-by-default-two-passwords.json"},{"id":"acr-admin-password-regen-60-seconds","text":"ACR admin account password regeneration takes approximately 60 seconds to replicate.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-admin-password-regen-60-seconds.json"},{"id":"acr-admin-password-regeneration-60-seconds","text":"Password regeneration for ACR admin accounts takes approximately 60 seconds to replicate.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-admin-password-regeneration-60-seconds.json"},{"id":"acr-all-transfers-https-tls","text":"All ACR image transfers use HTTPS with TLS encryption.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-all-transfers-https-tls.json"},{"id":"acr-api-rate-limits-per-replica","text":"ACR API rate limits (throttling) apply independently per geo-replica, not globally across the registry.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-api-rate-limits-per-replica.json"},{"id":"acr-auth-entra-service-principal-admin","text":"ACR authentication options are Azure identity, Microsoft Entra service principal, or admin account; all image transfers use HTTPS with TLS.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-auth-entra-service-principal-admin.json"},{"id":"acr-auth-token-valid-3-hours","text":"The access token from `az acr login` is valid for 3 hours and must be renewed.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-auth-token-valid-3-hours.json"},{"id":"acr-authentication-entra-service-principal-admin","text":"ACR authentication options are Azure identity, Microsoft Entra service principal, or admin account.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-authentication-entra-service-principal-admin.json"},{"id":"acr-best-practice-same-region-as-deployments","text":"Best practice is to create an ACR registry in the same Azure region as deployment targets for network-close storage and reduced latency.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-best-practice-same-region-as-deployments.json"},{"id":"acr-content-trust-premium-only","text":"Content trust (image tag signing) in ACR is a Premium-only feature.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-content-trust-premium-only.json"},{"id":"acr-dedicated-resource-group-recommended","text":"ACR registries should be placed in a dedicated resource group to avoid accidental deletion when cleaning up container host resources.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-dedicated-resource-group-recommended.json"},{"id":"acr-disabled-replica-still-syncs-and-costs","text":"Disabling `--region-endpoint-enabled` on an ACR geo-replica excludes it from global routing but data still syncs and storage costs still accrue.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-disabled-replica-still-syncs-and-costs.json"},{"id":"acr-docker-command-env-var-alternative-tools","text":"The `DOCKER_COMMAND` environment variable can be set to switch `az acr login` to alternative container tools like podman.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-docker-command-env-var-alternative-tools.json"},{"id":"acr-docker-command-env-var-podman","text":"The `DOCKER_COMMAND` environment variable can be set to switch `az acr login` to use alternative container tools like `podman`.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-docker-command-env-var-podman.json"},{"id":"acr-expose-token-username-all-zeros","text":"When using `az acr login --expose-token`, the username for `docker login` is the all-zeros GUID `00000000-0000-0000-0000-000000000000`.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-expose-token-username-all-zeros.json"},{"id":"acr-five-authentication-methods","text":"ACR supports five authentication methods: individual Microsoft Entra identity, service principal, managed identity, admin user, and non-Microsoft Entra token-based permissions.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-five-authentication-methods.json"},{"id":"acr-geo-api-rate-limits-per-replica","text":"ACR API rate limits (read/write throttling) apply independently to each geo-replica.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-geo-api-rate-limits-per-replica.json"},{"id":"acr-geo-home-region-outage-blocks-property-changes","text":"During an ACR home region outage, push/pull still works via other geo-replicas, but registry property modifications are blocked until the home region recovers.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-geo-home-region-outage-blocks-property-changes.json"},{"id":"acr-geo-replica-zone-redundancy-auto-enabled","text":"Zone redundancy is automatically enabled for ACR geo-replicas in regions that support it.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-geo-replica-zone-redundancy-auto-enabled.json"},{"id":"acr-geo-replicated-storage-usage-home-region-only","text":"Storage usage in a geo-replicated ACR is reported for the home region only; multiply by replica count for total consumption.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-geo-replicated-storage-usage-home-region-only.json"},{"id":"acr-geo-replication-active-active","text":"ACR geo-replication uses an active-active model where all replicas are writable — push and pull work from any replica.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-geo-replication-active-active.json"},{"id":"acr-geo-replication-active-active-model","text":"ACR geo-replication uses an active-active model where all replicas are writable — push and pull work from any replica, not just the home region.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-geo-replication-active-active-model.json"},{"id":"acr-geo-replication-eventual-consistency","text":"ACR geo-replication uses eventual consistency — there is a replication lag window after push before content appears in all replicas.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-geo-replication-eventual-consistency.json"},{"id":"acr-geo-replication-operational-constraints","text":"ACR geo-replication has three operational constraints: disabled replicas still sync data and incur costs, home region outages block registry property changes despite continued push/pull, and global endpoint routes by network performance not geographic proximity.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-geo-replication-operational-constraints.json"},{"id":"acr-geo-replication-premium-sku-only","text":"ACR geo-replication requires the Premium SKU.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-geo-replication-premium-sku-only.json"},{"id":"acr-geo-replication-requires-premium","text":"ACR geo-replication requires the Premium SKU.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-geo-replication-requires-premium.json"},{"id":"acr-geo-replication-requires-premium-sku","text":"ACR geo-replication requires the Premium SKU.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-geo-replication-requires-premium-sku.json"},{"id":"acr-geo-storage-usage-home-region-only","text":"Storage usage in a geo-replicated ACR is reported for the home region only; multiply by replica count for total consumption.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-geo-storage-usage-home-region-only.json"},{"id":"acr-global-endpoint-routes-by-network-performance","text":"The ACR global endpoint (`myregistry.azurecr.io`) routes to the geo-replica with the best network performance, not necessarily geographic proximity.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-global-endpoint-routes-by-network-performance.json"},{"id":"acr-home-region-outage-blocks-property-changes","text":"During an ACR home region outage, push/pull still works via other geo-replicas, but registry property modifications are blocked until the home region recovers.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-home-region-outage-blocks-property-changes.json"},{"id":"acr-included-storage-basic-10-standard-100-premium-500","text":"ACR included storage: Basic 10 GiB, Standard 100 GiB, Premium 500 GiB; additional storage billed per-GiB.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-included-storage-basic-10-standard-100-premium-500.json"},{"id":"acr-login-token-valid-3-hours","text":"Individual login tokens from `az acr login` are valid for 3 hours and must be renewed.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-login-token-valid-3-hours.json"},{"id":"acr-max-image-layer-200gib-manifest-4mib","text":"ACR max image layer size is 200 GiB and max manifest size is 4 MiB across all SKUs.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-max-image-layer-200gib-manifest-4mib.json"},{"id":"acr-max-image-layer-size-200gib","text":"ACR maximum image layer size is 200 GiB across all SKUs.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-max-image-layer-size-200gib.json"},{"id":"acr-max-storage-basic-standard-40tib-premium-100tib","text":"ACR maximum storage limits: Basic/Standard max 40 TiB, Premium max 100 TiB.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-max-storage-basic-standard-40tib-premium-100tib.json"},{"id":"acr-network-close-deployment-same-region","text":"ACR should be placed in the same Azure region as container hosts to minimize latency and avoid cross-region egress fees.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-network-close-deployment-same-region.json"},{"id":"acr-non-entra-tokens-basic-100-standard-500-premium-50000","text":"ACR non-Entra token limits: Basic 100, Standard 500, Premium 50,000.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-non-entra-tokens-basic-100-standard-500-premium-50000.json"},{"id":"acr-optimal-image-layer-count-5-to-10","text":"Optimal container image layer count for ACR is 5–10 layers, balancing layer reuse/caching against pull overhead.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-optimal-image-layer-count-5-to-10.json"},{"id":"acr-optimal-image-layers-5-to-10","text":"The optimal number of layers per container image is 5–10, balancing layer reuse/caching against pull overhead.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-optimal-image-layers-5-to-10.json"},{"id":"acr-premium-enterprise-feature-gate","text":"ACR gates all enterprise capabilities behind Premium SKU: geo-replication, private link (up to 200 endpoints), content trust, customer-managed keys, and 2.5x higher storage limits (100 TiB vs 40 TiB for Basic/Standard).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-premium-enterprise-feature-gate.json"},{"id":"acr-premium-exclusive-features","text":"ACR Premium-exclusive features include: geo-replication, private link, content trust, customer-managed keys, connected registries, artifact streaming, retention policies, dedicated agent pools, IP access rules, export policies, and artifact transfer.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-premium-exclusive-features.json"},{"id":"acr-premium-exclusive-features-list","text":"ACR Premium-exclusive features: geo-replication, private link (up to 200 endpoints), content trust, customer-managed keys, connected registries, artifact streaming, retention policies, dedicated agent pools, IP access rules, export policies, artifact transfer.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-premium-exclusive-features-list.json"},{"id":"acr-premium-only-features","text":"ACR Premium-exclusive features include geo-replication, content trust (image tag signing), private endpoints, customer-managed keys, connected registries, artifact streaming, retention policies, dedicated agent pools, IP access rules, export policies, and artifact transfer.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-premium-only-features.json"},{"id":"acr-premium-only-geo-replication-content-trust-private-endpoints","text":"ACR Premium-only features include geo-replication, content trust (image tag signing), and private endpoints with private link.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-premium-only-geo-replication-content-trust-private-endpoints.json"},{"id":"acr-registry-dedicated-resource-group","text":"Best practice: place ACR in a dedicated resource group to avoid accidental deletion when cleaning up container host resources.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-registry-dedicated-resource-group.json"},{"id":"acr-service-principal-password-default-1-year","text":"ACR service principal passwords have a default expiry of 1 year.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-service-principal-password-default-1-year.json"},{"id":"acr-service-principal-password-default-expiry-1-year","text":"ACR service principal passwords have a default expiry of 1 year.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-service-principal-password-default-expiry-1-year.json"},{"id":"acr-sku-change-no-downtime","text":"ACR SKU changes can be done freely with no downtime, but downgrading from Premium requires removing Premium-only resources first (e.g., geo-replications, connected registries).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-sku-change-no-downtime.json"},{"id":"acr-supports-docker-helm-oci-artifacts","text":"ACR supports Docker container images (Windows and Linux), Helm charts, and OCI-format images.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-supports-docker-helm-oci-artifacts.json"},{"id":"acr-supports-oci-and-helm-charts","text":"ACR supports Docker container images, OCI-format images, and Helm charts as stored artifacts.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-supports-oci-and-helm-charts.json"},{"id":"acr-tasks-trigger-on-commit-and-base-image-update","text":"ACR Tasks can build container images on demand or automatically via triggers including source code commits and base image updates.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-tasks-trigger-on-commit-and-base-image-update.json"},{"id":"acr-three-sku-tiers","text":"Azure Container Registry offers three SKU tiers: Basic (dev/test), Standard (most production), and Premium (high-volume/enterprise).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-three-sku-tiers.json"},{"id":"acr-three-skus-basic-standard-premium","text":"ACR offers three SKU tiers: Basic (dev/test), Standard (production), Premium (high-volume/enterprise).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-three-skus-basic-standard-premium.json"},{"id":"acr-throttling-http-429-exponential-backoff","text":"ACR returns HTTP 429 errors during high request volume; mitigate with retry logic, exponential backoff, and reducing concurrency.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-throttling-http-429-exponential-backoff.json"},{"id":"acr-token-permissions-no-entra-rbac","text":"ACR token-based repository permissions are not integrated with Microsoft Entra ID and do not support RBAC role assignments.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-token-permissions-no-entra-rbac.json"},{"id":"acr-token-permissions-not-entra-rbac","text":"ACR token-based repository permissions are not integrated with Microsoft Entra ID and do not support RBAC role assignments.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-token-permissions-not-entra-rbac.json"},{"id":"acr-unified-security-model","text":"ACR provides a unified security model for container registry access: five authentication methods cover all identity scenarios, all image transfers are HTTPS/TLS-encrypted, and access governance flows through a single control plane.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-unified-security-model.json"},{"id":"acr-untagged-manifest-retention-policy","text":"Untagged (dangling/orphaned) container images in ACR can be managed via a retention policy for untagged manifests.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-untagged-manifest-retention-policy.json"},{"id":"acr-untagged-manifests-retention-policy","text":"Untagged (dangling/orphaned) container images in ACR can be managed via a retention policy for untagged manifests.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-untagged-manifests-retention-policy.json"},{"id":"acr-webhooks-basic-2-standard-10-premium-500","text":"ACR webhook limits: Basic 2, Standard 10, Premium 500.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/acr-webhooks-basic-2-standard-10-premium-500.json"},{"id":"aks-api-server-guard-throttles-non-system","text":"The API Server Guard (`aks-managed-apiserver-guard`) is a FlowSchema and PriorityLevelConfiguration that throttles non-system client requests under high load while allowing system-critical calls (e.g., kubelet) to continue.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-api-server-guard-throttles-non-system.json"},{"id":"aks-api-server-guard-throttling","text":"The `aks-managed-apiserver-guard` FlowSchema is a last-resort throttling mechanism that throttles non-system client requests to protect the API server under high load; system-critical calls like kubelet continue normally.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-api-server-guard-throttling.json"},{"id":"aks-api-server-public-by-default","text":"The AKS API server is public by default; access can be restricted via authorized IP ranges or by creating a private cluster.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-api-server-public-by-default.json"},{"id":"aks-apiserver-guard-throttles-non-system","text":"The AKS API server guard (`aks-managed-apiserver-guard`) is a FlowSchema and PriorityLevelConfiguration that throttles non-system client requests under high load while allowing system-critical calls (e.g., kubelet) to continue.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-apiserver-guard-throttles-non-system.json"},{"id":"aks-apiserver-guard-throttling","text":"The aks-managed-apiserver-guard FlowSchema is a last-resort throttling mechanism that throttles non-system client requests to protect the API server under high load; system-critical calls (e.g., kubelet) continue normally.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-apiserver-guard-throttling.json"},{"id":"aks-apparmor-seccomp-container-restriction","text":"AKS supports AppArmor and seccomp profiles to restrict container actions following the principle of least privilege.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-apparmor-seccomp-container-restriction.json"},{"id":"aks-apparmor-seccomp-container-restrictions","text":"AKS supports AppArmor and seccomp profiles to restrict container actions following the least-privilege principle.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-apparmor-seccomp-container-restrictions.json"},{"id":"aks-azure-disk-readwriteonce","text":"Azure Disk volumes in AKS are mounted as ReadWriteOnce (single node); Azure Files supports ReadWriteMany (multi-node)","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-azure-disk-readwriteonce.json"},{"id":"aks-azure-disks-single-pod-files-multi-pod","text":"Azure Disks CSI provides single-pod access; Azure Files CSI provides multiple concurrent pod access.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-azure-disks-single-pod-files-multi-pod.json"},{"id":"aks-azure-files-smb-311-nfs-41","text":"Azure Files CSI driver supports SMB 3.1.1 and NFS 4.1 protocols, enabling multi-node and multi-pod concurrent access.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-azure-files-smb-311-nfs-41.json"},{"id":"aks-bring-your-own-cni-supported","text":"AKS supports bring-your-own CNI for third-party networking plugins in addition to Azure-provided CNI options.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-bring-your-own-cni-supported.json"},{"id":"aks-cncf-certified","text":"AKS is a CNCF-certified conformant Kubernetes distribution.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-cncf-certified.json"},{"id":"aks-cncf-certified-conformance","text":"AKS is CNCF-certified, meaning it passes Kubernetes conformance testing.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-cncf-certified-conformance.json"},{"id":"aks-cncf-certified-kubernetes","text":"AKS is CNCF-certified, meaning it passes official Kubernetes conformance testing.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-cncf-certified-kubernetes.json"},{"id":"aks-compliance-soc-iso-pci-hipaa","text":"AKS is compliant with SOC, ISO, PCI DSS, and HIPAA standards.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-compliance-soc-iso-pci-hipaa.json"},{"id":"aks-confidential-computing-hardware-tee","text":"AKS supports confidential computing nodes that run containers in hardware-based trusted execution environments (TEE).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-confidential-computing-hardware-tee.json"},{"id":"aks-confidential-containers-sev-snp","text":"AKS Confidential Containers (preview) use Kata-based isolation with AMD SEV-SNP hardware memory encryption to prevent clear-text memory access.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-confidential-containers-sev-snp.json"},{"id":"aks-containerd-only-runtime","text":"containerd is the sole supported container runtime in AKS for Linux (Kubernetes 1.19+) and Windows (Kubernetes 1.23+).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-containerd-only-runtime.json"},{"id":"aks-control-plane-free","text":"The AKS control plane is provided at no cost; users only pay for worker nodes.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-control-plane-free.json"},{"id":"aks-control-plane-managed-by-azure","text":"The AKS control plane (kube-apiserver, etcd, kube-scheduler, kube-controller-manager, cloud-controller-manager) is fully managed by Azure; users manage only worker nodes.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-control-plane-managed-by-azure.json"},{"id":"aks-control-plane-scaling-multi-dimensional","text":"AKS control plane scaling is multi-dimensional — scaling one dimension (e.g., pod count) reduces capacity in others (e.g., pod churn rate).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-control-plane-scaling-multi-dimensional.json"},{"id":"aks-control-plane-scaling-multidimensional","text":"AKS auto-scales control plane components based on total cluster cores and CPU/memory pressure; scaling one dimension (e.g., pod count) limits capacity in other dimensions (e.g., pod churn rate).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-control-plane-scaling-multidimensional.json"},{"id":"aks-csi-default-1-21-intree-removed-1-26","text":"CSI drivers are default in AKS from Kubernetes 1.21; in-tree driver support removed from Kubernetes 1.26","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-csi-default-1-21-intree-removed-1-26.json"},{"id":"aks-custom-vnet-nsg-ports-443-4443-9988","text":"Custom VNet NSG rules for AKS must allow TCP 443 and 4443 from cluster subnet to API server subnet, and TCP 9988 from Azure Load Balancer to API server subnet.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-custom-vnet-nsg-ports-443-4443-9988.json"},{"id":"aks-custom-vnet-nsg-required-ports","text":"Custom VNet NSGs for AKS must allow TCP 443/4443 from cluster subnet to API server subnet, and TCP 9988 from Azure Load Balancer to API server subnet.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-custom-vnet-nsg-required-ports.json"},{"id":"aks-custom-vnet-nsg-tcp-443-4443-9988","text":"Custom VNet NSG rules for AKS must allow TCP 443 and 4443 from cluster subnet to API server subnet, and TCP 9988 from Azure Load Balancer to API server subnet.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-custom-vnet-nsg-tcp-443-4443-9988.json"},{"id":"aks-custom-vnet-zero-trust-control-plane","text":"AKS custom VNet deployments inherit the Standard Load Balancer's zero-trust default-deny posture, requiring explicit NSG allowlisting of control plane ports (TCP 443, 4443 from cluster subnet to API server, TCP 9988 from Azure LB) — making AKS custom networking a manual allowlisting exercise where missing a single rule silently breaks cluster communication.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-custom-vnet-zero-trust-control-plane.json"},{"id":"aks-default-ephemeral-os-disk","text":"AKS defaults to ephemeral OS disks when the VM SKU supports them","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-default-ephemeral-os-disk.json"},{"id":"aks-default-namespaces-four","text":"AKS clusters include four default namespaces: `default`, `kube-node-lease`, `kube-public`, and `kube-system`.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-default-namespaces-four.json"},{"id":"aks-default-os-ubuntu-linux","text":"The default operating system for AKS nodes is Ubuntu Linux; Azure Linux and Windows Server 2022 are also available as options.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-default-os-ubuntu-linux.json"},{"id":"aks-default-outbound-access-retirement-march-2026","text":"Default outbound internet access for AKS-managed VNet clusters retires March 31, 2026 (defaultOutboundAccess=false); BYO VNet clusters are unaffected.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-default-outbound-access-retirement-march-2026.json"},{"id":"aks-default-storage-class-managed-csi","text":"AKS default storage class is `managed-csi` backed by Standard SSD LRS","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-default-storage-class-managed-csi.json"},{"id":"aks-default-storage-classes-reconciled","text":"AKS reconciles built-in default storage classes — manual changes to them are overwritten by the platform.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-default-storage-classes-reconciled.json"},{"id":"aks-do-not-deploy-apps-to-kube-system","text":"Applications should not be deployed to the kube-system namespace in AKS; it is reserved for critical system pods.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-do-not-deploy-apps-to-kube-system.json"},{"id":"aks-do-not-modify-nic-level-nsgs","text":"AKS auto-manages NIC-level NSGs; users must not modify them. Custom traffic rules should use subnet-level NSGs instead.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-do-not-modify-nic-level-nsgs.json"},{"id":"aks-egress-unrestricted-by-default","text":"AKS clusters have unrestricted outbound internet access by default, but it can be restricted via outbound type configuration.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-egress-unrestricted-by-default.json"},{"id":"aks-ephemeral-os-disk-requires-128gib-temp","text":"Ephemeral OS disk default sizing in AKS requires the VM SKU to have at least 128 GiB of temporary storage.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-ephemeral-os-disk-requires-128gib-temp.json"},{"id":"aks-etcd-secrets-encryption-customer-keys","text":"Secrets stored in etcd can be encrypted at rest using customer-managed keys via AKS KMS etcd encryption.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-etcd-secrets-encryption-customer-keys.json"},{"id":"aks-flat-network-no-snat-pod-ip-visible","text":"In the AKS flat network model, egress traffic is not SNAT'd — the pod IP is directly exposed to the destination, which is useful when external services need to identify pod IPs.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-flat-network-no-snat-pod-ip-visible.json"},{"id":"aks-flatcar-immutable-cross-cloud-selinux","text":"Flatcar Container Linux (preview) is a vendor-neutral, CNCF-based immutable container OS with SELinux, usable cross-cloud on AKS.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-flatcar-immutable-cross-cloud-selinux.json"},{"id":"aks-flatcar-immutable-os-selinux","text":"Flatcar Container Linux (preview) is a vendor-neutral, CNCF-based immutable OS using SELinux, cross-cloud compatible, with cryptographic integrity protection.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-flatcar-immutable-os-selinux.json"},{"id":"aks-full-zero-trust-secrets-at-rest","text":"AKS achieves full zero-trust protection for secrets at rest when combining infrastructure-level network zero-trust (inherited from Azure's NSG/LB default-deny stack) with Key Vault's network-isolated defense-in-depth key lifecycle for external secret storage.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-full-zero-trust-secrets-at-rest.json"},{"id":"aks-hpa-requires-metrics-server","text":"The Horizontal Pod Autoscaler requires Metrics Server to be deployed in the cluster (available since Kubernetes 1.8+).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-hpa-requires-metrics-server.json"},{"id":"aks-immutable-os-guard-fips-selinux","text":"Azure Linux OS Guard (preview) is an immutable, read-only OS that enforces FIPS + Trusted Launch and uses SELinux for mandatory access control.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-immutable-os-guard-fips-selinux.json"},{"id":"aks-immutable-os-options-os-guard-flatcar","text":"AKS offers two container-optimized immutable OS options: Azure Linux OS Guard (preview, Microsoft-built, FIPS/Trusted Launch/SELinux enforced) and Flatcar Container Linux (preview, vendor-neutral, CNCF-based). Both are read-only at runtime with cryptographic integrity protection.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-immutable-os-options-os-guard-flatcar.json"},{"id":"aks-istio-service-mesh-addon","text":"AKS offers an Istio-based service mesh add-on as a managed option.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-istio-service-mesh-addon.json"},{"id":"aks-kube-proxy-every-node","text":"kube-proxy runs on every AKS node to provide network features.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-kube-proxy-every-node.json"},{"id":"aks-managed-disks-encrypted-at-rest","text":"AKS node storage uses Azure Managed Disks with automatic encryption at rest.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-managed-disks-encrypted-at-rest.json"},{"id":"aks-managed-helm-prefix","text":"AKS manages Helm releases prefixed with `aks-managed` and labels managed components with `kubernetes.azure.com/managedby: aks`.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-managed-helm-prefix.json"},{"id":"aks-managed-helm-releases-prefix","text":"AKS-managed Helm releases use the `aks-managed` prefix; increasing revision counts on these are expected and safe.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-managed-helm-releases-prefix.json"},{"id":"aks-managed-os-disk-sizing-by-vcpu","text":"AKS managed OS disk defaults scale by vCPU count: 1-7→P10/128G, 8-15→P15/256G, 16-63→P20/512G, 64+→P30/1024G","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-managed-os-disk-sizing-by-vcpu.json"},{"id":"aks-multi-az-zrs-default-k8s-1-29","text":"AKS multi-AZ clusters default to ZRS storage from Kubernetes 1.29","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-multi-az-zrs-default-k8s-1-29.json"},{"id":"aks-nap-based-on-karpenter","text":"Node Autoprovisioning (NAP) is a preview feature based on Karpenter that dynamically selects optimal VM SKU and quantity for pending pod requirements.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-nap-based-on-karpenter.json"},{"id":"aks-network-policies-pod-level","text":"Kubernetes network policies control pod-to-pod traffic based on labels, namespace, or port; NSGs control node-level traffic.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-network-policies-pod-level.json"},{"id":"aks-node-authorization-default-1-24","text":"Node authorization is enabled by default on AKS 1.24+, authorizing kubelet API requests to protect against East-West attacks.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-node-authorization-default-1-24.json"},{"id":"aks-node-pools-backed-by-vmss","text":"AKS node pools are backed by Azure VM scale sets (VMSS), and during scale-down the VMSS API determines which nodes are removed.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-node-pools-backed-by-vmss.json"},{"id":"aks-node-resource-reservations","text":"AKS reserves CPU and memory on each node for system functions, so allocatable resources are less than total node resources.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-node-resource-reservations.json"},{"id":"aks-nodes-no-public-ip","text":"AKS nodes have no public IP addresses by default and are deployed to private subnets.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-nodes-no-public-ip.json"},{"id":"aks-notary-v2-image-signatures","text":"AKS supports Notary V2 for attaching and verifying container image signatures in the registry as part of the secure supply chain.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-notary-v2-image-signatures.json"},{"id":"aks-notary-v2-image-signing","text":"AKS supports Notary V2 to attach signatures to container images for trusted deployment verification.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-notary-v2-image-signing.json"},{"id":"aks-nsg-auto-configured-for-loadbalancer","text":"Azure auto-configures NSG rules when LoadBalancer Services are created in AKS; no manual NSG configuration needed for standard scenarios.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-nsg-auto-configured-for-loadbalancer.json"},{"id":"aks-nvme-data-disks-ephemeral","text":"Ephemeral NVMe data disks in AKS provide high-performance temporary storage; data is lost on deallocation and they are managed via Azure Container Storage.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-nvme-data-disks-ephemeral.json"},{"id":"aks-nvme-data-disks-ephemeral-container-storage","text":"NVMe data disks in AKS are ephemeral (data lost on deallocation) and are managed via Azure Container Storage.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-nvme-data-disks-ephemeral-container-storage.json"},{"id":"aks-os-disk-size-immutable","text":"AKS OS disk size cannot be changed after cluster or node pool creation","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-os-disk-size-immutable.json"},{"id":"aks-os-guard-immutable-fips-selinux","text":"Azure Linux OS Guard (preview) is a Microsoft-created immutable container OS that enforces FIPS + Trusted Launch and uses SELinux for mandatory access control.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-os-guard-immutable-fips-selinux.json"},{"id":"aks-overlay-vs-flat-networking","text":"AKS offers two network models: Overlay (pods get IPs from a private CIDR separate from VNet subnet) and Flat (pods get IPs from the same VNet subnet as nodes, no SNAT on egress).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-overlay-vs-flat-networking.json"},{"id":"aks-pv-not-shared-windows-linux","text":"Persistent volumes cannot be shared between Windows and Linux pods in AKS","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-pv-not-shared-windows-linux.json"},{"id":"aks-pv-pvc-binding-one-to-one","text":"Persistent Volume (PV) to Persistent Volume Claim (PVC) binding is a 1:1 mapping in Kubernetes.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-pv-pvc-binding-one-to-one.json"},{"id":"aks-pv-to-pvc-binding-one-to-one","text":"Persistent Volume (PV) to Persistent Volume Claim (PVC) binding in Kubernetes is a 1:1 mapping — each PV binds to exactly one PVC.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-pv-to-pvc-binding-one-to-one.json"},{"id":"aks-reconciles-default-storage-classes","text":"AKS reconciles built-in default storage classes — manual changes to built-in classes are overwritten by the platform.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-reconciles-default-storage-classes.json"},{"id":"aks-registry-signatures-notary-v2","text":"Azure secure supply chain uses Notary V2 to attach signatures to container images for trusted deployment verification.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-registry-signatures-notary-v2.json"},{"id":"aks-runtime-security-defense-in-depth","text":"AKS provides runtime security defense-in-depth across compute and storage layers: AppArmor and seccomp profiles restrict container actions following least-privilege, while managed disks provide automatic encryption at rest for node storage — but the defense-in-depth model has a gap at the application data layer where Kubernetes Secrets use base64 encoding rather than encryption.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-runtime-security-defense-in-depth.json"},{"id":"aks-secret-base64-encoding-not-encryption","text":"Raw Kubernetes secret manifests store data in base64 encoding, which is not encryption — etcd-level encryption with customer-managed keys is needed for true encryption at rest.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-secret-base64-encoding-not-encryption.json"},{"id":"aks-secret-manifests-base64-not-encrypted","text":"Kubernetes Secret manifest files contain data in base64 format (encoding, not encryption) and should never be committed to source control.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-secret-manifests-base64-not-encrypted.json"},{"id":"aks-secret-watches-expensive-control-plane","text":"Watches on Kubernetes secrets are disproportionately expensive for the AKS control plane compared to watches on other resource types.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-secret-watches-expensive-control-plane.json"},{"id":"aks-secrets-base64-not-encrypted","text":"Raw Kubernetes secret manifests contain data in base64 format, which is encoding, not encryption.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-secrets-base64-not-encrypted.json"},{"id":"aks-secrets-base64-not-encryption","text":"Raw Kubernetes secret manifests contain data in base64 encoding, which is not encryption — secrets require etcd encryption at rest with customer-managed keys for actual cryptographic protection.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-secrets-base64-not-encryption.json"},{"id":"aks-secrets-end-to-end-protected","text":"AKS provides end-to-end secret protection at rest: customer-managed keys encrypt etcd storage via KMS encryption, backed by Key Vault where Microsoft cannot see or extract the encryption keys — ensuring the full chain from secret storage to key management is cryptographically secured.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-secrets-end-to-end-protected.json"},{"id":"aks-ssh-internal-ip-default-disable-preview","text":"AKS nodes have SSH enabled by default via internal IP only (no public IPs); disabling SSH entirely is available in preview.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-ssh-internal-ip-default-disable-preview.json"},{"id":"aks-ssh-internal-ip-only-default","text":"SSH on AKS nodes is enabled by default but accessible only via internal IP (no public IPs); SSH can be disabled in preview.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-ssh-internal-ip-only-default.json"},{"id":"aks-storage-complete-cross-os","text":"AKS provides complete persistent storage coverage across all access modes when Azure Disk supplies ReadWriteOnce with topology-aware zone-aligned provisioning and Azure Files supplies ReadWriteMany — unless the workload requires cross-OS persistent volume sharing in mixed Windows/Linux clusters.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-storage-complete-cross-os.json"},{"id":"aks-storage-disks-single-files-multi-netapp-throughput-containerstore-block","text":"AKS storage options: Azure Disks CSI (single pod), Azure Files CSI (multi-pod concurrent), Azure NetApp Files (high-throughput/low-latency), Azure Container Storage (fully managed block storage).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-storage-disks-single-files-multi-netapp-throughput-containerstore-block.json"},{"id":"aks-supply-chain-verification","text":"AKS supports container supply chain verification through image signing with Notary V2 and Trusted Launch for node integrity, providing verification at both the container image and infrastructure layers.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-supply-chain-verification.json"},{"id":"aks-supported-os-ubuntu-azurelinux-windows","text":"AKS supported node operating systems are Ubuntu (default Linux), Azure Linux, and Windows Server 2022.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-supported-os-ubuntu-azurelinux-windows.json"},{"id":"aks-supported-os-ubuntu-default","text":"AKS supports Ubuntu (default for Linux), Azure Linux, and Windows Server 2022 as node operating systems.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-supported-os-ubuntu-default.json"},{"id":"aks-system-vs-user-node-pools","text":"AKS distinguishes system node pools (hosting critical system pods like CoreDNS, konnectivity) from user node pools (hosting application workloads).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-system-vs-user-node-pools.json"},{"id":"aks-three-autoscaling-mechanisms","text":"AKS supports three autoscaling mechanisms: cluster autoscaler (node-level), horizontal pod autoscaler (pod-level), and KEDA (event-driven).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-three-autoscaling-mechanisms.json"},{"id":"aks-three-pricing-tiers","text":"AKS has three pricing tiers: Free, Standard, and Premium.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-three-pricing-tiers.json"},{"id":"aks-trusted-launch-gen2-secure-boot-vtpm","text":"AKS Trusted Launch requires Azure Gen2 VMs and combines secure boot with vTPM to verify boot chain integrity.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-trusted-launch-gen2-secure-boot-vtpm.json"},{"id":"aks-two-cluster-modes","text":"AKS has two cluster modes: Automatic (fully managed, preconfigured) and Standard (more control over node pools, scaling, settings).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-two-cluster-modes.json"},{"id":"aks-two-resource-groups","text":"AKS automatically creates two resource groups: one user-specified and one auto-created containing all infrastructure resources (VMs, VMSS, storage).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-two-resource-groups.json"},{"id":"aks-virtual-nodes-burst-to-aci","text":"Virtual nodes enable bursting from AKS to Azure Container Instances (ACI) for rapid serverless pod scaling.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-virtual-nodes-burst-to-aci.json"},{"id":"aks-virtual-nodes-separate-subnet","text":"Virtual nodes (ACI burst) deploy into a separate subnet within the same VNet as the AKS cluster; no application modifications are required.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-virtual-nodes-separate-subnet.json"},{"id":"aks-vm-size-dynamic-selection","text":"As of May 2025, AKS dynamically selects the default VM SKU based on available capacity and quota if not specified by the user.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-vm-size-dynamic-selection.json"},{"id":"aks-vm-size-dynamically-selected","text":"As of May 2025, AKS dynamically selects the default VM SKU based on available capacity and quota if no VM size is specified.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-vm-size-dynamically-selected.json"},{"id":"aks-vmss-determines-scale-down-node-removal","text":"For VMSS-backed AKS clusters, the VMSS API determines which nodes are removed during scale-down operations.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-vmss-determines-scale-down-node-removal.json"},{"id":"aks-waitforfirstconsumer-topology-aware","text":"Setting `volumeBindingMode: WaitForFirstConsumer` on an AKS StorageClass enables topology-aware provisioning, delaying volume binding until a pod is scheduled.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-waitforfirstconsumer-topology-aware.json"},{"id":"aks-windows-containers-multi-os-node-pools","text":"AKS supports Windows Server containers via multi-OS (Linux + Windows) node pools within a single cluster.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-windows-containers-multi-os-node-pools.json"},{"id":"aks-windows-containers-multi-os-pools","text":"AKS supports Windows Server containers via mixed OS (Linux + Windows) node pools within a single cluster.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-windows-containers-multi-os-pools.json"},{"id":"aks-windows-server-containers-multi-os-node-pools","text":"AKS supports Windows Server containers via multi-OS node pools within a single cluster.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-windows-server-containers-multi-os-node-pools.json"},{"id":"aks-windows-volume-mount-drive-letter","text":"Windows containers in AKS use drive letters for volume mount paths (e.g., `mountPath: \"d:\"`) instead of Unix-style paths.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-windows-volume-mount-drive-letter.json"},{"id":"aks-zero-trust-infrastructure-inheritance","text":"AKS in custom VNet inherits the full Azure zero-trust infrastructure stack: control plane NSG rules (TCP 443, 4443, 9988) operate within a dual-layer filtering model where the foundational infrastructure IP 168.63.129.16 — serving both DNS resolution and health probes — must be preserved while all other traffic defaults to deny, creating a four-layer dependency chain from infrastructure IP through network filtering to control plane access.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/aks-zero-trust-infrastructure-inheritance.json"},{"id":"appgw-backend-pool-cross-vnet-requires-peering-or-vpn","text":"Application Gateway backend pool members in other VNets require VNet peering or VPN gateway for connectivity.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appgw-backend-pool-cross-vnet-requires-peering-or-vpn.json"},{"id":"appgw-backend-pool-not-tied-availability-set","text":"Application Gateway backend pool members are not tied to an availability set.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appgw-backend-pool-not-tied-availability-set.json"},{"id":"appgw-backend-pool-not-tied-to-availability-set","text":"Application Gateway backend pool members are not tied to an availability set — they can be distributed freely.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appgw-backend-pool-not-tied-to-availability-set.json"},{"id":"appgw-backend-pool-not-tied-to-availability-sets","text":"Application Gateway backend pool members are not tied to availability sets and can span cross-cluster, cross-datacenter, or outside Azure (requires IP connectivity).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appgw-backend-pool-not-tied-to-availability-sets.json"},{"id":"appgw-cross-vnet-backend-requires-peering","text":"Application Gateway backend pool members in other VNets require VNet peering or VPN gateway for connectivity.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appgw-cross-vnet-backend-requires-peering.json"},{"id":"appgw-cross-vnet-requires-peering-or-vpn","text":"Application Gateway backend pool members in other VNets require VNet peering or VPN gateway for connectivity; on-premises backends need ExpressRoute or VPN tunnels.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appgw-cross-vnet-requires-peering-or-vpn.json"},{"id":"appgw-custom-health-probes-per-backend","text":"Custom health probes are recommended for each Application Gateway backend pool to monitor health with configurable hostname, path, interval, failure threshold, and response body matching.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appgw-custom-health-probes-per-backend.json"},{"id":"appgw-dns-name-stable-for-lifetime","text":"Application Gateway DNS name is stable for the gateway's lifetime — use a CNAME alias pointing to it.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appgw-dns-name-stable-for-lifetime.json"},{"id":"appgw-end-to-end-tls-via-http-settings","text":"Application Gateway end-to-end TLS encryption is controlled by the HTTP settings component (port and protocol configuration to backend).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appgw-end-to-end-tls-via-http-settings.json"},{"id":"appgw-http2-disabled-by-default-client-only","text":"Application Gateway HTTP/2 is disabled by default and works only between client and gateway (backend always HTTP/1.1)","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appgw-http2-disabled-by-default-client-only.json"},{"id":"appgw-layer-7-lb-layer-4","text":"Application Gateway is a Layer 7 load balancer; Azure Load Balancer is Layer 4","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appgw-layer-7-lb-layer-4.json"},{"id":"appgw-multisite-100-plus-websites-wildcard","text":"Application Gateway multi-site listeners support 100+ websites per gateway and wildcard hostnames (up to 5 hostnames per listener)","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appgw-multisite-100-plus-websites-wildcard.json"},{"id":"appgw-one-listener-one-routing-rule","text":"Each Application Gateway listener maps to one routing rule","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appgw-one-listener-one-routing-rule.json"},{"id":"appgw-one-public-one-private-ip-max","text":"Application Gateway supports only one public and one private frontend IP address per gateway instance.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appgw-one-public-one-private-ip-max.json"},{"id":"appgw-path-routing-url-path-only","text":"Application Gateway path-based routing matches URL path only, not query parameters","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appgw-path-routing-url-path-only.json"},{"id":"appgw-private-link-zero-trust","text":"Application Gateway supports Private Link for private connectivity to backends and private-only deployment to eliminate data exfiltration risk, enabling zero-trust architectures.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appgw-private-link-zero-trust.json"},{"id":"appgw-routes-by-http-attributes","text":"Application Gateway makes routing decisions based on HTTP attributes (URL path, host headers), not just IP/port","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appgw-routes-by-http-attributes.json"},{"id":"appgw-ssl-tls-termination-offload","text":"Application Gateway provides SSL/TLS termination, offloading encryption processing from backend servers.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appgw-ssl-tls-termination-offload.json"},{"id":"appgw-supports-autoscaling-and-zone-redundancy","text":"Application Gateway (V2) supports autoscaling based on traffic demand and zone redundancy across availability zones.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appgw-supports-autoscaling-and-zone-redundancy.json"},{"id":"appgw-supports-zone-redundancy-autoscaling","text":"Application Gateway supports autoscaling based on traffic demand and zone redundancy across availability zones for high availability.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appgw-supports-zone-redundancy-autoscaling.json"},{"id":"appgw-use-cname-for-dns","text":"A CNAME alias should be used for Application Gateway's DNS name because it does not change over the gateway's lifecycle.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appgw-use-cname-for-dns.json"},{"id":"appgw-v1-dynamic-ip-changes-on-stop-start","text":"Application Gateway V1 dynamic public IP only changes on gateway stop/start, not during failures or updates.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appgw-v1-dynamic-ip-changes-on-stop-start.json"},{"id":"appgw-v1-dynamic-ip-changes-on-stop-start-only","text":"Application Gateway V1 dynamic public IP only changes on gateway stop/start, not during failures or updates.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appgw-v1-dynamic-ip-changes-on-stop-start-only.json"},{"id":"appgw-v1-port-3389-blocked","text":"Application Gateway V1 SKU blocks port 3389; V2 blocks ports 22 (Private Link) and 53.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appgw-v1-port-3389-blocked.json"},{"id":"appgw-v2-blocked-ports-22-53","text":"Application Gateway V2 blocks ports 22 (Private Link) and 53; V1 blocks port 3389","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appgw-v2-blocked-ports-22-53.json"},{"id":"appgw-v2-ports-1-64999-v1-ports-1-65502","text":"Application Gateway V2 supports ports 1–64999 (ports 22 and 53 blocked); V1 supports ports 1–65502 (port 3389 blocked).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appgw-v2-ports-1-64999-v1-ports-1-65502.json"},{"id":"appgw-v2-static-public-ip-v1-dynamic-only","text":"Application Gateway V2 supports static public IP; V1 supports only dynamic public IP (changes only on stop/start)","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appgw-v2-static-public-ip-v1-dynamic-only.json"},{"id":"appgw-vmss-unhealthy-until-upgraded","text":"VMSS backends in Application Gateway show unhealthy until instances are upgraded after being added to the pool","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appgw-vmss-unhealthy-until-upgraded.json"},{"id":"appgw-websocket-always-enabled","text":"Application Gateway WebSocket support is enabled by default and cannot be disabled","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appgw-websocket-always-enabled.json"},{"id":"appservice-access-restrictions-max-512-rules","text":"App Service supports up to 512 access restriction rules per app, evaluated in priority order.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-access-restrictions-max-512-rules.json"},{"id":"appservice-artifacts-deploy-to-wwwroot","text":"Deployment artifacts in Azure App Service are placed at `/home/site/wwwroot`, a mounted storage location shared by all instances.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-artifacts-deploy-to-wwwroot.json"},{"id":"appservice-ase-single-tenant-dedicated-vnet","text":"App Service Environment (ASE) is single-tenant, runs inside the customer's VNet, supports ILB for private IP addresses, forces TLS 1.2, and networking rules apply to all apps in the ASE subnet.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-ase-single-tenant-dedicated-vnet.json"},{"id":"appservice-ase-single-tenant-vnet-forces-tls12","text":"App Service Environment (ASE) is single-tenant, runs inside the customer's VNet, forces TLS 1.2, and networking rules apply to all apps in the ASE subnet.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-ase-single-tenant-vnet-forces-tls12.json"},{"id":"appservice-ase-single-tenant-vnet-isolation","text":"App Service Environment (ASE) is single-tenant, runs inside the customer's VNet, supports private IP addresses via ILB, and forces TLS 1.2.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-ase-single-tenant-vnet-isolation.json"},{"id":"appservice-billing-model-by-tier","text":"App Service billing: Free = no cost; Shared = per-app CPU quota; Dedicated tiers = per VM instance; IsolatedV2 = per worker.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-billing-model-by-tier.json"},{"id":"appservice-billing-model-per-tier","text":"Azure App Service billing: Free = no cost; Shared = per-app CPU quota; Dedicated (Basic–PremiumV4) = per VM instance; IsolatedV2 = per worker","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-billing-model-per-tier.json"},{"id":"appservice-container-tag-commit-id-not-latest","text":"Container images deployed to App Service should be tagged with git commit ID or timestamp — avoid using the default `latest` tag.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-container-tag-commit-id-not-latest.json"},{"id":"appservice-default-min-tls-1-2-both-sites","text":"Azure App Service default minimum TLS version is 1.2; must be configured separately for both the web app and SCM site","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-default-min-tls-1-2-both-sites.json"},{"id":"appservice-default-minimum-tls-1-2","text":"Azure App Service default minimum TLS version is 1.2; must be configured separately for both the web app and SCM site.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-default-minimum-tls-1-2.json"},{"id":"appservice-default-minimum-tls-1-2-both-sites","text":"App Service default minimum TLS version is 1.2; must be configured separately for both the web app and the SCM site.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-default-minimum-tls-1-2-both-sites.json"},{"id":"appservice-deploy-artifacts-home-site-wwwroot","text":"App Service deployment artifacts are placed at `/home/site/wwwroot`, a mounted storage location shared by all instances.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-deploy-artifacts-home-site-wwwroot.json"},{"id":"appservice-deployment-artifacts-home-site-wwwroot","text":"App Service deployment artifacts are placed in `/home/site/wwwroot`, a mounted storage location shared by all instances.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-deployment-artifacts-home-site-wwwroot.json"},{"id":"appservice-deployment-slots-consume-plan-resources","text":"App Service deployment slots count as active apps competing for resources in the plan.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-deployment-slots-consume-plan-resources.json"},{"id":"appservice-deployment-slots-count-as-apps","text":"Azure App Service deployment slots count as active apps competing for resources within the plan","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-deployment-slots-count-as-apps.json"},{"id":"appservice-deployment-slots-staging","text":"Azure App Service deployment slots enable staging environments for zero-downtime deployments","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-deployment-slots-staging.json"},{"id":"appservice-deployment-slots-standard-tier-and-above","text":"App Service deployment slots are available at Standard tier and above; swap operations provide zero-downtime deployment and instant rollback.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-deployment-slots-standard-tier-and-above.json"},{"id":"appservice-deployment-slots-standard-tier-minimum","text":"App Service deployment slots require Standard tier or above.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-deployment-slots-standard-tier-minimum.json"},{"id":"appservice-free-managed-tls-certificates","text":"Azure App Service provides free managed TLS certificates for custom domains","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-free-managed-tls-certificates.json"},{"id":"appservice-free-shared-no-scale-out","text":"Azure App Service Free and Shared tiers cannot scale out and run on shared VMs with other customers","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-free-shared-no-scale-out.json"},{"id":"appservice-free-shared-no-scale-out-shared-vms","text":"App Service Free and Shared tiers cannot scale out and run on shared VMs with other customers.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-free-shared-no-scale-out-shared-vms.json"},{"id":"appservice-free-shared-no-scaleout-shared-vms","text":"App Service Free and Shared tiers cannot scale out and run on shared VMs with other customers.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-free-shared-no-scaleout-shared-vms.json"},{"id":"appservice-ftp-webdeploy-bypass-kudu","text":"FTP and WebDeploy deployments do not go through Kudu in App Service.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-ftp-webdeploy-bypass-kudu.json"},{"id":"appservice-gateway-vnet-integration-cross-region-windows-only","text":"Gateway-required VNet integration is the only option for cross-region connectivity without peering or classic VNet access, but is Windows-only and does not support ExpressRoute.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-gateway-vnet-integration-cross-region-windows-only.json"},{"id":"appservice-gateway-vnet-integration-windows-only-cross-region","text":"Gateway-required VNet integration is legacy, Windows plans only, does not work with ExpressRoute, but can connect cross-region without peering.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-gateway-vnet-integration-windows-only-cross-region.json"},{"id":"appservice-hybrid-connections-no-vnet-port-443","text":"App Service Hybrid Connections are outbound only, require port 443, use Azure Relay, and do not require a VNet.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-hybrid-connections-no-vnet-port-443.json"},{"id":"appservice-hybrid-connections-outbound-no-vnet","text":"Hybrid Connections are outbound only, require port 443, use Azure Relay, and do not require a VNet; Hybrid Connection Manager requires Windows Server 2012+.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-hybrid-connections-outbound-no-vnet.json"},{"id":"appservice-hybrid-connections-outbound-port-443-no-vnet","text":"App Service Hybrid Connections are outbound only, use Azure Relay on port 443, and do not require a VNet.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-hybrid-connections-outbound-port-443-no-vnet.json"},{"id":"appservice-inbound-outbound-features-separate","text":"App Service inbound features (access restrictions, private endpoints) and outbound features (VNet integration, Hybrid Connections) are distinct — inbound features cannot solve outbound problems and vice versa.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-inbound-outbound-features-separate.json"},{"id":"appservice-isolatedv2-network-and-compute-isolation","text":"Azure App Service IsolatedV2 is the only tier providing both network and compute isolation, running on dedicated VNets via App Service Environment","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-isolatedv2-network-and-compute-isolation.json"},{"id":"appservice-java-zipdeploy-jar-wardeploy-war","text":"For Java App Service deployments, use zipdeploy for JAR files and wardeploy for WAR/EAR files.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-java-zipdeploy-jar-wardeploy-war.json"},{"id":"appservice-keyvault-reference-syntax","text":"Azure App Service Key Vault references use syntax `@Microsoft.KeyVault(SecretUri=https://<vault>.vault.azure.net/secrets/<secret>)` in app settings","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-keyvault-reference-syntax.json"},{"id":"appservice-keyvault-secure-configuration","text":"App Service integrates with Key Vault for a zero-secret-in-code configuration pipeline: Key Vault references inject secrets into app settings via `@Microsoft.KeyVault(SecretUri=...)` syntax, certificates stored as Key Vault certificate objects enable autorotation, and user-assigned managed identity provides credential-free vault authentication — eliminating secrets from both application code and deployment configuration.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-keyvault-secure-configuration.json"},{"id":"appservice-kudu-separate-process-windows-container-linux","text":"Kudu runs as a separate process on Windows App Service and as a second container on Linux App Service.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-kudu-separate-process-windows-container-linux.json"},{"id":"appservice-kudu-windows-process-linux-container","text":"Kudu runs as a separate process on Windows and as a second container on Linux.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-kudu-windows-process-linux-container.json"},{"id":"appservice-local-cache-not-for-cms-use-with-slots","text":"App Service local cache is not recommended for content management sites (e.g., WordPress) and should always be combined with deployment slots to prevent downtime.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-local-cache-not-for-cms-use-with-slots.json"},{"id":"appservice-managed-instance-rdp-not-persisted","text":"Azure App Service Managed Instance persistent changes must be scripted via install scripts; RDP changes are not persisted across restarts","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-managed-instance-rdp-not-persisted.json"},{"id":"appservice-managed-instance-windows-only","text":"Azure App Service Managed Instance (preview) supports Windows only — no Linux, containers, or ASE support; requires Pv4/Pmv4 SKUs","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-managed-instance-windows-only.json"},{"id":"appservice-managed-instance-windows-only-no-linux-containers","text":"App Service Managed Instance (preview) supports Windows only — it does not support Linux, containers, or ASE.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-managed-instance-windows-only-no-linux-containers.json"},{"id":"appservice-managed-instance-windows-only-no-persist-rdp","text":"App Service Managed Instance (preview) supports Windows only, does not support Linux/containers/ASE, and RDP changes are not persisted — persistent changes must be scripted via install scripts.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-managed-instance-windows-only-no-persist-rdp.json"},{"id":"appservice-max-512-access-restriction-rules","text":"App Service supports a maximum of 512 access restriction rules per app, evaluated in priority order.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-max-512-access-restriction-rules.json"},{"id":"appservice-mutual-tls-client-certificates","text":"App Service supports mutual TLS (client certificate authentication) for B2B or internal app scenarios.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-mutual-tls-client-certificates.json"},{"id":"appservice-networking-inbound-outbound-separate","text":"App Service inbound and outbound networking features are distinct — inbound features cannot solve outbound problems and vice versa.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-networking-inbound-outbound-separate.json"},{"id":"appservice-new-apps-ftps-only-by-default","text":"New Azure App Service apps default to FTPS-only; basic auth should be disabled in favor of Entra ID OAuth 2.0.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-new-apps-ftps-only-by-default.json"},{"id":"appservice-new-apps-ftps-only-default","text":"New Azure App Service apps default to FTPS-only; basic auth should be disabled in favor of Entra ID OAuth 2.0","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-new-apps-ftps-only-default.json"},{"id":"appservice-new-apps-ftps-only-disable-basic-auth","text":"New App Service apps default to FTPS-only; basic auth should be disabled in favor of Entra ID OAuth 2.0 tokens.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-new-apps-ftps-only-disable-basic-auth.json"},{"id":"appservice-outbound-ips-change-on-vm-family-switch","text":"App Service outbound IP addresses change when switching between VM families (e.g., Standard → PremiumV2 → PremiumV3 → PremiumV4).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-outbound-ips-change-on-vm-family-switch.json"},{"id":"appservice-plan-all-apps-share-vm-instances","text":"All apps in an App Service plan share the same VM instances; scaling the plan scales all apps together.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-plan-all-apps-share-vm-instances.json"},{"id":"appservice-plan-apps-share-vm-instances","text":"All apps in an Azure App Service plan share the same VM instances; scaling the plan scales all apps together","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-plan-apps-share-vm-instances.json"},{"id":"appservice-plan-billing-model-by-tier","text":"App Service billing: Free = no cost; Shared = per-app CPU quota; Dedicated tiers = per VM instance; IsolatedV2 = per worker.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-plan-billing-model-by-tier.json"},{"id":"appservice-pmv3-memory-optimized-high-density","text":"App Service P*mv3 tiers are memory-optimized for high-density hosting (more apps per VM).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-pmv3-memory-optimized-high-density.json"},{"id":"appservice-port-445-blocked-sandbox","text":"Port 445 (SMB) is blocked by default in the App Service sandbox.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-port-445-blocked-sandbox.json"},{"id":"appservice-port-445-smb-blocked","text":"Port 445 (SMB) is blocked by default in the App Service sandbox.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-port-445-smb-blocked.json"},{"id":"appservice-possible-outbound-addresses-property","text":"The `possibleOutboundAddresses` app property lists all potential outbound IPs an app might use in a scale unit.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-possible-outbound-addresses-property.json"},{"id":"appservice-premiumv4-no-outbound-ip-exposed","text":"PremiumV4 SKU does not expose outbound IP addresses.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-premiumv4-no-outbound-ip-exposed.json"},{"id":"appservice-private-endpoints-inbound-only","text":"Azure App Service private endpoints are inbound only and prevent data exfiltration via Private Link.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-private-endpoints-inbound-only.json"},{"id":"appservice-recommended-apps-per-plan-limits","text":"Recommended max apps per App Service plan: B1/S1/P1v2 = 8, B3/S3/P3v2 = 32, P3v3/P3v4/I3v2 = 64.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-recommended-apps-per-plan-limits.json"},{"id":"appservice-scale-before-deploy-at-90pct","text":"If App Service CPU/memory exceeds 90%, scale up instance count temporarily before deploying.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-scale-before-deploy-at-90pct.json"},{"id":"appservice-scm-do-build-during-deployment-false","text":"Setting `SCM_DO_BUILD_DURING_DEPLOYMENT=false` disables Kudu builds when using an external build service (applies to Node.js and .NET).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-scm-do-build-during-deployment-false.json"},{"id":"appservice-scm-do-build-false-external-pipeline","text":"Setting `SCM_DO_BUILD_DURING_DEPLOYMENT=false` disables Kudu builds when using an external build service (Node or .NET).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-scm-do-build-false-external-pipeline.json"},{"id":"appservice-secret-injection-network-isolated","text":"App Service can achieve fully network-isolated secret injection: Key Vault references inject secrets via managed identity from a vault whose defense-in-depth key lifecycle (tiered FIPS protection, three-layer deletion safeguards) is completely isolated from public internet through Private Link's triple isolation model — secrets flow from HSM to application runtime without traversing any public network path.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-secret-injection-network-isolated.json"},{"id":"appservice-secrets-encrypted-at-rest-decrypted-at-startup","text":"App Service stores secrets encrypted at rest and decrypts them only at process startup into memory; encryption keys are rotated regularly.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-secrets-encrypted-at-rest-decrypted-at-startup.json"},{"id":"appservice-settings-encrypted-at-rest","text":"Azure App Service app settings are stored encrypted at rest and decrypted only at process startup into memory; encryption keys are rotated regularly","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-settings-encrypted-at-rest.json"},{"id":"appservice-slots-consume-plan-resources","text":"Deployment slots count as active apps and compete for resources within the App Service plan.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-slots-consume-plan-resources.json"},{"id":"appservice-slots-require-standard-tier","text":"Deployment slots in Azure App Service require Standard tier or above.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-slots-require-standard-tier.json"},{"id":"appservice-sni-tls-free-ip-tls-charged","text":"SNI-based TLS connections on App Service are free; IP-based TLS connections are charged (one free IP-based binding with Standard+ tiers).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-sni-tls-free-ip-tls-charged.json"},{"id":"appservice-supports-windows-linux-containers","text":"Azure App Service supports .NET, Java, Node.js, Python, and PHP runtimes on both Windows and Linux, plus custom container deployments","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-supports-windows-linux-containers.json"},{"id":"appservice-swap-warms-then-switches-instant-rollback","text":"App Service swap operations warm up worker instances to match production scale before switching traffic, enabling zero-downtime deployment and instant rollback by swapping again.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-swap-warms-then-switches-instant-rollback.json"},{"id":"appservice-swap-warmup-and-rollback","text":"App Service slot swap operations warm up worker instances to match production scale before switching traffic, providing zero-downtime deployment and instant rollback (swap again to roll back).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-swap-warmup-and-rollback.json"},{"id":"appservice-three-auth-layers","text":"Azure App Service has three distinct auth layers: RBAC (management plane), Easy Auth (application plane), and Managed Identities (app-to-resource)","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-three-auth-layers.json"},{"id":"appservice-three-auth-layers-rbac-easyauth-managedid","text":"App Service has three distinct auth layers: RBAC (management plane), Easy Auth (application plane), and Managed Identities (app-to-resource).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-three-auth-layers-rbac-easyauth-managedid.json"},{"id":"appservice-three-auth-layers-rbac-easyauth-mi","text":"App Service has three distinct authentication layers: RBAC (management plane), Easy Auth (application plane), and Managed Identities (app-to-resource).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-three-auth-layers-rbac-easyauth-mi.json"},{"id":"appservice-tier-scaling-boundary","text":"App Service enforces a hard scaling boundary between shared and dedicated tiers: Free/Shared cannot scale out and run on shared multi-tenant VMs, while Dedicated tiers share VM instances across all co-located apps — meaning one app's scale affects all apps in the plan.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-tier-scaling-boundary.json"},{"id":"appservice-vnet-integration-outbound-same-region","text":"App Service VNet integration is outbound only and requires the VNet to be in the same region as the app.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-vnet-integration-outbound-same-region.json"},{"id":"appservice-vnet-integration-outbound-same-region-only","text":"App Service VNet integration is outbound only and requires the VNet to be in the same region as the app.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/appservice-vnet-integration-outbound-same-region-only.json"},{"id":"azure-access-and-data-orthogonal-protection-planes","text":"Azure enforces protection through two orthogonal planes that must be independently configured: the access plane (identity-rooted default-deny across network and governance layers) prevents unauthorized data access, while the data plane (dual-layer FIPS-tiered encryption at rest plus universal TLS 1.2 in transit) ensures data remains protected even if access controls are compromised — neither plane compensates for gaps in the other.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-access-and-data-orthogonal-protection-planes.json"},{"id":"azure-activity-log-subscription-level-automatic","text":"The Activity log captures subscription-level events (e.g., VM created, VM started) and is collected automatically in a separate store.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-activity-log-subscription-level-automatic.json"},{"id":"azure-activity-log-subscription-level-separate-store","text":"The Activity Log tracks subscription-level events (VM start/stop, resource creation) in a separate store; it can be routed to Log Analytics for deeper analysis.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-activity-log-subscription-level-separate-store.json"},{"id":"azure-advisor-reliability-recommendations","text":"Azure Advisor provides built-in reliability recommendations as part of the WAF Reliability pillar.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-advisor-reliability-recommendations.json"},{"id":"azure-architecture-co-design-mandate","text":"Azure architecture design mandates simultaneous co-design of security and observability within the tier envelope: tier selection constrains the achievable security and observability ceiling (substrate choice is second-order within it), while the circular dependency between monitoring (depends on identity/governance for workspace access) and security (depends on monitoring for detection/response) prevents sequential configuration of these domains.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-architecture-co-design-mandate.json"},{"id":"azure-architecture-substrate-within-tier-envelope","text":"Compute substrate choice (AKS vs App Service) is architecturally second-order: the tier-governed triple constraint cascade bounds the achievable security, HA, and cost envelope, within which both substrates achieve equivalent defense-in-depth through the same underlying platform stack — making tier selection the first-order decision and substrate selection an implementation detail within it.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-architecture-substrate-within-tier-envelope.json"},{"id":"azure-availability-set-requires-2-plus-vms","text":"Availability Sets require 2 or more VMs to meet the 99.95% Azure SLA.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-availability-set-requires-2-plus-vms.json"},{"id":"azure-availability-set-sla-99-95-percent","text":"Availability Sets provide a 99.95% SLA and require 2 or more VMs for high availability.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-availability-set-sla-99-95-percent.json"},{"id":"azure-availability-zones-dc-loss-asr-regional-outages","text":"Availability Zones protect against datacenter loss; Azure Site Recovery protects against regional outages.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-availability-zones-dc-loss-asr-regional-outages.json"},{"id":"azure-availability-zones-sla-99-99-percent","text":"Availability Zones SLA is 99.99% with 2+ VM instances across 2+ zones.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-availability-zones-sla-99-99-percent.json"},{"id":"azure-availability-zones-vs-site-recovery-scope","text":"Availability Zones protect against datacenter-level failure; Azure Site Recovery protects against region-level outages.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-availability-zones-vs-site-recovery-scope.json"},{"id":"azure-basic-lb-no-global-peering","text":"Basic load balancer front-end IPs are not reachable across global VNet peering; Standard load balancers are required.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-basic-lb-no-global-peering.json"},{"id":"azure-blob-reservation-capacity-only","text":"Blob storage reservations cover capacity only — not bandwidth or transaction costs.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-blob-reservation-capacity-only.json"},{"id":"azure-blob-storage-reservation-capacity-only","text":"Azure Blob Storage reservations cover storage capacity only — not bandwidth or transaction costs.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-blob-storage-reservation-capacity-only.json"},{"id":"azure-block-storage-no-geo-redundancy","text":"Azure Managed Disks support only LRS and ZRS redundancy — no GRS option exists — meaning disk data is not automatically replicated across Azure regions.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-block-storage-no-geo-redundancy.json"},{"id":"azure-cache-for-redis-retirement","text":"All Azure Cache for Redis SKUs are being retired; migration to Azure Managed Redis is recommended.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-cache-for-redis-retirement.json"},{"id":"azure-cache-redis-skus-retiring","text":"All Azure Cache for Redis SKUs have been announced for retirement; Microsoft recommends migrating to Azure Managed Redis.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-cache-redis-skus-retiring.json"},{"id":"azure-cache-redis-stable-tier-investment","text":"Azure Cache for Redis provides a stable, production-grade caching platform with progressive tier capabilities from Standard through Enterprise Flash.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-cache-redis-stable-tier-investment.json"},{"id":"azure-cloud-init-supported-most-linux","text":"Cloud-init is supported on most Azure Linux distros for automated VM provisioning.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-cloud-init-supported-most-linux.json"},{"id":"azure-cloud-init-supported-most-linux-distributions","text":"Cloud-init is supported on most Azure Linux distributions for automated deployment and configuration on VMs and VMSS.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-cloud-init-supported-most-linux-distributions.json"},{"id":"azure-cloud-init-supported-most-linux-distros","text":"Cloud-init is supported on most Azure Linux distributions for automated VM provisioning.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-cloud-init-supported-most-linux-distros.json"},{"id":"azure-compute-encryption-fully-verified","text":"Both AKS and App Service achieve fully encrypted secret lifecycle from platform key management through application delivery when combining platform-independent Key Vault integration with dual-layer FIPS-tiered encryption at rest and universal TLS in transit — unless AKS Kubernetes-native secrets expose an unencrypted gap in etcd storage.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-compute-encryption-fully-verified.json"},{"id":"azure-compute-gallery-renamed-from-shared-image","text":"Azure Compute Gallery (formerly Shared Image Gallery) is needed for custom images at the 1,000-VM VMSS scale limit.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-compute-gallery-renamed-from-shared-image.json"},{"id":"azure-compute-gallery-renamed-from-shared-image-gallery","text":"Azure Compute Gallery (formerly Shared Image Gallery) enables custom images with the higher 1,000-VM scale set limit.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-compute-gallery-renamed-from-shared-image-gallery.json"},{"id":"azure-compute-secret-isolation-platform-independent","text":"Both AKS and App Service achieve fully network-isolated secret injection through the same underlying Azure platform stack (Key Vault defense-in-depth + Private Link triple isolation + managed identity + NSG default-deny), proving the secret isolation pattern is compute-platform-independent.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-compute-secret-isolation-platform-independent.json"},{"id":"azure-container-isolation-follows-platform-pattern","text":"Container supply chain network isolation (ACR Premium private endpoints through AKS custom VNet with Private Link) is a specific instance of the broader infrastructure-to-PaaS isolation model, confirming that Azure's Private Link architecture scales consistently from generic PaaS services to specialized container workflows without requiring container-specific isolation mechanisms.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-container-isolation-follows-platform-pattern.json"},{"id":"azure-container-isolation-tier-cascade-instance","text":"Container supply chain network isolation (ACR Premium → Private Link → AKS custom VNet) is a concrete instance of the platform-wide tier-cascading constraint model: ACR Premium gates private endpoints and content trust, AKS standard LB inherits zero-trust default-deny, and the compound tier requirements across both services demonstrate that multi-service deployment pipelines inherit the tier cascade at each service boundary.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-container-isolation-tier-cascade-instance.json"},{"id":"azure-container-solutions-spectrum","text":"Azure container solutions include AKS (managed K8s), Azure Red Hat OpenShift (managed OpenShift), Azure Arc-enabled Kubernetes (unmanaged K8s for hybrid/multi-cloud), Azure Container Instances (serverless containers), and Azure Container Apps (serverless app model on K8s).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-container-solutions-spectrum.json"},{"id":"azure-container-storage-k8s-native-volume-mgmt","text":"Azure Container Storage is a Kubernetes-native volume orchestration and management service that uses existing Azure Storage offerings as backing storage.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-container-storage-k8s-native-volume-mgmt.json"},{"id":"azure-cosmos-db-reservation-throughput-only","text":"Cosmos DB reservations cover provisioned throughput only — not storage or networking costs.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-cosmos-db-reservation-throughput-only.json"},{"id":"azure-cosmosdb-reservation-throughput-only","text":"Cosmos DB reservations cover provisioned throughput only — storage and networking are not included.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-cosmosdb-reservation-throughput-only.json"},{"id":"azure-cost-optimization-dual-constraint-model","text":"Azure cost optimization operates under a dual constraint: the progressive tier pattern forces selection of a price floor to unlock required capabilities (each PaaS tier gates features behind increasing cost), while reservations discount only the primary billable unit per service (compute, capacity, or throughput) — creating a cost model where tier downgrades sacrifice features and reservation purchases leave ancillary costs at pay-as-you-go rates.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-cost-optimization-dual-constraint-model.json"},{"id":"azure-cross-vnet-dns-requires-fqdn","text":"Cross-VNet DNS resolution requires using FQDNs; hostname-only queries are insufficient for resolving names across peered or linked VNets.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-cross-vnet-dns-requires-fqdn.json"},{"id":"azure-data-encryption-dual-layer-enforcement","text":"Azure data protection operates at two independently enforced encryption layers: at-rest encryption is tiered across three FIPS compliance levels (Key Vault's software/HSM/Managed HSM hierarchy), while in-transit TLS 1.2 is universally enforced as a non-optional platform standard across SQL, Monitor, Redis, and Storage.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-data-encryption-dual-layer-enforcement.json"},{"id":"azure-data-plane-access-security-gradient","text":"Azure data-plane access follows a security gradient from weakest to strongest: SAS tokens provide delegated access with varying revocability (account key SAS is least secure, user delegation SAS most secure), while the Entra identity-to-authorization chain provides full RBAC-governed access — and the gradient position is determined by how deeply a workload integrates with the identity chain, with SAS appropriate for cross-boundary sharing and Entra RBAC for intra-platform access.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-data-plane-access-security-gradient.json"},{"id":"azure-data-plane-identity-convergence","text":"Azure data plane access increasingly supports Entra ID-based authentication alongside traditional key/SAS-based access, with identity-based access providing stronger auditability and more granular RBAC controls.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-data-plane-identity-convergence.json"},{"id":"azure-databricks-reservation-dbu-only","text":"Azure Databricks reservations cover DBU costs only — not compute, storage, or networking; Databricks is the only service where reservations are not applied hourly.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-databricks-reservation-dbu-only.json"},{"id":"azure-dcr-many-to-many-with-vms","text":"A single DCR can be associated with multiple VMs, and a single VM can be associated with multiple DCRs.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-dcr-many-to-many-with-vms.json"},{"id":"azure-default-deny-cross-layer-pattern","text":"Azure enforces default-deny at orthogonal infrastructure layers: Standard Load Balancer blocks all inbound traffic until NSG rules explicitly allow it (network layer), while Storage firewall blocks all requests until trusted networks or IPs are excepted (data layer) — architects must explicitly allowlist at every traffic boundary, not just the network perimeter.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-default-deny-cross-layer-pattern.json"},{"id":"azure-default-deny-identity-rooted","text":"Azure's cross-layer default-deny enforcement (Standard LB blocks inbound, Storage firewall blocks all requests, Policy denies non-compliant resources) is itself governed by the identity-to-authorization chain: RBAC role assignments determine who can create NSG exceptions and policy exemptions, and the additive RBAC model means identity misconfiguration can silently widen the aperture of both denial layers.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-default-deny-identity-rooted.json"},{"id":"azure-default-deny-spans-governance-and-network","text":"Azure default-deny enforcement spans both governance and network layers through independent mechanisms: the network layer closes traffic by default (Standard LB inbound + storage firewall), while governance uses Policy's explicit-deny system with cumulative most-restrictive evaluation — both cascade through separate hierarchies (subnet/NSG vs management group tree) and must be independently opened.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-default-deny-spans-governance-and-network.json"},{"id":"azure-defender-cloud-auto-monitors-three-storage-items","text":"Microsoft Defender for Cloud auto-monitors three storage items: Defender for Storage enabled, secure transfer required, and network access restricted to specific networks.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-defender-cloud-auto-monitors-three-storage-items.json"},{"id":"azure-dependency-agent-required-for-vm-insights-map","text":"The Dependency Agent (separate from Azure Monitor Agent) is required for the VM Insights Map feature.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-dependency-agent-required-for-vm-insights-map.json"},{"id":"azure-design-triple-constraint-cascade","text":"Azure architecture is governed by a triple constraint cascade: tier selection is the root decision that simultaneously constrains HA, security isolation, and operational capability; identity governance independently gates who can configure and observe each tier's capabilities; and observability is the terminal constraint, doubly gated by both tier and identity — making monitoring the first capability to degrade when either upstream constraint is misconfigured.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-design-triple-constraint-cascade.json"},{"id":"azure-direct-vhd-upload-32-tib-max","text":"Azure supports direct VHD upload up to 32 TiB to a managed disk without attaching it to a VM.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-direct-vhd-upload-32-tib-max.json"},{"id":"azure-disallow-shared-key-forces-entra-id","text":"Disallowing Shared Key authorization on a storage account forces all requests to use Microsoft Entra ID.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-disallow-shared-key-forces-entra-id.json"},{"id":"azure-disk-storage-reservations-premium-ssd-p30-plus","text":"Azure Disk Storage reservations apply only to Premium SSDs P30 or larger.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-disk-storage-reservations-premium-ssd-p30-plus.json"},{"id":"azure-dns-168-63-129-16-foundational-dependency","text":"The Azure DNS virtual IP 168.63.129.16 is a foundational dependency that must be preserved in custom configurations — it serves as the recursive resolver for all VNets, bypasses NSG rules as a host node IP, and must be explicitly included when VPN Gateway uses custom DNS servers.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-dns-168-63-129-16-foundational-dependency.json"},{"id":"azure-dns-cname-restrictions","text":"CNAME records cannot coexist with other record sets of the same name and cannot be created at the zone apex.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-dns-cname-restrictions.json"},{"id":"azure-dns-complete-hybrid-resolution","text":"Azure DNS provides complete hybrid name resolution without VM-based forwarders: Private Resolver handles bidirectional on-premises/Azure resolution, and private zone data is globally resilient across regions — enabling a fully managed DNS architecture for hybrid environments.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-dns-complete-hybrid-resolution.json"},{"id":"azure-dns-cross-vnet-requires-fqdn","text":"Cross-VNet DNS resolution requires using FQDNs — hostname alone is insufficient.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-dns-cross-vnet-requires-fqdn.json"},{"id":"azure-dns-custom-must-specify-one-server","text":"Must specify at least one DNS server IP when configuring custom DNS; otherwise Azure falls back to Azure-provided name resolution.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-dns-custom-must-specify-one-server.json"},{"id":"azure-dns-custom-placeholder-reddog","text":"When custom DNS is configured, Azure provides `reddog.microsoft.com` as the placeholder DNS suffix instead of `internal.cloudapp.net`.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-dns-custom-placeholder-reddog.json"},{"id":"azure-dns-default-limits","text":"Default Azure DNS limits: 250 public DNS zones per subscription, 10,000 record sets per zone, 20 records per record set.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-dns-default-limits.json"},{"id":"azure-dns-dhcp-renew-after-change","text":"After DNS setting changes, the DHCP lease must be renewed on affected VMs for the new settings to take effect.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-dns-dhcp-renew-after-change.json"},{"id":"azure-dns-dhcp-renewal-after-dns-change","text":"After changing VNet DNS settings, DHCP leases must be renewed on all affected VMs for the new settings to take effect.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-dns-dhcp-renewal-after-dns-change.json"},{"id":"azure-dns-dhcp-renewal-required-after-dns-change","text":"After changing VNet DNS server settings, DHCP leases must be renewed on all affected VMs for the new settings to take effect.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-dns-dhcp-renewal-required-after-dns-change.json"},{"id":"azure-dns-disable-reverse-dns-empty-arpa-zone","text":"To disable default reverse DNS, create an empty Private DNS `in-addr.arpa` zone and link it to the VNet.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-dns-disable-reverse-dns-empty-arpa-zone.json"},{"id":"azure-dns-etag-concurrency","text":"Azure DNS uses Etags for optimistic concurrency control on zones and record sets; PowerShell enforces Etag checks by default.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-dns-etag-concurrency.json"},{"id":"azure-dns-five-distinct-services","text":"Azure DNS encompasses five distinct services: Public DNS, Private DNS, DNS Private Resolver, Traffic Manager, and DNS Security Policy.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-dns-five-distinct-services.json"},{"id":"azure-dns-five-services","text":"Azure DNS encompasses five distinct services: Public DNS, Private DNS, DNS Private Resolver, Traffic Manager, and DNS Security Policy.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-dns-five-services.json"},{"id":"azure-dns-four-resolution-methods","text":"Azure supports four DNS resolution methods: Azure Private DNS zones (preferred), Azure-provided name resolution, customer-managed DNS servers, and Azure DNS Private Resolver.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-dns-four-resolution-methods.json"},{"id":"azure-dns-internal-suffix-internal-cloudapp-net","text":"Azure-managed reverse DNS (PTR) records use the `.internal.cloudapp.net` suffix, and PTR records are automatically created when a VM starts and removed when the VM is stopped/deallocated.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-dns-internal-suffix-internal-cloudapp-net.json"},{"id":"azure-dns-ip-168-63-129-16","text":"Azure DNS uses the static IP address 168.63.129.16 for recursive resolution from within VNets.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-dns-ip-168-63-129-16.json"},{"id":"azure-dns-linux-requires-dnsmasq-for-caching","text":"Linux VMs require manual dnsmasq installation for DNS client-side caching; Windows has built-in DNS caching.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-dns-linux-requires-dnsmasq-for-caching.json"},{"id":"azure-dns-multi-vnet-operational-asymmetries","text":"Azure DNS has three operational asymmetries that affect multi-VNet and hybrid architectures: reverse DNS (PTR) lookups are scoped per-VNet so queries for IPs in peered VNets return NXDOMAIN, DHCP leases must be manually renewed on all affected VMs after changing VNet DNS server settings, and cross-VNet name resolution requires FQDNs because hostname-only resolution is insufficient across VNet boundaries.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-dns-multi-vnet-operational-asymmetries.json"},{"id":"azure-dns-network-foundations-category","text":"Azure DNS belongs to the Network Foundations service category alongside Azure Virtual Networks and Azure Private Link.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-dns-network-foundations-category.json"},{"id":"azure-dns-nic-settings-override-vnet","text":"Network interface DNS settings take precedence over virtual network DNS settings.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-dns-nic-settings-override-vnet.json"},{"id":"azure-dns-no-domain-purchasing","text":"Azure DNS does not support domain name purchasing — use App Service domains or third-party registrars.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-dns-no-domain-purchasing.json"},{"id":"azure-dns-no-domain-registration","text":"Azure DNS does not provide domain registration; it only hosts and resolves domains.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-dns-no-domain-registration.json"},{"id":"azure-dns-operational-risk-compounds-zero-trust","text":"The zero-trust infrastructure stack's dependence on 168.63.129.16 for both DNS resolution and health probing creates an operational coupling with DNS asymmetries: misconfiguring custom DNS (which requires preserving the infrastructure IP), failing to renew DHCP after DNS changes, or omitting FQDNs in cross-VNet queries can break the same infrastructure IP that health probes depend on — making DNS configuration errors a cascade failure point for load balancer health.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-dns-operational-risk-compounds-zero-trust.json"},{"id":"azure-dns-port-53-bypasses-nsg-custom","text":"Once custom DNS is configured, port 53 traffic bypasses subnet/NIC NSGs.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-dns-port-53-bypasses-nsg-custom.json"},{"id":"azure-dns-port-53-bypasses-nsgs-custom-dns","text":"Port 53 traffic to custom DNS servers bypasses NSGs on subnet and NIC after custom DNS is configured on the VNet.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-dns-port-53-bypasses-nsgs-custom-dns.json"},{"id":"azure-dns-private-resolver-hybrid-no-vms","text":"Azure DNS Private Resolver enables hybrid DNS resolution (on-premises to Azure and vice versa) without deploying VM-based DNS servers.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-dns-private-resolver-hybrid-no-vms.json"},{"id":"azure-dns-private-zone-autoregistration","text":"Azure Private DNS supports autoregistration, which automatically creates DNS records for VMs in private DNS zones.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-dns-private-zone-autoregistration.json"},{"id":"azure-dns-private-zones-no-custom-dns-servers","text":"Azure Private DNS resolves domain names within Azure virtual networks without needing custom DNS servers.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-dns-private-zones-no-custom-dns-servers.json"},{"id":"azure-dns-private-zones-preferred","text":"Azure Private DNS zones are the preferred solution for VNet DNS name resolution.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-dns-private-zones-preferred.json"},{"id":"azure-dns-provided-no-cross-vnet","text":"Azure-provided name resolution does not support cross-VNet resolution, manual record registration, or custom DNS suffixes.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-dns-provided-no-cross-vnet.json"},{"id":"azure-dns-resolution-infrastructure-coupled-to-asymmetries","text":"Azure DNS resolution depends on an immovable infrastructure IP (168.63.129.16) for recursive resolution and health probing while exhibiting three cross-VNet operational asymmetries (PTR scope, DHCP renewal, FQDN requirement) that compound in multi-VNet and hybrid architectures.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-dns-resolution-infrastructure-coupled-to-asymmetries.json"},{"id":"azure-dns-reverse-ptr-removed-on-deallocation","text":"Reverse DNS PTR records (using `.internal.cloudapp.net`) are automatically created when a VM starts and removed when the VM is stopped/deallocated.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-dns-reverse-ptr-removed-on-deallocation.json"},{"id":"azure-dns-reverse-ptr-scoped-per-vnet","text":"Reverse DNS (PTR) lookups are scoped to a single VNet — queries for IPs in peered VNets return NXDOMAIN.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-dns-reverse-ptr-scoped-per-vnet.json"},{"id":"azure-dns-security-policy-vnet-level-msrc","text":"DNS Security Policy operates at the virtual network level and can block known malicious domains via Microsoft Security Response Center (MSRC) threat intelligence feed.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-dns-security-policy-vnet-level-msrc.json"},{"id":"azure-dns-server-ips-not-edit-inside-vm","text":"DNS server IPs should not be edited directly inside VMs — they get erased during service heal events.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-dns-server-ips-not-edit-inside-vm.json"},{"id":"azure-dns-soa-cname-single-record-per-set","text":"SOA and CNAME record sets can only contain a single record per DNS standard constraints.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-dns-soa-cname-single-record-per-set.json"},{"id":"azure-dns-soa-host-not-modifiable","text":"The SOA record `host` property cannot be modified, and the zone serial number is not auto-updated.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-dns-soa-host-not-modifiable.json"},{"id":"azure-dns-soa-ns-auto-created","text":"NS and SOA record sets at the zone apex are auto-created and auto-deleted with the zone and cannot be independently deleted.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-dns-soa-ns-auto-created.json"},{"id":"azure-dns-soa-serial-not-auto-updated","text":"The SOA record's `host` property cannot be modified, and the serial number is not automatically updated in Azure DNS.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-dns-soa-serial-not-auto-updated.json"},{"id":"azure-dns-spf-must-use-txt-type","text":"SPF records must use TXT record type in Azure DNS — the SPF record type is deprecated per RFC 7208.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-dns-spf-must-use-txt-type.json"},{"id":"azure-dns-tags-on-zones-metadata-on-record-sets","text":"Tags apply to DNS zone resources only; metadata (name-value pairs) applies to record sets.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-dns-tags-on-zones-metadata-on-record-sets.json"},{"id":"azure-dns-throttling-per-vm","text":"Azure-provided DNS throttles queries on a per-VM basis; client-side DNS caching (e.g., dnsmasq on Linux) is recommended to mitigate throttling.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-dns-throttling-per-vm.json"},{"id":"azure-dns-ttl-per-record-set","text":"TTL in Azure DNS is set per record set (not per individual record) with a range of 1 to 2,147,483,647 seconds.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-dns-ttl-per-record-set.json"},{"id":"azure-dns-ttl-per-record-set-not-per-record","text":"DNS TTL is set per record set (not per individual record); range is 1 to 2,147,483,647 seconds.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-dns-ttl-per-record-set-not-per-record.json"},{"id":"azure-dns-txt-record-limits","text":"Azure DNS TXT record sets support up to 4,096 characters total; individual strings are limited to 255 characters.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-dns-txt-record-limits.json"},{"id":"azure-dns-wildcard-all-except-ns-soa","text":"Wildcard DNS records (using `*` as the record set name) are supported for all record types except NS and SOA.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-dns-wildcard-all-except-ns-soa.json"},{"id":"azure-dns-wildcard-all-types-except-ns-soa","text":"Azure DNS supports wildcard records for all record types except NS and SOA; wildcard record sets use `\\*` as the name.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-dns-wildcard-all-types-except-ns-soa.json"},{"id":"azure-dns-wildcard-records-all-types-except-ns-soa","text":"Azure DNS supports wildcard records for all record types except NS and SOA; use `\\*` as the record set name.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-dns-wildcard-records-all-types-except-ns-soa.json"},{"id":"azure-dns-windows-forwarding-timeout-4s","text":"Windows DNS forwarding timeout must exceed 4 seconds when forwarding to Azure DNS to avoid Private DNS zone records resolving to public IPs.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-dns-windows-forwarding-timeout-4s.json"},{"id":"azure-dns-zone-unique-within-resource-group","text":"DNS zone names must be unique within a resource group, not globally unique.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-dns-zone-unique-within-resource-group.json"},{"id":"azure-elastic-san-iscsi-protocol","text":"Azure Elastic SAN is a fully integrated SAN solution using the iSCSI protocol, designed for large-scale IO-intensive workloads (SQL, MariaDB, VMs, AKS).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-elastic-san-iscsi-protocol.json"},{"id":"azure-elastic-san-only-lrs-zrs","text":"Azure Elastic SAN supports only LRS and ZRS redundancy options.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-elastic-san-only-lrs-zrs.json"},{"id":"azure-encryption-at-rest-tiered-by-service","text":"Azure encryption at rest operates at service-specific FIPS compliance levels: Key Vault provides tiered FIPS protection (software L1 → asymmetric HSM L2 → single-tenant Managed HSM L3), Storage uses automatic encryption with optional customer-managed keys, and NetApp Files meets FIPS 140-2 at rest — each service addresses a different certification requirement in the same encryption-at-rest framework.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-encryption-at-rest-tiered-by-service.json"},{"id":"azure-entra-identity-data-plane-lifecycle","text":"Azure's identity-first data-plane convergence (managed identity as universal authentication, shared key deprecation, user delegation SAS) operates within the Entra dual-model lifecycle framework — system-assigned identities provide zero-config data-plane authentication while user-assigned identities enable cross-resource sharing, making the managed identity lifecycle tradeoff the key design decision for data-plane identity architecture across all Azure services.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-entra-identity-data-plane-lifecycle.json"},{"id":"azure-expressroute-gateway-not-udr-next-hop","text":"ExpressRoute gateway cannot be used as a UDR next hop type in service chaining scenarios.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-expressroute-gateway-not-udr-next-hop.json"},{"id":"azure-expressroute-private-no-internet","text":"Of the three on-premises connectivity options (point-to-site VPN, site-to-site VPN, ExpressRoute), only ExpressRoute provides a fully private connection that does not traverse the internet.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-expressroute-private-no-internet.json"},{"id":"azure-files-no-ra-grs-ra-gzrs","text":"Azure Files does not support RA-GRS or RA-GZRS redundancy options.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-files-no-ra-grs-ra-gzrs.json"},{"id":"azure-files-smb-nfs-rest","text":"Azure Files supports SMB, NFS, and REST API protocols and can be mounted from Windows, Linux, and macOS.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-files-smb-nfs-rest.json"},{"id":"azure-five-dimension-security-fully-orthogonal","text":"Azure achieves fully orthogonal five-dimension security enforcement — where governance, network, identity, data protection, and compute isolation can each be independently configured without hidden cross-plane dependencies — only when no infrastructure-level coupling undermines the assumed independence of the access and data protection planes.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-five-dimension-security-fully-orthogonal.json"},{"id":"azure-governance-dns-hidden-coupling","text":"Azure's two nominally orthogonal security planes (governance via RBAC/Policy and network via NSG/LB) share a hidden infrastructure coupling through DNS: the 168.63.129.16 virtual IP underpins both health probing (network plane operational dependency) and recursive name resolution (required by all service discovery), creating a single point of operational risk that compounds with DNS cross-VNet asymmetries to undermine the zero-trust assumptions of both planes.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-governance-dns-hidden-coupling.json"},{"id":"azure-governance-hierarchy-dual-enforcement","text":"Azure governance cascades through a single management group hierarchy with two complementary enforcement mechanisms: RBAC grants accumulate additively downward (broader scopes can only widen access), while Policy restrictions tighten subtractively downward (broader scopes can only narrow what resources may exist) — creating an asymmetric funnel where identity permissions expand and resource constraints contract as scope narrows.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-governance-hierarchy-dual-enforcement.json"},{"id":"azure-governance-network-orthogonal-security-planes","text":"Azure security operates through two orthogonal enforcement planes that must both be configured: governance (RBAC + Policy cascading through management group hierarchy) controls authorization, while network zero-trust (NSG + LB default-deny + infrastructure IP 168.63.129.16) controls traffic flow — breaching one plane does not bypass the other.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-governance-network-orthogonal-security-planes.json"},{"id":"azure-ha-sla-topology-determined","text":"Azure HA SLA is topology-determined across three escalating deployment patterns: Availability Sets provide 99.95% SLA requiring 2+ VMs within a single datacenter, Availability Zones provide 99.99% SLA by distributing across datacenter boundaries within a region, and regional outage protection requires Azure Site Recovery as a separate mechanism — each topology level increases availability but also increases cost and architectural complexity with distinct failure mode coverage.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-ha-sla-topology-determined.json"},{"id":"azure-ha-tier-and-zone-dual-requirement","text":"Azure zone-redundant high availability requires satisfying both tier and zone requirements independently: SQL Database excludes Basic/Standard DTU tiers from zone redundancy, VMSS requires explicit Availability Zone configuration for datacenter protection, and AKS multi-AZ defaults to ZRS storage only from Kubernetes 1.29 — making HA a compound tier+topology decision per service.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-ha-tier-and-zone-dual-requirement.json"},{"id":"azure-ha-tier-topology-dual-alignment","text":"Azure high availability design requires satisfying two independent decision axes simultaneously: tier selection determines which zone-redundancy options are available (Basic/Standard DTU excluded, Hyperscale zone-redundancy locked at creation time), while topology selection determines the SLA level (Availability Sets 99.95%, Availability Zones 99.99%, cross-region via ASR), creating a matrix where an incorrect tier choice can eliminate the desired topology option entirely.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-ha-tier-topology-dual-alignment.json"},{"id":"azure-ha-zone-redundancy-follows-tier-pattern","text":"Azure zone-redundant HA is an instance of the platform-wide progressive tier pattern: just as ACR gates enterprise features behind Premium and Redis gates clustering behind Premium, zone redundancy is gated behind higher tiers across SQL Database (excludes Basic/Standard DTU), Redis (excludes Basic), and Event Hubs (requires Premium/Dedicated) — tier selection determines not just feature access but also resilience ceiling.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-ha-zone-redundancy-follows-tier-pattern.json"},{"id":"azure-hybrid-benefit-reduces-os-licensing","text":"Azure Hybrid Benefit reduces OS licensing costs for customers with existing Windows Server or SQL Server licenses.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-hybrid-benefit-reduces-os-licensing.json"},{"id":"azure-identity-convergence-reinforces-security-pillars","text":"Azure's three independently enforced security pillars (identity, governance, network) are increasingly unified as data-plane access converges toward Entra-based managed identity as the universal authentication mechanism: the convergence reduces the number of independent credential types (deprecating shared keys and non-delegated SAS tokens) while the three-pillar model ensures this identity root is enforced consistently across governance (RBAC), network (Private Link), and cryptographic (Key Vault) boundaries.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-identity-convergence-reinforces-security-pillars.json"},{"id":"azure-identity-drives-key-protection-scope","text":"Azure identity model choices constrain cryptographic key protection scope: the Entra identity-to-authorization chain determines Key Vault data-plane access, while Key Vault's network-isolated defense-in-depth lifecycle provides tiered FIPS protection — the identity topology (system vs user-assigned MI, app registration across tenants) bounds what key protection levels are reachable.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-identity-drives-key-protection-scope.json"},{"id":"azure-identity-first-data-plane-convergence","text":"Azure is converging toward managed identity as the universal data-plane authentication mechanism: user-assigned identities are the recommended type for cross-resource sharing, user delegation SAS provides the most secure form of delegated access by requiring Entra credentials, and disabling shared key authorization forces all storage requests through Entra ID — creating a consistent identity-first access model that eliminates shared secrets from the data plane.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-identity-first-data-plane-convergence.json"},{"id":"azure-identity-verified-end-to-end-data-plane","text":"Azure achieves fully identity-verified end-to-end data-plane access — from Entra authentication through RBAC authorization to cryptographic key access — when the identity-to-authorization chain controls both Key Vault data-plane access and the data-plane security gradient across storage, messaging, and compute services.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-identity-verified-end-to-end-data-plane.json"},{"id":"azure-immutable-storage-uses-legal-holds-or-time-based-retention","text":"Immutable storage (WORM) uses legal holds or time-based retention policies — data is readable but not modifiable or deletable during retention.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-immutable-storage-uses-legal-holds-or-time-based-retention.json"},{"id":"azure-infrastructure-ip-168-63-129-16-convergence","text":"Azure's infrastructure IP 168.63.129.16 serves as a convergence point for DNS resolution and DHCP, functioning as a host node IP that bypasses NSG rules for these foundational platform services.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-infrastructure-ip-168-63-129-16-convergence.json"},{"id":"azure-internal-standard-lb-no-outbound","text":"Internal standard load balancer provides no outbound connectivity unless explicitly configured with instance-level public IP or public load balancer.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-internal-standard-lb-no-outbound.json"},{"id":"azure-lb-decision-tree","text":"Azure load-balancing decision tree: Traffic Manager (DNS/global) → Front Door (global HTTP with edge) → Application Gateway (regional L7) → Load Balancer (regional L4)","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-lb-decision-tree.json"},{"id":"azure-lb-included-with-standard-tier-vms","text":"Azure Load Balancer is included with Standard tier VMs but not all VM tiers.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-lb-included-with-standard-tier-vms.json"},{"id":"azure-linux-2-eol-nov-2025","text":"Azure Linux 2.0 security updates ended November 30, 2025; node images will be removed March 31, 2026. Must migrate to Azure Linux 3.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-linux-2-eol-nov-2025.json"},{"id":"azure-linux-dns-caching-requires-dnsmasq","text":"Linux VMs in Azure do not have built-in DNS client-side caching; `dnsmasq` must be installed manually (Windows has built-in DNS caching).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-linux-dns-caching-requires-dnsmasq.json"},{"id":"azure-load-balancer-included-standard-tier","text":"Azure Load Balancer is included with Standard tier VMs but not all tiers.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-load-balancer-included-standard-tier.json"},{"id":"azure-load-balancer-included-standard-tier-vms","text":"Azure Load Balancer is included with Standard tier VMs but not all VM tiers.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-load-balancer-included-standard-tier-vms.json"},{"id":"azure-load-balancer-layer4-appgw-layer7","text":"Azure Load Balancer provides layer-4 traffic distribution; Application Gateway provides layer-7 distribution with TLS termination.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-load-balancer-layer4-appgw-layer7.json"},{"id":"azure-log-analytics-built-on-azure-data-explorer","text":"Azure Monitor Log Analytics is built on top of Azure Data Explorer.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-log-analytics-built-on-azure-data-explorer.json"},{"id":"azure-log-analytics-default-result-limit-1000","text":"Azure Monitor Log Analytics default query result limit is 1,000 entries.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-log-analytics-default-result-limit-1000.json"},{"id":"azure-log-analytics-empty-tables-hidden-by-default","text":"Empty tables are hidden by default in the Log Analytics Tables view; can be toggled per-session or permanently via settings.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-log-analytics-empty-tables-hidden-by-default.json"},{"id":"azure-log-analytics-export-excel-csv-powerbi","text":"Log Analytics results can be exported to Excel, CSV, or Power BI via the Share menu.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-log-analytics-export-excel-csv-powerbi.json"},{"id":"azure-log-analytics-export-to-excel-csv-powerbi","text":"Log Analytics query results can be exported to Excel, CSV, or Power BI, and can be pinned to Azure dashboards, workbooks, or Grafana.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-log-analytics-export-to-excel-csv-powerbi.json"},{"id":"azure-log-analytics-kql-time-range-overrides-picker","text":"A time range set inside a KQL query overrides the Log Analytics time picker setting.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-log-analytics-kql-time-range-overrides-picker.json"},{"id":"azure-log-analytics-queries-save-to-packs-or-functions","text":"Log Analytics queries can be saved to query packs for sharing or saved as functions for reuse within other queries.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-log-analytics-queries-save-to-packs-or-functions.json"},{"id":"azure-log-analytics-queries-saved-to-packs-or-functions","text":"Log Analytics queries can be saved to query packs for sharing or saved as functions for reusable query logic.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-log-analytics-queries-saved-to-packs-or-functions.json"},{"id":"azure-log-analytics-queries-saved-to-query-packs-or-functions","text":"Log Analytics queries can be saved to query packs for sharing or as functions for reusable query logic.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-log-analytics-queries-saved-to-query-packs-or-functions.json"},{"id":"azure-log-analytics-query-scope-depends-on-entry-point","text":"Log Analytics query scope depends on entry point: Azure Monitor/workspace returns all workspace data; specific resource returns scoped data.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-log-analytics-query-scope-depends-on-entry-point.json"},{"id":"azure-log-analytics-save-to-query-packs-or-functions","text":"Log Analytics queries can be saved to query packs for sharing or saved as functions for reuse within other queries.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-log-analytics-save-to-query-packs-or-functions.json"},{"id":"azure-log-analytics-search-job-mode-for-historical","text":"Log Analytics search job mode enables running search jobs for large-scale historical queries.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-log-analytics-search-job-mode-for-historical.json"},{"id":"azure-log-analytics-simple-mode-auto-refreshes","text":"Log Analytics Simple mode auto-refreshes results without a Run button; KQL mode requires explicit Run or Shift+Enter.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-log-analytics-simple-mode-auto-refreshes.json"},{"id":"azure-log-analytics-uses-kql","text":"Azure Monitor Log Analytics uses Kusto Query Language (KQL), the same language as Azure Data Explorer.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-log-analytics-uses-kql.json"},{"id":"azure-managed-disk-direct-upload-32-tib","text":"Direct VHD upload to managed disks supports VHDs up to 32 TiB without needing to attach the disk to a VM.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-managed-disk-direct-upload-32-tib.json"},{"id":"azure-managed-disk-five-encryption-options","text":"Five managed disk encryption options: SSE (server-side encryption), ADE (Azure Disk Encryption), encryption at host, and confidential disk encryption with either platform-managed or customer-managed keys.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-managed-disk-five-encryption-options.json"},{"id":"azure-managed-disk-snapshot-single-disk-crash-consistent","text":"Managed disk snapshots are read-only, crash-consistent full copies of a single disk; they cannot coordinate across multiple disks. Images capture all disks (OS + data) from a generalized VM.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-managed-disk-snapshot-single-disk-crash-consistent.json"},{"id":"azure-managed-disk-snapshot-vs-image","text":"Snapshots are single-disk read-only point-in-time copies; images capture all disks of a generalized (Sysprep'd) VM and are used to create new VMs.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-managed-disk-snapshot-vs-image.json"},{"id":"azure-managed-disk-snapshots-independent-of-source","text":"Managed disk snapshots exist independently of the source disk and persist even if the source is deleted.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-managed-disk-snapshots-independent-of-source.json"},{"id":"azure-managed-disks-50000-per-type-per-region","text":"Subscription limit for managed disks is up to 50,000 disks per type per region per subscription.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-managed-disks-50000-per-type-per-region.json"},{"id":"azure-managed-disks-direct-upload-32-tib","text":"Direct VHD upload to Azure Managed Disks supports VHDs up to 32 TiB without requiring attachment to a VM.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-managed-disks-direct-upload-32-tib.json"},{"id":"azure-managed-disks-five-types","text":"Azure Managed Disks come in five types: Ultra Disks, Premium SSD v2, Premium SSD, Standard SSD, and Standard HDD.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-managed-disks-five-types.json"},{"id":"azure-managed-disks-image-captures-all-disks","text":"A managed disk image captures all disks (OS + data) from a generalized or deallocated VM and can be used to create many VMs.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-managed-disks-image-captures-all-disks.json"},{"id":"azure-managed-disks-limit-50000-per-type-per-sub-per-region","text":"Limit of 50,000 managed disks per type per subscription per region.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-managed-disks-limit-50000-per-type-per-sub-per-region.json"},{"id":"azure-managed-disks-lrs-11-nines-zrs-12-nines","text":"LRS managed disks provide 11 9's of durability; ZRS managed disks provide 12 9's of durability.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-managed-disks-lrs-11-nines-zrs-12-nines.json"},{"id":"azure-managed-disks-recommended-over-unmanaged","text":"Managed Disks are recommended for all new VMs; unmanaged disks can be converted to managed.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-managed-disks-recommended-over-unmanaged.json"},{"id":"azure-managed-disks-snapshot-single-disk-crash-consistent","text":"Managed disk snapshots are read-only, crash-consistent full copies of a single disk; they exist independently of the source and cannot coordinate across multiple disks.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-managed-disks-snapshot-single-disk-crash-consistent.json"},{"id":"azure-managed-disks-three-replicas-99-999-availability","text":"Managed disks store 3 replicas of data and provide 99.999% availability SLA.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-managed-disks-three-replicas-99-999-availability.json"},{"id":"azure-managed-identity-credentials-never-accessible","text":"Managed identity credentials are never accessible to the developer.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-managed-identity-credentials-never-accessible.json"},{"id":"azure-managed-identity-fic-limit-20","text":"The limit for managed identities as Federated Identity Credentials on an Entra ID application is 20.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-managed-identity-fic-limit-20.json"},{"id":"azure-managed-identity-no-cost","text":"Managed identities for Azure resources are free — no extra cost.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-managed-identity-no-cost.json"},{"id":"azure-managed-identity-system-assigned-sp-name-matches-resource","text":"System-assigned managed identity's service principal name matches the Azure resource name; for deployment slots the format is `<app-name>/slots/<slot-name>`.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-managed-identity-system-assigned-sp-name-matches-resource.json"},{"id":"azure-managed-identity-user-assigned-recommended","text":"User-assigned managed identity is the recommended type for Microsoft services.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-managed-identity-user-assigned-recommended.json"},{"id":"azure-managed-identity-workflow-four-steps","text":"Managed identity usage workflow: (1) create identity, (2) assign to source compute resource, (3) authorize on target service via RBAC, (4) use Azure.Identity or MSAL SDK in code to acquire tokens — no secrets needed.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-managed-identity-workflow-four-steps.json"},{"id":"azure-managed-lustre-hpc-ai-workloads","text":"Azure Managed Lustre is a high-performance parallel file system designed for HPC and AI workloads, integrating with Blob Storage and AKS.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-managed-lustre-hpc-ai-workloads.json"},{"id":"azure-messaging-at-least-once-universal","text":"Both Azure messaging services converge on at-least-once as the baseline delivery semantic: Event Hubs (including its Kafka endpoint) and Service Bus Peek Lock mode both guarantee message delivery but not exactly-once processing — making idempotent consumer design a universal requirement for Azure messaging workloads regardless of service choice.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-messaging-at-least-once-universal.json"},{"id":"azure-migration-cost-compound-constraint","text":"Azure migration planning faces compound constraints from two independent systems: tier gates determine the target capability envelope (SQL MI for lift-and-shift, Hyperscale for scale, Premium for network isolation), while reservation and pricing models impose a second constraint layer on ongoing cost (partial compute-only coverage, same total cost regardless of payment schedule) — both must be evaluated together since the tier choice locks in both the capability ceiling and the cost floor.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-migration-cost-compound-constraint.json"},{"id":"azure-migration-tier-gating-platform-wide","text":"Azure migration planning is tier-gated at the platform level: SQL Database and Managed Instance targets are constrained by HA/scale tier tradeoffs (General Purpose cold-cache penalty vs Hyperscale distributed architecture), while PaaS services (ACR, Redis, Event Hubs) consistently gate enterprise capabilities behind premium SKUs — architects must map every source workload requirement to the minimum Azure tier across all services in the target architecture.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-migration-tier-gating-platform-wide.json"},{"id":"azure-migration-trilemma-resolution-required","text":"Azure migration planning requires explicit resolution of a three-dimensional optimization problem: migration tier gates (SQL MI for lift-and-shift, Hyperscale for scale, Database for new workloads) compound with the tier-cost-security trilemma where selecting a price floor simultaneously constrains the security ceiling and operational capability envelope, making migration target selection inseparable from cost and security posture decisions.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-migration-trilemma-resolution-required.json"},{"id":"azure-monitor-action-group-notification-types","text":"Action groups define alert responses including email, SMS, push notifications, Azure Functions, Logic Apps, webhooks, automation runbooks, ITSM incidents, and Event Hubs.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-action-group-notification-types.json"},{"id":"azure-monitor-action-group-response-types","text":"Action groups define alert responses including email, SMS, push notifications, Azure Functions, Logic Apps, webhooks, Event Hubs, ITSM incidents, and automation runbooks.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-action-group-response-types.json"},{"id":"azure-monitor-activity-log-alerts-always-stateless","text":"All Azure Monitor activity log alerts are stateless (fire every time the condition is met).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-activity-log-alerts-always-stateless.json"},{"id":"azure-monitor-agent-private-key-rotation-90-days","text":"Azure Monitor Agent private keys are rotated every 90 days; agent-to-service communication uses certificate-based authentication on port 443 with TLS 1.2.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-agent-private-key-rotation-90-days.json"},{"id":"azure-monitor-agent-tls-12-cert-auth-port-443","text":"Azure Monitor agent communication uses TLS 1.2 (HTTPS) on port 443 with certificate-based authentication; private keys are rotated every 90 days.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-agent-tls-12-cert-auth-port-443.json"},{"id":"azure-monitor-aiops-dynamic-thresholds-smart-alerts","text":"Azure Monitor AIOps capabilities include dynamic alert thresholds and smart alerts using machine learning.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-aiops-dynamic-thresholds-smart-alerts.json"},{"id":"azure-monitor-alert-conditions-fired-or-resolved","text":"Azure Monitor alert conditions are system-managed with two states: fired or resolved.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-alert-conditions-fired-or-resolved.json"},{"id":"azure-monitor-alert-dual-track-lifecycle","text":"Azure Monitor alerts operate on a dual-track lifecycle: three alert types (metric, log, activity) trigger system-managed conditions with two states (fired/resolved) that are orthogonal to user-managed response states (New/Acknowledged/Closed) — with alert processing rules providing cross-cutting modification of triggered alerts without editing individual alert rules.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-alert-dual-track-lifecycle.json"},{"id":"azure-monitor-alert-processing-rules","text":"Alert processing rules modify triggered alerts by adding or suppressing action groups, applying filters, or scheduling rule processing windows.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-alert-processing-rules.json"},{"id":"azure-monitor-alert-processing-rules-modify-triggered","text":"Alert processing rules modify triggered alerts by adding or suppressing action groups, applying filters, or scheduling rule processing windows.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-alert-processing-rules-modify-triggered.json"},{"id":"azure-monitor-alert-processing-rules-modify-triggered-alerts","text":"Alert processing rules modify triggered alerts by adding or suppressing action groups, applying filters, or scheduling.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-alert-processing-rules-modify-triggered-alerts.json"},{"id":"azure-monitor-alert-rbac-requirements","text":"Creating alert rules requires read permission on target resource, write on resource group, and read on action group.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-alert-rbac-requirements.json"},{"id":"azure-monitor-alert-user-response-states","text":"Azure Monitor alert user response has three states: New, Acknowledged, or Closed; these do not change automatically.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-alert-user-response-states.json"},{"id":"azure-monitor-alerts-retained-30-days","text":"Azure Monitor alerts are stored for 30 days then automatically deleted.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-alerts-retained-30-days.json"},{"id":"azure-monitor-application-insights-ai-agent-monitoring","text":"Application Insights tracks AI agent performance across Microsoft Foundry, Copilot Studio, and third-party frameworks including token consumption, latency, error rates, and quality scores.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-application-insights-ai-agent-monitoring.json"},{"id":"azure-monitor-application-insights-opentelemetry-based","text":"Application Insights is an OpenTelemetry-based APM feature within Azure Monitor.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-application-insights-opentelemetry-based.json"},{"id":"azure-monitor-autoscale-is-built-in-feature","text":"Autoscale is a built-in feature of Azure Monitor that automatically adjusts resources based on application load, not a separate Azure service.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-autoscale-is-built-in-feature.json"},{"id":"azure-monitor-autoscale-is-monitor-feature","text":"Autoscale is a feature of Azure Monitor, not a standalone service.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-autoscale-is-monitor-feature.json"},{"id":"azure-monitor-auxiliary-plan-dcr-custom-tables-only","text":"The Auxiliary table plan only supports DCR-based custom tables, not standard Azure resource tables.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-auxiliary-plan-dcr-custom-tables-only.json"},{"id":"azure-monitor-basic-plan-kql-single-table-with-lookup","text":"The Basic table plan limits KQL queries to a single table, but this can be extended using the `lookup` operator.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-basic-plan-kql-single-table-with-lookup.json"},{"id":"azure-monitor-basic-plan-simple-log-alerts-only","text":"The Basic table plan supports only Simple Log Alerts, not full log search alert rules.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-basic-plan-simple-log-alerts-only.json"},{"id":"azure-monitor-complete-observability-chain","text":"Azure Monitor achieves a complete observability chain — from identity-governed data collection through retention-aligned alerting to automated response — when workspace access controls, retention tiers, and dual-ingestion pipelines all function without auxiliary table plan limitations degrading query and alert capabilities.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-complete-observability-chain.json"},{"id":"azure-monitor-complete-workspace-coverage","text":"Azure Monitor's shared workspace platform provides complete observability coverage where all telemetry flows through Log Analytics with consistent security controls, DCR-based collection, and multi-consumer access (Monitor, Sentinel, Defender).","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-complete-workspace-coverage.json"},{"id":"azure-monitor-contributor-creates-alerts-reader-views-only","text":"Monitoring Contributor role can create and manage alerts; Monitoring Reader role can only view alerts.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-contributor-creates-alerts-reader-views-only.json"},{"id":"azure-monitor-custom-metrics-10-dimension-limit","text":"Azure Monitor custom metrics are limited to 10 dimensions.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-custom-metrics-10-dimension-limit.json"},{"id":"azure-monitor-data-collection-rules-customize-telemetry","text":"Data collection rules customize and filter what telemetry data is collected from different sources in Azure Monitor.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-data-collection-rules-customize-telemetry.json"},{"id":"azure-monitor-data-platform-shared-with-sentinel-defender","text":"The Azure Monitor data platform is shared with Microsoft Defender for Cloud and Microsoft Sentinel.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-data-platform-shared-with-sentinel-defender.json"},{"id":"azure-monitor-dcr-customizes-and-filters-telemetry","text":"Data collection rules (DCRs) are the mechanism for customizing and filtering telemetry collected by Azure Monitor.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-dcr-customizes-and-filters-telemetry.json"},{"id":"azure-monitor-dcr-customizes-data-collection","text":"Data collection rules (DCRs) are the mechanism for customizing and filtering telemetry collected by Azure Monitor from different sources.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-dcr-customizes-data-collection.json"},{"id":"azure-monitor-dcrs-customize-and-filter-collection","text":"Data collection rules (DCRs) are the mechanism for customizing, filtering, and routing telemetry data during collection in Azure Monitor.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-dcrs-customize-and-filter-collection.json"},{"id":"azure-monitor-dual-ingestion-model","text":"Azure Monitor uses a dual data ingestion model: platform/custom metrics are preaggregated in a time-series database at no cost with no configuration, while logs pass through transformation pipelines that can filter and route data to optimize cost and analytics.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-dual-ingestion-model.json"},{"id":"azure-monitor-fired-alerts-read-only","text":"Fired Azure Monitor alert instances are read-only and cannot be edited.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-fired-alerts-read-only.json"},{"id":"azure-monitor-four-signal-types","text":"Azure Monitor collects four signal types: metrics, logs, traces, and events.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-four-signal-types.json"},{"id":"azure-monitor-fully-actionable-all-table-plans","text":"Azure Monitor observability is fully actionable — all ingested data can trigger alerts, feed insights, and be exported — when dual ingestion (preaggregated metrics plus log collection with DCR transformations) flows through workspaces where compound risk decisions (retention, table plans, filtering) are consistently configured across all three product consumers.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-fully-actionable-all-table-plans.json"},{"id":"azure-monitor-guest-os-log-analytics-agent-retention-31-days","text":"Guest OS metrics sent via Log Analytics agent are retained for 31 days, extendable to 2 years.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-guest-os-log-analytics-agent-retention-31-days.json"},{"id":"azure-monitor-guest-os-metrics-log-analytics-31d-to-2y","text":"Guest OS metrics collected via the Log Analytics agent are retained for 31 days, extendable to 2 years.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-guest-os-metrics-log-analytics-31d-to-2y.json"},{"id":"azure-monitor-guest-os-metrics-log-analytics-agent-31-days","text":"Guest OS metrics collected via Log Analytics agent are retained for 31 days, extendable to 2 years.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-guest-os-metrics-log-analytics-agent-31-days.json"},{"id":"azure-monitor-guest-os-metrics-via-ama","text":"Guest OS metrics require an agent; Azure Monitor Agent (AMA) is the current recommended agent, replacing legacy Windows diagnostic extension and InfluxData Telegraf agent.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-guest-os-metrics-via-ama.json"},{"id":"azure-monitor-hybrid-multicloud-via-arc","text":"Azure Monitor supports hybrid and multicloud monitoring via Azure Arc and the Azure Monitor pipeline.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-hybrid-multicloud-via-arc.json"},{"id":"azure-monitor-kql-read-only-language","text":"KQL (Kusto Query Language) is a read-only query language — it can query and analyze data but cannot modify it.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-kql-read-only-language.json"},{"id":"azure-monitor-log-alert-charge-based-on-time-series","text":"Log search alerts are charged based on the number of time series created from dimension splits.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-log-alert-charge-based-on-time-series.json"},{"id":"azure-monitor-log-analytics-retention-31-days-extendable-2-years","text":"Guest OS metrics sent via Log Analytics agent are retained 31 days, extendable to 2 years.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-log-analytics-retention-31-days-extendable-2-years.json"},{"id":"azure-monitor-log-analytics-workspaces-use-kql-monitor-workspaces-use-promql","text":"Log Analytics workspaces use KQL for querying; Azure Monitor workspaces use PromQL for querying Prometheus/OpenTelemetry metrics.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-log-analytics-workspaces-use-kql-monitor-workspaces-use-promql.json"},{"id":"azure-monitor-log-search-alert-resolution-timing","text":"Log search alert resolution varies by frequency: 10 minutes for 1-min frequency, 3 periods for 5–15 min, 2 periods for 15 min–11 hr, and 1 period for 11–12 hr frequency.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-log-search-alert-resolution-timing.json"},{"id":"azure-monitor-log-search-alerts-charged-by-time-series","text":"Log search alert rules are charged based on the number of time series created by dimension splits.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-log-search-alerts-charged-by-time-series.json"},{"id":"azure-monitor-logs-all-plans-12-year-retention","text":"All Azure Monitor Logs table plans support up to 12 years total retention.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-logs-all-plans-12-year-retention.json"},{"id":"azure-monitor-logs-analytics-plan-30-day-default-retention","text":"Analytics table plan has 30-day default analytics retention (90 days for Sentinel and Application Insights), extendable to 2 years.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-logs-analytics-plan-30-day-default-retention.json"},{"id":"azure-monitor-logs-auxiliary-plan-limitations","text":"Auxiliary table plan has no workspace replication, no Customer Lockbox support, no alerts, no insights, and no data export.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-logs-auxiliary-plan-limitations.json"},{"id":"azure-monitor-logs-basic-auxiliary-not-in-legacy-pricing","text":"Basic and Auxiliary table plans are not available in legacy pricing tiers.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-logs-basic-auxiliary-not-in-legacy-pricing.json"},{"id":"azure-monitor-logs-basic-plan-simple-log-alerts-only","text":"The Basic table plan in Azure Monitor Logs supports only Simple Log Alerts, not full alert rules.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-logs-basic-plan-simple-log-alerts-only.json"},{"id":"azure-monitor-logs-basic-plan-supports-simple-log-alerts","text":"The Basic table plan supports Simple Log Alerts and full KQL on a single table (extendable via lookup).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-logs-basic-plan-supports-simple-log-alerts.json"},{"id":"azure-monitor-logs-data-collection-transformations","text":"Data collection transformations can filter, transform, and route data during ingestion to optimize cost and analytics before it reaches workspace tables.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-logs-data-collection-transformations.json"},{"id":"azure-monitor-logs-kql-read-only","text":"KQL (Kusto Query Language) used in Azure Monitor Logs is a read-only query language — it can process and analyze data but cannot modify it.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-logs-kql-read-only.json"},{"id":"azure-monitor-logs-kql-read-only-language","text":"KQL (Kusto Query Language) is a read-only query language used by Azure Monitor Logs — it can analyze millions of records but cannot modify data.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-logs-kql-read-only-language.json"},{"id":"azure-monitor-logs-sentinel-defender-use-log-analytics","text":"Microsoft Sentinel and Microsoft Defender for Cloud both store their security data in Azure Monitor Log Analytics workspaces.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-logs-sentinel-defender-use-log-analytics.json"},{"id":"azure-monitor-logs-summary-rules-aggregate-data","text":"Summary rules aggregate data from one or more tables as it arrives, producing summarized tables for dashboards and faster queries.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-logs-summary-rules-aggregate-data.json"},{"id":"azure-monitor-logs-three-table-plans","text":"Azure Monitor Logs has three table plans: Analytics (full-featured, standard cost), Basic (reduced cost, single-table KQL), and Auxiliary (minimal cost, slow queries, no alerts/insights/export).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-logs-three-table-plans.json"},{"id":"azure-monitor-metric-alert-multi-resource-same-type-same-region","text":"A single metric alert rule can monitor multiple resources of the same type in the same Azure region.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-metric-alert-multi-resource-same-type-same-region.json"},{"id":"azure-monitor-metric-dimensions-case-insensitive","text":"Metric dimension names and values are case-insensitive in Azure Monitor.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-metric-dimensions-case-insensitive.json"},{"id":"azure-monitor-metrics-batch-api-50-resource-ids","text":"The Azure Monitor Metrics Batch REST API supports up to 50 resource IDs per call (same subscription and region).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-metrics-batch-api-50-resource-ids.json"},{"id":"azure-monitor-metrics-explorer-chart-limit-30-days","text":"Metrics Explorer chart query limit is 30 days per single chart; PromQL query max span is 32 days.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-metrics-explorer-chart-limit-30-days.json"},{"id":"azure-monitor-metrics-three-types","text":"Azure Monitor Metrics supports three types: native platform metrics (free, auto-collected), native custom metrics (from apps/agents/API), and Prometheus metrics (from Kubernetes clusters).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-metrics-three-types.json"},{"id":"azure-monitor-metrics-tls-12-cert-auth-port-443","text":"Azure Monitor agent-to-service communication uses TLS 1.2 (HTTPS) with certificate-based authentication on port 443; private keys rotated every 90 days.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-metrics-tls-12-cert-auth-port-443.json"},{"id":"azure-monitor-metrics-tls-12-keys-rotated-90-days","text":"Azure Monitor Metrics uses TLS 1.2 (HTTPS) on port 443 for all communication; private keys are rotated every 90 days.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-metrics-tls-12-keys-rotated-90-days.json"},{"id":"azure-monitor-monitoring-contributor-and-reader-roles","text":"Built-in monitoring roles: Monitoring Contributor can create and manage alerts; Monitoring Reader has view-only access.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-monitoring-contributor-and-reader-roles.json"},{"id":"azure-monitor-monitoring-contributor-creates-reader-views","text":"Monitoring Contributor role can create and manage alerts; Monitoring Reader role can only view alerts.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-monitoring-contributor-creates-reader-views.json"},{"id":"azure-monitor-moving-resource-may-lose-metric-history","text":"Moving or renaming an Azure resource may result in loss of metric history.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-moving-resource-may-lose-metric-history.json"},{"id":"azure-monitor-native-metrics-preaggregated-prometheus-raw","text":"Native platform and custom metrics are preaggregated; Prometheus metrics store raw data.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-native-metrics-preaggregated-prometheus-raw.json"},{"id":"azure-monitor-observability-depends-on-identity-chain","text":"Azure Monitor's compound risk surface is coupled to the identity system: Sentinel and Defender (sharing Log Analytics workspaces) consume identity events generated by Entra, while workspace access itself is governed by the same RBAC model that the Entra identity-to-authorization chain provides — monitoring integrity depends on identity integrity.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-observability-depends-on-identity-chain.json"},{"id":"azure-monitor-observability-security-compound-risk","text":"Azure Monitor workspace configuration is a compound risk surface: workspace decisions (retention, table plans, DCR filtering) simultaneously affect three security/observability consumers (Monitor, Sentinel, Defender) AND govern the dual-track alert lifecycle (system-managed conditions + user response states), making workspace misconfiguration a single point of failure for both security posture and operational alerting.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-observability-security-compound-risk.json"},{"id":"azure-monitor-pipeline-extends-to-on-premises","text":"Azure Monitor pipeline extends data collection into on-premises data centers and other cloud providers, supporting large volumes or intermittent connectivity.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-pipeline-extends-to-on-premises.json"},{"id":"azure-monitor-pipeline-extends-to-onprem-multicloud","text":"Azure Monitor pipeline extends data collection to on-premises data centers and other cloud providers for large volumes or intermittent connectivity.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-pipeline-extends-to-onprem-multicloud.json"},{"id":"azure-monitor-platform-custom-metrics-preaggregated","text":"Platform and custom metrics are preaggregated in the time-series database; Prometheus metrics store raw data.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-platform-custom-metrics-preaggregated.json"},{"id":"azure-monitor-platform-metrics-long-term-via-diagnostic-settings","text":"Platform metrics can be sent to a Log Analytics workspace via diagnostic settings for long-term retention beyond the 93-day default.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-platform-metrics-long-term-via-diagnostic-settings.json"},{"id":"azure-monitor-platform-metrics-no-config-no-cost","text":"Azure Monitor platform metrics are automatically collected from Azure resources at 1-minute frequency, require no configuration, and have no cost.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-platform-metrics-no-config-no-cost.json"},{"id":"azure-monitor-platform-metrics-retention-93-days","text":"Azure Monitor platform metrics are retained for 93 days.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-platform-metrics-retention-93-days.json"},{"id":"azure-monitor-prometheus-alerts-use-promql","text":"Prometheus alerts use PromQL-based rules against Azure Monitor managed Prometheus metrics (a separate alert type from metric alerts).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-prometheus-alerts-use-promql.json"},{"id":"azure-monitor-prometheus-metrics-retention-18-months","text":"Azure Monitor Prometheus metrics are retained for 18 months.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-prometheus-metrics-retention-18-months.json"},{"id":"azure-monitor-prometheus-metrics-stored-in-workspace","text":"Prometheus metrics are stored in an Azure Monitor workspace (not subscription-level like native metrics).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-prometheus-metrics-stored-in-workspace.json"},{"id":"azure-monitor-recommended-alert-rules-vms-aks-law","text":"Recommended (out-of-the-box) alert rules are available for VMs, AKS, and Log Analytics workspaces.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-recommended-alert-rules-vms-aks-law.json"},{"id":"azure-monitor-retention-alerting-alignment-required","text":"Azure Monitor operational effectiveness requires alignment between the three-tier retention model (93 days platform metrics, 18 months Prometheus, up to 12 years logs) and the dual-track alert lifecycle (system-managed fired/resolved conditions with 30-day alert retention plus user response states) — because alert investigation depends on the underlying metric or log data still being within its retention window, and alert processing rules must account for data availability at each retention tier.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-retention-alerting-alignment-required.json"},{"id":"azure-monitor-retention-three-tier-model","text":"Azure Monitor retention spans three distinct tiers with increasing configurability: platform metrics (93 days fixed), Prometheus metrics (18 months), and logs (up to 12 years across all table plans).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-retention-three-tier-model.json"},{"id":"azure-monitor-sentinel-defender-store-data-in-log-analytics","text":"Microsoft Sentinel and Microsoft Defender for Cloud both store their data in Log Analytics workspaces.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-sentinel-defender-store-data-in-log-analytics.json"},{"id":"azure-monitor-sentinel-defender-store-in-log-analytics-workspaces","text":"Microsoft Sentinel and Microsoft Defender for Cloud both store their data in Log Analytics workspaces.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-sentinel-defender-store-in-log-analytics-workspaces.json"},{"id":"azure-monitor-shared-platform-three-consumers","text":"Azure Monitor's data platform serves as shared infrastructure for three security and observability products — Azure Monitor itself, Microsoft Sentinel, and Microsoft Defender for Cloud — with each inheriting the same retention, alerting, and transformation capabilities.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-shared-platform-three-consumers.json"},{"id":"azure-monitor-six-alert-types","text":"Azure Monitor has six alert types: metric alerts, log search alerts, simple log search alerts (preview), activity log alerts, smart detection alerts, and Prometheus alerts.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-six-alert-types.json"},{"id":"azure-monitor-smart-alerts-dynamic-thresholds-ml","text":"Azure Monitor alerts support dynamic thresholds and smart alerts using machine learning for intelligent alerting.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-smart-alerts-dynamic-thresholds-ml.json"},{"id":"azure-monitor-smart-detection-alerts","text":"Smart detection alerts are Application Insights auto-detection of performance and failure anomalies.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-smart-detection-alerts.json"},{"id":"azure-monitor-smart-detection-alerts-app-insights","text":"Smart detection alerts automatically detect performance and failure anomalies in Application Insights resources.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-smart-detection-alerts-app-insights.json"},{"id":"azure-monitor-smart-detection-from-app-insights","text":"Smart detection alerts originate from Application Insights and auto-detect performance and failure anomalies.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-smart-detection-from-app-insights.json"},{"id":"azure-monitor-stateful-alert-condition-persists-after-deletion","text":"Stateful alert condition state is stored even after the 30-day alert deletion to prevent re-firing.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-stateful-alert-condition-persists-after-deletion.json"},{"id":"azure-monitor-stateful-condition-persists-after-deletion","text":"Stateful alert condition state is stored even after the 30-day alert deletion period to prevent re-firing of the same condition.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-stateful-condition-persists-after-deletion.json"},{"id":"azure-monitor-stateful-metric-alert-resolves-after-3-checks","text":"Stateful metric alerts resolve after 3 consecutive checks where the condition is not met.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-stateful-metric-alert-resolves-after-3-checks.json"},{"id":"azure-monitor-three-alert-types","text":"Azure Monitor has three alert types: metric alerts (regular interval, dynamic thresholds), log alerts (KQL-based, predefined frequency), and activity log alerts (includes Resource Health and Service Health).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-three-alert-types.json"},{"id":"azure-monitor-three-alert-types-metric-log-activity","text":"Azure Monitor has three alert types: metric alerts (regular interval, dynamic thresholds), log alerts (KQL-based), and activity log alerts (including Resource Health and Service Health).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-three-alert-types-metric-log-activity.json"},{"id":"azure-monitor-three-alert-types-vm","text":"Three VM alert types: metric alerts (regular interval, support dynamic thresholds), log alerts (KQL-based, predefined frequency), and activity log alerts (includes Resource Health and Service Health).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-three-alert-types-vm.json"},{"id":"azure-monitor-three-metric-types","text":"Azure Monitor Metrics supports three metric types: native platform metrics (free, auto-collected), native custom metrics (from apps/agents/API), and Prometheus metrics (from Kubernetes clusters).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-three-metric-types.json"},{"id":"azure-monitor-two-query-languages-kql-promql","text":"Azure Monitor uses two query languages: KQL for logs/traces in Log Analytics workspaces and PromQL for metrics in Azure Monitor workspaces.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-two-query-languages-kql-promql.json"},{"id":"azure-monitor-workspace-security-nexus","text":"Log Analytics workspace configuration decisions (retention periods, table plans, DCR filtering) directly impact three product consumers — Azure Monitor, Microsoft Sentinel, and Microsoft Defender for Cloud — because the dual ingestion model (metrics time-series + Log Analytics workspace) feeds all three through the shared data platform; a misconfigured workspace degrades security observability, not just operational monitoring.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-monitor-workspace-security-nexus.json"},{"id":"azure-netapp-files-99-99-availability","text":"Azure NetApp Files provides 99.99% availability with locally redundant storage.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-netapp-files-99-99-availability.json"},{"id":"azure-netapp-files-9999-availability","text":"Azure NetApp Files provides 99.99% availability with locally redundant storage.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-netapp-files-9999-availability.json"},{"id":"azure-netapp-files-9999-sla","text":"Azure NetApp Files provides 99.99% availability SLA with locally redundant storage; data-in-flight encryption is optional (not default).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-netapp-files-9999-sla.json"},{"id":"azure-netapp-files-9999-sla-locally-redundant","text":"Azure NetApp Files provides 99.99% availability SLA with locally redundant storage; data-in-flight encryption is optional (not default).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-netapp-files-9999-sla-locally-redundant.json"},{"id":"azure-netapp-files-fips-140-2-at-rest","text":"Azure NetApp Files uses FIPS 140-2 standard for encryption at rest.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-netapp-files-fips-140-2-at-rest.json"},{"id":"azure-netapp-files-inflight-not-encrypted-by-default","text":"Azure NetApp Files data-in-flight is NOT encrypted by default; NFSv4.1 and SMB3 encryption can be optionally enabled. Data stays within the customer-owned VNet.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-netapp-files-inflight-not-encrypted-by-default.json"},{"id":"azure-netapp-files-inflight-not-encrypted-default","text":"Azure NetApp Files data-in-flight is NOT encrypted by default; NFSv4.1 and SMB3 encryption can be optionally enabled; data stays within the customer-owned VNet.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-netapp-files-inflight-not-encrypted-default.json"},{"id":"azure-network-dual-layer-filtering","text":"Azure network traffic requires explicit allowlisting at two independent filtering layers: Standard Load Balancer enforces zero-trust default-deny at the load balancer boundary, while NSGs provide stateful, non-disruptive rule enforcement at the subnet/NIC level — both must independently permit traffic for end-to-end flow, and rule changes at either layer are non-disruptive to established connections.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-network-dual-layer-filtering.json"},{"id":"azure-network-isolation-infrastructure-to-paas","text":"Azure provides end-to-end network isolation from infrastructure to individual PaaS instances: the zero-trust infrastructure stack (default-deny LB + NSG dual filtering + infrastructure IP preservation) secures the VNet perimeter, while Private Link (backbone routing + per-resource mapping + private DNS) extends isolation to individual service instances with no public internet traversal.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-network-isolation-infrastructure-to-paas.json"},{"id":"azure-network-zero-trust-infrastructure-stack","text":"Azure networking enforces zero-trust at two orthogonal layers — a foundational infrastructure IP (168.63.129.16) that must be preserved for DNS and health probes, and a dual-layer filtering model (LB default-deny + NSG statefulness) that blocks all other traffic by default — creating a posture where infrastructure services are implicitly trusted while application traffic requires explicit allowlisting at both layers.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-network-zero-trust-infrastructure-stack.json"},{"id":"azure-nic-no-separate-cost-limited-by-vm-size","text":"VM network interfaces have no separate cost but the number of NICs is limited by VM size.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-nic-no-separate-cost-limited-by-vm-size.json"},{"id":"azure-no-cost-for-availability-sets-or-scale-sets","text":"There is no cost for availability sets or VM scale sets themselves — only per-VM instance charges apply.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-no-cost-for-availability-sets-or-scale-sets.json"},{"id":"azure-nsg-augmented-rules-resource-manager-only","text":"Augmented security rules (multiple IPs, ranges, ports in a single rule) are only available in the Resource Manager deployment model.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-nsg-augmented-rules-resource-manager-only.json"},{"id":"azure-nsg-default-rule-priorities","text":"NSG default rules use priorities 65000, 65001, and 65500; custom rules (max priority 4096) always evaluate first.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-nsg-default-rule-priorities.json"},{"id":"azure-nsg-esp-ah-arm-templates-only","text":"ESP and AH protocols in NSG rules can only be configured via ARM templates, not through the Azure portal.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-nsg-esp-ah-arm-templates-only.json"},{"id":"azure-nsg-five-tuple-matching","text":"NSG rules evaluate traffic using five-tuple matching: source, source port, destination, destination port, and protocol.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-nsg-five-tuple-matching.json"},{"id":"azure-nsg-flow-logs-retiring-sept-2027","text":"NSG flow logs are retiring on September 30, 2027; users should migrate to VNet flow logs.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-nsg-flow-logs-retiring-sept-2027.json"},{"id":"azure-nsg-host-ips-bypass-nsg","text":"Host node IPs 168.63.129.16 and 169.254.169.254 provide DHCP, DNS, IMDS, and health monitoring and are not subject to NSGs by default.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-nsg-host-ips-bypass-nsg.json"},{"id":"azure-nsg-inbound-after-nat-outbound-before","text":"NSG processes inbound traffic after public-to-private IP translation; outbound traffic is processed before private-to-public IP translation.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-nsg-inbound-after-nat-outbound-before.json"},{"id":"azure-nsg-inbound-after-nat-outbound-before-nat","text":"NSG processes inbound traffic after public-to-private IP translation; outbound traffic is processed before private-to-public IP translation.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-nsg-inbound-after-nat-outbound-before-nat.json"},{"id":"azure-nsg-nat-translation-order","text":"NSG processes inbound traffic after public-to-private IP translation; outbound traffic is processed before private-to-public IP translation.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-nsg-nat-translation-order.json"},{"id":"azure-nsg-no-duplicate-priority-and-direction","text":"You cannot create two NSG rules with the same priority and direction.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-nsg-no-duplicate-priority-and-direction.json"},{"id":"azure-nsg-no-duplicate-priority-direction","text":"Two NSG rules cannot have the same priority and direction; each priority value must be unique within a given direction (inbound or outbound).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-nsg-no-duplicate-priority-direction.json"},{"id":"azure-nsg-platform-ips-exempt-but-blockable","text":"Platform IPs `168.63.129.16` and `169.254.169.254` (DHCP, DNS, IMDS, health monitoring) are not subject to NSG rules by default but can be blocked using service tags `AzurePlatformDNS`, `AzurePlatformIMDS`, and `AzurePlatformLKM`.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-nsg-platform-ips-exempt-but-blockable.json"},{"id":"azure-nsg-platform-ips-exempt-by-default","text":"Platform IPs 168.63.129.16 and 169.254.169.254 (DHCP, DNS, IMDS, health monitoring) are exempt from NSG rules by default but can be blocked using service tags (AzurePlatformDNS, AzurePlatformIMDS, AzurePlatformLKM).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-nsg-platform-ips-exempt-by-default.json"},{"id":"azure-nsg-priority-range-100-4096","text":"NSG security rule priority ranges from 100 to 4096; lower number equals higher priority; processing stops at first match.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-nsg-priority-range-100-4096.json"},{"id":"azure-nsg-rule-removal-no-terminate","text":"Removing an NSG rule does not terminate existing connections; only new connections are affected.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-nsg-rule-removal-no-terminate.json"},{"id":"azure-nsg-same-priority-direction-unique","text":"Cannot create two NSG rules with the same priority and direction within the same NSG.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-nsg-same-priority-direction-unique.json"},{"id":"azure-nsg-security-admin-rules-precedence","text":"Security admin rules from Azure Virtual Network Manager are evaluated before NSG rules; \"Always allow\" and \"Deny\" admin rules bypass NSG evaluation entirely.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-nsg-security-admin-rules-precedence.json"},{"id":"azure-nsg-smtp-port-25-blocked","text":"Outbound port 25 (SMTP) is blocked for most subscription types except standard Enterprise Agreement; subscriptions created after November 15, 2017 generally cannot send email directly over port 25.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-nsg-smtp-port-25-blocked.json"},{"id":"azure-nsg-stateful","text":"NSGs are stateful — if outbound traffic is allowed, the inbound response is automatically allowed (and vice versa).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-nsg-stateful.json"},{"id":"azure-nva-deploy-in-separate-subnet","text":"Network virtual appliances (NVAs) must be deployed in a different subnet than the routed resources to avoid routing loops.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-nva-deploy-in-separate-subnet.json"},{"id":"azure-observability-depends-on-governance-and-identity","text":"Effective Azure observability requires alignment across three independently configurable systems: the identity chain (Entra→RBAC) determines workspace data access and who can see what telemetry, the governance hierarchy (Policy+RBAC) determines which monitoring policies are enforced across subscriptions, and the network default-deny stack (NSG+firewall) determines whether telemetry data can flow from on-premises and multi-cloud sources to Log Analytics workspaces.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-observability-depends-on-governance-and-identity.json"},{"id":"azure-observability-doubly-gated-by-tier-and-identity","text":"Azure observability effectiveness is doubly gated: the identity-governance chain determines who can access and manage monitoring data (workspace access, alert creation, role-based restrictions), while PaaS tier selection determines what telemetry is available and how deeply it can be retained — both axes must align for effective operational visibility.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-observability-doubly-gated-by-tier-and-identity.json"},{"id":"azure-observability-security-circular-dependency","text":"Azure observability and security form a circular dependency that must be resolved simultaneously: monitoring depends on governance and identity for workspace access, DCR configuration, and data integrity, while the access-and-data protection planes depend on observability (Sentinel, Defender, alert processing rules) for threat detection and compliance verification — neither can be fully effective without the other.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-observability-security-circular-dependency.json"},{"id":"azure-observability-security-codesign-tier-bounded","text":"Azure observability and security must be co-designed within the tier-determined capability envelope: the circular dependency (monitoring depends on identity for workspace access; security depends on monitoring for detection) cannot be resolved sequentially, while the tier cascade simultaneously constrains which monitoring capabilities (table plans, zone redundancy, retention) and security features (private endpoints, network isolation) are available for that co-design.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-observability-security-codesign-tier-bounded.json"},{"id":"azure-os-disk-max-4095-gib-mbr-limits-2-tib","text":"OS disk maximum capacity is 4,095 GiB; MBR limits usable size to 2 TiB (convert to GPT for more).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-os-disk-max-4095-gib-mbr-limits-2-tib.json"},{"id":"azure-paas-isolation-doubly-tier-gated","text":"PaaS network isolation is doubly tier-gated: Private Link's triple isolation model (backbone routing + per-resource mapping + private DNS) requires PaaS services at Premium tier or above for private endpoint support, while those same services independently gate operational capabilities (geo-replication, retention, protocol support) by tier — full production-grade isolation is a compound function of networking model and service tier.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-paas-isolation-doubly-tier-gated.json"},{"id":"azure-paas-network-access-dual-layer-requirement","text":"Azure PaaS network access requires alignment across two independently configured layers — infrastructure-level filtering (Standard LB default-deny + NSG stateful rules) and PaaS-level connectivity (service endpoints for subnet-scoped access or Private Link for per-instance backbone isolation) — either layer independently capable of blocking traffic if misconfigured.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-paas-network-access-dual-layer-requirement.json"},{"id":"azure-paas-progressive-tier-pattern","text":"Multiple Azure PaaS services (Redis Cache, Event Hubs, ACR) follow a progressive tier pattern where higher tiers unlock additional capabilities (clustering, Kafka support, geo-replication) rather than just scaling existing ones.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-paas-progressive-tier-pattern.json"},{"id":"azure-paas-tier-cascading-constraint-model","text":"Azure PaaS tier selection constrains available capabilities, security features, and network isolation options, making tier choice an important early design decision for PaaS-heavy workloads.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-paas-tier-cascading-constraint-model.json"},{"id":"azure-paas-tier-constrains-capability-and-security","text":"PaaS tier selection has compound impact across two independently gated dimensions: higher tiers unlock both operational capabilities (migration paths, HA options, scale features, Kafka interop) AND security posture (private link access, network isolation, content trust), meaning cost optimization directly trades against both security and migration flexibility at the platform level.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-paas-tier-constrains-capability-and-security.json"},{"id":"azure-peering-extends-zero-trust-across-vnets","text":"VNet peering extends the dual-layer filtering model across network boundaries: backbone-only routing preserves the Standard LB default-deny posture and NSG stateful evaluation across peered VNets, meaning zero-trust enforcement (explicit allowlisting at both LB and NSG layers) applies consistently within and between peered networks without requiring additional security configuration at the peering boundary.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-peering-extends-zero-trust-across-vnets.json"},{"id":"azure-performance-diagnostics-continuous-and-on-demand","text":"Performance Diagnostics has two modes: continuous (5-second intervals, preview) for ongoing monitoring and on-demand for point-in-time deep analysis.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-performance-diagnostics-continuous-and-on-demand.json"},{"id":"azure-platform-ips-exempt-from-nsgs","text":"Platform IPs `168.63.129.16` and `169.254.169.254` (DHCP, DNS, IMDS, health monitoring) are not subject to NSG rules by default, but can be blocked using service tags `AzurePlatformDNS`, `AzurePlatformIMDS`, and `AzurePlatformLKM`.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-platform-ips-exempt-from-nsgs.json"},{"id":"azure-platform-metrics-time-series-near-realtime-alerting","text":"Platform metrics are stored in Azure Monitor's time-series database and support near real-time alerting with no configuration required.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-platform-metrics-time-series-near-realtime-alerting.json"},{"id":"azure-platform-security-three-pillar-convergence","text":"Azure security converges through three independently enforced pillars that must all be configured consistently for workload-level protection: identity (Entra→RBAC→Key Vault data-plane access via tiered FIPS protection), governance (Policy+RBAC cascading through management group hierarchy with additive-then-deny evaluation), and network (zero-trust dual-layer filtering at infrastructure IP and NSG/firewall levels).","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-platform-security-three-pillar-convergence.json"},{"id":"azure-policy-arc-extends-to-multicloud-onprem","text":"Azure Arc extends Azure Policy governance to multi-cloud and on-premises datacenters.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-policy-arc-extends-to-multicloud-onprem.json"},{"id":"azure-policy-assignments-inherit-latest-definition","text":"Updating a policy definition automatically applies to all existing assignments; assignments always use the latest definition state.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-policy-assignments-inherit-latest-definition.json"},{"id":"azure-policy-assignments-use-latest-definition","text":"Updating an Azure Policy definition automatically applies to all existing assignments; assignments always use the latest definition state.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-policy-assignments-use-latest-definition.json"},{"id":"azure-policy-audit-if-not-exists-checks-child-resources","text":"auditIfNotExists assesses compliance based on a child or extension resource's properties, not the resource's own properties (unlike audit).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-policy-audit-if-not-exists-checks-child-resources.json"},{"id":"azure-policy-audit-if-not-exists-evaluates-child-resource","text":"`auditIfNotExists` assesses compliance based on a child or extension resource's properties, not the resource's own properties (unlike `audit`).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-policy-audit-if-not-exists-evaluates-child-resource.json"},{"id":"azure-policy-best-practice-always-use-initiatives","text":"Azure Policy best practice: always use initiatives even for a single policy definition, for easier scaling later.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-policy-best-practice-always-use-initiatives.json"},{"id":"azure-policy-best-practice-start-with-audit","text":"Azure Policy best practice: start with audit/auditIfNotExists effects before enforcement effects (deny, modify, deployIfNotExists).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-policy-best-practice-start-with-audit.json"},{"id":"azure-policy-compliance-evaluation-every-24-hours","text":"Azure Policy automatic compliance evaluation occurs every 24 hours.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-policy-compliance-evaluation-every-24-hours.json"},{"id":"azure-policy-cumulative-most-restrictive","text":"When multiple Azure Policy assignments layer on a resource, the net result is the cumulative most restrictive combination of all applicable effects.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-policy-cumulative-most-restrictive.json"},{"id":"azure-policy-definition-displayname-128-description-512","text":"Policy definition `displayName` max length is 128 characters; `description` max length is 512 characters.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-policy-definition-displayname-128-description-512.json"},{"id":"azure-policy-definition-location-determines-assignment-scope","text":"A policy definition location must be a management group or subscription; resources must be direct members or children of the definition location's hierarchy for assignment.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-policy-definition-location-determines-assignment-scope.json"},{"id":"azure-policy-definition-mode-all-vs-indexed","text":"Policy definition mode `all` evaluates resource groups, subscriptions, and all resource types; `indexed` only evaluates types supporting tags and location. Portal defaults to `all`; Azure CLI defaults to `null` (equivalent to `indexed`).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-policy-definition-mode-all-vs-indexed.json"},{"id":"azure-policy-displayname-128-description-512","text":"Policy definition `displayName` max length is 128 characters; `description` max length is 512 characters.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-policy-displayname-128-description-512.json"},{"id":"azure-policy-effect-evaluation-order","text":"Azure Policy effect evaluation order: disabled → append/modify → deny → audit → manual → auditIfNotExists → denyAction.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-policy-effect-evaluation-order.json"},{"id":"azure-policy-evaluation-cycle-24-hours","text":"Azure Policy automatic compliance evaluation occurs every 24 hours; additional triggers include resource create/update, new/updated assignment, and policy update.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-policy-evaluation-cycle-24-hours.json"},{"id":"azure-policy-explicit-deny-system","text":"Azure Policy is an explicit deny system: if any assignment denies a resource, the only way to allow it is to modify the denying assignment.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-policy-explicit-deny-system.json"},{"id":"azure-policy-max-20-params-definition-400-initiative","text":"Azure Policy parameter limits: 20 parameters per policy definition, 400 parameters per initiative; up to 1,000 policies per initiative.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-policy-max-20-params-definition-400-initiative.json"},{"id":"azure-policy-max-400-notscopes-per-assignment","text":"Azure Policy supports up to 400 exclusions (notScopes) per assignment.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-policy-max-400-notscopes-per-assignment.json"},{"id":"azure-policy-max-500-definitions-per-scope","text":"Azure Policy limits: 500 definitions per scope, 200 initiative definitions per scope (2,500 per tenant), 200 assignments per scope, 1,000 exemptions per scope, 400 notScopes per assignment.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-policy-max-500-definitions-per-scope.json"},{"id":"azure-policy-metadata-property-limit-1024-chars","text":"Each Azure Policy metadata property (version, category, preview, deprecated, portalReview) is capped at 1024 characters.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-policy-metadata-property-limit-1024-chars.json"},{"id":"azure-policy-mode-all-vs-indexed","text":"Policy definition mode `all` evaluates resource groups, subscriptions, and all resource types; `indexed` only evaluates types supporting tags and location. Portal defaults to `all`; Azure CLI defaults to `null` (equivalent to `indexed`).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-policy-mode-all-vs-indexed.json"},{"id":"azure-policy-rp-modes-fully-supported","text":"Fully supported Resource Provider modes for Azure Policy: `Microsoft.Kubernetes.Data`, `Microsoft.KeyVault.Data`, `Microsoft.Network.Data`.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-policy-rp-modes-fully-supported.json"},{"id":"azure-policy-rp-modes-kubernetes-keyvault-network","text":"Fully supported Resource Provider modes for Azure Policy: Microsoft.Kubernetes.Data, Microsoft.KeyVault.Data, Microsoft.Network.Data; RP modes use only audit, deny, and disabled effects.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-policy-rp-modes-kubernetes-keyvault-network.json"},{"id":"azure-policy-single-effect-per-definition","text":"Each Azure Policy definition contains exactly one effect in its policyRule.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-policy-single-effect-per-definition.json"},{"id":"azure-policy-three-types-builtin-custom-static","text":"Policy `policyType` has three values (read-only, system-set): Builtin (Microsoft-maintained), Custom (customer-created), and Static (Regulatory Compliance with Microsoft ownership).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-policy-three-types-builtin-custom-static.json"},{"id":"azure-policy-type-readonly-three-values","text":"Policy `policyType` is read-only (set by system): `Builtin` (Microsoft-provided), `Custom` (customer-created), or `Static` (Regulatory Compliance with Microsoft ownership).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-policy-type-readonly-three-values.json"},{"id":"azure-policy-versioning-major-minor-patch","text":"Azure Policy definitions use `Major.Minor.Patch` versioning: Major for breaking changes, Minor for minor rule/value changes, Patch for string/metadata/security fixes.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-policy-versioning-major-minor-patch.json"},{"id":"azure-policy-vs-rbac-state-vs-actions","text":"Azure Policy evaluates resource state; Azure RBAC evaluates user actions. Policy blocks non-compliant resources regardless of who has permission.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-policy-vs-rbac-state-vs-actions.json"},{"id":"azure-private-dns-autoregistration-creates-a-records","text":"Autoregistration in Azure Private DNS creates A records pointing to VMs' private IP addresses; records are automatically created, updated, and deleted as VMs are provisioned or removed.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-private-dns-autoregistration-creates-a-records.json"},{"id":"azure-private-dns-autoregistration-one-zone-per-vnet","text":"A VNet can be linked to only one private DNS zone for autoregistration, but multiple VNets can link to the same private zone.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-private-dns-autoregistration-one-zone-per-vnet.json"},{"id":"azure-private-dns-avoid-local-domain","text":"Best practice: do not use `.local` as a private DNS zone domain because not all operating systems support it.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-private-dns-avoid-local-domain.json"},{"id":"azure-private-dns-conditional-forwarding-requires-resolver","text":"Conditional forwarding from Azure to on-premises requires Azure DNS Private Resolver.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-private-dns-conditional-forwarding-requires-resolver.json"},{"id":"azure-private-dns-cross-vnet-no-peering","text":"Cross-VNet DNS resolution via private DNS zones works without VNet peering — only a virtual network link to the shared private zone is needed.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-private-dns-cross-vnet-no-peering.json"},{"id":"azure-private-dns-global-resource","text":"Azure Private DNS zone data is a global resource, resilient across regions — not tied to a single VNet or region.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-private-dns-global-resource.json"},{"id":"azure-private-dns-no-custom-dns-servers","text":"Azure Private DNS resolves domain names within Azure virtual networks without needing custom DNS servers.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-private-dns-no-custom-dns-servers.json"},{"id":"azure-private-dns-reverse-dns-non-autoreg-single-fqdn","text":"Reverse DNS for private IPs in non-autoregistration linked VNets returns only a single FQDN with the `internal.cloudapp.net` suffix.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-private-dns-reverse-dns-non-autoreg-single-fqdn.json"},{"id":"azure-private-dns-reverse-dns-two-fqdns","text":"Reverse DNS for private IPs in autoregistration-enabled VNets returns two FQDNs: one with internal.cloudapp.net suffix and one with the private zone suffix.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-private-dns-reverse-dns-two-fqdns.json"},{"id":"azure-private-dns-split-horizon","text":"Azure Private DNS supports split-horizon DNS: a private and public DNS zone can share the same name, returning different answers depending on whether the query originates from inside the VNet or the public internet.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-private-dns-split-horizon.json"},{"id":"azure-private-dns-split-horizon-asymmetric-reverse","text":"Azure Private DNS supports split-horizon resolution where private and public zones share names, but reverse DNS behavior is asymmetric: autoregistration-enabled VNets return two FQDNs (internal.cloudapp.net + private zone), while non-autoregistration VNets return only the internal.cloudapp.net FQDN.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-private-dns-split-horizon-asymmetric-reverse.json"},{"id":"azure-private-dns-supported-record-types","text":"Azure Private DNS supports record types: A, AAAA, CNAME, MX, PTR, SOA, SRV, TXT.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-private-dns-supported-record-types.json"},{"id":"azure-private-dns-vnet-link-required","text":"A virtual network link connects a VNet to a private DNS zone, granting VMs in that VNet full access to resolve all records in the zone.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-private-dns-vnet-link-required.json"},{"id":"azure-private-link-network-security-perimeter-ga","text":"Network Security Perimeter is GA in all public cloud regions and complements Private Link for scenarios involving public internet PaaS traffic, creating a secure logical boundary.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-private-link-network-security-perimeter-ga.json"},{"id":"azure-regional-vm-no-zone-visibility","text":"A regional (non-zonal) VM has no visibility into which physical or logical zone it occupies, and a failure in any zone can potentially affect it.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-regional-vm-no-zone-visibility.json"},{"id":"azure-reservation-operational-flexibility","text":"Azure reservations combine financial commitment with three dimensions of operational flexibility: scope (which subscriptions receive the discount) can be changed after purchase, monthly and upfront payment options have identical total cost (no premium for installments), and reservations can be exchanged for the same resource type or refunded within the $50,000 rolling 12-month cap — reducing the risk of commitment lock-in.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-reservation-operational-flexibility.json"},{"id":"azure-reservation-partial-coverage-extends-to-data-services","text":"Azure reservations' partial-coverage model extends consistently from compute to data services: VM reservations cover compute-only (not networking, storage, or Windows licensing), Blob reservations cover capacity-only (not bandwidth or transactions), and SQL reservations cover compute-only (plus zone-redundancy add-on for General Purpose), confirming partial coverage is a platform-wide billing architecture pattern, not a per-service exception.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-reservation-partial-coverage-extends-to-data-services.json"},{"id":"azure-reservation-partial-coverage-full-flexibility","text":"Azure reservation strategy operates as a partial-coverage-full-flexibility model: reservations universally cover only the primary billable unit (compute for VMs/SQL, throughput for Cosmos DB, capacity for Blob, DBUs for Databricks) while providing three dimensions of operational flexibility (scope reassignment, splitting, exchange for same-type), requiring cost optimization to combine commitment planning for the covered dimension with separate management of uncovered costs.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-reservation-partial-coverage-full-flexibility.json"},{"id":"azure-reservation-partial-coverage-platform-universal","text":"Azure reservations provide partial cost coverage across multiple services (VM compute, Blob capacity, SQL DTU/vCore, Cosmos DB throughput, Databricks DBU) — each covering only specific cost dimensions while leaving other dimensions at pay-as-you-go rates.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-reservation-partial-coverage-platform-universal.json"},{"id":"azure-reservation-prepayment-deducted-first","text":"Azure Reservation costs are deducted from Azure Prepayment (formerly monetary commitment) balance first; any overage is billed separately.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-reservation-prepayment-deducted-first.json"},{"id":"azure-reservation-software-plans-cover-software-not-infra","text":"Azure Reservation software plans (SUSE Linux, Red Hat, Azure Red Hat OpenShift) cover software costs only, not VM or infrastructure costs.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-reservation-software-plans-cover-software-not-infra.json"},{"id":"azure-reservations-applied-hourly-except-databricks","text":"All Azure Reservations are applied on an hourly basis except Azure Databricks.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-reservations-applied-hourly-except-databricks.json"},{"id":"azure-reservations-billing-only-no-runtime-impact","text":"Azure Reservations are purely a billing construct and do not affect the runtime state of resources.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-reservations-billing-only-no-runtime-impact.json"},{"id":"azure-reservations-blob-capacity-only","text":"Azure Reservations for Blob Storage cover capacity only — not bandwidth or transaction costs.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-reservations-blob-capacity-only.json"},{"id":"azure-reservations-can-be-split-and-scope-changed","text":"Azure Reservations can be split into smaller parts after purchase, and the scope can be changed after purchase.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-reservations-can-be-split-and-scope-changed.json"},{"id":"azure-reservations-can-be-split-post-purchase","text":"Azure Reservations can be split into smaller parts after purchase, and instance size flexibility can be changed post-purchase.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-reservations-can-be-split-post-purchase.json"},{"id":"azure-reservations-cosmosdb-throughput-only","text":"Azure Reservations for Cosmos DB cover provisioned throughput only — not storage or networking costs.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-reservations-cosmosdb-throughput-only.json"},{"id":"azure-reservations-deduct-from-prepayment-first","text":"Azure Reservation costs deduct from Azure Prepayment (Monetary Commitment) balance first; overage is billed separately.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-reservations-deduct-from-prepayment-first.json"},{"id":"azure-reservations-exchange-same-type-or-refund","text":"Azure Reservations can be exchanged for the same resource type or refunded within the $50,000 USD rolling 12-month cap.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-reservations-exchange-same-type-or-refund.json"},{"id":"azure-reservations-exchangeable-and-splittable","text":"Azure Reservations can be exchanged for the same resource type, split into smaller parts, or refunded (up to $50,000 USD in a rolling 12-month window).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-reservations-exchangeable-and-splittable.json"},{"id":"azure-reservations-exchangeable-same-type","text":"Azure Reservations can be exchanged for same-type reservations after purchase.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-reservations-exchangeable-same-type.json"},{"id":"azure-reservations-monthly-upfront-same-cost","text":"Azure Reservation monthly and up-front payment options have the same total cost — no premium for monthly payments.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-reservations-monthly-upfront-same-cost.json"},{"id":"azure-reservations-monthly-upfront-same-total-cost","text":"Azure Reservation monthly and up-front payment options have the same total cost; there is no premium for choosing monthly payments.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-reservations-monthly-upfront-same-total-cost.json"},{"id":"azure-reservations-prepayment-deducted-first","text":"Azure Reservation costs are deducted from Azure Prepayment (formerly monetary commitment) balance first; overage is billed separately.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-reservations-prepayment-deducted-first.json"},{"id":"azure-reservations-refund-cap-50k-12-months","text":"Azure Reservations can be refunded up to $50,000 USD in a rolling 12-month window.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-reservations-refund-cap-50k-12-months.json"},{"id":"azure-reservations-scope-changeable-after-purchase","text":"Azure Reservation scope (which subscriptions/resource groups receive the discount) can be changed after purchase.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-reservations-scope-changeable-after-purchase.json"},{"id":"azure-reservations-scope-updatable-after-purchase","text":"Azure Reservation scope controls where savings apply and can be updated after purchase.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-reservations-scope-updatable-after-purchase.json"},{"id":"azure-reservations-splittable-after-purchase","text":"Azure Reservations can be split into smaller parts and have instance size flexibility changed after purchase.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-reservations-splittable-after-purchase.json"},{"id":"azure-reservations-up-to-72-percent-discount","text":"Azure Reservations provide billing discounts of up to 72% off pay-as-you-go prices with 1-year or 3-year commitment terms.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-reservations-up-to-72-percent-discount.json"},{"id":"azure-reserves-5-ips-per-subnet","text":"Azure reserves 5 IP addresses per subnet: first address (network), last address (broadcast), and 3 for Azure services.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-reserves-5-ips-per-subnet.json"},{"id":"azure-resource-manager-lock-prevents-account-deletion-not-data","text":"Resource Manager locks prevent storage account deletion but do not prevent data deletion within the account.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-resource-manager-lock-prevents-account-deletion-not-data.json"},{"id":"azure-revoke-service-sas-stored-access-policy","text":"To revoke a service SAS with a stored access policy: delete the policy, rename it, or set its expiry to the past.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-revoke-service-sas-stored-access-policy.json"},{"id":"azure-revoke-service-sas-via-stored-access-policy","text":"To revoke a service SAS with a stored access policy: delete the policy, rename it, or set its expiry to the past.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-revoke-service-sas-via-stored-access-policy.json"},{"id":"azure-revoke-user-delegation-sas-revoke-delegation-key","text":"To revoke a user delegation SAS, revoke the user delegation key, which invalidates all SAS tokens signed with that key.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-revoke-user-delegation-sas-revoke-delegation-key.json"},{"id":"azure-revoke-user-delegation-sas-revoke-key","text":"To revoke a user delegation SAS, you must revoke the user delegation key, which invalidates all SAS tokens signed with that key.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-revoke-user-delegation-sas-revoke-key.json"},{"id":"azure-revoke-user-delegation-sas-revokes-all","text":"To revoke a user delegation SAS, you revoke the user delegation key, which invalidates all SAS tokens signed with that key.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-revoke-user-delegation-sas-revokes-all.json"},{"id":"azure-secure-workload-isolation-fully-identity-verified","text":"Azure achieves fully identity-verified workload isolation when substrate-independent defense-in-depth (container and PaaS achieving equivalent protection through the same platform stack) operates within three-pillar security convergence (identity, governance, and network all consistently configured).","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-secure-workload-isolation-fully-identity-verified.json"},{"id":"azure-security-five-dimension-enforcement","text":"Azure comprehensive workload security requires independently configuring five enforcement dimensions that decompose into two orthogonal planes: the access plane (identity via Entra, authorization via RBAC, governance via Policy) and the protection plane (network isolation via LB/NSG/Private Link, encryption at-rest and in-transit) — any unconfigured dimension creates a gap regardless of the others.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-security-five-dimension-enforcement.json"},{"id":"azure-sentinel-defender-store-in-log-analytics-workspaces","text":"Microsoft Sentinel and Microsoft Defender for Cloud both store their security data in Azure Monitor Log Analytics workspaces.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-sentinel-defender-store-in-log-analytics-workspaces.json"},{"id":"azure-service-endpoints-vs-private-link","text":"Service endpoints secure PaaS resources to the VNet over public endpoints; Private Link provides private access to a specific service instance via private IP.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-service-endpoints-vs-private-link.json"},{"id":"azure-service-sas-without-stored-access-policy-cannot-be-revoked","text":"A service SAS not associated with a stored access policy cannot be revoked; best practice is to limit expiry to one hour or less.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-service-sas-without-stored-access-policy-cannot-be-revoked.json"},{"id":"azure-shared-disks-require-cluster-manager","text":"Shared managed disks (attached to multiple VMs simultaneously) require a cluster manager such as WSFC or Pacemaker.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-shared-disks-require-cluster-manager.json"},{"id":"azure-site-recovery-not-restricted-to-paired-regions","text":"Azure Site Recovery enables cross-region failover and is not restricted to paired regions.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-site-recovery-not-restricted-to-paired-regions.json"},{"id":"azure-site-recovery-supports-four-replication-sources","text":"Azure Site Recovery supports replication for Azure VMs between regions, on-premises VMs, Azure Stack VMs, and physical servers.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-site-recovery-supports-four-replication-sources.json"},{"id":"azure-site-recovery-testable-failover","text":"Azure Site Recovery supports testable failover without impacting production workloads.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-site-recovery-testable-failover.json"},{"id":"azure-soft-delete-separate-for-blobs-and-containers","text":"Soft delete is available for both blobs and containers as separate settings that must be enabled independently.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-soft-delete-separate-for-blobs-and-containers.json"},{"id":"azure-software-plans-cover-software-not-infra","text":"Azure software plan reservations (SUSE Linux, Red Hat, Azure Red Hat OpenShift) cover software costs only, not VM or infrastructure costs.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-software-plans-cover-software-not-infra.json"},{"id":"azure-spot-arg-pricing-90d-eviction-28d","text":"Azure Resource Graph Spot pricing history covers 90 days; eviction rate data covers 28 days via the SpotResources table.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-spot-arg-pricing-90d-eviction-28d.json"},{"id":"azure-spot-pricing-history-via-resource-graph","text":"Azure Spot VM pricing history (90 days) and eviction rates (28 days) can be queried programmatically via the `SpotResources` table in Azure Resource Graph.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-spot-pricing-history-via-resource-graph.json"},{"id":"azure-spot-vm-all-regions-except-21vianet","text":"Spot VMs are available in all Azure regions except Microsoft Azure operated by 21Vianet.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-spot-vm-all-regions-except-21vianet.json"},{"id":"azure-spot-vm-arg-pricing-90d-eviction-28d","text":"Azure Resource Graph provides 90 days of Spot VM pricing history and 28 days of eviction rate data via the SpotResources table.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-spot-vm-arg-pricing-90d-eviction-28d.json"},{"id":"azure-spot-vm-b-series-not-supported","text":"B-series and promo-version VM sizes are not supported for Spot VMs.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-spot-vm-b-series-not-supported.json"},{"id":"azure-spot-vm-cannot-convert-after-creation","text":"Spot VMs cannot be converted to standard VMs or vice versa after creation; the Spot flag is set only at creation time.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-spot-vm-cannot-convert-after-creation.json"},{"id":"azure-spot-vm-compound-constraint-envelope","text":"Azure Spot VM viability is bounded by a compound constraint envelope: operational constraints (eviction with ~30s notice, separate quota pool, no auto-restart, deallocate-to-reprice) combine with workload exclusions (no B-series, no promo SKUs) — a workload must tolerate all constraints simultaneously, not just individually.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-spot-vm-compound-constraint-envelope.json"},{"id":"azure-spot-vm-default-eviction-policy-deallocate","text":"The default eviction policy for Azure Spot VMs is Deallocate (not Delete); deallocated Spot VMs still consume quota and incur storage charges.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-spot-vm-default-eviction-policy-deallocate.json"},{"id":"azure-spot-vm-evicted-not-auto-restarted","text":"Evicted Spot VMs are not automatically restarted even if the spot price drops below the configured max price again.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-spot-vm-evicted-not-auto-restarted.json"},{"id":"azure-spot-vm-eviction-rate-per-hour-7day-trailing","text":"Spot VM eviction rates represent a per-hour probability of eviction based on trailing 7-day historical data.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-spot-vm-eviction-rate-per-hour-7day-trailing.json"},{"id":"azure-spot-vm-eviction-rate-per-hour-trailing-7d","text":"Spot VM eviction rate is a per-hour probability (e.g., 10% = 10% chance of eviction in the next hour) based on trailing 7-day history.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-spot-vm-eviction-rate-per-hour-trailing-7d.json"},{"id":"azure-spot-vm-eviction-rate-per-hour-trailing-7day","text":"Spot VM eviction rate is expressed as a per-hour probability based on trailing 7-day historical data.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-spot-vm-eviction-rate-per-hour-trailing-7day.json"},{"id":"azure-spot-vm-max-price-change-requires-deallocation","text":"Spot VM max price can only be changed after the VM is deallocated.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-spot-vm-max-price-change-requires-deallocation.json"},{"id":"azure-spot-vm-max-price-minus-1-no-price-eviction","text":"Setting a Spot VM's max price to -1 prevents price-based eviction; the VM is charged at the lesser of current spot price or standard price.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-spot-vm-max-price-minus-1-no-price-eviction.json"},{"id":"azure-spot-vm-must-deallocate-to-change-max-price","text":"A Spot VM must be deallocated before its maximum price can be changed.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-spot-vm-must-deallocate-to-change-max-price.json"},{"id":"azure-spot-vm-no-sla-30s-eviction","text":"Azure Spot VMs have no SLA and can be evicted with approximately 30 seconds' notice via Azure Scheduled Events.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-spot-vm-no-sla-30s-eviction.json"},{"id":"azure-spot-vm-not-auto-restarted-after-eviction","text":"Evicted Spot VMs are not automatically restarted, even if the spot price drops below the configured max price again.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-spot-vm-not-auto-restarted-after-eviction.json"},{"id":"azure-spot-vm-not-available-21vianet","text":"Azure Spot VMs are available in all regions except Microsoft Azure operated by 21Vianet.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-spot-vm-not-available-21vianet.json"},{"id":"azure-spot-vm-operational-constraints","text":"Azure Spot VM constraints compound: the default Deallocate eviction policy preserves disks but continues consuming quota from a separate Spot-specific pool, evicted VMs are never automatically restarted even when prices drop below the configured maximum, and setting max price to -1 prevents only price-based eviction (capacity eviction remains possible) — operators must build explicit recovery automation and quota monitoring.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-spot-vm-operational-constraints.json"},{"id":"azure-spot-vm-separate-quota-pool","text":"Spot VMs use a separate quota pool from standard VMs, shared between Spot VMs and Spot scale-set instances.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-spot-vm-separate-quota-pool.json"},{"id":"azure-spot-vm-supported-offer-types","text":"Spot VMs are supported for Enterprise Agreement, Pay-as-you-go (003P), Sponsored (0036P/0136P), and CSP offer types.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-spot-vm-supported-offer-types.json"},{"id":"azure-spot-vm-viable-mixed-production-workload","text":"Azure Spot VMs combined with VMSS Flexible orchestration form a viable mixed-instance production workload model: the compound constraint envelope (eviction with ~30s notice, separate quota pool, no B-series, no conversion after creation) is manageable when Flexible orchestration mixes Spot and on-demand instances in the same scale set for graceful degradation under eviction pressure.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-spot-vm-viable-mixed-production-workload.json"},{"id":"azure-sql-reservation-compute-only","text":"SQL Database and SQL Managed Instance reservations cover compute costs only (plus zone-redundancy add-on for General Purpose tier).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-sql-reservation-compute-only.json"},{"id":"azure-sql-service-endpoint-same-region-only","text":"For Azure SQL Database, service endpoint traffic applies only within the same region.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-sql-service-endpoint-same-region-only.json"},{"id":"azure-sql-service-endpoints-same-region-only","text":"Azure SQL Database service endpoints apply only within the VNet's region.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-sql-service-endpoints-same-region-only.json"},{"id":"azure-standard-hdd-os-disk-retiring-sep-2028","text":"Standard HDD as an OS disk type is retiring on September 8, 2028.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-standard-hdd-os-disk-retiring-sep-2028.json"},{"id":"azure-standard-hdd-os-disk-retiring-sept-2028","text":"Standard HDD as OS disk is retiring on September 8, 2028.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-standard-hdd-os-disk-retiring-sept-2028.json"},{"id":"azure-storage-anonymous-read-access-disable-by-default","text":"Anonymous read access on Azure Blob Storage should be disabled unless explicitly required; it grants read-only access to any client and is a common security misconfiguration.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-storage-anonymous-read-access-disable-by-default.json"},{"id":"azure-storage-anonymous-read-access-disabled-recommended","text":"Anonymous read access on Azure Blob Storage should be disabled by default; it grants read-only access to any client and is a common security misconfiguration.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-storage-anonymous-read-access-disabled-recommended.json"},{"id":"azure-storage-defense-in-depth-complete","text":"Azure Storage provides defense-in-depth with automatic encryption at rest (optionally customer-managed keys via Key Vault) and firewall rules that block all requests by default until exceptions are explicitly added — unless the workload relies on Resource Manager locks for data protection, since locks prevent account deletion but do not prevent data deletion within the account, leaving a gap between perceived and actual protection.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-storage-defense-in-depth-complete.json"},{"id":"azure-storage-disallow-cross-tenant-object-replication","text":"Cross-tenant object replication can be disallowed to restrict replication policies to same-tenant storage accounts only.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-storage-disallow-cross-tenant-object-replication.json"},{"id":"azure-storage-encryption-at-rest-automatic","text":"All Azure Storage data is automatically encrypted at rest; customers can optionally manage their own keys via Azure Key Vault.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-storage-encryption-at-rest-automatic.json"},{"id":"azure-storage-encrypts-all-data-at-rest-by-default","text":"Azure Storage encrypts all data at rest by default using Microsoft-managed keys.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-storage-encrypts-all-data-at-rest-by-default.json"},{"id":"azure-storage-firewall-blocks-all-by-default","text":"When Azure Storage firewall rules are enabled, all requests are blocked by default — exceptions must be added for trusted Microsoft services.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-storage-firewall-blocks-all-by-default.json"},{"id":"azure-storage-firewall-trusted-microsoft-services-exception","text":"When enabling storage account firewall rules, an exception for trusted Microsoft services should be added to avoid blocking Azure portal, logging, and metrics.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-storage-firewall-trusted-microsoft-services-exception.json"},{"id":"azure-storage-four-auth-methods","text":"Azure Storage supports four authorization methods: Microsoft Entra ID (recommended), Shared Key, SAS tokens, and AD DS (for NetApp Files).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-storage-four-auth-methods.json"},{"id":"azure-storage-full-geo-read-access","text":"Azure Storage provides full read-access geo-redundancy (RA-GRS/RA-GZRS) across all storage types, enabling read access to secondaries during primary region outages.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-storage-full-geo-read-access.json"},{"id":"azure-storage-private-endpoints-assign-private-ip","text":"Private endpoints assign a private IP from a VNet to the storage account, routing all traffic over a private link.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-storage-private-endpoints-assign-private-ip.json"},{"id":"azure-storage-private-endpoints-private-ip-from-vnet","text":"Private endpoints assign a private IP from a VNet to the storage account, routing all traffic over a private link.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-storage-private-endpoints-private-ip-from-vnet.json"},{"id":"azure-storage-require-secure-transfer-https-only","text":"Secure transfer can be enforced on storage accounts via the `supportsHttpsTrafficOnly: true` ARM template setting, requiring HTTPS-only connections.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-storage-require-secure-transfer-https-only.json"},{"id":"azure-storage-resource-manager-lock-does-not-protect-data","text":"Azure Resource Manager locks protect the storage account from deletion but do NOT prevent data within the account from being deleted.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-storage-resource-manager-lock-does-not-protect-data.json"},{"id":"azure-storage-secure-transfer-requires-https","text":"The secure transfer setting on a storage account requires HTTPS for all requests.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-storage-secure-transfer-requires-https.json"},{"id":"azure-suse-redhat-plans-software-only","text":"SUSE and Red Hat software plans cover software costs only — not underlying VM compute usage.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-suse-redhat-plans-software-only.json"},{"id":"azure-system-assigned-identity-lifecycle","text":"System-assigned managed identity is deleted automatically with its parent resource and cannot be shared across resources (1:1 relationship).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-system-assigned-identity-lifecycle.json"},{"id":"azure-system-assigned-identity-sp-name-matches-resource","text":"System-assigned managed identity service principal name matches the Azure resource name; for deployment slots the pattern is `<app-name>/slots/<slot-name>`.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-system-assigned-identity-sp-name-matches-resource.json"},{"id":"azure-table-storage-part-of-cosmos-db","text":"Azure Table Storage is now part of Azure Cosmos DB; Cosmos DB for Table offers throughput-optimized tables, global distribution, and automatic secondary indexes.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-table-storage-part-of-cosmos-db.json"},{"id":"azure-temp-disk-drive-letters-windows-d-linux-dev-resource","text":"Windows temporary disk is drive D; Linux temporary disk is `/dev/disk/azure/resource`.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-temp-disk-drive-letters-windows-d-linux-dev-resource.json"},{"id":"azure-temp-disk-path-linux-resource-windows-d","text":"Temporary disk paths: Linux = `/dev/disk/azure/resource`, Windows = drive D.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-temp-disk-path-linux-resource-windows-d.json"},{"id":"azure-temp-disk-paths-linux-resource-windows-d","text":"Temporary disk paths: Linux = `/dev/disk/azure/resource`, Windows = drive D.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-temp-disk-paths-linux-resource-windows-d.json"},{"id":"azure-temp-disk-paths-linux-windows","text":"Temporary disk paths: Linux = `/dev/disk/azure/resource`, Windows = drive D.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-temp-disk-paths-linux-windows.json"},{"id":"azure-temp-disk-v5-plus-auto-encrypt","text":"VMs v5 and newer automatically encrypt temporary and ephemeral OS disks at rest.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-temp-disk-v5-plus-auto-encrypt.json"},{"id":"azure-temporary-disk-not-managed-disk","text":"The temporary disk is not a managed disk and data can be lost on maintenance events, redeployment, or VM stop.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-temporary-disk-not-managed-disk.json"},{"id":"azure-three-availability-zones-per-supported-region","text":"There are exactly 3 Availability Zones per supported Azure region, each with distinct power, network, and cooling.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-three-availability-zones-per-supported-region.json"},{"id":"azure-tier-cost-security-capability-trilemma","text":"Azure tier selection creates a three-way constraint between cost floor, security ceiling, and operational capability: the progressive tier pattern sets a minimum price to unlock required features (Premium for Private Link, Enterprise for modules), reservations provide partial compute-only savings within the chosen tier, and security isolation capabilities (network isolation, encryption options) are gated by the same tier — optimizing any two necessarily constrains the third.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-tier-cost-security-capability-trilemma.json"},{"id":"azure-tls-enforcement-universal-pattern","text":"Multiple Azure services enforce TLS for data in transit: Azure SQL enforces TLS connections, Redis recommends TLS 1.2 minimum, App Service supports TLS 1.2 configuration, and Key Vault uses TLS for API access — establishing a common encryption-in-transit pattern across the platform.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-tls-enforcement-universal-pattern.json"},{"id":"azure-traffic-manager-dns-based-global","text":"Azure Traffic Manager is a DNS-based (not network-level) traffic load balancer operating at global scope across Azure regions.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-traffic-manager-dns-based-global.json"},{"id":"azure-user-assigned-identity-shareable","text":"User-assigned managed identities have an independent lifecycle, must be explicitly deleted, and can be shared across multiple Azure resources.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-user-assigned-identity-shareable.json"},{"id":"azure-user-delegation-sas-uses-entra-credentials","text":"User delegation SAS is the most secure SAS type because it uses Microsoft Entra credentials rather than account keys.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-user-delegation-sas-uses-entra-credentials.json"},{"id":"azure-v5-plus-vms-auto-encrypt-temp-disks","text":"VMs v5+ automatically encrypt temporary disks at rest without additional configuration.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-v5-plus-vms-auto-encrypt-temp-disks.json"},{"id":"azure-vhd-direct-upload-max-32-tib","text":"VHDs can be uploaded up to 32 TiB directly to managed disks without attaching to a VM.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vhd-direct-upload-max-32-tib.json"},{"id":"azure-vm-associated-resources-billed-separately","text":"Each Azure VM creates associated resources (VNet, NIC, IP addresses, NSG, OS disk, optional data disks) that are each billed separately from the VM compute.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-associated-resources-billed-separately.json"},{"id":"azure-vm-availability-zones-sla-99-99","text":"Azure VMs achieve a 99.99% SLA when 2+ instances are deployed across 2+ Availability Zones in the same region.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-availability-zones-sla-99-99.json"},{"id":"azure-vm-b-series-cpu-credit-model","text":"B-series is the only burstable VM type — it uses a CPU credit model that accumulates credits below baseline and throttles when credits are exhausted.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-b-series-cpu-credit-model.json"},{"id":"azure-vm-best-practice-separate-data-disk","text":"Best practice is to keep data on a separate managed disk from the OS disk for recoverability and independent management.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-best-practice-separate-data-disk.json"},{"id":"azure-vm-billed-per-minute","text":"Azure VMs are billed per-minute (not per-hour); for partial hours only minutes used are charged.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-billed-per-minute.json"},{"id":"azure-vm-billing-per-minute","text":"Azure VMs are billed per-minute for partial hours; storage is billed separately.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-billing-per-minute.json"},{"id":"azure-vm-boot-diagnostics-enabled-by-default","text":"Boot diagnostics is enabled by default when creating a VM in the Azure portal.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-boot-diagnostics-enabled-by-default.json"},{"id":"azure-vm-cloud-init-linux","text":"Cloud-init is supported on most Azure Linux distributions for automated VM provisioning at first boot.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-cloud-init-linux.json"},{"id":"azure-vm-cloud-init-supported-linux-vmss","text":"Cloud-init is supported across most Linux distributions for automated deployment and configuration on both VMs and VMSS.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-cloud-init-supported-linux-vmss.json"},{"id":"azure-vm-cloud-init-supported-most-linux","text":"Cloud-init is supported on most Azure Linux distributions for automated VM provisioning.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-cloud-init-supported-most-linux.json"},{"id":"azure-vm-cost-three-dimensions","text":"Azure VM cost is determined by multiple dimensions: compute (instance family and size), OS licensing (with Hybrid Benefit for existing licenses), and reservations (providing discounts on the compute dimension while other dimensions remain at standard rates).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-cost-three-dimensions.json"},{"id":"azure-vm-d-family-default-general-purpose","text":"General Purpose D-family is the default recommendation for most production workloads, offering balanced CPU-to-memory ratio.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-d-family-default-general-purpose.json"},{"id":"azure-vm-d-suffix-local-nvme","text":"VM sizes with 'd' in the name (e.g., Dadsv6, Eadsv6) include local NVMe ephemeral storage with sub-millisecond latency, capped at 2,040 GiB, not persisted on deallocation.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-d-suffix-local-nvme.json"},{"id":"azure-vm-d-suffix-local-nvme-ephemeral","text":"VM sizes with 'd' in the name (e.g., Dadsv6) include local NVMe ephemeral disks that are not persisted across deallocation, capped at 2,040 GiB.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-d-suffix-local-nvme-ephemeral.json"},{"id":"azure-vm-data-residency-single-region-sea-brazil","text":"Single-region data residency storage is only available in Southeast Asia (Singapore) and Brazil South; all other regions store data at the Geo level.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-data-residency-single-region-sea-brazil.json"},{"id":"azure-vm-dc-ec-confidential-computing","text":"DC and EC VM families provide confidential computing with hardware-based Trusted Execution Environments (TEEs).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-dc-ec-confidential-computing.json"},{"id":"azure-vm-default-core-quota-20-per-region","text":"Default Azure VM quota is 20 total cores per region per subscription, which can be raised via support ticket.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-default-core-quota-20-per-region.json"},{"id":"azure-vm-default-quota-20-cores-per-region","text":"Azure subscriptions have a default quota of 20 VM total cores per region, which can be increased via support ticket.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-default-quota-20-cores-per-region.json"},{"id":"azure-vm-f-family-compute-optimized-high-cpu-ratio","text":"F-family VMs are compute optimized with a high CPU-to-memory ratio, suited for batch processing, web servers, and analytics.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-f-family-compute-optimized-high-cpu-ratio.json"},{"id":"azure-vm-f-family-high-cpu-to-memory-ratio","text":"F-family VMs are compute optimized with a high CPU-to-memory ratio, suited for batch processing, web servers, and analytics.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-f-family-high-cpu-to-memory-ratio.json"},{"id":"azure-vm-fx-family-high-single-core-performance","text":"FX-family VMs target specialized compute with high single-core performance for EDA, financial modeling, and scientific simulations.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-fx-family-high-single-core-performance.json"},{"id":"azure-vm-gpu-families-nd-nc-nv-ngads","text":"Azure GPU VM families serve distinct purposes: ND for AI training/inference, NC for GPU compute, NV for visualization/VDI, NGads for gaming.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-gpu-families-nd-nc-nv-ngads.json"},{"id":"azure-vm-gpu-nc-compute-nd-training-nv-visualization","text":"Azure GPU VM families: NC-series for general GPU compute, ND-series for deep learning training/inference, NV-series for visualization and streaming.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-gpu-nc-compute-nd-training-nv-visualization.json"},{"id":"azure-vm-gpu-nd-training-nc-compute-nv-visualization","text":"GPU VM families: ND for AI training/inference, NC for compute-intensive GPU, NV for visualization/remote graphics, NGads for gaming.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-gpu-nd-training-nc-compute-nv-visualization.json"},{"id":"azure-vm-guest-metrics-require-ama-plus-dcr","text":"Guest OS metrics require Azure Monitor Agent (AMA) plus a data collection rule (DCR) to be configured.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-guest-metrics-require-ama-plus-dcr.json"},{"id":"azure-vm-hb-family-infiniband-rdma-mpi","text":"HB-family VM sizes support InfiniBand, RDMA, and MPI for tightly coupled parallel HPC workloads.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-hb-family-infiniband-rdma-mpi.json"},{"id":"azure-vm-host-metrics-collected-automatically","text":"VM host metrics (CPU, network, disk from Hyper-V session) are collected automatically with no setup required.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-host-metrics-collected-automatically.json"},{"id":"azure-vm-hpc-hb-memory-hc-compute-hx-extreme","text":"Azure HPC VM families: HB for memory-bandwidth-sensitive HPC (weather, CFD), HC for dense computation, HX for extreme memory workloads (EDA).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-hpc-hb-memory-hc-compute-hx-extreme.json"},{"id":"azure-vm-insights-auto-installs-ama-creates-dcr","text":"VM Insights automatically installs Azure Monitor Agent and creates a default DCR; it is the recommended starting point for VM monitoring.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-insights-auto-installs-ama-creates-dcr.json"},{"id":"azure-vm-insights-map-populates-four-tables","text":"VM Insights Map feature populates four tables: `VMBoundPort`, `VMComputer`, `VMConnection`, and `VMProcess`; the main DCR writes to the `InsightsMetrics` table.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-insights-map-populates-four-tables.json"},{"id":"azure-vm-insights-tables","text":"VM Insights populates five tables: InsightsMetrics (performance), VMBoundPort, VMComputer, VMConnection, and VMProcess (dependency map data).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-insights-tables.json"},{"id":"azure-vm-l-family-high-disk-throughput-io","text":"L-family VMs are Storage Optimized for high disk throughput and IO, suited for NoSQL databases (Cassandra, MongoDB), Redis, and data warehousing.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-l-family-high-disk-throughput-io.json"},{"id":"azure-vm-l-family-storage-optimized-high-io","text":"L-family VMs are storage optimized with high disk throughput and IO, ideal for NoSQL databases (Cassandra, MongoDB, Redis).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-l-family-storage-optimized-high-io.json"},{"id":"azure-vm-l-family-storage-optimized-high-throughput","text":"L-family VMs are storage optimized for high disk throughput and IO workloads such as Cassandra, MongoDB, and Redis.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-l-family-storage-optimized-high-throughput.json"},{"id":"azure-vm-m-family-largest-memory","text":"M-family VMs offer the largest memory capacities in Azure (up to multiple TB of RAM) for workloads like SAP HANA and large databases.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-m-family-largest-memory.json"},{"id":"azure-vm-managed-disks-recommended-convertible","text":"Azure Managed Disks are recommended over unmanaged disks for production workloads; unmanaged disks can be converted to managed disks.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-managed-disks-recommended-convertible.json"},{"id":"azure-vm-move-between-vnets-requires-recreate","text":"Moving a VM between VNets requires deleting and recreating the VM (disks can be retained).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-move-between-vnets-requires-recreate.json"},{"id":"azure-vm-nic-count-limited-by-size","text":"The number of NICs attached to a VM is limited by the VM size; there is no separate cost for NICs.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-nic-count-limited-by-size.json"},{"id":"azure-vm-nic-count-limited-by-vm-size","text":"Virtual NICs have no separate cost but the number of NICs a VM can have is limited by VM size.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-nic-count-limited-by-vm-size.json"},{"id":"azure-vm-nsg-local-disk-no-cost","text":"NSGs and local temporary disks have no additional cost; NICs have no separate cost.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-nsg-local-disk-no-cost.json"},{"id":"azure-vm-nsg-nic-no-charge","text":"Azure NSGs and NICs have no additional charge; NIC count limits are determined by VM size.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-nsg-nic-no-charge.json"},{"id":"azure-vm-os-disk-default-127gib","text":"Azure VM OS disk default size is approximately 127 GiB.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-os-disk-default-127gib.json"},{"id":"azure-vm-os-disk-default-size-127gib","text":"Azure VM OS disks have a default size of approximately 127 GiB (smaller for some images).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-os-disk-default-size-127gib.json"},{"id":"azure-vm-os-disk-typically-127-gib","text":"Azure VM OS disk is typically 127 GiB (smaller for some images).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-os-disk-typically-127-gib.json"},{"id":"azure-vm-performance-diagnostics-continuous-and-ondemand","text":"Azure VM Performance Diagnostics supports two modes: continuous (5-second intervals, preview) and on-demand (point-in-time deep analysis).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-performance-diagnostics-continuous-and-ondemand.json"},{"id":"azure-vm-reservation-partial-cost-coverage","text":"Azure reservations provide only partial cost coverage with explicit exclusions: VM reservations cover compute only (not networking, storage, or Windows licensing), and blob storage reservations cover capacity only (not bandwidth or transactions) — requiring separate cost management for excluded dimensions.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-reservation-partial-cost-coverage.json"},{"id":"azure-vm-reservations-cover-compute-only","text":"VM reservations cover compute costs only — networking, storage, Windows licensing, and additional software are not included.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-reservations-cover-compute-only.json"},{"id":"azure-vm-s-suffix-premium-storage","text":"The 's' suffix in Azure VM size names indicates Premium Storage (SSD) capability.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-s-suffix-premium-storage.json"},{"id":"azure-vm-six-size-categories","text":"Azure VM sizes are categorized into 6 types: General Purpose (A/B/D/DC), Compute Optimized (F/FX), Memory Optimized (E/Eb/EC/M), Storage Optimized (L), GPU Accelerated (N), and FPGA Accelerated (NP).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-six-size-categories.json"},{"id":"azure-vm-size-cpu-vendor-letters","text":"In VM size names, no CPU letter indicates Intel x86-64, 'a' indicates AMD, and 'p' indicates ARM (Cobalt/Ampere Altra).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-size-cpu-vendor-letters.json"},{"id":"azure-vm-size-series-vs-size-naming","text":"Series name omits vCPU count (e.g., DCads_v5); full size name includes Standard prefix and vCPU count (e.g., Standard_DC8ads_v5).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-size-series-vs-size-naming.json"},{"id":"azure-vm-size-version-higher-is-newer","text":"VM size version numbers (v5, v6, v7) indicate hardware generations — higher is newer; the first version may omit the version number.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-size-version-higher-is-newer.json"},{"id":"azure-vm-size-version-numbers-indicate-hw-generation","text":"VM size version numbers (v5, v6, v7) indicate hardware generations — higher is newer; first-generation sizes may omit the version number.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-size-version-numbers-indicate-hw-generation.json"},{"id":"azure-vm-sizes-with-d-include-local-nvme-ephemeral","text":"VM sizes with 'd' in the name include local NVMe ephemeral storage; data is not persisted across deallocation.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-sizes-with-d-include-local-nvme-ephemeral.json"},{"id":"azure-vm-specialized-compute-family-taxonomy","text":"Azure VM families form a specialized compute taxonomy where each series is purpose-built for a distinct workload profile: F-series provides high CPU-to-memory ratio for batch and web workloads, GPU families differentiate by use case (NC for general compute, ND for deep learning training, NV for visualization), and HPC families differentiate by bottleneck type (HB for memory bandwidth, HC for dense computation, HX for extreme memory), requiring workload characterization before VM family selection.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-specialized-compute-family-taxonomy.json"},{"id":"azure-vm-storage-priced-separately-from-compute","text":"Azure VM storage (OS disk, data disks) is priced and charged separately from compute costs.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-storage-priced-separately-from-compute.json"},{"id":"azure-vm-temp-disk-drive-letters","text":"Windows temporary disk is drive D; Linux temporary disk is at /dev/disk/azure/resource.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-temp-disk-drive-letters.json"},{"id":"azure-vm-trusted-launch-default-gen2","text":"Trusted Launch (secure boot + vTPM) is becoming the default for new Gen2 VMs (preview feature called TLaD).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-trusted-launch-default-gen2.json"},{"id":"azure-vm-trusted-launch-default-gen2-preview","text":"Trusted Launch as Default (TLaD) is a preview feature where new Gen 2 VMs default to Trusted Launch with secure boot and vTPM enabled.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-trusted-launch-default-gen2-preview.json"},{"id":"azure-vm-v5-plus-auto-encrypt-temp-disk","text":"VMs v5+ automatically encrypt temporary disks at rest without additional configuration.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-v5-plus-auto-encrypt-temp-disk.json"},{"id":"azure-vm-v5-plus-auto-encrypt-temp-disks","text":"VMs v5 and newer automatically encrypt temporary and ephemeral OS disks at rest.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-v5-plus-auto-encrypt-temp-disks.json"},{"id":"azure-vm-windows-licensing-port-1688","text":"Windows VM licensing uses outbound port 1688 to connect to the Key Management Service.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vm-windows-licensing-port-1688.json"},{"id":"azure-vmss-flexible-max-1000-vms","text":"VMSS Flexible orchestration supports up to 1,000 VMs with standard marketplace or Azure Compute Gallery images; managed images cap at 600.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vmss-flexible-max-1000-vms.json"},{"id":"azure-vmss-flexible-supports-mixed-spot-ondemand","text":"VMSS Flexible orchestration supports mixing Spot and on-demand VM instances within the same scale set.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vmss-flexible-supports-mixed-spot-ondemand.json"},{"id":"azure-vmss-flexible-supports-spot-and-ondemand-mix","text":"VMSS Flexible orchestration mode supports mixing Spot and on-demand VMs together in the same scale set.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vmss-flexible-supports-spot-and-ondemand-mix.json"},{"id":"azure-vmss-flexible-supports-spot-and-ondemand-mixed","text":"VMSS Flexible orchestration supports mixing Spot and on-demand VM instances together in the same scale set.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vmss-flexible-supports-spot-and-ondemand-mixed.json"},{"id":"azure-vmss-max-1000-vms-marketplace-images","text":"Virtual Machine Scale Sets support up to 1,000 VMs when using Marketplace or Compute Gallery images with managed disks.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vmss-max-1000-vms-marketplace-images.json"},{"id":"azure-vmss-no-additional-cost","text":"There is no extra cost for the VMSS resource itself — you pay only for underlying compute, network, and storage resources.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vmss-no-additional-cost.json"},{"id":"azure-vmss-orchestration-mode-immutable","text":"VMSS orchestration mode (Uniform or Flexible) is set at creation time and cannot be changed later.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vmss-orchestration-mode-immutable.json"},{"id":"azure-vmss-requires-availability-zones-for-dc-protection","text":"Scale sets alone do not protect against datacenter failure — Availability Zones must be used for cross-datacenter protection.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vmss-requires-availability-zones-for-dc-protection.json"},{"id":"azure-vmss-same-base-image-and-config","text":"All VM instances in a scale set are created from the same base OS image and configuration.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vmss-same-base-image-and-config.json"},{"id":"azure-vmss-same-base-image-config","text":"All VM instances in a scale set are created from the same base OS image and configuration.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vmss-same-base-image-config.json"},{"id":"azure-vnet-free","text":"Azure Virtual Network itself is free; standard charges apply only to resources deployed within it.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vnet-free.json"},{"id":"azure-vnet-peering-address-resize-no-downtime","text":"Address space can be added, modified, or deleted on peered VNets without downtime; peers must be synced after each resize. Not supported when peered with a classic VNet.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vnet-peering-address-resize-no-downtime.json"},{"id":"azure-vnet-peering-charges-ingress-egress","text":"VNet peering incurs a nominal fee on both ingress and egress traffic.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vnet-peering-charges-ingress-egress.json"},{"id":"azure-vnet-peering-cross-subscription-tenant","text":"VNet peering works across subscriptions, Microsoft Entra tenants, deployment models (ARM and classic), and regions.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vnet-peering-cross-subscription-tenant.json"},{"id":"azure-vnet-peering-default-limit-500","text":"Default VNet peering limit is 500 peered VNets per VNet; increased to 1,000 with Azure Virtual Network Manager connectivity configuration.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vnet-peering-default-limit-500.json"},{"id":"azure-vnet-peering-enterprise-backbone-connectivity","text":"VNet peering provides inter-VNet connectivity over Microsoft's backbone network with non-transitive routing, symmetric bandwidth across regions, and support for cross-subscription/cross-tenant topologies.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vnet-peering-enterprise-backbone-connectivity.json"},{"id":"azure-vnet-peering-gateway-transit-one-gateway","text":"A VNet using gateway transit with a remote gateway cannot have its own gateway; the gateway must be in a Resource Manager model VNet.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vnet-peering-gateway-transit-one-gateway.json"},{"id":"azure-vnet-peering-ingress-egress-charges","text":"VNet peering incurs nominal charges for both ingress and egress traffic on peering connections; gateway transit incurs peering charges on the spoke VNet.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vnet-peering-ingress-egress-charges.json"},{"id":"azure-vnet-peering-microsoft-backbone","text":"VNet peering traffic stays on the Microsoft backbone — no encryption, gateways, or public internet needed.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vnet-peering-microsoft-backbone.json"},{"id":"azure-vnet-peering-no-downtime","text":"No downtime occurs when creating VNet peering connections.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vnet-peering-no-downtime.json"},{"id":"azure-vnet-peering-not-transitive","text":"VNet peering is not transitive: if A peers with B and B peers with C, A and C are not automatically connected — service chaining or mesh peering is required.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vnet-peering-not-transitive.json"},{"id":"azure-vnet-peering-same-region-latency-equal","text":"Latency between VMs in peered VNets within the same region equals latency within a single VNet; throughput is limited only by the VM's allowed bandwidth, not the peering.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vnet-peering-same-region-latency-equal.json"},{"id":"azure-vnet-peering-same-region-same-latency","text":"Latency between VMs in peered VNets within the same region equals latency within a single VNet.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vnet-peering-same-region-same-latency.json"},{"id":"azure-vnet-peering-subnet-level","text":"Subnet peering allows peering of specific subnets rather than entire VNet address spaces.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vnet-peering-subnet-level.json"},{"id":"azure-vnet-peering-subnet-peering","text":"Subnet peering allows peering of specific subnets rather than entire VNets, narrowing the scope of connectivity.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vnet-peering-subnet-peering.json"},{"id":"azure-vnet-routing-never-associate-default-route-to-gatewaysubnet","text":"Never associate a route table with a 0.0.0.0/0 route to GatewaySubnet for VPN gateways — it will break gateway functionality.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vnet-routing-never-associate-default-route-to-gatewaysubnet.json"},{"id":"azure-vnet-routing-service-tag-priority-order","text":"When multiple service tag routes match, priority is: regional tags (e.g., Storage.EastUS) > top-level tags (e.g., Storage) > AzureCloud regional tags > AzureCloud tag.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vnet-routing-service-tag-priority-order.json"},{"id":"azure-vnet-service-endpoints-extend-private-address-space","text":"VNet service endpoints extend a VNet's private address space and identity to Azure PaaS services (e.g., Storage, SQL Database) over a direct connection on the Azure backbone.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vnet-service-endpoints-extend-private-address-space.json"},{"id":"azure-vnet-service-endpoints-extend-private-space","text":"VNet service endpoints extend a VNet's private address space to Azure PaaS resources (e.g., Storage, SQL Database) over a direct connection, securing those services to the VNet.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vnet-service-endpoints-extend-private-space.json"},{"id":"azure-vnet-subnets-span-all-azs","text":"VNets and subnets span all availability zones in a region automatically — no need to divide by AZ.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vnet-subnets-span-all-azs.json"},{"id":"azure-vpn-gateway-custom-dns-must-include-168","text":"When using VPN Gateway with custom DNS servers, the Azure DNS IP `168.63.129.16` must be included in the DNS server list.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vpn-gateway-custom-dns-must-include-168.json"},{"id":"azure-vpn-gateway-custom-dns-requires-azure-dns-ip","text":"When using VPN Gateway with custom DNS servers, `168.63.129.16` must be included in the DNS server list.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-vpn-gateway-custom-dns-requires-azure-dns-ip.json"},{"id":"azure-workload-five-dimension-isolation-complete","text":"Azure workload isolation achieves complete coverage across all five security enforcement dimensions — network infrastructure isolation through secrets delivery mapping onto identity, governance, network, data protection, and compute boundaries — when the end-to-end isolation chain from network to secrets is fully intact across all enforcement planes.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-workload-five-dimension-isolation-complete.json"},{"id":"azure-workload-isolation-network-to-secrets","text":"End-to-end workload isolation from infrastructure network layer through secrets delivery is achievable independently of compute substrate: the zero-trust infrastructure stack (default-deny LB + NSG filtering) extends via Private Link to PaaS boundaries, and both AKS and App Service inject secrets through the same Key Vault + managed identity stack operating within that isolation boundary — creating a continuous isolation chain from network edge to application runtime.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-workload-isolation-network-to-secrets.json"},{"id":"azure-workload-isolation-substrate-independent","text":"Both container (AKS) and PaaS (App Service) compute substrates achieve equivalent defense-in-depth through the same underlying Azure platform stack — identity-driven secret injection, private-endpoint network isolation, and orthogonal governance enforcement — making workload security posture independent of compute substrate choice.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azure-workload-isolation-substrate-independent.json"},{"id":"azuresql-99-99-availability-sla","text":"Azure SQL Database offers a 99.99% availability SLA","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-99-99-availability-sla.json"},{"id":"azuresql-99-99-sla","text":"Azure SQL Database guarantees 99.99% SLA availability (up to 99.995% per the Azure SQL family overview).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-99-99-sla.json"},{"id":"azuresql-active-geo-replication-4-secondaries","text":"Azure SQL Database active geo-replication supports up to 4 readable secondary databases in same or different regions","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-active-geo-replication-4-secondaries.json"},{"id":"azuresql-always-encrypted-client-side-keys","text":"Always Encrypted keeps encryption keys on the client side; even DBAs cannot see plaintext data.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-always-encrypted-client-side-keys.json"},{"id":"azuresql-always-encrypted-protects-from-dbas","text":"Always Encrypted keeps encryption keys outside the database engine, protecting data even from database administrators — data is encrypted at rest and in use.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-always-encrypted-protects-from-dbas.json"},{"id":"azuresql-audit-destinations-storage-monitor-eventhubs","text":"SQL Auditing writes audit logs to customer-owned Azure storage, Azure Monitor logs, or Event Hubs.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-audit-destinations-storage-monitor-eventhubs.json"},{"id":"azuresql-automatic-tuning-index-and-plan","text":"Azure SQL Database automatic tuning includes automatic index management and automatic plan correction.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-automatic-tuning-index-and-plan.json"},{"id":"azuresql-automatic-tuning-index-plan","text":"Azure SQL Database automatic tuning includes automatic index management and automatic plan correction.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-automatic-tuning-index-plan.json"},{"id":"azuresql-backup-compression-3-4x-tde-log-exception","text":"Azure SQL Database backups are compressed with typical 3–4x ratio, but TDE-encrypted transaction log backups are NOT compressed.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-backup-compression-3-4x-tde-log-exception.json"},{"id":"azuresql-backup-dr-planning-constraints","text":"Azure SQL backup has three critical constraints that compound during DR planning: TDE prevents transaction log backup compression (reducing backup storage efficiency), geo-restore is disabled when backup redundancy is set to LRS or ZRS (forcing a GRS/GZRS cost commitment for geo-recovery), and server deletion permanently destroys all databases with only LTR blob backups surviving — making redundancy selection, encryption configuration, and operational procedures interdependent DR concerns.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-backup-dr-planning-constraints.json"},{"id":"azuresql-backup-free-storage-equals-max-data-size","text":"Azure SQL Database provides free backup storage equal to the provisioned max data size; excess is billed per GB/month.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-backup-free-storage-equals-max-data-size.json"},{"id":"azuresql-backup-frequency","text":"Azure SQL Database automated backups: full weekly, differential every 12h (vCore) or 24h (DTU), transaction log ~10 minutes","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-backup-frequency.json"},{"id":"azuresql-backup-redundancy-change-48h-future-only","text":"Azure SQL Database backup redundancy changes apply only to future backups, may take up to 48 hours, and existing backups remain on original storage.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-backup-redundancy-change-48h-future-only.json"},{"id":"azuresql-backup-str-max-35-days-basic-7","text":"Azure SQL Database short-term retention (STR) is configurable from 1–35 days (default 7), except Basic tier which is limited to 1–7 days.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-backup-str-max-35-days-basic-7.json"},{"id":"azuresql-backup-uniform-compression","text":"Azure SQL automated backups achieve uniform 3–4x compression across full, differential, and transaction log backup types at the configured frequency.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-backup-uniform-compression.json"},{"id":"azuresql-basic-tier-max-retention-7-days","text":"Azure SQL Database Basic tier short-term backup retention maximum is 7 days (vs 35 days for other tiers)","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-basic-tier-max-retention-7-days.json"},{"id":"azuresql-bc-backups-on-secondary-replicas","text":"Azure SQL Database Business Critical tier runs automated backups on secondary replicas by default, offloading the primary with no extra cost.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-bc-backups-on-secondary-replicas.json"},{"id":"azuresql-best-practice-custom-roles-least-privilege","text":"Best practice: use custom database roles with least privilege; never assign permissions directly to users; limit db_owner to administrative users only.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-best-practice-custom-roles-least-privilege.json"},{"id":"azuresql-best-practice-roles-least-privilege","text":"Best practice: assign users to database roles with least privilege; avoid direct permission grants to users; limit db_owner role to administrative users only.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-best-practice-roles-least-privilege.json"},{"id":"azuresql-business-critical-backups-from-secondary","text":"Azure SQL Database Business Critical tier takes backups from secondary replicas by default to offload the primary","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-business-critical-backups-from-secondary.json"},{"id":"azuresql-business-critical-backups-on-secondary","text":"Azure SQL Database Business Critical tier runs automated backups on secondary replicas by default, offloading the primary with no extra cost.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-business-critical-backups-on-secondary.json"},{"id":"azuresql-clr-not-in-sql-database","text":"CLR support is not available in Azure SQL Database but is supported in Managed Instance.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-clr-not-in-sql-database.json"},{"id":"azuresql-cmk-tde-server-or-database-level","text":"Customer-managed keys (CMK) for TDE can be configured at the logical server level (all databases) or at the individual database level.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-cmk-tde-server-or-database-level.json"},{"id":"azuresql-comprehensive-backup-resilience","text":"Azure SQL provides comprehensive backup resilience spanning short-term PITR and long-term retention up to 10 years across all three availability models, with Service Fabric managing automatic failover and health monitoring — unless cross-subscription restore is needed, which is not supported for any restore type (PITR, geo-restore, or LTR), requiring a disruptive restore-then-copy workaround.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-comprehensive-backup-resilience.json"},{"id":"azuresql-connectivity-architecture-diverges-by-deployment-model","text":"Azure SQL deployment model selection determines both security capabilities and connectivity architecture in tandem: Managed Instance provides native VNet integration with private IP and TCP-only protocol but lacks Network Security Perimeter support, while SQL Database requires Private Link for private connectivity but gains NSP — forcing fundamentally different network designs and security tooling per deployment model.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-connectivity-architecture-diverges-by-deployment-model.json"},{"id":"azuresql-cross-subscription-restore-not-supported","text":"Azure SQL Database cross-subscription restore is not supported for PITR, geo-restore, or LTR; workaround is restore then Resource Move","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-cross-subscription-restore-not-supported.json"},{"id":"azuresql-default-backup-redundancy-grs","text":"Azure SQL Database default backup storage redundancy is geo-redundant (GRS); GZRS is Microsoft-recommended for maximum resilience","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-default-backup-redundancy-grs.json"},{"id":"azuresql-default-pitr-retention-7-days","text":"Azure SQL Database default PITR retention is 7 days (configurable 1–35 days; Basic tier limited to 1–7 days)","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-default-pitr-retention-7-days.json"},{"id":"azuresql-deleted-db-restore-same-server-only","text":"Azure SQL Database deleted database restore is only possible on the same server where the original was created","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-deleted-db-restore-same-server-only.json"},{"id":"azuresql-do-not-set-trustservercertificate-true","text":"Setting TrustServerCertificate=True in production disables protection against man-in-the-middle attacks; always use TrustServerCertificate=False.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-do-not-set-trustservercertificate-true.json"},{"id":"azuresql-dynamic-data-masking-no-stored-change","text":"Dynamic Data Masking masks data in query results but does not change the underlying stored data.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-dynamic-data-masking-no-stored-change.json"},{"id":"azuresql-dynamic-scaling-manual-no-downtime","text":"Azure SQL Database dynamic scaling is manual with no downtime; automatic autoscaling requires the serverless compute tier.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-dynamic-scaling-manual-no-downtime.json"},{"id":"azuresql-dynamic-scaling-manual-not-auto","text":"Azure SQL Database dynamic scaling is manual with no downtime; automatic autoscaling requires serverless tier","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-dynamic-scaling-manual-not-auto.json"},{"id":"azuresql-dynamic-scaling-vs-autoscaling","text":"Azure SQL Database dynamic scaling is manual (no downtime) while autoscaling is automatic and only available via the serverless compute tier.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-dynamic-scaling-vs-autoscaling.json"},{"id":"azuresql-elastic-pool-shared-resources","text":"Azure SQL Database elastic pools share vCore/DTU resources across multiple databases, optimizing cost for SaaS multitenant patterns with variable workloads","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-elastic-pool-shared-resources.json"},{"id":"azuresql-elastic-pool-shared-resources-saas","text":"Azure SQL Database elastic pools share resources across multiple databases, ideal for SaaS multitenant patterns with unpredictable usage.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-elastic-pool-shared-resources-saas.json"},{"id":"azuresql-elastic-pools-vs-instance-pools","text":"Elastic pools are for Azure SQL Database; instance pools are for Azure SQL Managed Instance.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-elastic-pools-vs-instance-pools.json"},{"id":"azuresql-features-ship-first","text":"New SQL Server features release to Azure SQL Database first, then to on-premises SQL Server","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-features-ship-first.json"},{"id":"azuresql-firewall-rules-not-apply-to-mi","text":"IP and VNet firewall rules do NOT apply to Azure SQL Managed Instance; it uses its own networking configuration.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-firewall-rules-not-apply-to-mi.json"},{"id":"azuresql-first-full-backup-30-minutes","text":"Azure SQL Database completes its first full backup within approximately 30 minutes of database creation.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-first-full-backup-30-minutes.json"},{"id":"azuresql-free-backup-storage-equals-max-data-size","text":"Azure SQL Database free backup storage equals the provisioned maximum data size; excess is billed per GB/month","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-free-backup-storage-equals-max-data-size.json"},{"id":"azuresql-geo-restore-requires-grs-or-gzrs","text":"Azure SQL Database geo-restore is disabled when backup redundancy is set to LRS or ZRS","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-geo-restore-requires-grs-or-gzrs.json"},{"id":"azuresql-gzrs-restore-inherits-unless-overridden","text":"Restoring an Azure SQL Database from a GZRS source inherits GZRS redundancy unless explicitly overridden; the restore fails if the target region doesn't support GZRS.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-gzrs-restore-inherits-unless-overridden.json"},{"id":"azuresql-ha-business-critical-always-on-ag-replicas","text":"Business Critical / Premium tier uses Always On availability groups with 1 primary and up to 3 secondary replicas with co-located compute and SSD storage.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-ha-business-critical-always-on-ag-replicas.json"},{"id":"azuresql-ha-business-critical-read-scale-out-no-extra-cost","text":"Read Scale-Out is a Business Critical / Premium feature that offloads read-only queries to secondary replicas at no additional charge.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-ha-business-critical-read-scale-out-no-extra-cost.json"},{"id":"azuresql-ha-general-purpose-zone-uses-zrs","text":"Azure SQL Database General Purpose zone redundancy uses Zone-Redundant Storage (ZRS) for data and log files.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-ha-general-purpose-zone-uses-zrs.json"},{"id":"azuresql-ha-hyperscale-failover-cmd-not-for-secondaries","text":"The manual failover command (Invoke-AzSqlDatabaseFailover) is NOT available for readable secondary replicas of Hyperscale databases.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-ha-hyperscale-failover-cmd-not-for-secondaries.json"},{"id":"azuresql-ha-hyperscale-failover-not-for-readable-secondary","text":"The manual failover command is not available for readable secondary replicas of Hyperscale databases.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-ha-hyperscale-failover-not-for-readable-secondary.json"},{"id":"azuresql-ha-hyperscale-four-layer-architecture","text":"Azure SQL Hyperscale uses a four-layer distributed architecture: stateless compute, page servers (active-active pairs), log service with transaction log storage, and data files in Azure Storage.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-ha-hyperscale-four-layer-architecture.json"},{"id":"azuresql-ha-hyperscale-zone-redundancy-creation-only","text":"Hyperscale zone redundancy can only be set at database creation time; changing it afterward requires database copy, point-in-time restore, or geo-replica.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-ha-hyperscale-zone-redundancy-creation-only.json"},{"id":"azuresql-ha-hyperscale-zone-requires-ha-replica","text":"Hyperscale zone redundancy requires at least one HA compute replica and zone-redundant or geo-zone-redundant backup storage.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-ha-hyperscale-zone-requires-ha-replica.json"},{"id":"azuresql-ha-hyperscale-zr-requires-ha-replica","text":"Hyperscale zone redundancy requires at least one HA compute replica and zone-redundant or geo-zone-redundant backup storage.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-ha-hyperscale-zr-requires-ha-replica.json"},{"id":"azuresql-ha-local-redundancy-lrs-three-copies","text":"Azure SQL Database local redundancy uses Locally Redundant Storage (LRS), copying data three times within a single datacenter.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-ha-local-redundancy-lrs-three-copies.json"},{"id":"azuresql-ha-manual-failover-rate-limit-15min","text":"Azure SQL Database manual failover is rate-limited to once per 15 minutes per database or elastic pool.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-ha-manual-failover-rate-limit-15min.json"},{"id":"azuresql-ha-master-db-auto-zone-redundant","text":"The master database automatically becomes zone-redundant when any database on the logical server is zone-redundant.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-ha-master-db-auto-zone-redundant.json"},{"id":"azuresql-ha-remote-storage-cold-cache-degradation","text":"Azure SQL Database General Purpose (remote storage model) may experience performance degradation during failover due to cold cache on the new compute node.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-ha-remote-storage-cold-cache-degradation.json"},{"id":"azuresql-ha-remote-storage-cold-cache-failover","text":"Remote storage model (General Purpose) may experience performance degradation during failover due to cold cache startup on the new compute node.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-ha-remote-storage-cold-cache-failover.json"},{"id":"azuresql-ha-rpo-zero-local-and-zone","text":"Azure SQL Database RPO is zero (no committed data loss) for both local and zone-redundant configurations.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-ha-rpo-zero-local-and-zone.json"},{"id":"azuresql-ha-service-fabric-manages-failover","text":"Azure Service Fabric manages health monitoring and failover across all Azure SQL Database availability models.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-ha-service-fabric-manages-failover.json"},{"id":"azuresql-ha-three-availability-models","text":"Azure SQL Database uses three availability models mapped to service tiers: remote storage (Basic/Standard/General Purpose), local storage (Premium/Business Critical), and Hyperscale (distributed four-layer architecture).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-ha-three-availability-models.json"},{"id":"azuresql-ha-zero-rpo-cold-cache-tradeoff","text":"Azure SQL achieves zero RPO (no committed data loss) for both local and zone-redundant HA configurations, but General Purpose tier pays a performance penalty during failover due to cold cache startup on remote storage — making RPO and RTO guarantees asymmetric.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-ha-zero-rpo-cold-cache-tradeoff.json"},{"id":"azuresql-ha-zone-redundancy-not-available-basic-standard","text":"Zone redundancy is NOT available for Azure SQL Database Basic and Standard (DTU) service tiers.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-ha-zone-redundancy-not-available-basic-standard.json"},{"id":"azuresql-hybrid-benefit-requires-software-assurance","text":"Azure Hybrid Benefit for SQL requires Software Assurance on existing SQL Server licenses.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-hybrid-benefit-requires-software-assurance.json"},{"id":"azuresql-hyperscale-128tb-max","text":"Azure SQL Database Hyperscale tier supports up to 128 TB storage with independently scalable compute and storage","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-hyperscale-128tb-max.json"},{"id":"azuresql-hyperscale-backup-redundancy-immutable","text":"Azure SQL Hyperscale backup redundancy can only be set at creation time and cannot be modified later","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-hyperscale-backup-redundancy-immutable.json"},{"id":"azuresql-hyperscale-distributed-scale-architecture","text":"Hyperscale achieves 128 TB scale through a four-layer distributed architecture (stateless compute, page servers, log service, remote storage), with zone redundancy requiring both HA compute replicas and zone-redundant backup storage as co-requisites.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-hyperscale-distributed-scale-architecture.json"},{"id":"azuresql-hyperscale-failover-not-for-readable-secondaries","text":"The manual failover command is not available for readable secondary replicas of Hyperscale databases.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-hyperscale-failover-not-for-readable-secondaries.json"},{"id":"azuresql-hyperscale-four-layer-architecture","text":"Hyperscale uses a four-layer distributed architecture: stateless compute, page servers (active-active pairs), log service with transaction log storage, and data files in Azure Storage.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-hyperscale-four-layer-architecture.json"},{"id":"azuresql-hyperscale-snapshot-based-backups","text":"Azure SQL Hyperscale uses storage snapshots instead of traditional SQL Server backup technology, providing instant backup and fast restore regardless of database size","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-hyperscale-snapshot-based-backups.json"},{"id":"azuresql-hyperscale-zone-requires-ha-replica-and-zr-backup","text":"Hyperscale zone redundancy requires at least one HA compute replica and zone-redundant or geo-zone-redundant backup storage.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-hyperscale-zone-requires-ha-replica-and-zr-backup.json"},{"id":"azuresql-immutable-backups-ltr-only","text":"Azure SQL Database immutable backups are supported only for long-term retention (LTR), not for PITR or geo-restore","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-immutable-backups-ltr-only.json"},{"id":"azuresql-ledger-cryptographic-tamper-evidence","text":"Azure SQL Ledger provides cryptographic proof of data integrity and tamper-evidence for regulatory compliance and auditability.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-ledger-cryptographic-tamper-evidence.json"},{"id":"azuresql-ledger-tamper-evidence","text":"Azure SQL Ledger provides cryptographic proof of data integrity (tamper-evidence) for regulatory compliance and auditability.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-ledger-tamper-evidence.json"},{"id":"azuresql-ltr-up-to-10-years","text":"Azure SQL Database long-term retention (LTR) supports up to 10 years of backup retention","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-ltr-up-to-10-years.json"},{"id":"azuresql-master-db-auto-zone-redundant","text":"The master database on an Azure SQL logical server automatically becomes zone-redundant when any database on that server is zone-redundant.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-master-db-auto-zone-redundant.json"},{"id":"azuresql-max-database-sizes","text":"Azure SQL max database sizes: SQL Database = 128 TB, Managed Instance = 16 TB, SQL VMs = 256 TB.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-max-database-sizes.json"},{"id":"azuresql-max-db-sizes-by-product","text":"Azure SQL Database supports up to 128 TB per database, Managed Instance up to 16 TB, and SQL Server on Azure VMs up to 256 TB.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-max-db-sizes-by-product.json"},{"id":"azuresql-mi-backup-restore-to-sql-server-2022","text":"Backups from Azure SQL Managed Instance can be restored to SQL Server 2022 (reverse portability).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-mi-backup-restore-to-sql-server-2022.json"},{"id":"azuresql-mi-backups-restorable-to-sql-server-2022","text":"Backups from Azure SQL Managed Instance can be restored to SQL Server 2022 (reverse portability).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-mi-backups-restorable-to-sql-server-2022.json"},{"id":"azuresql-mi-backward-compat-sql-server-2008","text":"Azure SQL Managed Instance supports backward compatibility to SQL Server 2008 databases, with direct migration from SQL Server 2005 (upgraded to 2008 compatibility level).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-mi-backward-compat-sql-server-2008.json"},{"id":"azuresql-mi-copy-only-backups-user-initiated","text":"Only COPY_ONLY backups can be user-initiated on Azure SQL Managed Instance; automated backups handle the rest.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-mi-copy-only-backups-user-initiated.json"},{"id":"azuresql-mi-hybrid-benefit-requires-sa","text":"Azure Hybrid Benefit for SQL Managed Instance requires Software Assurance on existing SQL Server licenses.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-mi-hybrid-benefit-requires-sa.json"},{"id":"azuresql-mi-instance-stop-storage-only-billing","text":"Azure SQL Managed Instance supports stop/start; when stopped, only storage is billed (no compute charges).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-mi-instance-stop-storage-only-billing.json"},{"id":"azuresql-mi-license-free-dr-replica","text":"A SQL Managed Instance secondary replica designated for DR only incurs no vCore licensing cost (license-free DR replica).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-mi-license-free-dr-replica.json"},{"id":"azuresql-mi-lift-shift-migration-target","text":"Azure SQL Managed Instance is positioned as the primary lift-and-shift target for on-premises SQL Server: backward compatibility to SQL Server 2008 enables legacy workloads, native VNet deployment with single-tenant isolation preserves network security models, and Managed Instance Link via distributed availability groups enables near-zero-downtime migration with ongoing replication.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-mi-lift-shift-migration-target.json"},{"id":"azuresql-mi-link-distributed-ag","text":"Managed Instance link uses distributed availability groups to synchronize data between on-premises SQL Server and SQL MI for hybrid scenarios, DR, and read offload.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-mi-link-distributed-ag.json"},{"id":"azuresql-mi-link-distributed-ag-hybrid","text":"Managed Instance link uses distributed availability groups to synchronize data between on-premises SQL Server and SQL MI for hybrid scenarios, DR, and read offload.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-mi-link-distributed-ag-hybrid.json"},{"id":"azuresql-mi-managed-instance-link-dag","text":"Azure SQL Managed Instance link uses distributed availability groups to synchronize databases between on-premises SQL Server and SQL MI for hybrid DR, read offloading, and migration.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-mi-managed-instance-link-dag.json"},{"id":"azuresql-mi-managed-instance-link-distributed-ag","text":"Managed Instance link uses distributed availability groups to synchronize databases between on-premises SQL Server and SQL MI for hybrid scenarios, DR, and migration.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-mi-managed-instance-link-distributed-ag.json"},{"id":"azuresql-mi-max-16tb","text":"Azure SQL Managed Instance supports a maximum database size of 16 TB.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-mi-max-16tb.json"},{"id":"azuresql-mi-native-vnet-single-tenant","text":"Azure SQL Managed Instance is deployed into a customer's virtual network with dedicated compute/storage and single-tenant isolation.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-mi-native-vnet-single-tenant.json"},{"id":"azuresql-mi-near-100pct-sql-server-compatibility","text":"Azure SQL Managed Instance offers near 100% compatibility with the latest SQL Server Enterprise Edition.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-mi-near-100pct-sql-server-compatibility.json"},{"id":"azuresql-mi-recommended-for-most-migrations","text":"Azure SQL Managed Instance is recommended for most migrations from on-premises SQL Server to Azure.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-mi-recommended-for-most-migrations.json"},{"id":"azuresql-mi-reservations-save-up-to-80pct","text":"Azure SQL Managed Instance reserved capacity can save up to 80% on costs compared to pay-as-you-go pricing.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-mi-reservations-save-up-to-80pct.json"},{"id":"azuresql-mi-server-level-roles-supported","text":"SQL Managed Instance supports server-level roles (fixed or custom); SQL Database does not.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-mi-server-level-roles-supported.json"},{"id":"azuresql-mi-sla-99-99","text":"Azure SQL Managed Instance has a 99.99% uptime SLA.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-mi-sla-99-99.json"},{"id":"azuresql-mi-ssis-executed-on-adf-ir","text":"SSIS packages are stored in SSISDB on SQL Managed Instance but executed on Azure-SSIS Integration Runtime in Azure Data Factory.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-mi-ssis-executed-on-adf-ir.json"},{"id":"azuresql-mi-ssis-on-azure-ssis-ir-in-adf","text":"SSIS packages on SQL Managed Instance are stored in SSISDB but executed on Azure-SSIS Integration Runtime in Azure Data Factory.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-mi-ssis-on-azure-ssis-ir-in-adf.json"},{"id":"azuresql-mi-stop-start-storage-only-billing","text":"Azure SQL Managed Instance supports stop/start capability; when stopped, you pay only for storage.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-mi-stop-start-storage-only-billing.json"},{"id":"azuresql-mi-tcp-only-no-named-pipes","text":"Azure SQL Managed Instance supports TCP protocol only; named pipes are not supported.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-mi-tcp-only-no-named-pipes.json"},{"id":"azuresql-mi-tde-cert-migration-required","text":"TDE certificates must be migrated when restoring an encrypted database to SQL Managed Instance via native restore.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-mi-tde-cert-migration-required.json"},{"id":"azuresql-mi-three-hardware-series","text":"Azure SQL Managed Instance vCore model offers three hardware options: Standard Series (Gen5) at 5.1 GB RAM/vCore, Premium Series at 7 GB RAM/vCore, and Premium Series Memory-Optimized at 13.6 GB RAM/vCore.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-mi-three-hardware-series.json"},{"id":"azuresql-mi-vnet-classic-not-supported","text":"Azure SQL Managed Instance does NOT support VNet Classic deployment model; only ARM is supported.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-mi-vnet-classic-not-supported.json"},{"id":"azuresql-migration-path-tier-constrained","text":"Azure SQL migration targets are tier-constrained at every level: Managed Instance provides lift-and-shift with SQL Server 2008 backward compatibility but within a 16 TB ceiling, while Database offers scale beyond 128 TB via Hyperscale's distributed architecture but with tier-dependent HA tradeoffs (General Purpose cold-cache penalty vs Business Critical local SSD) — making tier selection inseparable from migration planning.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-migration-path-tier-constrained.json"},{"id":"azuresql-migration-with-full-data-protection","text":"Azure SQL migration achieves full data protection when tier-constrained path selection (MI for lift-and-shift, Hyperscale for scale) combines with three-layer cryptographic integrity (three encryption layers plus ledger tamper-evidence plus row-level security) — unless the target tier's backup retention ceiling creates a recovery gap.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-migration-with-full-data-protection.json"},{"id":"azuresql-network-security-perimeter-preview-not-mi","text":"Network Security Perimeter is in preview and creates logical network boundaries around PaaS resources deployed outside VNets; it does NOT apply to SQL Managed Instance.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-network-security-perimeter-preview-not-mi.json"},{"id":"azuresql-pitr-creates-new-database","text":"Azure SQL Database point-in-time restore (PITR) creates a new database on the same server with a different name; it never overwrites the original","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-pitr-creates-new-database.json"},{"id":"azuresql-pitr-creates-new-database-same-server","text":"Azure SQL Database point-in-time restore (PITR) creates a new database on the same server with a different name; it never overwrites the original.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-pitr-creates-new-database-same-server.json"},{"id":"azuresql-pitr-no-cross-region-or-subscription","text":"Azure SQL Database point-in-time restore (PITR) cannot restore cross-region or cross-subscription; geo-restore and LTR can restore cross-region.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-pitr-no-cross-region-or-subscription.json"},{"id":"azuresql-private-ip-mi-native-sqldb-private-link","text":"Azure SQL Managed Instance and SQL VMs have native private IP connectivity; Azure SQL Database requires Private Link for private IP access.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-private-ip-mi-native-sqldb-private-link.json"},{"id":"azuresql-private-ip-mi-native-sqldb-requires-private-link","text":"Azure SQL Managed Instance and SQL VMs have native private IP; Azure SQL Database requires Azure Private Link for private IP connectivity.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-private-ip-mi-native-sqldb-requires-private-link.json"},{"id":"azuresql-rls-label-based-row-access","text":"Row-Level Security (RLS) in Azure SQL controls access to individual table rows based on user characteristics and can implement label-based access control.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-rls-label-based-row-access.json"},{"id":"azuresql-rls-label-based-security","text":"Row-Level Security (RLS) in Azure SQL controls access to individual rows based on user characteristics or execution context, and can implement label-based security concepts.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-rls-label-based-security.json"},{"id":"azuresql-rls-row-level-access-control","text":"Row-Level Security (RLS) in Azure SQL controls access to individual table rows based on user characteristics and can implement label-based access control.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-rls-row-level-access-control.json"},{"id":"azuresql-row-level-security-user-context","text":"Row-Level Security (RLS) in Azure SQL controls access to individual rows based on user characteristics or execution context, and can implement label-based security concepts.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-row-level-security-user-context.json"},{"id":"azuresql-scale-vs-failover-tier-tradeoff","text":"Azure SQL HA and scale present tier-dependent tradeoffs: General Purpose achieves zero RPO but pays a cold-cache performance penalty on failover due to remote storage architecture, while Hyperscale achieves 128 TB scale through a distributed four-layer architecture (compute, page servers, log service, remote storage) — selecting between them requires weighing maximum storage requirements against failover performance characteristics.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-scale-vs-failover-tier-tradeoff.json"},{"id":"azuresql-security-diverges-by-deployment-model","text":"Azure SQL security capabilities diverge by deployment model: SQL Database supports Network Security Perimeter while Managed Instance does not, and MI supports server-level roles that Database lacks — requiring deployment model choice based on security feature requirements.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-security-diverges-by-deployment-model.json"},{"id":"azuresql-security-ledger-tamper-evidence","text":"Azure SQL Ledger provides cryptographic tamper-evidence for data integrity with immutable change records for regulatory compliance.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-security-ledger-tamper-evidence.json"},{"id":"azuresql-security-network-perimeter-not-for-mi","text":"Azure Network Security Perimeter (preview) applies to Azure SQL Database PaaS resources but does NOT apply to SQL Managed Instance.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-security-network-perimeter-not-for-mi.json"},{"id":"azuresql-security-network-perimeter-preview-not-mi","text":"Network Security Perimeter (preview) creates logical network boundaries around PaaS resources but does NOT apply to SQL Managed Instance.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-security-network-perimeter-preview-not-mi.json"},{"id":"azuresql-server-deletion-permanent","text":"Deleting an Azure SQL server permanently deletes all databases (unrecoverable), but LTR backups on blob storage survive server deletion","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-server-deletion-permanent.json"},{"id":"azuresql-serverless-general-purpose-hyperscale","text":"Azure SQL Database serverless compute is available only in General Purpose and Hyperscale tiers with per-second billing","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-serverless-general-purpose-hyperscale.json"},{"id":"azuresql-sla-values","text":"Azure SQL SLA values: SQL Database = 99.995%, Managed Instance = 99.99%, SQL VMs = 99.95% (availability set) or 99.99% (availability zones with 2 VMs).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-sla-values.json"},{"id":"azuresql-sql-database-requires-private-link-for-private-ip","text":"Azure SQL Database requires Azure Private Link for private IP access; Managed Instance and SQL VMs have native private IP by default.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-sql-database-requires-private-link-for-private-ip.json"},{"id":"azuresql-sql-vm-infra-sla-not-sql-processes","text":"SQL Server on Azure VMs SLA (99.95% availability set / 99.99% availability zones) covers infrastructure only, not SQL Server processes; Always On AGs must be implemented separately for database-level HA.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-sql-vm-infra-sla-not-sql-processes.json"},{"id":"azuresql-tde-cmk-server-or-database-level","text":"Customer-managed keys (CMK) for TDE can be configured at server level or individual database level via Azure Key Vault.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-tde-cmk-server-or-database-level.json"},{"id":"azuresql-tde-enabled-by-default","text":"Transparent Data Encryption (TDE) is enabled by default on all newly created Azure SQL databases.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-tde-enabled-by-default.json"},{"id":"azuresql-tde-log-backups-not-compressed","text":"Azure SQL Database full and differential backups are compressed (3-4x ratio), but transaction log backups are NOT compressed when TDE is enabled.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-tde-log-backups-not-compressed.json"},{"id":"azuresql-tde-no-log-backup-compression","text":"Azure SQL databases with TDE (Transparent Data Encryption) enabled do not compress transaction log backups.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-tde-no-log-backup-compression.json"},{"id":"azuresql-three-encryption-layers","text":"Azure SQL Database has three encryption layers: TLS (in motion), TDE (at rest), Always Encrypted (in use)","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-three-encryption-layers.json"},{"id":"azuresql-three-layer-data-protection","text":"Azure SQL Database provides defense-in-depth data protection through three complementary mechanisms operating at different granularities: three encryption layers (TLS in-motion, TDE at-rest, Always Encrypted in-use) protect data at every lifecycle state, ledger provides cryptographic tamper-evidence with immutable change records for regulatory compliance, and row-level security controls access to individual rows based on user characteristics without application changes.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-three-layer-data-protection.json"},{"id":"azuresql-three-products","text":"Azure SQL is a family of three products: Azure SQL Database (PaaS DBaaS), Azure SQL Managed Instance (PaaS), and SQL Server on Azure VMs (IaaS).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-three-products.json"},{"id":"azuresql-tls-always-enforced","text":"TLS is always enforced on Azure SQL (ForceEncryption=Yes); connections without encryption are not possible.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-tls-always-enforced.json"},{"id":"azuresql-tls-do-not-trust-server-certificate-production","text":"Do NOT set TrustServerCertificate=True in production — it disables protection against man-in-the-middle attacks; use Encrypt=True;TrustServerCertificate=False.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-tls-do-not-trust-server-certificate-production.json"},{"id":"azuresql-vcore-vs-dtu-models","text":"Azure SQL Database has two purchasing models: vCore (independent resource selection, Azure Hybrid Benefit) and DTU (bundled compute/memory/IO)","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-vcore-vs-dtu-models.json"},{"id":"azuresql-vm-infra-sla-not-sql-processes","text":"SQL Server on Azure VMs SLA (99.95%/99.99%) covers infrastructure only — it does not cover SQL Server processes; Always On AGs must be implemented separately for database-level HA.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-vm-infra-sla-not-sql-processes.json"},{"id":"azuresql-vm-max-256tb","text":"SQL Server on Azure VMs supports up to 256 TB of storage.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-vm-max-256tb.json"},{"id":"azuresql-windows-auth-kerberos-mi-only","text":"Windows authentication (Kerberos) for Entra principals is available only on SQL Managed Instance, not SQL Database.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-windows-auth-kerberos-mi-only.json"},{"id":"azuresql-workload-env-dev-lrs-prod-grs","text":"In Azure portal, setting workload environment to \"Development\" defaults backup redundancy to LRS; \"Production\" defaults to GRS.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-workload-env-dev-lrs-prod-grs.json"},{"id":"azuresql-zone-redundant-premium-bc-only","text":"Azure SQL Database zone-redundant deployment is available for Premium and Business Critical tiers only","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/azuresql-zone-redundant-premium-bc-only.json"},{"id":"blob-access-tier-min-retention-cool30-cold90-archive180","text":"Azure Blob Storage minimum retention periods: Cool = 30 days, Cold = 90 days, Archive = 180 days; early deletion penalties are prorated.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blob-access-tier-min-retention-cool30-cold90-archive180.json"},{"id":"blob-access-tiers-block-blobs-only","text":"Azure Blob Storage access tiers (Hot, Cool, Cold, Archive) apply only to block blobs, not append or page blobs.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blob-access-tiers-block-blobs-only.json"},{"id":"blob-archive-cannot-be-default-account-tier","text":"Azure Blob Storage Archive tier cannot be set as the default account access tier; new GPv2 accounts default to Hot.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blob-archive-cannot-be-default-account-tier.json"},{"id":"blob-archive-metadata-readable-cool-rates","text":"Azure Blob Storage archived blob metadata remains readable and index tags can be read/written; metadata access is charged at cool tier rates.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blob-archive-metadata-readable-cool-rates.json"},{"id":"blob-archive-metadata-readable-no-snapshots","text":"Azure Blob Storage Archive tier metadata remains read-only accessible without rehydration; blob index tags can be read or written, but snapshots are not supported for archived blobs.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blob-archive-metadata-readable-no-snapshots.json"},{"id":"blob-archive-metadata-readable-snapshots-not-supported","text":"Azure Blob Storage Archive tier metadata remains read-only accessible and blob index tags can be read or written, but snapshots are not supported for archived blobs.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blob-archive-metadata-readable-snapshots-not-supported.json"},{"id":"blob-archive-metadata-readable-snapshots-unsupported","text":"Azure Blob Storage Archive tier metadata remains read-only accessible, but snapshots are not supported for archived blobs.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blob-archive-metadata-readable-snapshots-unsupported.json"},{"id":"blob-archive-redundancy-lrs-grs-ragrs-only","text":"Azure Blob Storage Archive tier supports only LRS, GRS, and RA-GRS redundancy — not ZRS, GZRS, or RA-GZRS.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blob-archive-redundancy-lrs-grs-ragrs-only.json"},{"id":"blob-archive-rehydration-up-to-15-hours","text":"Azure Blob Storage Archive tier rehydration can take up to 15 hours (standard or high priority); archived blobs cannot be read or modified without rehydration.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blob-archive-rehydration-up-to-15-hours.json"},{"id":"blob-archive-snapshots-not-supported","text":"Azure Blob Storage snapshots are not supported for archived blobs.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blob-archive-snapshots-not-supported.json"},{"id":"blob-archive-tier-offline","text":"Azure Blob Storage Archive tier is offline; blobs cannot be read or modified without rehydration (up to 15 hours).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blob-archive-tier-offline.json"},{"id":"blob-copy-blob-avoids-early-deletion-penalty","text":"Using Copy Blob avoids early deletion penalty (source blob remains); Set Blob Tier on a blob before minimum retention triggers the penalty.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blob-copy-blob-avoids-early-deletion-penalty.json"},{"id":"blob-default-tier-change-billing-cooler-write-warmer-read","text":"Changing Azure Blob Storage default account tier to a cooler tier charges write operations for all inferred-tier blobs; changing to a warmer tier charges read operations plus data retrieval.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blob-default-tier-change-billing-cooler-write-warmer-read.json"},{"id":"blob-default-tier-change-billing-direction","text":"Changing Azure Storage account default tier to a cooler tier charges write operations for all inferred-tier blobs; changing to a warmer tier charges read operations and data retrieval.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blob-default-tier-change-billing-direction.json"},{"id":"blob-default-tier-change-charges-all-inferred","text":"Changing the default account access tier to a cooler tier charges write operations for all inferred-tier blobs; changing to a warmer tier charges read operations and data retrieval.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blob-default-tier-change-charges-all-inferred.json"},{"id":"blob-encryption-scope-blocks-archive","text":"Azure Blob Storage blobs using encryption scopes cannot be archived via Set Blob Tier.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blob-encryption-scope-blocks-archive.json"},{"id":"blob-encryption-scopes-cannot-archive","text":"Azure Blob Storage blobs using encryption scopes cannot be archived via Set Blob Tier.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blob-encryption-scopes-cannot-archive.json"},{"id":"blob-last-access-time-billed-once-per-24h","text":"Azure Blob Storage last access time tracking updates are billed as \"other transactions\" at most once every 24 hours per object.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blob-last-access-time-billed-once-per-24h.json"},{"id":"blob-lifecycle-access-time-billing-once-per-24h","text":"Last access time tracking updates are billed as \"other transactions\" at most once per 24 hours per object.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blob-lifecycle-access-time-billing-once-per-24h.json"},{"id":"blob-lifecycle-delete-blocked-by-immutable","text":"Azure Blob Storage lifecycle delete actions do not work on blobs in immutable containers.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blob-lifecycle-delete-blocked-by-immutable.json"},{"id":"blob-lifecycle-encryption-scope-no-archive","text":"Azure Blob Storage lifecycle policies cannot archive blobs that use an encryption scope.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blob-lifecycle-encryption-scope-no-archive.json"},{"id":"blob-lifecycle-immutable-blocks-delete","text":"Lifecycle delete actions do not work on blobs in immutable containers.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blob-lifecycle-immutable-blocks-delete.json"},{"id":"blob-lifecycle-immutable-containers-block-delete","text":"Lifecycle delete actions do not work on blobs in immutable containers.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blob-lifecycle-immutable-containers-block-delete.json"},{"id":"blob-lifecycle-last-access-billed-once-per-24h","text":"Last access time tracking updates are billed as \"other transactions\" at most once every 24 hours per object.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blob-lifecycle-last-access-billed-once-per-24h.json"},{"id":"blob-lifecycle-last-access-billing-once-per-24h","text":"Last access time tracking updates are billed as \"other transactions\" at most once per 24 hours per object.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blob-lifecycle-last-access-billing-once-per-24h.json"},{"id":"blob-lifecycle-management-cannot-rehydrate-archive","text":"Azure Blob Storage lifecycle management policies cannot rehydrate blobs from the Archive tier.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blob-lifecycle-management-cannot-rehydrate-archive.json"},{"id":"blob-lifecycle-max-10-prefixes-10-tags","text":"Each lifecycle rule supports up to 10 case-sensitive prefix filters and 10 blob index tag conditions, combined with logical AND (no exclusion mechanism).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blob-lifecycle-max-10-prefixes-10-tags.json"},{"id":"blob-lifecycle-monitor-event","text":"Lifecycle policy runs can be monitored by subscribing to the LifecyclePolicyCompleted event.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blob-lifecycle-monitor-event.json"},{"id":"blob-lifecycle-no-archive-rehydration","text":"Lifecycle policies cannot rehydrate blobs from archive tier to an online tier.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blob-lifecycle-no-archive-rehydration.json"},{"id":"blob-lifecycle-no-partial-update","text":"Azure Blob Storage lifecycle management policies must be read or written in full — partial updates are not supported.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blob-lifecycle-no-partial-update.json"},{"id":"blob-lifecycle-no-partial-updates","text":"Blob lifecycle management policies must be read or written in full — partial updates are not supported.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blob-lifecycle-no-partial-updates.json"},{"id":"blob-lifecycle-policies-no-partial-update","text":"Azure Blob Storage lifecycle management policies must be read or written in full — partial updates are not supported.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blob-lifecycle-policies-no-partial-update.json"},{"id":"blob-lifecycle-policy-24h-activation","text":"Azure Blob Storage lifecycle management policy changes take up to 24 hours to take effect and begin first execution.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blob-lifecycle-policy-24h-activation.json"},{"id":"blob-lifecycle-policy-24h-propagation","text":"Blob lifecycle policy changes take up to 24 hours to go into effect.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blob-lifecycle-policy-24h-propagation.json"},{"id":"blob-lifecycle-policy-24h-to-take-effect","text":"Azure Blob Storage lifecycle management policy changes take up to 24 hours to take effect and begin first execution.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blob-lifecycle-policy-24h-to-take-effect.json"},{"id":"blob-lifecycle-policy-free-of-charge","text":"Azure Blob Storage lifecycle management policies are free of charge; billing applies only for underlying Set Blob Tier API calls and transaction costs, and delete operations are free.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blob-lifecycle-policy-free-of-charge.json"},{"id":"blob-lifecycle-policy-full-read-write-only","text":"Azure Blob Storage lifecycle management policies must be read or written in full; partial updates are not supported.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blob-lifecycle-policy-full-read-write-only.json"},{"id":"blob-lifecycle-policy-no-partial-updates","text":"Azure Blob Storage lifecycle management policies must be read or written in full — partial updates are not supported.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blob-lifecycle-policy-no-partial-updates.json"},{"id":"blob-lifecycle-safe-delete-procedure","text":"Recommended lifecycle policy deletion procedure: disable all rules first, wait 24 hours, then delete the policy.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blob-lifecycle-safe-delete-procedure.json"},{"id":"blob-lifecycle-system-containers-excluded","text":"Lifecycle policies never affect system containers ($logs, $web).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blob-lifecycle-system-containers-excluded.json"},{"id":"blob-lifecycle-tiering-block-blobs-only","text":"Lifecycle tier transitions apply only to block blobs; tiering is not supported for append blobs, page blobs, or premium block blob accounts.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blob-lifecycle-tiering-block-blobs-only.json"},{"id":"blob-online-tiers-millisecond-first-byte-latency","text":"All Azure Blob Storage online access tiers (Hot, Cool, Cold) share the same millisecond first-byte latency; only Archive tier has latency measured in hours.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blob-online-tiers-millisecond-first-byte-latency.json"},{"id":"blob-online-tiers-millisecond-latency","text":"All Azure Blob Storage online tiers (Hot, Cool, Cold) share the same millisecond first-byte latency; only Archive has hours-level latency.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blob-online-tiers-millisecond-latency.json"},{"id":"blob-premium-block-blob-cannot-tier","text":"Azure Premium block blob storage accounts cannot tier to hot/cool/cold/archive via Set Blob Tier or lifecycle management.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blob-premium-block-blob-cannot-tier.json"},{"id":"blob-premium-block-cannot-tier-lifecycle","text":"Azure Premium block blob storage accounts cannot tier blobs to hot/cool/cold/archive via Set Blob Tier or lifecycle management.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blob-premium-block-cannot-tier-lifecycle.json"},{"id":"blob-smart-tier-auto-moves-hot-cool-cold","text":"Azure Blob Storage Smart tier automatically moves data between hot, cool, and cold tiers based on usage patterns.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blob-smart-tier-auto-moves-hot-cool-cold.json"},{"id":"blob-storage-client-libraries-five-languages","text":"Azure Blob Storage provides client libraries for .NET, Java, Node.js, Python, and Go.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blob-storage-client-libraries-five-languages.json"},{"id":"blob-storage-sftp-nfs-support","text":"Azure Blob Storage supports SFTP and NFS 3.0 protocols in addition to HTTP/HTTPS.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blob-storage-sftp-nfs-support.json"},{"id":"blob-storage-unstructured-data","text":"Azure Blob Storage is Microsoft's object storage solution for unstructured data (text and binary).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blob-storage-unstructured-data.json"},{"id":"blob-tier-availability-hot999-cool-cold99","text":"Azure Blob Storage availability SLAs: Hot = 99.9%, Cool/Cold = 99%, Archive = 99%; with RA-GRS: Hot = 99.99%, others = 99.9%.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blob-tier-availability-hot999-cool-cold99.json"},{"id":"blob-tier-billing-warmer-cooler-write-cooler-warmer-read","text":"Azure Blob Storage tier changes from warmer to cooler are billed as write operations to the destination; cooler to warmer are billed as read operations plus data retrieval from the source.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blob-tier-billing-warmer-cooler-write-cooler-warmer-read.json"},{"id":"blob-tier-change-billing-direction","text":"Moving a blob to a cooler tier is billed as a write operation to the destination tier; moving to a warmer tier is billed as a read operation from the source tier.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blob-tier-change-billing-direction.json"},{"id":"blueprints-artifact-size-limit-2mb","text":"Each Azure Blueprint artifact must be ≤ 2 MB in size.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blueprints-artifact-size-limit-2mb.json"},{"id":"blueprints-backed-by-cosmos-db","text":"Azure Blueprint objects are backed by Cosmos DB, globally replicated for low latency and high availability.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blueprints-backed-by-cosmos-db.json"},{"id":"blueprints-backed-by-cosmosdb-global-replication","text":"Blueprint objects are stored in Azure Cosmos DB and globally replicated for low latency and high availability.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blueprints-backed-by-cosmosdb-global-replication.json"},{"id":"blueprints-contributor-cannot-assign-operator-cannot-create","text":"Blueprint Contributor can manage blueprint definitions but cannot assign them; Blueprint Operator can assign blueprints but cannot create definitions.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blueprints-contributor-cannot-assign-operator-cannot-create.json"},{"id":"blueprints-contributor-vs-operator-roles","text":"Blueprint Contributor can manage blueprint definitions but cannot assign them; Blueprint Operator can assign blueprints but cannot create or modify definitions.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blueprints-contributor-vs-operator-roles.json"},{"id":"blueprints-deprecated-july-2026","text":"Azure Blueprints (Preview) is deprecated on July 11, 2026; successor services are Template Specs (definition storage) and Deployment Stacks (lifecycle management).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blueprints-deprecated-july-2026.json"},{"id":"blueprints-four-artifact-types","text":"Azure Blueprints supports four artifact types: Resource Groups, ARM templates, Policy Assignments, and Role Assignments.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blueprints-four-artifact-types.json"},{"id":"blueprints-naming-limits","text":"Blueprint naming limits: definition name max 48 characters, version max 20 characters, assignment name max 90 characters.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blueprints-naming-limits.json"},{"id":"blueprints-parameters-via-rest-api-only","text":"Blueprint-level parameters can only be created via REST API, not the Azure portal.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blueprints-parameters-via-rest-api-only.json"},{"id":"blueprints-persistent-definition-assignment-relationship","text":"Unlike ARM templates, Azure Blueprints maintain a persistent relationship between definition and assignment, enabling audit and tracking of deployed resources.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blueprints-persistent-definition-assignment-relationship.json"},{"id":"blueprints-persistent-relationship-vs-arm","text":"Key differentiator from ARM templates: Blueprints maintain a persistent relationship between definition and assignment for tracking and auditing; ARM templates have no post-deployment connection.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blueprints-persistent-relationship-vs-arm.json"},{"id":"blueprints-system-identity-requires-owner","text":"System-assigned managed identity for blueprint deployment requires Owner role on the target subscription; user-assigned managed identity only requires blueprintAssignments/write.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blueprints-system-identity-requires-owner.json"},{"id":"blueprints-system-mi-requires-owner","text":"System-assigned managed identity for Blueprint deployment requires the Owner role on the target subscription; user-assigned managed identity only requires blueprintAssignments/write.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/blueprints-system-mi-requires-owner.json"},{"id":"cannot-change-subnet-address-range-with-resources","text":"A subnet's address range cannot be changed while resources are deployed in it — resources must be moved or deleted first.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/cannot-change-subnet-address-range-with-resources.json"},{"id":"cannot-delete-subnet-with-resources","text":"A subnet cannot be deleted while it contains resources — all resources must be removed first.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/cannot-delete-subnet-with-resources.json"},{"id":"cloud-security-benchmark-underpins-waf-security","text":"The Microsoft Cloud Security Benchmark provides the control framework that underpins WAF Security pillar guidance.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/cloud-security-benchmark-underpins-waf-security.json"},{"id":"cluster-autoscaler-checks-every-10s","text":"The AKS cluster autoscaler checks the Metrics API server every 10 seconds and requires RBAC-enabled AKS running Kubernetes 1.10.x+.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/cluster-autoscaler-checks-every-10s.json"},{"id":"cluster-autoscaler-scale-in-10min-idle","text":"The cluster autoscaler schedules node deletion after nodes are unused for 10 minutes (default threshold).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/cluster-autoscaler-scale-in-10min-idle.json"},{"id":"container-platform-identity-verified-defense-in-depth","text":"Container platform from ACR registry to AKS runtime achieves fully Entra-identity-verified defense-in-depth across all security layers — supply chain integrity (content trust + Notary V2 signing) with end-to-end network isolation (Private Link backbone routing + per-resource mapping) and identity-integrated secrets management (managed identity→Key Vault lifecycle) — when all authentication flows consistently use the Entra model.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/container-platform-identity-verified-defense-in-depth.json"},{"id":"container-supply-chain-identity-unified","text":"Container supply chain from ACR to AKS achieves unified Entra-based identity verification: registry authentication, image pull, and deployment authorization all flow through the same Entra identity model with lifecycle-managed credentials.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/container-supply-chain-identity-unified.json"},{"id":"container-supply-chain-network-isolated-end-to-end","text":"Container supply chain from ACR to AKS runtime can achieve full network isolation: ACR Premium gates content trust and private endpoints while AKS verifies images via Notary V2 and Trusted Launch — and both connect through Private Link's backbone-only routing with per-resource private DNS zones eliminating public internet traversal.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/container-supply-chain-network-isolated-end-to-end.json"},{"id":"container-supply-chain-registry-to-runtime","text":"Azure container supply chain verification spans two services: ACR (Premium tier required for content trust and geo-replication) provides image signing and scanning, while AKS provides Notary V2 image verification and Trusted Launch for node integrity.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/container-supply-chain-registry-to-runtime.json"},{"id":"datalake-gen2-built-on-blob","text":"Azure Data Lake Storage Gen2 is not a separate service; it is a capability of Blob Storage with hierarchical namespace enabled.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/datalake-gen2-built-on-blob.json"},{"id":"defender-for-cloud-multi-cloud","text":"Microsoft Defender for Cloud covers multi-cloud workloads across Azure, AWS, and GCP — not Azure-only.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/defender-for-cloud-multi-cloud.json"},{"id":"elastic-san-only-lrs-zrs","text":"Azure Elastic SAN supports only LRS and ZRS redundancy options — no geo-redundant options.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/elastic-san-only-lrs-zrs.json"},{"id":"entra-admin-center-url","text":"The Microsoft Entra admin center is accessible at https://entra.microsoft.com.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-admin-center-url.json"},{"id":"entra-app-deactivation-preserves-objects","text":"An application in Microsoft Entra ID can be temporarily deactivated to prevent new token issuance while preserving both the application object and service principal.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-app-deactivation-preserves-objects.json"},{"id":"entra-app-deactivation-prevents-tokens","text":"An application can be temporarily deactivated to prevent new token issuance without deleting the application object or service principal.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-app-deactivation-prevents-tokens.json"},{"id":"entra-app-deactivation-prevents-tokens-preserves-objects","text":"An application can be deactivated to prevent new token issuance without deleting the application object or service principal.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-app-deactivation-prevents-tokens-preserves-objects.json"},{"id":"entra-app-object-changes-reflect-home-sp-only","text":"Changes to an application object are reflected only in the home tenant's service principal, not in service principals in other tenants.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-app-object-changes-reflect-home-sp-only.json"},{"id":"entra-app-object-changes-reflect-home-tenant-only","text":"Changes to an application object are reflected only in the home tenant's service principal, not in service principals in other tenants.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-app-object-changes-reflect-home-tenant-only.json"},{"id":"entra-app-object-global-sp-local","text":"The application object is the global representation of an application; the service principal is the local representation per tenant.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-app-object-global-sp-local.json"},{"id":"entra-app-object-one-to-many-service-principals","text":"An application object has a one-to-many relationship with service principals: one app object in the home tenant, one service principal per tenant where the app is used.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-app-object-one-to-many-service-principals.json"},{"id":"entra-app-registrations-vs-enterprise-applications","text":"Application objects are managed under App registrations; service principals are managed under Enterprise applications in the Entra admin center.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-app-registrations-vs-enterprise-applications.json"},{"id":"entra-app-registrations-vs-enterprise-apps-portal","text":"Application objects are managed under the App registrations page; service principals are managed under the Enterprise applications page in the Entra admin center.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-app-registrations-vs-enterprise-apps-portal.json"},{"id":"entra-application-two-object-model","text":"Entra application identity requires a two-object model: application objects (managed via App registrations) define the app globally, while service principals (managed via Enterprise applications) instantiate per-tenant access — a service principal must exist in each tenant for sign-in, and the portal auto-creates both objects simultaneously, masking this distinction until multi-tenant scenarios surface it.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-application-two-object-model.json"},{"id":"entra-azure-ad-b2c-end-of-sale-may-2025","text":"Azure AD B2C is end-of-sale for new customers as of May 1, 2025.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-azure-ad-b2c-end-of-sale-may-2025.json"},{"id":"entra-delete-app-deletes-home-sp-no-restore","text":"Deleting an application object deletes the home tenant service principal; restoring the app via App Registrations does NOT restore the service principal.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-delete-app-deletes-home-sp-no-restore.json"},{"id":"entra-deleted-user-frees-licenses","text":"When a Microsoft Entra user is deleted, their assigned licenses are freed and become available for other users.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-deleted-user-frees-licenses.json"},{"id":"entra-deleted-users-recoverable-30-days","text":"Deleted users in Microsoft Entra ID are soft-deleted and recoverable for 30 days.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-deleted-users-recoverable-30-days.json"},{"id":"entra-domain-services-managed-kerberos-ldap","text":"Microsoft Entra Domain Services provides managed Kerberos, NTLM, LDAP, and Group Policy services — no domain controllers to maintain.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-domain-services-managed-kerberos-ldap.json"},{"id":"entra-dynamic-group-org-wide-reevaluation","text":"Dynamic group membership processes all organization-wide rules when any user or device attribute changes, not just rules relevant to the changed attribute.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-dynamic-group-org-wide-reevaluation.json"},{"id":"entra-dynamic-membership-org-wide-reevaluation","text":"When any user or device attribute changes, Microsoft Entra re-evaluates all dynamic group membership rules across the entire organization.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-dynamic-membership-org-wide-reevaluation.json"},{"id":"entra-dynamic-membership-orgwide-reevaluation","text":"Dynamic group membership processes all org-wide dynamic group rules when any user or device attribute changes — not just rules for the affected group.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-dynamic-membership-orgwide-reevaluation.json"},{"id":"entra-external-guests-no-admin-units","text":"External guests cannot be assigned to administrative units in Microsoft Entra ID.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-external-guests-no-admin-units.json"},{"id":"entra-external-id-b2b-and-b2c","text":"Microsoft Entra External ID manages both B2B collaboration (partners/guests) and B2C/CIAM (customer-facing apps) with self-service registration, social login, and one-time passcodes.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-external-id-b2b-and-b2c.json"},{"id":"entra-external-id-b2b-and-ciam","text":"Microsoft Entra External ID supports both B2B collaboration (partners/guests) and B2C/CIAM (customer-facing apps with self-service registration and social login).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-external-id-b2b-and-ciam.json"},{"id":"entra-external-member-federates-to-home-tenant","text":"External members in Microsoft Entra ID authenticate via federation to their home tenant, while internal users have credentials managed directly in the local tenant.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-external-member-federates-to-home-tenant.json"},{"id":"entra-external-tenant-users-no-admin-units-at-creation","text":"External users in external tenants (Entra External ID) cannot be assigned to administrative units or roles at creation.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-external-tenant-users-no-admin-units-at-creation.json"},{"id":"entra-four-workforce-user-types","text":"Microsoft Entra ID workforce tenants have four user types: internal member, internal guest, external member, and external guest.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-four-workforce-user-types.json"},{"id":"entra-group-admin-roles","text":"Groups Administrator or User Administrator role is required to manage Entra groups; Privileged Role Administrator is required to enable role assignment on groups.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-group-admin-roles.json"},{"id":"entra-group-membership-types","text":"Entra group membership types are: Assigned, Dynamic User, and Dynamic Device.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-group-membership-types.json"},{"id":"entra-group-name-no-leading-space","text":"Microsoft Entra group names cannot start with a space — doing so prevents the group from appearing in role assignment options.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-group-name-no-leading-space.json"},{"id":"entra-group-type-immutable","text":"Microsoft Entra group type (Security or Microsoft 365) cannot be changed after creation — must delete and recreate.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-group-type-immutable.json"},{"id":"entra-groups-admin-roles","text":"Groups Administrator or User Administrator roles are required for group CRUD and membership management in Microsoft Entra ID.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-groups-admin-roles.json"},{"id":"entra-groups-admin-roles-groups-or-user-administrator","text":"Groups Administrator or User Administrator roles are required for group CRUD and membership management in Microsoft Entra.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-groups-admin-roles-groups-or-user-administrator.json"},{"id":"entra-groups-admin-roles-required","text":"Managing Entra groups requires Groups Administrator or User Administrator role; Privileged Role Administrator is required to enable role assignment on groups.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-groups-admin-roles-required.json"},{"id":"entra-id-governance-access-lifecycle","text":"Microsoft Entra ID Governance automates the full identity lifecycle: access requests, assignments, reviews, and automatic provisioning/deprovisioning (e.g., employee onboarding/offboarding).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-id-governance-access-lifecycle.json"},{"id":"entra-id-governance-lifecycle-automation","text":"Microsoft Entra ID Governance automates the full identity lifecycle (joiner, mover, leaver) including access request, assignment, and review workflows.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-id-governance-lifecycle-automation.json"},{"id":"entra-id-initial-domain-onmicrosoft","text":"Every Microsoft Entra ID directory gets an initial domain in the format `<tenant>.onmicrosoft.com`.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-id-initial-domain-onmicrosoft.json"},{"id":"entra-id-protection-requires-p2","text":"Microsoft Entra ID Protection (risk detection and risk-based Conditional Access) requires a P2 license.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-id-protection-requires-p2.json"},{"id":"entra-id-protection-requires-p2-license","text":"Microsoft Entra ID Protection (risk detection and risk-based Conditional Access) requires a Microsoft Entra ID P2 license.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-id-protection-requires-p2-license.json"},{"id":"entra-id-protection-risk-based-conditional-access","text":"Microsoft Entra ID Protection detects identity-based risks and enables risk-based Conditional Access policies at low, medium, and high risk levels.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-id-protection-risk-based-conditional-access.json"},{"id":"entra-id-roles-separate-from-azure-rbac","text":"Microsoft Entra ID has its own separate set of built-in roles distinct from Azure RBAC roles.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-id-roles-separate-from-azure-rbac.json"},{"id":"entra-identity-dual-model-lifecycle","text":"Entra ID's dual identity model — service principals (app registrations with client credentials) and managed identities (platform-managed, no credential management) — creates a tradeoff between flexibility and operational complexity, with managed identities reducing credential management overhead.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-identity-dual-model-lifecycle.json"},{"id":"entra-identity-keyvault-secrets-lifecycle-integration","text":"Azure identity and secrets management form an integrated lifecycle that must be designed together: Entra's dual-model identity system provides authentication (app registrations for multi-tenant, managed identities for Azure-native), while Key Vault's defense-in-depth lifecycle (tiered FIPS + layered deletion protection) secures the cryptographic material accessed via those identities.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-identity-keyvault-secrets-lifecycle-integration.json"},{"id":"entra-identity-to-authorization-chain","text":"Azure identity-to-authorization follows a two-stage chain with distinct lifecycle and evaluation models: Entra provides identity through either a two-object app/service-principal model (manual lifecycle) or managed identities (auto-lifecycle tied to resource), then RBAC provides authorization through additive union of all role assignments evaluated against ARM scope hierarchy — identity type determines lifecycle complexity while role assignment scope determines access breadth.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-identity-to-authorization-chain.json"},{"id":"entra-initial-domain-onmicrosoft","text":"Every new Entra directory gets an initial domain like `contoso.onmicrosoft.com`; custom domains can be added afterward.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-initial-domain-onmicrosoft.json"},{"id":"entra-initial-domain-onmicrosoft-com","text":"Every new Entra directory gets an initial domain in the format `<name>.onmicrosoft.com`; custom domains can be added afterward.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-initial-domain-onmicrosoft-com.json"},{"id":"entra-internet-access-replaces-web-proxies","text":"Microsoft Entra Internet Access replaces traditional web proxies by securing access to internet and SaaS resources with web content filtering by category and domain; it is part of Global Secure Access alongside Private Access.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-internet-access-replaces-web-proxies.json"},{"id":"entra-internet-access-web-content-filtering","text":"Microsoft Entra Internet Access secures access to internet resources, SaaS apps, and Microsoft 365 with features like web content filtering.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-internet-access-web-content-filtering.json"},{"id":"entra-internet-access-web-filtering","text":"Microsoft Entra Internet Access secures access to internet resources, SaaS apps, and Microsoft 365 with features like web content filtering.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-internet-access-web-filtering.json"},{"id":"entra-is-product-family-not-single-product","text":"Microsoft Entra is a product family spanning identity, governance, protection, and network access — not a single product. Entra ID (formerly Azure AD) is the foundational IAM product within it.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-is-product-family-not-single-product.json"},{"id":"entra-legacy-sp-no-app-registration","text":"Legacy service principals have no associated app registration and are only usable in the tenant where they were created.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-legacy-sp-no-app-registration.json"},{"id":"entra-m365-group-email","text":"Microsoft 365 is the only Entra group type that supports a group email address.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-m365-group-email.json"},{"id":"entra-m365-group-welcome-email-auto","text":"When users are added to a Microsoft 365 group, a welcome email is sent automatically; it can be disabled using the `Set-UnifiedGroup` cmdlet in Exchange PowerShell.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-m365-group-welcome-email-auto.json"},{"id":"entra-m365-group-welcome-email-disable-set-unifiedgroup","text":"Welcome emails are sent automatically when users are added to Microsoft 365 groups; they can be disabled using the `Set-UnifiedGroup` cmdlet in Exchange PowerShell.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-m365-group-welcome-email-disable-set-unifiedgroup.json"},{"id":"entra-managed-identity-deployment-slot-name","text":"For App Service deployment slots, the system-assigned managed identity service principal name follows the format `<app-name>/slots/<slot-name>`.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-managed-identity-deployment-slot-name.json"},{"id":"entra-managed-identity-sp-no-app-object","text":"Managed identity service principals have no associated application object and cannot be updated or modified directly.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-managed-identity-sp-no-app-object.json"},{"id":"entra-managed-identity-token-workflow","text":"The managed identity workflow is: create/enable identity, assign it to compute resource, grant RBAC roles on target service, use Azure.Identity or MSAL SDK in code to acquire tokens — no secrets needed.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-managed-identity-token-workflow.json"},{"id":"entra-multitenant-consent-creates-sp-in-consumer-tenant","text":"Admin consent for a multitenant app in a consumer tenant creates a service principal in that consumer tenant.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-multitenant-consent-creates-sp-in-consumer-tenant.json"},{"id":"entra-multitenant-sp-created-on-consent","text":"In multitenant scenarios, a service principal is created in a consumer tenant when an admin or user grants consent; single-tenant apps have a service principal only in the home tenant.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-multitenant-sp-created-on-consent.json"},{"id":"entra-nested-group-restrictions","text":"Nested groups cannot: add security groups to M365 groups, add M365 groups to security/M365 groups, add on-prem synced groups, add groups to role-assignable groups; nested groups do not inherit shared resource/app access; licenses cannot be applied to nested security groups.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-nested-group-restrictions.json"},{"id":"entra-nested-groups-inherit-conditional-access","text":"Nested groups inherit Conditional Access policy scopes and membership, but do NOT inherit shared resource or application access.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-nested-groups-inherit-conditional-access.json"},{"id":"entra-nested-groups-security-only","text":"Nested groups (group within a group) are supported for security groups only, not Microsoft 365 groups.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-nested-groups-security-only.json"},{"id":"entra-on-prem-synced-groups-no-nested-additions","text":"Groups synced from on-premises Active Directory to Entra ID cannot have other groups added to them as members.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-on-prem-synced-groups-no-nested-additions.json"},{"id":"entra-portal-creates-both-app-and-sp","text":"Registering an app via the Azure portal auto-creates both the application object and the service principal; via Microsoft Graph APIs, creating the service principal is a separate step.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-portal-creates-both-app-and-sp.json"},{"id":"entra-private-access-replaces-vpn","text":"Microsoft Entra Private Access replaces VPN by securing access to private apps and corporate networks from any device or network.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-private-access-replaces-vpn.json"},{"id":"entra-privileged-auth-admin-can-delete-any-user","text":"The Privileged Authentication Administrator role can delete any user including other admins; the User Administrator role cannot delete admin users.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-privileged-auth-admin-can-delete-any-user.json"},{"id":"entra-role-assignable-groups-require-p1-p2","text":"Role-assignable groups in Microsoft Entra require a P1 or P2 license and the Privileged Role Administrator role, and are locked to Assigned membership type.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-role-assignable-groups-require-p1-p2.json"},{"id":"entra-sp-required-for-tenant-access","text":"A service principal must exist in a tenant for an application to sign in or access resources in that tenant.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-sp-required-for-tenant-access.json"},{"id":"entra-synced-users-modify-in-onprem-ad","text":"Users synced from on-premises AD to Entra ID must be modified in Windows Server AD, not in Entra; changes require waiting for the next sync cycle.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-synced-users-modify-in-onprem-ad.json"},{"id":"entra-system-assigned-identity-sp-name-matches-resource","text":"A system-assigned managed identity's service principal name matches the Azure resource name; for deployment slots the format is `<app-name>/slots/<slot-name>`.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-system-assigned-identity-sp-name-matches-resource.json"},{"id":"entra-tenant-auto-created-with-m365-azure","text":"Every Microsoft 365, Office 365, Azure, and Dynamics CRM Online tenant is automatically a Microsoft Entra tenant.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-tenant-auto-created-with-m365-azure.json"},{"id":"entra-three-service-principal-types","text":"Microsoft Entra ID has three types of service principals: Application, Managed Identity, and Legacy.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-three-service-principal-types.json"},{"id":"entra-user-creation-max-20-groups-1-admin-unit","text":"Up to 20 groups or roles can be assigned at user creation; only one administrative unit can be assigned.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-user-creation-max-20-groups-1-admin-unit.json"},{"id":"entra-user-type-determines-privilege-level","text":"User type (Member vs Guest) determines privilege level, not whether the account is internal or external.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-user-type-determines-privilege-level.json"},{"id":"entra-verified-id-uses-did-standards","text":"Microsoft Entra Verified ID is a decentralized identity (DID) credential verification service based on open standards where the user controls their credentials.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-verified-id-uses-did-standards.json"},{"id":"entra-workload-id-non-human-identities","text":"Microsoft Entra Workload ID provides IAM for non-human identities: applications, services, containers, and CI/CD pipelines.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/entra-workload-id-non-human-identities.json"},{"id":"eventgrid-413-payload-too-large","text":"Event Grid returns HTTP 413 Payload Too Large when event or event array size exceeds the 1 MB limit.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventgrid-413-payload-too-large.json"},{"id":"eventgrid-cloudevents-input-cannot-output-eventgrid-format","text":"CloudEvents input schema cannot be transformed to Event Grid output format because CloudEvents supports extension attributes that Event Grid schema does not; Event Grid input can output either format.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventgrid-cloudevents-input-cannot-output-eventgrid-format.json"},{"id":"eventgrid-cloudevents-structured-json-only","text":"Azure Event Grid supports CloudEvents 1.0 in Structured JSON content mode only; Binary content mode is not supported.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventgrid-cloudevents-structured-json-only.json"},{"id":"eventgrid-eventhubs-handler-requires-data-sender-role","text":"When using managed identity to deliver Event Grid events to Event Hubs, the identity needs the Event Hubs Data Sender RBAC role.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventgrid-eventhubs-handler-requires-data-sender-role.json"},{"id":"eventgrid-events-must-publish-as-array","text":"Events must always be published to Event Grid as a JSON array, even when sending a single event.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventgrid-events-must-publish-as-array.json"},{"id":"eventgrid-events-published-as-array","text":"Events must always be published to Event Grid in a JSON array, even for a single event.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventgrid-events-published-as-array.json"},{"id":"eventgrid-max-event-size-1mb","text":"Azure Event Grid maximum event size is 1 MB; events over 64 KB are charged in 64 KB increments.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventgrid-max-event-size-1mb.json"},{"id":"eventgrid-max-event-size-1mb-charged-64kb","text":"Event Grid maximum event size is 1 MB; events over 64 KB are charged in 64 KB increments (e.g., a 130 KB event is charged as 3 operations).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventgrid-max-event-size-1mb-charged-64kb.json"},{"id":"eventgrid-metadata-version-only-1","text":"Event Grid schema `metadataVersion` is currently only version `1`; Event Grid stamps it if omitted.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventgrid-metadata-version-only-1.json"},{"id":"eventgrid-publish-auth-sas-or-key","text":"Publishing events to Event Grid requires SAS token or key authentication.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventgrid-publish-auth-sas-or-key.json"},{"id":"eventgrid-schema-413-payload-too-large","text":"Azure Event Grid returns 413 Payload Too Large when the event array exceeds the 1 MB size limit.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventgrid-schema-413-payload-too-large.json"},{"id":"eventgrid-schema-not-extensible-cloudevents-recommended","text":"The Event Grid event schema is proprietary and nonextensible; Microsoft recommends migrating to CloudEvents format, though Event Grid schema is not being retired.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventgrid-schema-not-extensible-cloudevents-recommended.json"},{"id":"eventgrid-schema-not-retired-but-no-improvements","text":"Event Grid proprietary schema is not being retired but will receive no major improvements; CloudEvents is the recommended format.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventgrid-schema-not-retired-but-no-improvements.json"},{"id":"eventgrid-schema-required-fields","text":"Event Grid schema required properties are: `subject`, `eventType`, `eventTime`, `id`, and `data`; `topic` is optional (Event Grid stamps it if omitted).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventgrid-schema-required-fields.json"},{"id":"eventgrid-schema-required-properties","text":"Event Grid schema required properties are: `subject`, `eventType`, `eventTime`, `id`, and `data`; `topic` is optional (Event Grid stamps it if omitted).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventgrid-schema-required-properties.json"},{"id":"eventgrid-subject-path-and-suffix-filtering","text":"Event Grid supports path-based filtering on the `subject` field (e.g., `/A/B/C`) and suffix filtering (e.g., `.txt`) for event routing.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventgrid-subject-path-and-suffix-filtering.json"},{"id":"eventgrid-subject-path-based-filtering","text":"Event Grid supports path-based filtering on the `subject` field (e.g., `/A/B/C`) and suffix filtering (e.g., `.txt`) for event routing.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventgrid-subject-path-based-filtering.json"},{"id":"eventgrid-subject-path-filtering","text":"Event Grid supports path-based filtering on the `subject` field (e.g., `/A/B/C` for narrow, `/A` for broad) and suffix filtering (e.g., `.txt`), enabling flexible event routing.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventgrid-subject-path-filtering.json"},{"id":"eventgrid-subscription-expiration-and-filtering","text":"Event Grid event subscriptions support filtering by event type and subject, and can have an expiration time for automatic cleanup.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventgrid-subscription-expiration-and-filtering.json"},{"id":"eventgrid-subscription-expiration-time","text":"Event Grid event subscriptions can have an expiration time set for automatic cleanup of temporary subscriptions.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventgrid-subscription-expiration-time.json"},{"id":"eventgrid-supports-availability-zones","text":"Azure Event Grid leverages Azure availability zones for regional high availability and fault tolerance.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventgrid-supports-availability-zones.json"},{"id":"eventgrid-three-topic-types","text":"Event Grid has three topic types: custom topics (user-created), system topics (built-in from Azure services), and partner topics (from external SaaS/ERP providers via Partner Events).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventgrid-three-topic-types.json"},{"id":"eventhubs-append-only-log-kafka-topic-equivalent","text":"An Azure Event Hub is an append-only distributed log, equivalent to a Kafka topic; partitions are ordered sequences of events within an event hub.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-append-only-log-kafka-topic-equivalent.json"},{"id":"eventhubs-auth-entra-sas-managed-identity","text":"Azure Event Hubs authentication options include Microsoft Entra ID (RBAC), Shared Access Signatures (SAS), and Managed Identities.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-auth-entra-sas-managed-identity.json"},{"id":"eventhubs-auto-inflate-scales-up-only","text":"Azure Event Hubs auto-inflate only scales throughput units upward, never downward.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-auto-inflate-scales-up-only.json"},{"id":"eventhubs-auto-inflate-up-only","text":"Event Hubs Auto-inflate automatically scales throughput units upward to prevent throttling but does not scale down.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-auto-inflate-up-only.json"},{"id":"eventhubs-az-zones-premium-dedicated-only","text":"Azure Event Hubs availability zone support is available on Premium and Dedicated tiers only.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-az-zones-premium-dedicated-only.json"},{"id":"eventhubs-capture-avro-default-parquet-optional","text":"Event Hubs Capture archives streaming data to Azure Blob Storage or Data Lake Storage in Avro format (default) or Parquet (via no-code editor).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-capture-avro-default-parquet-optional.json"},{"id":"eventhubs-capture-formats-avro-parquet","text":"Event Hubs Capture supports Avro (default) and Parquet (via no-code editor) formats for archival to Blob Storage or Data Lake.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-capture-formats-avro-parquet.json"},{"id":"eventhubs-capture-to-blob-or-datalake","text":"Azure Event Hubs Capture automatically writes streaming data in near-real-time to Azure Blob Storage or Azure Data Lake Storage for long-term retention.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-capture-to-blob-or-datalake.json"},{"id":"eventhubs-checkpointing-consumer-responsibility","text":"Event Hubs checkpointing (saving current offset for resumption/failover) is the consumer's responsibility, not the service's; best practice is Azure Blob Storage with a separate container per consumer group.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-checkpointing-consumer-responsibility.json"},{"id":"eventhubs-consumer-ownership-isolation-model","text":"Event Hubs enforces isolated ordered processing through two complementary mechanisms: consumer groups provide independent position tracking where each group maintains its own offset cursor in the partition log, while epoch-based ownership within each group ensures single-owner-per-partition exclusivity by evicting lower-epoch consumers, together preventing both cross-group interference and within-group split-brain concurrent processing.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-consumer-ownership-isolation-model.json"},{"id":"eventhubs-cross-protocol-produce-consume","text":"Event Hubs supports cross-protocol reading and writing: produce via Kafka and consume via AMQP (or vice versa) on the same event hub.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-cross-protocol-produce-consume.json"},{"id":"eventhubs-cross-protocol-read-write","text":"Event Hubs supports cross-protocol reading: produce via Kafka and consume via AMQP, or vice versa.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-cross-protocol-read-write.json"},{"id":"eventhubs-default-consumer-group-dollar-default","text":"Event Hubs default consumer group is named `$Default`; each consumer group independently tracks its own position in the event stream.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-default-consumer-group-dollar-default.json"},{"id":"eventhubs-delivery-semantic-at-least-once","text":"Event Hubs delivery guarantee is at-least once; consumers should implement the idempotent consumer pattern for exactly-once semantics.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-delivery-semantic-at-least-once.json"},{"id":"eventhubs-direct-partition-send-discouraged","text":"Sending directly to a specific Event Hubs partition is discouraged because it downgrades availability to partition-level.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-direct-partition-send-discouraged.json"},{"id":"eventhubs-encryption-at-rest-and-tls12","text":"Azure Event Hubs encrypts data at rest with Microsoft-managed or customer-managed keys and enforces TLS 1.2 for data in transit.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-encryption-at-rest-and-tls12.json"},{"id":"eventhubs-epoch-consumer-one-owner-per-partition","text":"Event Hubs epoch consumers allow only one owner per partition per consumer group; a higher epoch evicts the lower epoch consumer.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-epoch-consumer-one-owner-per-partition.json"},{"id":"eventhubs-epoch-consumer-one-per-partition","text":"Event Hubs epoch consumers allow only one owner per partition per consumer group; a higher epoch evicts lower epoch consumers.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-epoch-consumer-one-per-partition.json"},{"id":"eventhubs-epoch-one-owner-nonepoch-five-readers","text":"Epoch consumers allow only one owner per partition per consumer group (higher epoch evicts lower); non-epoch consumers allow up to 5 concurrent readers per partition; an epoch consumer connecting disconnects all non-epoch consumers.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-epoch-one-owner-nonepoch-five-readers.json"},{"id":"eventhubs-events-cannot-be-explicitly-deleted","text":"Events in Event Hubs cannot be explicitly deleted; removal is automatic based on the configured retention policy.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-events-cannot-be-explicitly-deleted.json"},{"id":"eventhubs-five-nonepoch-readers-per-partition","text":"Up to 5 non-epoch consumers can read the same Event Hubs partition concurrently; connecting an epoch consumer disconnects all non-epoch consumers on that partition.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-five-nonepoch-readers-per-partition.json"},{"id":"eventhubs-full-kafka-interop","text":"Event Hubs provides complete Kafka interoperability: existing Kafka workloads run without code changes, cross-protocol produce/consume is supported (Kafka in, AMQP out or vice versa), and the native AMQP/Kafka/HTTPS protocol stack eliminates the need for a separate Kafka cluster.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-full-kafka-interop.json"},{"id":"eventhubs-geo-dr-metadata-sync","text":"Azure Event Hubs Geo-DR provides metadata synchronization and failover to a secondary region.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-geo-dr-metadata-sync.json"},{"id":"eventhubs-https-send-only","text":"Event Hubs HTTPS protocol supports send (publish) only — no receive capability; AMQP is used by SDKs for high-throughput bidirectional scenarios.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-https-send-only.json"},{"id":"eventhubs-ingress-exceeds-throws-egress-silent","text":"Exceeding Event Hubs ingress capacity throws an EventHubsException with ServiceBusy reason; exceeding egress capacity is silently capped without exceptions.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-ingress-exceeds-throws-egress-silent.json"},{"id":"eventhubs-ingress-throws-egress-silent","text":"Exceeding Event Hubs ingress capacity throws `EventHubsException` with `ServiceBusy` reason; exceeding egress capacity is silently capped without exceptions.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-ingress-throws-egress-silent.json"},{"id":"eventhubs-kafka-at-least-once-delivery","text":"Event Hubs Kafka delivery semantic is at-least once; consumers should implement the idempotent consumer pattern.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-kafka-at-least-once-delivery.json"},{"id":"eventhubs-kafka-compression-gzip-only-premium-dedicated","text":"Event Hubs Kafka compression supports only `gzip` and is available only in Premium and Dedicated tiers; AMQP consumers can read compressed Kafka traffic as decompressed messages.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-kafka-compression-gzip-only-premium-dedicated.json"},{"id":"eventhubs-kafka-compression-gzip-premium-dedicated","text":"Event Hubs Kafka endpoint supports only gzip compression, available in Premium and Dedicated tiers only.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-kafka-compression-gzip-premium-dedicated.json"},{"id":"eventhubs-kafka-compression-gzip-premium-dedicated-only","text":"Event Hubs Kafka compression supports only `gzip`, available in Premium and Dedicated tiers only.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-kafka-compression-gzip-premium-dedicated-only.json"},{"id":"eventhubs-kafka-cross-protocol-read-write","text":"Event Hubs supports cross-protocol reading and writing: produce via Kafka and consume via AMQP, or vice versa.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-kafka-cross-protocol-read-write.json"},{"id":"eventhubs-kafka-delivery-at-least-once","text":"Azure Event Hubs Kafka endpoint delivery semantic is at-least-once; consumers should implement the idempotent consumer pattern.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-kafka-delivery-at-least-once.json"},{"id":"eventhubs-kafka-migration-tier-prerequisite","text":"Event Hubs Kafka migration scope is tier-determined: full protocol interoperability (no code changes, cross-protocol produce/consume) requires Standard+, while advanced features (Kafka Streams, Transactions, gzip compression) require Premium/Dedicated — making tier selection a prerequisite constraint that must be resolved before scoping any Kafka migration plan.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-kafka-migration-tier-prerequisite.json"},{"id":"eventhubs-kafka-no-code-changes","text":"Existing Apache Kafka workloads can run on Azure Event Hubs without code changes or cluster management.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-kafka-no-code-changes.json"},{"id":"eventhubs-kafka-not-basic-tier","text":"Event Hubs Kafka endpoint support is available only in Standard, Premium, and Dedicated tiers — not available on Basic.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-kafka-not-basic-tier.json"},{"id":"eventhubs-kafka-oauth-oauthbearer-sas-plain","text":"Event Hubs Kafka endpoint uses SASL mechanism `OAUTHBEARER` for OAuth 2.0 and `PLAIN` with `username=\"$ConnectionString\"` for SAS authentication.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-kafka-oauth-oauthbearer-sas-plain.json"},{"id":"eventhubs-kafka-port-9093-sasl-ssl","text":"Event Hubs Kafka endpoint uses port 9093 with mandatory TLS encryption (`SASL_SSL`); OAuth uses `OAUTHBEARER` mechanism, SAS uses `PLAIN` mechanism with `username=\"$ConnectionString\"`.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-kafka-port-9093-sasl-ssl.json"},{"id":"eventhubs-kafka-port-9093-tls-mandatory","text":"Event Hubs Kafka endpoint uses port 9093 with mandatory TLS encryption (`SASL_SSL`).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-kafka-port-9093-tls-mandatory.json"},{"id":"eventhubs-kafka-production-feature-complete","text":"Event Hubs Kafka interoperability is production-feature-complete: existing workloads migrate without code changes, cross-protocol produce/consume works natively, and at-least-once delivery semantics match standard Kafka behavior — with no feature gaps blocking production adoption.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-kafka-production-feature-complete.json"},{"id":"eventhubs-kafka-requires-standard-or-higher","text":"Event Hubs Kafka support requires Standard, Premium, or Dedicated tier — not available on Basic.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-kafka-requires-standard-or-higher.json"},{"id":"eventhubs-kafka-sas-key-regen-no-disconnect","text":"Event Hubs SAS connections are not disconnected when the SAS key is regenerated.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-kafka-sas-key-regen-no-disconnect.json"},{"id":"eventhubs-kafka-sas-not-disconnected-on-key-regen","text":"SAS connections to the Event Hubs Kafka endpoint are not disconnected when the SAS key is regenerated.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-kafka-sas-not-disconnected-on-key-regen.json"},{"id":"eventhubs-kafka-seamless-topology-migration","text":"Event Hubs provides seamless Kafka migration combining full protocol interoperability (no code changes required) with simplified networking (single virtual IP endpoint instead of per-broker addressing) and tier-gated access.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-kafka-seamless-topology-migration.json"},{"id":"eventhubs-kafka-streams-preview-premium-dedicated","text":"Kafka Streams on Event Hubs is in public preview, available only in Premium and Dedicated tiers; ksqlDB is not available due to Confluent licensing.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-kafka-streams-preview-premium-dedicated.json"},{"id":"eventhubs-kafka-streams-transactions-preview-premium-dedicated","text":"Kafka Streams and Kafka Transactions on Event Hubs are in public preview and available only in Premium and Dedicated tiers.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-kafka-streams-transactions-preview-premium-dedicated.json"},{"id":"eventhubs-max-40-tus-per-namespace","text":"Azure Event Hubs Standard tier allows a maximum of 40 throughput units per namespace, shared across all event hubs in the namespace.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-max-40-tus-per-namespace.json"},{"id":"eventhubs-max-5-nonepoch-consumers-per-partition","text":"Up to 5 non-epoch consumers can read the same Event Hubs partition concurrently; connecting an epoch consumer disconnects all non-epoch consumers on that partition.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-max-5-nonepoch-consumers-per-partition.json"},{"id":"eventhubs-max-parallel-consumers-equals-partitions","text":"The number of partitions in an Event Hub equals the maximum number of parallel consumers per consumer group.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-max-parallel-consumers-equals-partitions.json"},{"id":"eventhubs-max-publish-size-1mb","text":"Event Hubs maximum publish size is 1 MB per operation (batch or individual event).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-max-publish-size-1mb.json"},{"id":"eventhubs-messaging-comparison","text":"Azure messaging services comparison: Event Hubs for streaming/telemetry, Service Bus for enterprise messaging with transactions and sessions, Event Grid for reactive serverless event routing.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-messaging-comparison.json"},{"id":"eventhubs-non-epoch-max-5-readers-per-partition","text":"Event Hubs non-epoch consumers allow up to 5 concurrent readers per partition; an epoch consumer connecting disconnects all non-epoch consumers.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-non-epoch-max-5-readers-per-partition.json"},{"id":"eventhubs-paas-streaming-platform","text":"Azure Event Hubs is a fully managed PaaS real-time data streaming platform that ingests millions of events per second with low latency.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-paas-streaming-platform.json"},{"id":"eventhubs-partition-count-cannot-decrease","text":"Event Hubs partition count cannot be decreased in any tier; in Standard/Basic tiers it cannot be changed at all after creation; Premium/Dedicated tiers allow increases only.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-partition-count-cannot-decrease.json"},{"id":"eventhubs-partition-count-no-pricing-impact","text":"Event Hubs pricing depends on throughput/processing/capacity units, not on partition count.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-partition-count-no-pricing-impact.json"},{"id":"eventhubs-partition-key-hash-round-robin-if-omitted","text":"Event Hubs partition key is hashed to determine partition assignment; if omitted, events are distributed round-robin across partitions.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-partition-key-hash-round-robin-if-omitted.json"},{"id":"eventhubs-partition-key-static-hash","text":"Event Hubs partition keys use a static hashing function to assign events to partitions; without a key, round-robin assignment is used.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-partition-key-static-hash.json"},{"id":"eventhubs-partition-key-static-hash-or-round-robin","text":"Event Hubs partition keys use a static hashing function to assign events to partitions; without a partition key, round-robin assignment is used. Sending directly to a partition is discouraged as it downgrades availability to partition-level.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-partition-key-static-hash-or-round-robin.json"},{"id":"eventhubs-partition-key-static-hash-roundrobin-default","text":"Event Hubs partition keys use a static hashing function to assign events to partitions; without a key, round-robin assignment is used.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-partition-key-static-hash-roundrobin-default.json"},{"id":"eventhubs-partitioning-free-architectural-choice","text":"Event Hubs partitioning is a free architectural decision with deterministic routing: partition count has no pricing impact (billing depends solely on throughput/processing/capacity units), partition keys use static hashing for consistent event-to-partition assignment, and the delivery guarantee is at-least-once regardless of partition configuration — making partition count purely a throughput and ordering design choice.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-partitioning-free-architectural-choice.json"},{"id":"eventhubs-partitions-equal-max-parallel-consumers","text":"The number of Event Hubs partitions equals the maximum number of parallel consumers per consumer group, for both AMQP epoch consumers and Kafka consumers.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-partitions-equal-max-parallel-consumers.json"},{"id":"eventhubs-premium-pu-options","text":"Event Hubs Premium tier processing units (PUs) are available in discrete values: 1, 2, 4, 6, 8, 10, 12, or 16 per namespace.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-premium-pu-options.json"},{"id":"eventhubs-premium-pu-options-1-2-4-6-8-10-12-16","text":"Azure Event Hubs Premium tier processing unit (PU) options are discrete values: 1, 2, 4, 6, 8, 10, 12, or 16 per namespace.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-premium-pu-options-1-2-4-6-8-10-12-16.json"},{"id":"eventhubs-premium-pu-options-discrete","text":"Azure Event Hubs Premium tier processing unit (PU) options are discrete: 1, 2, 4, 6, 8, 10, 12, or 16 per namespace.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-premium-pu-options-discrete.json"},{"id":"eventhubs-progressive-tier-gating","text":"Event Hubs follows a progressive tier model: Standard provides base functionality, Premium adds Kafka protocol support with configurable processing units, and higher tiers enable additional enterprise capabilities.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-progressive-tier-gating.json"},{"id":"eventhubs-protocols-amqp-kafka-https","text":"Azure Event Hubs natively supports three protocols: AMQP 1.0, Apache Kafka (1.0+), and HTTPS.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-protocols-amqp-kafka-https.json"},{"id":"eventhubs-retention-standard-7-premium-90","text":"Azure Event Hubs Standard tier supports up to 7-day data retention; Premium and Dedicated tiers support up to 90-day retention.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-retention-standard-7-premium-90.json"},{"id":"eventhubs-retention-standard-7d-premium-90d","text":"Event Hubs event retention: Standard tier default 1h / max 7 days; Premium and Dedicated default 1h / max 90 days.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-retention-standard-7d-premium-90d.json"},{"id":"eventhubs-retention-standard-7d-premium-dedicated-90d","text":"Event Hubs event retention maximum is 7 days for Standard tier and 90 days for Premium and Dedicated tiers; default is 1 hour across all tiers.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-retention-standard-7d-premium-dedicated-90d.json"},{"id":"eventhubs-sas-key-regen-no-disconnect","text":"Event Hubs SAS connections are not disconnected when the SAS key is regenerated; generated SAS tokens are not supported on the Kafka endpoint — only connection strings.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-sas-key-regen-no-disconnect.json"},{"id":"eventhubs-schema-registry-avro-json","text":"Azure Event Hubs Schema Registry supports Avro and JSON schema formats for centralized schema management across producers and consumers.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-schema-registry-avro-json.json"},{"id":"eventhubs-single-virtual-ip-endpoint","text":"Event Hubs uses a single virtual IP as its endpoint rather than per-broker endpoints, simplifying firewall rules compared to self-managed Kafka.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-single-virtual-ip-endpoint.json"},{"id":"eventhubs-sla-up-to-9999","text":"Azure Event Hubs SLA is up to 99.99% depending on tier and configuration.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-sla-up-to-9999.json"},{"id":"eventhubs-standard-retention-7-days","text":"Azure Event Hubs Standard tier supports up to 7-day data retention; Premium and Dedicated tiers support up to 90-day retention.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-standard-retention-7-days.json"},{"id":"eventhubs-standard-tu-limits","text":"One Event Hubs throughput unit (TU) provides up to 1 MB/s or 1,000 events/s ingress and up to 2 MB/s or 4,096 events/s egress; max 40 TUs per Standard tier namespace.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-standard-tu-limits.json"},{"id":"eventhubs-three-protocols-amqp-kafka-https","text":"Azure Event Hubs natively supports three protocols: AMQP 1.0, Apache Kafka, and HTTPS.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-three-protocols-amqp-kafka-https.json"},{"id":"eventhubs-three-rbac-roles","text":"Event Hubs has three data-plane RBAC roles: Data Owner (full), Data Sender (send only), and Data Receiver (receive only).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-three-rbac-roles.json"},{"id":"eventhubs-three-tiers-standard-premium-dedicated","text":"Azure Event Hubs has three pricing tiers: Standard, Premium, and Dedicated, differing in retention, features, and SLA.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-three-tiers-standard-premium-dedicated.json"},{"id":"eventhubs-tu-1mb-ingress-2mb-egress","text":"One Event Hubs throughput unit (TU) provides up to 1 MB/s (or 1,000 events/s) ingress and up to 2 MB/s (or 4,096 events/s) egress — limits are asymmetric.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-tu-1mb-ingress-2mb-egress.json"},{"id":"eventhubs-vs-servicebus-vs-eventgrid","text":"Event Hubs is for streaming/telemetry (append-only log), Service Bus is for enterprise messaging with transactions/sessions/dead-lettering, Event Grid is for reactive push-based event routing with server-side filtering.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/eventhubs-vs-servicebus-vs-eventgrid.json"},{"id":"expressroute-requires-bgp-vpn-optional","text":"ExpressRoute requires BGP for route exchange; VPN gateways can optionally use BGP.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/expressroute-requires-bgp-vpn-optional.json"},{"id":"ftl2-ansible-azure-in-process-3-17x-speedup","text":"FTL2 calls Ansible Azure collection modules directly in-process (no subprocess fork), achieving 3-17x speedup over ansible-playbook.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/ftl2-ansible-azure-in-process-3-17x-speedup.json"},{"id":"ftl2-auto-install-azure-sdk-deps","text":"FTL2 auto-installs Azure SDK pip packages (azure-mgmt-*) via `auto_install_deps=True` when missing.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/ftl2-auto-install-azure-sdk-deps.json"},{"id":"ftl2-azure-ansible-in-process-3-17x-speedup","text":"FTL2 calls Azure Ansible collection modules directly in-process (no subprocess fork), achieving 3-17x speedup over ansible-playbook.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/ftl2-azure-ansible-in-process-3-17x-speedup.json"},{"id":"ftl2-azure-example-path","text":"The FTL2 Azure example script is located at ~/git/faster-than-light2/examples/07-azure/example_azure_web_stack.py.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/ftl2-azure-example-path.json"},{"id":"ftl2-azure-fqcn-azcollection","text":"FTL2 accesses Azure modules via FQCN pattern: `await ftl.azure.azcollection.azure_rm_resourcegroup(...)`.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/ftl2-azure-fqcn-azcollection.json"},{"id":"ftl2-azure-fqcn-pattern","text":"FTL2 accesses Azure modules via FQCN pattern: `await ftl.azure.azcollection.azure_rm_resourcegroup(...)`.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/ftl2-azure-fqcn-pattern.json"},{"id":"ftl2-azure-modules-via-ansible-fqcn","text":"FTL2 accesses Azure modules via Ansible FQCN pattern: `azure.azcollection.azure_rm_*` — it has no native Azure modules.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/ftl2-azure-modules-via-ansible-fqcn.json"},{"id":"ftl2-azure-secret-bindings-glob-pattern","text":"FTL2 injects Azure credentials (client_id, secret, subscription_id, tenant) via glob pattern matching on `azure.azcollection.*` so scripts never handle raw credentials.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/ftl2-azure-secret-bindings-glob-pattern.json"},{"id":"ftl2-azure-secret-bindings-inject-credentials","text":"FTL2 secret bindings inject Azure credentials (client_id, secret, subscription_id, tenant) automatically via glob pattern matching on `azure.azcollection.*` modules.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/ftl2-azure-secret-bindings-inject-credentials.json"},{"id":"ftl2-azure-teardown-delete-resource-group","text":"FTL2 Azure teardown pattern: delete the resource group with `state=\"absent\", force_delete_nonempty=True` to remove all contained resources.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/ftl2-azure-teardown-delete-resource-group.json"},{"id":"ftl2-calls-ansible-modules-in-process","text":"FTL2 calls Ansible modules directly in-process (no subprocess fork), achieving 3-17x speedup over ansible-playbook.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/ftl2-calls-ansible-modules-in-process.json"},{"id":"ftl2-no-native-azure-modules","text":"FTL2 does not have native Azure modules; all Azure calls go through Ansible module machinery via the azure.azcollection collection.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/ftl2-no-native-azure-modules.json"},{"id":"ftl2-no-native-azure-modules-uses-ansible","text":"FTL2 does not have native Azure modules; all Azure calls go through Ansible module machinery via the azure.azcollection collection.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/ftl2-no-native-azure-modules-uses-ansible.json"},{"id":"ftl2-secret-bindings-inject-azure-credentials","text":"FTL2 secret bindings inject Azure credentials (client_id, secret, subscription_id, tenant) automatically via glob pattern matching so scripts never see raw credentials.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/ftl2-secret-bindings-inject-azure-credentials.json"},{"id":"ftl2-state-tracking-idempotent-crash-recovery","text":"FTL2 tracks state via `.ftl2-state.json` enabling idempotent provisioning with crash recovery and provider filtering.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/ftl2-state-tracking-idempotent-crash-recovery.json"},{"id":"functions-consumption-linux-retiring-sept-2028","text":"Azure Functions Linux Consumption plan is retiring September 30, 2028; no new features/language versions after September 30, 2025. Migrate to Flex Consumption.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/functions-consumption-linux-retiring-sept-2028.json"},{"id":"functions-consumption-timeout-5min-default-10min-max","text":"Azure Functions Consumption plan has a default timeout of 5 minutes and a maximum of 10 minutes; all other plans default to 30 minutes with unbounded maximum.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/functions-consumption-timeout-5min-default-10min-max.json"},{"id":"functions-consumption-timeout-default-5-max-10","text":"Azure Functions Consumption plan timeout defaults to 5 minutes with a maximum of 10 minutes; all other plans default to 30 minutes with unbounded maximum.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/functions-consumption-timeout-default-5-max-10.json"},{"id":"functions-custom-handlers-any-http-language","text":"Azure Functions custom handlers enable any language that can receive HTTP requests to run as a function","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/functions-custom-handlers-any-http-language.json"},{"id":"functions-custom-handlers-any-language-http","text":"Azure Functions custom handlers enable any language that can receive HTTP requests to be used as a function runtime.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/functions-custom-handlers-any-language-http.json"},{"id":"functions-durable-functions-stateful-workflows","text":"Durable Functions is an extension for building stateful, event-driven serverless workflows in Azure Functions","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/functions-durable-functions-stateful-workflows.json"},{"id":"functions-durable-stateful-workflows","text":"Durable Functions is an Azure Functions extension for building stateful, event-driven serverless workflows and orchestrations.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/functions-durable-stateful-workflows.json"},{"id":"functions-five-hosting-plans","text":"Azure Functions offers five hosting plans: Flex Consumption, Premium, Dedicated (App Service), Container Apps, and Consumption.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/functions-five-hosting-plans.json"},{"id":"functions-five-native-languages","text":"Azure Functions natively supports five programming languages: C#, Java, JavaScript, PowerShell, and Python; other languages (Rust, Go) are supported via custom handlers.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/functions-five-native-languages.json"},{"id":"functions-flex-consumption-linux-only","text":"Azure Functions Flex Consumption plan supports Linux only.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/functions-flex-consumption-linux-only.json"},{"id":"functions-flex-consumption-max-1000-instances","text":"Azure Functions Flex Consumption plan scales up to 1000 instances with per-function scaling, configurable memory (512/2048/4096 MB), and Linux only.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/functions-flex-consumption-max-1000-instances.json"},{"id":"functions-flex-consumption-no-subnet-underscores","text":"Flex Consumption subnets cannot contain underscores in their names","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/functions-flex-consumption-no-subnet-underscores.json"},{"id":"functions-flex-consumption-per-function-scaling","text":"Azure Functions Flex Consumption plan uniquely supports per-function scaling where different trigger types scale independently on separate instances (HTTP grouped together, Blob/Event Grid grouped, Durable grouped).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/functions-flex-consumption-per-function-scaling.json"},{"id":"functions-flex-consumption-routes-all-traffic-through-vnet","text":"Azure Functions Flex Consumption routes all outbound traffic through the VNet by default (no Route All setting needed), unlike other plans.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/functions-flex-consumption-routes-all-traffic-through-vnet.json"},{"id":"functions-flex-consumption-subnet-40-ips-per-app","text":"Azure Functions Flex Consumption requires planning for 40 IP addresses per function app regardless of actual instance count; recommended subnet size is /27.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/functions-flex-consumption-subnet-40-ips-per-app.json"},{"id":"functions-flex-consumption-subnet-delegation-microsoft-app","text":"Azure Functions Flex Consumption subnet delegation is `Microsoft.App/environments`, different from Premium/Dedicated plans.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/functions-flex-consumption-subnet-delegation-microsoft-app.json"},{"id":"functions-flex-consumption-subnet-no-underscores","text":"Azure Functions Flex Consumption subnets cannot contain underscores in their names.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/functions-flex-consumption-subnet-no-underscores.json"},{"id":"functions-flex-consumption-subnet-size-27","text":"Flex Consumption recommended subnet size is /27, planning for 40 IP addresses per function app regardless of actual instance count","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/functions-flex-consumption-subnet-size-27.json"},{"id":"functions-full-network-isolation","text":"Azure Functions supports full network isolation with private endpoints, VNet integration, and subnet-scoped outbound control across Premium and Dedicated hosting plans.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/functions-full-network-isolation.json"},{"id":"functions-gateway-required-vnet-dedicated-only","text":"Gateway-required VNet integration is only supported on the Dedicated (App Service) plan","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/functions-gateway-required-vnet-dedicated-only.json"},{"id":"functions-gateway-vnet-integration-dedicated-only","text":"Gateway-required VNet integration is only supported on the Dedicated (App Service) plan","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/functions-gateway-vnet-integration-dedicated-only.json"},{"id":"functions-http-230s-hard-limit-all-plans","text":"Azure Functions HTTP triggers have a 230-second response time hard limit on ALL hosting plans due to Azure Load Balancer; use Durable Functions async pattern for longer processing.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/functions-http-230s-hard-limit-all-plans.json"},{"id":"functions-http-trigger-230s-hard-limit","text":"HTTP triggers on Azure Functions are capped at 230 seconds response time across ALL hosting plans due to the Azure Load Balancer idle timeout.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/functions-http-trigger-230s-hard-limit.json"},{"id":"functions-hybrid-connections-windows-only","text":"Azure Functions Hybrid Connections (Azure Relay) are Windows only, not supported on Consumption plan or Linux.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/functions-hybrid-connections-windows-only.json"},{"id":"functions-max-5000-apps-per-subscription","text":"Maximum of 5,000 function apps per Azure subscription across all hosting plans.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/functions-max-5000-apps-per-subscription.json"},{"id":"functions-max-5000-per-subscription","text":"Azure Functions has a maximum of 5,000 function apps per subscription across all hosting plans.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/functions-max-5000-per-subscription.json"},{"id":"functions-networking-consumption-no-vnet","text":"Azure Functions Consumption plan does not support private endpoints, VNet integration, or outbound IP restrictions","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/functions-networking-consumption-no-vnet.json"},{"id":"functions-networking-consumption-no-vnet-integration","text":"Azure Functions Consumption plan does not support private endpoints, VNet integration, or outbound IP restrictions","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/functions-networking-consumption-no-vnet-integration.json"},{"id":"functions-networking-flex-consumption-routes-all-by-default","text":"Flex Consumption routes all outbound traffic through VNet by default without needing Route All configuration","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/functions-networking-flex-consumption-routes-all-by-default.json"},{"id":"functions-networking-flex-consumption-subnet-delegation","text":"Flex Consumption function apps use subnet delegation `Microsoft.App/environments`, which differs from Premium/Dedicated plans","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/functions-networking-flex-consumption-subnet-delegation.json"},{"id":"functions-networking-flex-consumption-subnet-size-27","text":"Flex Consumption recommended subnet size is /27, planning for 40 IP addresses per function app regardless of actual instance count","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/functions-networking-flex-consumption-subnet-size-27.json"},{"id":"functions-networking-hybrid-connections-windows-only","text":"Azure Functions Hybrid Connections (Azure Relay) are Windows only and not supported on Consumption plan or Linux","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/functions-networking-hybrid-connections-windows-only.json"},{"id":"functions-networking-nsg-integration-subnet-outbound-only","text":"NSGs on a VNet integration subnet affect outbound traffic only; inbound rules do not apply because VNet integration is outbound-only","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/functions-networking-nsg-integration-subnet-outbound-only.json"},{"id":"functions-networking-nsgs-outbound-only","text":"NSGs on Azure Functions VNet integration subnets affect outbound traffic only; inbound rules do not apply because VNet integration is outbound-only","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/functions-networking-nsgs-outbound-only.json"},{"id":"functions-networking-premium-dedicated-subnet-sizes","text":"Premium/Dedicated function apps: recommended subnet is /24 for Windows, /26 for Linux; each instance consumes 1 IP, usage can temporarily double during scaling","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/functions-networking-premium-dedicated-subnet-sizes.json"},{"id":"functions-networking-virtual-network-triggers-require-scale-monitoring","text":"Virtual network triggers (non-HTTP) require either Flex Consumption or Premium plan with Runtime Scale Monitoring enabled for dynamic scaling","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/functions-networking-virtual-network-triggers-require-scale-monitoring.json"},{"id":"functions-no-windows-containers-any-plan","text":"No Azure Functions hosting plan supports Windows containers; only Linux containers are supported (on Premium, Dedicated, and Container Apps).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/functions-no-windows-containers-any-plan.json"},{"id":"functions-nsg-integration-subnet-outbound-only","text":"NSGs on Azure Functions VNet integration subnet affect outbound traffic only; inbound rules do not apply because VNet integration is outbound-only.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/functions-nsg-integration-subnet-outbound-only.json"},{"id":"functions-premium-dedicated-subnet-size-24-windows-26-linux","text":"Azure Functions Premium/Dedicated recommended subnet size is /24 for Windows and /26 for Linux; each instance consumes 1 IP and usage can temporarily double during scaling","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/functions-premium-dedicated-subnet-size-24-windows-26-linux.json"},{"id":"functions-premium-dedicated-subnet-sizes","text":"Azure Functions Premium/Dedicated plans: each instance consumes 1 IP (can temporarily double during scaling); recommended subnet /24 for Windows, /26 for Linux.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/functions-premium-dedicated-subnet-sizes.json"},{"id":"functions-python-requires-linux","text":"Azure Functions Python runtime requires Linux — no Windows support.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/functions-python-requires-linux.json"},{"id":"functions-three-main-hosting-plans","text":"Azure Functions has three main hosting options: Consumption (pay-per-execution, fully serverless), Premium (pre-warmed, fastest response), and Dedicated/App Service (predictable scaling and cost)","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/functions-three-main-hosting-plans.json"},{"id":"functions-virtual-network-triggers-require-runtime-scale-monitoring","text":"Non-HTTP virtual network triggers on Azure Functions require Flex Consumption or Premium plan with Runtime Scale Monitoring enabled for dynamic scaling.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/functions-virtual-network-triggers-require-runtime-scale-monitoring.json"},{"id":"functions-vnet-not-available-consumption","text":"Azure Functions VNet integration is NOT available on the Consumption plan; it is available on Flex Consumption, Premium, Dedicated, and Container Apps plans.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/functions-vnet-not-available-consumption.json"},{"id":"functions-vnet-not-available-consumption-plan","text":"Azure Functions VNet integration is NOT available on the Consumption plan; it is available on Flex Consumption, Premium, Dedicated, and Container Apps.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/functions-vnet-not-available-consumption-plan.json"},{"id":"gateway-subnet-required-for-vpn-gateway","text":"A dedicated GatewaySubnet is required within the VNet for VPN gateway deployments.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/gateway-subnet-required-for-vpn-gateway.json"},{"id":"hpa-effective-update-interval-60s","text":"HPA checks the Metrics API every 15 seconds, but the Metrics API refreshes from Kubelet every 60 seconds, making the effective update interval 60 seconds.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/hpa-effective-update-interval-60s.json"},{"id":"hpa-no-scale-up-delay-since-1-12","text":"HPA has no delay for scale-up events since Kubernetes 1.12; the default scale-down cooldown is 5 minutes.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/hpa-no-scale-up-delay-since-1-12.json"},{"id":"hpa-no-scale-up-delay-since-k8s-1-12","text":"HPA has no delay for scale-up events since Kubernetes 1.12; default scale-down delay is 5 minutes.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/hpa-no-scale-up-delay-since-k8s-1-12.json"},{"id":"hpa-scale-down-cooldown-5min","text":"HPA default scale-down delay is 5 minutes; there is no delay for scale-up events since Kubernetes 1.12.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/hpa-scale-down-cooldown-5min.json"},{"id":"k8s-not-safe-hostile-multitenant","text":"Kubernetes is not safe for hostile multitenant workloads; the security domain is the entire cluster, not individual nodes. Physically isolated clusters are required for true isolation.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/k8s-not-safe-hostile-multitenant.json"},{"id":"k8s-pv-pvc-binding-one-to-one","text":"Kubernetes persistent volume (PV) to persistent volume claim (PVC) binding is 1:1 — each PVC binds to exactly one PV.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/k8s-pv-pvc-binding-one-to-one.json"},{"id":"k8s-secret-base64-not-encryption","text":"Kubernetes Secret manifest files contain data in base64 format (encoding, not encryption) and should never be committed to source control.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/k8s-secret-base64-not-encryption.json"},{"id":"k8s-secret-volumes-use-tmpfs","text":"Kubernetes secret volumes use tmpfs and are never written to disk; they are namespace-scoped","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/k8s-secret-volumes-use-tmpfs.json"},{"id":"k8s-secrets-tmpfs-namespace-scoped","text":"Kubernetes Secrets are stored in tmpfs (not written to disk), are namespace-scoped, and are deleted when the last requiring pod is removed.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/k8s-secrets-tmpfs-namespace-scoped.json"},{"id":"keda-uses-scaledobject-crd","text":"KEDA uses a CRD called ScaledObject and scales based on event count rather than resource utilization metrics.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keda-uses-scaledobject-crd.json"},{"id":"keyvault-best-practice-one-vault-per-app","text":"Best practice is one Key Vault per application per environment (Dev, Pre-Prod, Prod) to reduce blast radius.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-best-practice-one-vault-per-app.json"},{"id":"keyvault-cert-access-control-separate","text":"Access control for Key Vault certificates is separate from access control for keys and secrets in the same vault.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-cert-access-control-separate.json"},{"id":"keyvault-cert-creates-key-and-secret","text":"Creating a Key Vault certificate automatically creates an addressable key and an addressable secret with the same name.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-cert-creates-key-and-secret.json"},{"id":"keyvault-cert-issuer-vault-scoped","text":"Certificate issuer objects in Key Vault are vault-scoped and cannot be shared across vaults.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-cert-issuer-vault-scoped.json"},{"id":"keyvault-certificates-as-certificate-objects","text":"Certificates should be stored as Key Vault certificate objects (not secrets) to enable autorotation","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-certificates-as-certificate-objects.json"},{"id":"keyvault-certificates-as-certificate-objects-not-secrets","text":"Certificates should be stored as Key Vault certificate objects (not secrets) to enable autorotation","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-certificates-as-certificate-objects-not-secrets.json"},{"id":"keyvault-certificates-store-as-certificate-objects","text":"Certificates should be stored as Key Vault certificate objects (not secrets) to enable autorotation.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-certificates-store-as-certificate-objects.json"},{"id":"keyvault-contributor-no-data-access","text":"Key Vault Contributor role is control plane only and does NOT grant access to keys, secrets, or certificates.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-contributor-no-data-access.json"},{"id":"keyvault-control-plane-endpoint","text":"Key Vault control plane endpoint is `management.azure.com:443`; data plane endpoint is `<vault-name>.vault.azure.net:443`.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-control-plane-endpoint.json"},{"id":"keyvault-crypto-user-cannot-delete-keys","text":"Key Vault Crypto User role can create new keys but cannot delete them","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-crypto-user-cannot-delete-keys.json"},{"id":"keyvault-crypto-user-create-not-delete","text":"Key Vault Crypto User role can create new keys but cannot delete them.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-crypto-user-create-not-delete.json"},{"id":"keyvault-custom-roles-use-dataactions","text":"Custom roles for Key Vault data plane operations use `DataActions` (not `Actions`).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-custom-roles-use-dataactions.json"},{"id":"keyvault-data-access-admin-cannot-change-permission-model","text":"Key Vault Data Access Administrator can add/remove Key Vault role assignments with ABAC constraints but cannot change the permission model (requires Owner or User Access Administrator).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-data-access-admin-cannot-change-permission-model.json"},{"id":"keyvault-data-plane-multitenant","text":"The Key Vault data plane is multitenant — multiple customer vaults can share the same public IP address.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-data-plane-multitenant.json"},{"id":"keyvault-data-plane-multitenant-shared-ip","text":"The Key Vault data plane is multitenant — multiple customer vaults can share the same public IP address.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-data-plane-multitenant-shared-ip.json"},{"id":"keyvault-defense-in-depth-key-lifecycle","text":"Key Vault provides defense-in-depth for cryptographic key lifecycle: tiered protection levels (software FIPS 140-2 L1 → asymmetric HSM → single-tenant managed HSM with symmetric keys) secure keys at appropriate cryptographic strength, while layered deletion safeguards (soft-delete → purge protection → purge operator role requirement) prevent accidental or malicious key destruction.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-defense-in-depth-key-lifecycle.json"},{"id":"keyvault-encryption-leaf-key-per-vault-root-per-world","text":"Key Vault encryption uses a key hierarchy where the leaf key is unique per key vault and the root key is unique per security world, protected by FIPS 140-2 Level 3+ validated modules.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-encryption-leaf-key-per-vault-root-per-world.json"},{"id":"keyvault-encryption-leaf-key-unique-per-vault","text":"The encryption leaf key for secrets at rest is unique per key vault; the root key is unique per security world.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-encryption-leaf-key-unique-per-vault.json"},{"id":"keyvault-expired-certs-retrievable-but-inoperable","text":"Expired certificates can still be retrieved from Key Vault but may fail TLS validation.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-expired-certs-retrievable-but-inoperable.json"},{"id":"keyvault-ha-auto-replication-secondary-region","text":"Key Vault contents are automatically replicated within a region and to a secondary region with automatic failover requiring no admin action.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-ha-auto-replication-secondary-region.json"},{"id":"keyvault-hsm-keys-always-non-exportable","text":"HSM-protected keys in Key Vault are always non-exportable; only RSA and EC key types support exportable private keys.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-hsm-keys-always-non-exportable.json"},{"id":"keyvault-hsm-platform-2-fips-140-3-level-3","text":"Key Vault HSM Platform 2 protects keys at FIPS 140-3 Level 3; all new keys and key versions use HSM Platform 2.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-hsm-platform-2-fips-140-3-level-3.json"},{"id":"keyvault-keys-json-web-key-format","text":"Key Vault keys are represented as JSON Web Key (JWK) objects following JOSE specifications.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-keys-json-web-key-format.json"},{"id":"keyvault-layered-deletion-protection","text":"Key Vault provides three-layer deletion protection: soft-delete enables recovery within 7–90 days, purge protection prevents permanent deletion during retention, and purge itself requires elevated privileges (Purge Operator role or subscription Owner).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-layered-deletion-protection.json"},{"id":"keyvault-legacy-access-policies-lack-pim-support","text":"Legacy Key Vault access policies have known vulnerabilities and lack PIM (Privileged Identity Management) support; Azure RBAC is preferred.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-legacy-access-policies-lack-pim-support.json"},{"id":"keyvault-managed-hsm-fips-140-2-level-3","text":"Azure Key Vault managed HSM pools are validated at FIPS 140-2 Level 3; standard vaults use FIPS 140 validated HSMs at lower levels.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-managed-hsm-fips-140-2-level-3.json"},{"id":"keyvault-managed-hsm-single-tenant","text":"Managed HSM pools are single-tenant with isolated security domains, while standard vaults are multi-tenant.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-managed-hsm-single-tenant.json"},{"id":"keyvault-microsoft-never-sees-keys","text":"Azure Key Vault is designed so Microsoft cannot see or extract customer keys.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-microsoft-never-sees-keys.json"},{"id":"keyvault-not-a-data-store","text":"Key Vault is not a data store — customer configurations, service configs, and general content should use Azure Storage or Cosmos DB instead.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-not-a-data-store.json"},{"id":"keyvault-object-scope-rbac-read-only","text":"Object-scope RBAC assignments in Key Vault only support read operations; administrative operations require vault-level permissions.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-object-scope-rbac-read-only.json"},{"id":"keyvault-one-vault-per-app-region-env","text":"Key Vault best practice is one vault per application, region, and environment to reduce blast radius of security events","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-one-vault-per-app-region-env.json"},{"id":"keyvault-one-vault-per-app-region-environment","text":"Best practice is one Key Vault per application, per region, per environment to reduce blast radius of security events.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-one-vault-per-app-region-environment.json"},{"id":"keyvault-partnered-issuers-digicert-globalsign","text":"Only DigiCert and GlobalSign are partnered certificate issuers in Key Vault supporting automatic TLS/SSL certificate issuance and renewal.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-partnered-issuers-digicert-globalsign.json"},{"id":"keyvault-premium-fips-140-3-level-3","text":"Azure Key Vault Premium tier uses HSM-protected keys (Marvell LiquidSecurity HSMs) validated to FIPS 140-3 Level 3.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-premium-fips-140-3-level-3.json"},{"id":"keyvault-premium-hsm-key-types","text":"Premium HSM key types are RSA-HSM, EC-HSM, and OCT-HSM; these keys never leave the HSM boundary.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-premium-hsm-key-types.json"},{"id":"keyvault-premium-sku-required-for-hsm-keys","text":"Key Vault Premium SKU is required for HSM-protected keys in vaults; Standard SKU supports only software-protected keys.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-premium-sku-required-for-hsm-keys.json"},{"id":"keyvault-private-endpoint-key-lifecycle-isolation","text":"Key Vault's layered deletion protection (soft-delete, purge protection, purge RBAC) provides key lifecycle isolation, ensuring that cryptographic material cannot be permanently destroyed without satisfying multiple independent controls.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-private-endpoint-key-lifecycle-isolation.json"},{"id":"keyvault-purge-distinct-from-delete","text":"The `purge` permission is a privileged operation distinct from `delete`; purge permanently removes a soft-deleted secret.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-purge-distinct-from-delete.json"},{"id":"keyvault-purge-privileged-operation","text":"The `purge` permission (permanent deletion of soft-deleted secrets) is a privileged operation distinct from `delete`.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-purge-privileged-operation.json"},{"id":"keyvault-purge-protection-not-default-requires-soft-delete","text":"Key Vault purge protection is not enabled by default, requires soft-delete to be enabled first, and prevents purging until the retention period expires.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-purge-protection-not-default-requires-soft-delete.json"},{"id":"keyvault-purge-protection-prevents-permanent-deletion","text":"Key Vault purge protection prevents permanent deletion of soft-deleted objects even after soft delete is enabled.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-purge-protection-prevents-permanent-deletion.json"},{"id":"keyvault-purge-requires-purge-operator-or-owner","text":"Purging a Key Vault requires the \"Key Vault Purge Operator\" built-in role or subscription owner privileges.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-purge-requires-purge-operator-or-owner.json"},{"id":"keyvault-purge-requires-purge-operator-or-sub-owner","text":"Purging a Key Vault requires the \"Key Vault Purge Operator\" built-in role or subscription owner privileges.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-purge-requires-purge-operator-or-sub-owner.json"},{"id":"keyvault-rbac-complete-access-model","text":"Key Vault RBAC provides complete fine-grained access control with separate permission boundaries for keys, secrets, and certificates, replacing legacy access policies that lack PIM support and have known vulnerabilities — unless the workload uses Managed HSM, which has its own access control model entirely outside vault RBAC.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-rbac-complete-access-model.json"},{"id":"keyvault-rbac-not-for-managed-hsm","text":"Key Vault RBAC applies only to vaults, not managed HSMs; managed HSMs have their own access control model.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-rbac-not-for-managed-hsm.json"},{"id":"keyvault-rbac-object-scope-read-only","text":"RBAC object-scope assignments on Key Vault only support read operations; administrative operations require vault-level permissions.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-rbac-object-scope-read-only.json"},{"id":"keyvault-rbac-over-access-policies","text":"Legacy Key Vault access policies have known security vulnerabilities and lack PIM support; Azure RBAC is the recommended permission model","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-rbac-over-access-policies.json"},{"id":"keyvault-rbac-preferred-over-access-policies","text":"Azure RBAC is preferred over legacy vault access policies for Key Vault; legacy policies have known vulnerabilities and lack PIM support.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-rbac-preferred-over-access-policies.json"},{"id":"keyvault-rbac-preferred-over-legacy-access-policies","text":"Azure RBAC is preferred over legacy vault access policies for Key Vault; legacy policies have known vulnerabilities and lack PIM support.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-rbac-preferred-over-legacy-access-policies.json"},{"id":"keyvault-rbac-recommended-over-access-policies","text":"Azure RBAC is the recommended Key Vault permission model; legacy access policies have known security vulnerabilities and lack PIM support.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-rbac-recommended-over-access-policies.json"},{"id":"keyvault-rbac-switch-invalidates-access-policies","text":"Switching to Azure RBAC permission model immediately invalidates all existing Key Vault access policies.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-rbac-switch-invalidates-access-policies.json"},{"id":"keyvault-recovery-does-not-restore-rbac-or-eventgrid","text":"Recovering a soft-deleted Key Vault does not restore Azure RBAC role assignments or Event Grid subscriptions — these must be manually recreated.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-recovery-does-not-restore-rbac-or-eventgrid.json"},{"id":"keyvault-recovery-no-rbac-no-eventgrid","text":"Recovering a soft-deleted Key Vault does not restore Azure RBAC role assignments or Event Grid subscriptions; these must be manually recreated.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-recovery-no-rbac-no-eventgrid.json"},{"id":"keyvault-secret-access-control-per-vault","text":"Key Vault secret access control is per-vault (not per-secret) and is separate from key access control within the same vault.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-secret-access-control-per-vault.json"},{"id":"keyvault-secret-access-control-per-vault-separate-from-keys","text":"Key Vault secret access control is per-vault (not per-secret) and is separate from key access control within the same vault.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-secret-access-control-per-vault-separate-from-keys.json"},{"id":"keyvault-secret-contenttype-255-chars-no-predefined","text":"The Key Vault secret `contentType` field is optional, max 255 characters, with no predefined values — it serves as a hint for interpreting secret data.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-secret-contenttype-255-chars-no-predefined.json"},{"id":"keyvault-secret-contenttype-max-255-chars","text":"The Key Vault secret `contentType` field is an optional hint with a maximum length of 255 characters and no predefined values.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-secret-contenttype-max-255-chars.json"},{"id":"keyvault-secret-encryption-leaf-key-per-vault-root-per-world","text":"Key Vault encryption leaf key is unique per key vault; the root key is unique per security world, protected by FIPS 140-2 Level 3+ validated modules.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-secret-encryption-leaf-key-per-vault-root-per-world.json"},{"id":"keyvault-secret-get-works-expired-and-not-yet-valid","text":"The `get` operation works on expired and not-yet-valid secrets, as an exception to the `nbf`/`exp` date-time controls.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-secret-get-works-expired-and-not-yet-valid.json"},{"id":"keyvault-secret-get-works-on-expired","text":"The `get` operation works on expired and not-yet-valid secrets, as an exception to the normal date-time controls.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-secret-get-works-on-expired.json"},{"id":"keyvault-secret-get-works-on-expired-and-not-yet-valid","text":"The `get` operation works on expired and not-yet-valid secrets, as an exception to the `nbf`/`exp` date-time controls.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-secret-get-works-on-expired-and-not-yet-valid.json"},{"id":"keyvault-secret-max-15-tags","text":"Key Vault secrets support a maximum of 15 tags, each with a 512-character name and 512-character value; tags are readable by anyone with `list` or `get` permission.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-secret-max-15-tags.json"},{"id":"keyvault-secret-max-size-25kb","text":"Azure Key Vault secrets have a maximum size of 25 KB per secret.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-secret-max-size-25kb.json"},{"id":"keyvault-secret-permissive-read-model","text":"Key Vault secrets follow a permissive read model that differs from typical access-controlled resources: the 25 KB size limit constrains stored content, the contentType field is an optional unvalidated hint (max 255 chars, no predefined values), and the get operation succeeds on both expired and not-yet-valid secrets — meaning nbf/exp date controls are advisory for reads, not enforcement boundaries.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-secret-permissive-read-model.json"},{"id":"keyvault-secured-by-perimeter-overrides-trusted-services","text":"Setting Key Vault `publicNetworkAccess: SecuredByPerimeter` overrides the \"Allow trusted Microsoft services\" firewall bypass.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-secured-by-perimeter-overrides-trusted-services.json"},{"id":"keyvault-soft-delete-enabled-by-default-cannot-disable","text":"Azure Key Vault soft-delete is enabled by default on new vaults and cannot be disabled once enabled.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-soft-delete-enabled-by-default-cannot-disable.json"},{"id":"keyvault-soft-delete-retention-7-90-days","text":"Key Vault soft delete retention period is 7–90 days; purge protection adds a second layer preventing permanent deletion even after soft delete","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-soft-delete-retention-7-90-days.json"},{"id":"keyvault-soft-delete-retention-7-90-days-default-90","text":"Key Vault soft-delete retention period is configurable from 7 to 90 days (default 90), set at vault creation time, and cannot be changed afterward.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-soft-delete-retention-7-90-days-default-90.json"},{"id":"keyvault-soft-delete-retention-7-90-days-default-90-immutable","text":"Key Vault soft-delete retention period is configurable from 7–90 days (default 90), set at vault creation time, and cannot be changed afterward.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-soft-delete-retention-7-90-days-default-90-immutable.json"},{"id":"keyvault-soft-delete-retention-7-to-90-days","text":"Key Vault soft delete recovers deleted objects within a 7–90 day retention period; purge protection prevents permanent deletion even after soft delete.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-soft-delete-retention-7-to-90-days.json"},{"id":"keyvault-soft-delete-retention-7-to-90-days-default-90-immutable","text":"Key Vault soft-delete retention period is configurable from 7 to 90 days (default 90), set at vault creation time and cannot be changed afterward.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-soft-delete-retention-7-to-90-days-default-90-immutable.json"},{"id":"keyvault-soft-deleted-name-cannot-be-reused","text":"A soft-deleted vault's name (and object names within a vault) cannot be reused until the retention period expires.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-soft-deleted-name-cannot-be-reused.json"},{"id":"keyvault-soft-deleted-name-cannot-reuse","text":"A soft-deleted vault's name cannot be reused until the retention period expires; same restriction applies to objects within a vault.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-soft-deleted-name-cannot-reuse.json"},{"id":"keyvault-soft-deleted-objects-only-purge-or-recover","text":"Only two operations are possible on soft-deleted Key Vault objects: purge and recover.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-soft-deleted-objects-only-purge-or-recover.json"},{"id":"keyvault-soft-deleted-objects-two-operations","text":"Only two operations are possible on soft-deleted Key Vault objects: purge and recover.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-soft-deleted-objects-two-operations.json"},{"id":"keyvault-software-keys-fips-140-2-level-1","text":"Software-protected keys in Key Vault are validated at FIPS 140-2 Level 1 and are only available in vaults (not Managed HSM).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-software-keys-fips-140-2-level-1.json"},{"id":"keyvault-standard-fips-140-level-1","text":"Azure Key Vault Standard tier uses software-protected keys validated to FIPS 140 Level 1.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-standard-fips-140-level-1.json"},{"id":"keyvault-supports-tls-12-and-13","text":"Azure Key Vault supports TLS 1.2 and TLS 1.3; clients can enforce TLS version during negotiation.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-supports-tls-12-and-13.json"},{"id":"keyvault-symmetric-keys-managed-hsm-only","text":"Symmetric keys (oct-HSM: 128, 192, 256-bit) are only supported in Managed HSMs, not in standard vaults.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-symmetric-keys-managed-hsm-only.json"},{"id":"keyvault-three-auth-methods-managed-identity-recommended","text":"Key Vault supports three authentication methods in order of recommendation: (1) managed identities (best practice), (2) service principal + certificate, (3) service principal + secret (not recommended).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-three-auth-methods-managed-identity-recommended.json"},{"id":"keyvault-three-auth-methods-ranked","text":"Key Vault authentication methods in order of recommendation: (1) Managed identities (best), (2) Service principal + certificate, (3) Service principal + secret (not recommended due to bootstrap secret rotation difficulty)","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-three-auth-methods-ranked.json"},{"id":"keyvault-tiered-key-protection-model","text":"Key Vault enforces a three-tier key protection model: software keys (FIPS 140-2 L1) in Standard vaults, asymmetric HSM keys in Premium vaults, and symmetric/single-tenant HSM keys exclusively in Managed HSM pools.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-tiered-key-protection-model.json"},{"id":"keyvault-tls-12-and-13","text":"Azure Key Vault supports TLS 1.2 and 1.3; clients can enforce TLS version during negotiation.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-tls-12-and-13.json"},{"id":"keyvault-two-authorization-models","text":"Key Vault has two authorization models: Azure RBAC (management + data plane) and Key Vault access policies (data plane only, legacy).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-two-authorization-models.json"},{"id":"keyvault-two-container-types","text":"Azure Key Vault has two container types: vaults (keys, secrets, certificates) and managed HSM pools (HSM-backed keys only).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/keyvault-two-container-types.json"},{"id":"kv-administrator-role-full-data-no-management","text":"Key Vault Administrator role provides full data plane access (keys, secrets, certificates) but cannot manage the vault resource itself or manage role assignments.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/kv-administrator-role-full-data-no-management.json"},{"id":"kv-auth-entra-authz-rbac-or-access-policy","text":"Key Vault authenticates via Microsoft Entra ID; authorization uses either Azure RBAC (management + data plane) or Key Vault access policy (data plane only).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/kv-auth-entra-authz-rbac-or-access-policy.json"},{"id":"kv-best-practice-one-vault-per-app","text":"Best practice is to create one Key Vault per application per environment (Dev, Pre-Prod, Prod) to segregate secrets.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/kv-best-practice-one-vault-per-app.json"},{"id":"kv-cert-access-control-separate","text":"Certificate access control policies in Key Vault are distinct from key and secret access control policies within the same vault.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/kv-cert-access-control-separate.json"},{"id":"kv-cert-contacts-shared-across-vault","text":"Certificate contacts in Key Vault are shared across all certificates in the vault.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/kv-cert-contacts-shared-across-vault.json"},{"id":"kv-cert-creates-key-and-secret","text":"Creating a Key Vault certificate automatically creates an addressable key and an addressable secret with the same name.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/kv-cert-creates-key-and-secret.json"},{"id":"kv-cert-default-key-operations","text":"When no X.509 key usage is specified, Key Vault certificate default key operations are sign, verify, wrapKey, and unwrapKey.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/kv-cert-default-key-operations.json"},{"id":"kv-cert-default-key-ops","text":"Default Key Vault key operations when no X.509 key usage is specified are sign, verify, wrapKey, and unwrapKey.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/kv-cert-default-key-ops.json"},{"id":"kv-cert-issuer-vault-scoped","text":"Certificate issuer objects in Key Vault are vault-scoped and cannot be shared across vaults.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/kv-cert-issuer-vault-scoped.json"},{"id":"kv-cert-lifetime-actions-two-triggers-two-actions","text":"Key Vault certificate lifetime actions support two triggers (days before expiry, lifetime percentage) and two actions (emailContacts, autoRenew).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/kv-cert-lifetime-actions-two-triggers-two-actions.json"},{"id":"kv-cert-partnered-issuers-digicert-globalsign","text":"Only DigiCert and GlobalSign are partnered certificate issuers in Key Vault, supporting automatic TLS/SSL certificate issuance and renewal.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/kv-cert-partnered-issuers-digicert-globalsign.json"},{"id":"kv-contributor-control-plane-only","text":"Key Vault Contributor role is control plane only — it does NOT grant access to keys, secrets, or certificates.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/kv-contributor-control-plane-only.json"},{"id":"kv-contributor-no-data-access","text":"Key Vault Contributor role is control plane only and does NOT grant access to keys, secrets, or certificates.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/kv-contributor-no-data-access.json"},{"id":"kv-control-plane-endpoint-management-azure","text":"Key Vault control plane endpoint is management.azure.com:443; data plane endpoint is {vault-name}.vault.azure.net:443.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/kv-control-plane-endpoint-management-azure.json"},{"id":"kv-control-plane-endpoint-management-azure-com","text":"Key Vault control plane endpoint is `management.azure.com:443`; data plane endpoint is `<vault-name>.vault.azure.net:443`.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/kv-control-plane-endpoint-management-azure-com.json"},{"id":"kv-custom-roles-use-dataactions","text":"Custom roles for Key Vault data plane operations use `DataActions` (not `Actions`).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/kv-custom-roles-use-dataactions.json"},{"id":"kv-ec-curves-p256-p384-p521-secp256k1","text":"Key Vault supports EC curves P-256, P-384, P-521, and secp256k1 (P-256K).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/kv-ec-curves-p256-p384-p521-secp256k1.json"},{"id":"kv-fips-compliance-levels","text":"Key Vault FIPS compliance: software keys = FIPS 140-2 Level 1; HSM Platform 1 = FIPS 140-2 Level 2; HSM Platform 2 and Managed HSM = FIPS 140-3 Level 3.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/kv-fips-compliance-levels.json"},{"id":"kv-ha-auto-replication-secondary-region","text":"Key Vault contents are automatically replicated within a region and to a secondary region; failover is automatic with no admin action required.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/kv-ha-auto-replication-secondary-region.json"},{"id":"kv-ha-automatic-secondary-region-replication","text":"Key Vault contents are automatically replicated within a region and to a secondary region; failover is automatic with no admin action needed.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/kv-ha-automatic-secondary-region-replication.json"},{"id":"kv-hsm-keys-always-non-exportable","text":"HSM-protected keys in Key Vault are always non-exportable; only RSA and EC key types support exportable private keys.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/kv-hsm-keys-always-non-exportable.json"},{"id":"kv-hsm-platform-2-all-new-keys","text":"All new key versions in Key Vault are created on HSM Platform 2 (FIPS 140-3 Level 3).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/kv-hsm-platform-2-all-new-keys.json"},{"id":"kv-hsm-platform-2-fips-140-3-level-3","text":"All new key versions are created on HSM Platform 2, which provides FIPS 140-3 Level 3 protection; HSM Platform 1 (legacy) provides FIPS 140-2 Level 2.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/kv-hsm-platform-2-fips-140-3-level-3.json"},{"id":"kv-keys-jwk-representation","text":"Key Vault keys are represented as JSON Web Key (JWK) objects following JOSE specifications.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/kv-keys-jwk-representation.json"},{"id":"kv-managed-hsm-single-tenant-isolated","text":"Managed HSM pools are single-tenant with isolated security domains, separate from Key Vault vaults.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/kv-managed-hsm-single-tenant-isolated.json"},{"id":"kv-managed-hsm-supports-symmetric-keys","text":"Managed HSMs support symmetric keys (oct-HSM: 128, 192, 256-bit); standard Key Vault vaults do not support symmetric keys.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/kv-managed-hsm-supports-symmetric-keys.json"},{"id":"kv-object-scope-rbac-cannot-isolate-teams","text":"Object-scope RBAC in Key Vault cannot fully isolate application teams within a single vault — administrative operations still require vault-level permissions.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/kv-object-scope-rbac-cannot-isolate-teams.json"},{"id":"kv-oct-hsm-256-quantum-resistant-cnsa","text":"oct-HSM 256-bit keys with AES in Managed HSM are considered quantum-resistant per CNSA 2.0.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/kv-oct-hsm-256-quantum-resistant-cnsa.json"},{"id":"kv-premium-fips-140-3-level-3","text":"Key Vault Premium tier uses HSM-protected keys (Marvell LiquidSecurity HSMs) validated at FIPS 140-3 Level 3.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/kv-premium-fips-140-3-level-3.json"},{"id":"kv-premium-fips-140-3-level-3-marvell","text":"Key Vault Premium tier uses HSM-protected keys (Marvell LiquidSecurity HSMs) validated at FIPS 140-3 Level 3.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/kv-premium-fips-140-3-level-3-marvell.json"},{"id":"kv-premium-hsm-keys-never-leave-boundary","text":"Premium HSM key types (RSA-HSM, EC-HSM, OCT-HSM) never leave the HSM boundary.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/kv-premium-hsm-keys-never-leave-boundary.json"},{"id":"kv-rbac-applies-to-vaults-not-managed-hsm","text":"Azure RBAC for Key Vault applies only to vaults; Managed HSMs have their own separate access control model.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/kv-rbac-applies-to-vaults-not-managed-hsm.json"},{"id":"kv-rbac-custom-roles-use-dataactions","text":"Custom roles for Key Vault data plane operations use DataActions (not Actions) in the role definition.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/kv-rbac-custom-roles-use-dataactions.json"},{"id":"kv-rbac-not-for-managed-hsm","text":"Azure RBAC for Key Vault applies only to vaults, not to Managed HSMs, which have their own access control model.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/kv-rbac-not-for-managed-hsm.json"},{"id":"kv-rbac-vs-access-policy-authorization","text":"Key Vault supports two authorization mechanisms: Azure RBAC (management + data plane) or Key Vault access policy (data plane only).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/kv-rbac-vs-access-policy-authorization.json"},{"id":"kv-rsa-key-sizes-2048-3072-4096","text":"Key Vault supports RSA key sizes of 2048, 3072, and 4096 bits.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/kv-rsa-key-sizes-2048-3072-4096.json"},{"id":"kv-software-keys-not-in-managed-hsm","text":"Software-protected keys are only available in Key Vault vaults, not in Managed HSMs.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/kv-software-keys-not-in-managed-hsm.json"},{"id":"kv-standard-fips-140-level-1","text":"Key Vault Standard tier uses software-protected keys validated at FIPS 140 Level 1.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/kv-standard-fips-140-level-1.json"},{"id":"kv-switching-rbac-invalidates-access-policies","text":"Switching to Azure RBAC permission model for Key Vault immediately invalidates all existing access policies.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/kv-switching-rbac-invalidates-access-policies.json"},{"id":"lb-admin-state-overrides-health-probe","text":"Admin State can override health probe behavior for maintenance windows on Azure Load Balancer.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/lb-admin-state-overrides-health-probe.json"},{"id":"lb-backend-pool-cannot-contain-private-endpoints","text":"Azure Load Balancer backend pools cannot contain Private Endpoints.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/lb-backend-pool-cannot-contain-private-endpoints.json"},{"id":"lb-backend-pool-scoped-single-vnet","text":"Azure Load Balancer backend pools are scoped to a single virtual network; rules cannot span two VNets.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/lb-backend-pool-scoped-single-vnet.json"},{"id":"lb-basic-health-probes-not-supported-with-vmss","text":"Basic SKU Load Balancer health probes are not supported with Virtual Machine Scale Sets.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/lb-basic-health-probes-not-supported-with-vmss.json"},{"id":"lb-basic-no-https-probes-no-outbound-rules","text":"Basic SKU Load Balancer does not support HTTPS health probes, outbound rules, or HA ports, and closes all TCP connections on probe failure.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/lb-basic-no-https-probes-no-outbound-rules.json"},{"id":"lb-basic-probe-not-supported-vmss","text":"Basic SKU Load Balancer health probes are not supported with Virtual Machine Scale Sets.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/lb-basic-probe-not-supported-vmss.json"},{"id":"lb-basic-probes-not-supported-with-vmss","text":"Basic SKU Load Balancer health probes are not supported with Virtual Machine Scale Sets.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/lb-basic-probes-not-supported-with-vmss.json"},{"id":"lb-basic-sku-retired-sept-2025","text":"Azure Load Balancer Basic SKU was retired on September 30, 2025.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/lb-basic-sku-retired-sept-2025.json"},{"id":"lb-complete-layer-4-traffic-model","text":"Azure Load Balancer provides a complete Layer-4 traffic model with ultra-low latency pass-through architecture (no TLS termination, no proxy) handling all transport-layer protocols.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/lb-complete-layer-4-traffic-model.json"},{"id":"lb-does-not-store-customer-data","text":"Azure Load Balancer does not store customer data — it processes traffic in real-time without persistence.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/lb-does-not-store-customer-data.json"},{"id":"lb-ha-ports-internal-standard-only","text":"HA Ports (protocol=all, port=0) are only supported on internal Standard Load Balancer, not on Basic or Public Load Balancers.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/lb-ha-ports-internal-standard-only.json"},{"id":"lb-health-probe-failure-new-connections-only","text":"Health probe failure stops new connections only; existing connections persist until the flow ends, idle timeout, or VM shutdown.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/lb-health-probe-failure-new-connections-only.json"},{"id":"lb-http-probe-blocked-ports","text":"HTTP health probes cannot use ports 19, 21, 25, 70, 110, 119, 143, 220, or 993.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/lb-http-probe-blocked-ports.json"},{"id":"lb-http-probe-fails-on-non-200","text":"HTTP/HTTPS health probes succeed only on HTTP 200; any other status code (403, 404, 500, etc.) causes probe failure.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/lb-http-probe-fails-on-non-200.json"},{"id":"lb-http-probe-no-hostname-probing","text":"HTTP health probes on Azure Load Balancer do not support hostname-based probing.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/lb-http-probe-no-hostname-probing.json"},{"id":"lb-http-probe-restricted-ports","text":"HTTP health probes cannot use ports 19, 21, 25, 70, 110, 119, 143, 220, or 993.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/lb-http-probe-restricted-ports.json"},{"id":"lb-http-probe-threshold-immediate-on-explicit-response","text":"For HTTP health probes, explicit responses (200 or non-200) reset the probe threshold immediately; the threshold count only applies when probes time out with no response.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/lb-http-probe-threshold-immediate-on-explicit-response.json"},{"id":"lb-http-probe-timeout-30-seconds","text":"HTTP/HTTPS health probe timeout is 30 seconds; TCP probes have no separate timeout (use the probe interval).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/lb-http-probe-timeout-30-seconds.json"},{"id":"lb-https-probe-requires-sha256-no-mutual-auth","text":"HTTPS health probes require certificates with minimum SHA256 signature hash in the entire chain and do not support mutual authentication with client certificates.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/lb-https-probe-requires-sha256-no-mutual-auth.json"},{"id":"lb-icmp-ip-fragmentation-not-supported","text":"ICMP and IP fragmentation are not supported by Azure Load Balancer load-balancing rules.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/lb-icmp-ip-fragmentation-not-supported.json"},{"id":"lb-inbound-nat-rules-no-health-probe-required","text":"Inbound NAT rules do not require a health probe; only load-balancing rules require one.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/lb-inbound-nat-rules-no-health-probe-required.json"},{"id":"lb-inbound-nat-rules-no-probe-required","text":"Inbound NAT rules do not require a health probe; only load balancing rules require one.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/lb-inbound-nat-rules-no-probe-required.json"},{"id":"lb-inbound-nat-specific-vs-rule-all","text":"Inbound NAT rules forward traffic to a specific VM instance; load-balancing rules distribute to all instances in the backend pool.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/lb-inbound-nat-specific-vs-rule-all.json"},{"id":"lb-internal-frontend-never-exposed-to-internet","text":"Internal Load Balancer frontend IPs are never exposed to internet endpoints; it cannot accept traffic from the internet.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/lb-internal-frontend-never-exposed-to-internet.json"},{"id":"lb-internal-never-exposed-to-internet","text":"Internal Load Balancer frontend IPs are never exposed to internet endpoints; it cannot accept traffic from the internet.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/lb-internal-never-exposed-to-internet.json"},{"id":"lb-ip-fragmentation-not-supported","text":"IP fragmentation is not supported on Azure Load Balancer rules.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/lb-ip-fragmentation-not-supported.json"},{"id":"lb-multiple-frontend-ips-supported","text":"An Azure Load Balancer can have multiple frontend IP configurations.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/lb-multiple-frontend-ips-supported.json"},{"id":"lb-no-icmp-no-ip-fragmentation","text":"ICMP and IP fragmentation are not supported by Azure Load Balancer load-balancing rules.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/lb-no-icmp-no-ip-fragmentation.json"},{"id":"lb-one-public-one-internal-nic-lb-per-availability-set","text":"An availability set is limited to one public NIC-based Load Balancer and one internal NIC-based Load Balancer; IP-based LBs are exempt from this limit.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/lb-one-public-one-internal-nic-lb-per-availability-set.json"},{"id":"lb-operates-at-layer-4-tcp-udp","text":"Azure Load Balancer operates at Layer 4 (Transport) of the OSI model, handling TCP and UDP only — it is not application-aware.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/lb-operates-at-layer-4-tcp-udp.json"},{"id":"lb-outbound-flow-to-own-internal-frontend-fails","text":"An outbound flow from a backend VM to the frontend of its own internal Load Balancer will fail.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/lb-outbound-flow-to-own-internal-frontend-fails.json"},{"id":"lb-outbound-from-backend-to-own-internal-frontend-fails","text":"An outbound flow from a backend VM to the frontend of its own internal Load Balancer will fail.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/lb-outbound-from-backend-to-own-internal-frontend-fails.json"},{"id":"lb-outbound-to-own-internal-frontend-fails","text":"An outbound flow from a backend VM to the frontend of its own internal Load Balancer will fail.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/lb-outbound-to-own-internal-frontend-fails.json"},{"id":"lb-pass-through-no-tls-termination","text":"Azure Load Balancer uses a pass-through architecture with no TLS termination and no proxy, enabling ultra-low latency.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/lb-pass-through-no-tls-termination.json"},{"id":"lb-passthrough-no-tls-termination","text":"Azure Load Balancer uses a pass-through architecture for ultra-low latency — it does not perform TLS termination or act as a proxy.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/lb-passthrough-no-tls-termination.json"},{"id":"lb-passthrough-no-tls-termination-no-proxy","text":"Azure Load Balancer uses a pass-through architecture with no TLS termination and no proxy, enabling ultra-low latency.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/lb-passthrough-no-tls-termination-no-proxy.json"},{"id":"lb-probe-failure-no-effect-on-outbound","text":"Outbound connectivity from backend instances is not affected by health probe failure — only inbound new connections are stopped.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/lb-probe-failure-no-effect-on-outbound.json"},{"id":"lb-probe-outbound-unaffected","text":"Health probe failure affects only inbound connectivity; outbound connectivity from backend instances remains unaffected.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/lb-probe-outbound-unaffected.json"},{"id":"lb-probe-port-can-differ-from-app-port","text":"The health probe port and the application port do not have to be the same on Azure Load Balancer.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/lb-probe-port-can-differ-from-app-port.json"},{"id":"lb-probe-source-ip-168-63-129-16","text":"All IPv4 health probes originate from source IP 168.63.129.16; IPv6 probes use link-local address fe80::1234:5678:9abc.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/lb-probe-source-ip-168-63-129-16.json"},{"id":"lb-public-handles-inbound-and-outbound","text":"A public Azure Load Balancer handles both inbound (internet to VMs) and outbound (VMs to internet via private-to-public IP translation) connectivity.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/lb-public-handles-inbound-and-outbound.json"},{"id":"lb-public-lb-inbound-and-outbound-nat","text":"Public load balancer handles both inbound load balancing and outbound NAT by translating private IPs to public IPs.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/lb-public-lb-inbound-and-outbound-nat.json"},{"id":"lb-public-lb-provides-outbound-nat","text":"Public load balancer provides outbound connectivity for VMs by translating private IPs to public IPs (SNAT).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/lb-public-lb-provides-outbound-nat.json"},{"id":"lb-standard-all-probes-down-tcp-continues","text":"Standard LB: when all probes are down, established TCP flows continue. Basic LB: all TCP flows expire when all probes are down.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/lb-standard-all-probes-down-tcp-continues.json"},{"id":"lb-standard-built-on-zero-trust","text":"Standard Azure Load Balancer is built on the Zero Trust network security model.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/lb-standard-built-on-zero-trust.json"},{"id":"lb-standard-closed-inbound-by-default","text":"Standard Load Balancer and standard public IPs are closed to inbound traffic by default; NSGs must explicitly allow traffic.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/lb-standard-closed-inbound-by-default.json"},{"id":"lb-standard-zero-trust-default-deny","text":"Standard Load Balancer implements zero-trust networking by combining a closed-by-default inbound posture with the zero-trust security model — traffic must be explicitly allowed via NSG rules before any backend communication occurs.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/lb-standard-zero-trust-default-deny.json"},{"id":"lb-stopped-vms-can-remain-in-backend-pool","text":"Stopped VMs can remain in an Azure Load Balancer backend pool.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/lb-stopped-vms-can-remain-in-backend-pool.json"},{"id":"lb-stopped-vms-not-probed","text":"Stopped VMs are not probed by load balancer health probes until started again.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/lb-stopped-vms-not-probed.json"},{"id":"lb-stopped-vms-remain-in-backend-pool","text":"Stopped/deallocated VMs can remain in an Azure Load Balancer backend pool.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/lb-stopped-vms-remain-in-backend-pool.json"},{"id":"lb-three-skus-basic-standard-gateway","text":"Azure Load Balancer has three SKUs: Basic (retired), Standard, and Gateway.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/lb-three-skus-basic-standard-gateway.json"},{"id":"lb-vms-can-join-backend-pool-when-stopped","text":"VMs can be added to a load balancer backend pool even when in a stopped state.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/lb-vms-can-join-backend-pool-when-stopped.json"},{"id":"lb-vms-no-public-ip-needed-for-public-lb","text":"VMs do not need a public IP address to be in a public load balancer's backend pool.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/lb-vms-no-public-ip-needed-for-public-lb.json"},{"id":"lb-zero-trust-no-customer-data-stored","text":"Azure Load Balancer is built on the Zero Trust network security model and does not store customer data — it processes traffic in real-time without persistence.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/lb-zero-trust-no-customer-data-stored.json"},{"id":"lb-zero-trust-security-model","text":"Azure Standard Load Balancer is built on the Zero Trust network security model.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/lb-zero-trust-security-model.json"},{"id":"managed-disks-only-lrs-zrs","text":"Azure Managed Disks only support LRS and ZRS redundancy options.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/managed-disks-only-lrs-zrs.json"},{"id":"managed-disks-stored-as-page-blobs","text":"Azure Managed Disks are stored as page blobs but abstract away blob, container, and storage account management.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/managed-disks-stored-as-page-blobs.json"},{"id":"managed-identity-lifecycle-tradeoff","text":"Azure managed identity types present a lifecycle tradeoff: system-assigned identities auto-name their service principal to match the resource and auto-delete with it, while user-assigned identities enable cross-resource sharing but require explicit creation, assignment, and deletion.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/managed-identity-lifecycle-tradeoff.json"},{"id":"managed-identity-to-keyvault-zero-credential-pipeline","text":"Managed identity combined with Key Vault references creates a zero-credential application pipeline: identity lifecycle is automatic (system-assigned) or shareable (user-assigned), while Key Vault references inject secrets into App Service settings via @Microsoft.KeyVault syntax — no credential ever appears in code, configuration, or environment variables at any stage.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/managed-identity-to-keyvault-zero-credential-pipeline.json"},{"id":"mgmt-group-arm-caches-hierarchy-30-minutes","text":"Azure Resource Manager caches management group hierarchy details for up to 30 minutes — portal may not immediately reflect moves.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/mgmt-group-arm-caches-hierarchy-30-minutes.json"},{"id":"mgmt-group-hierarchy-cache-30-minutes","text":"Azure Resource Manager caches management group hierarchy details for up to 30 minutes — portal may not reflect moves immediately.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/mgmt-group-hierarchy-cache-30-minutes.json"},{"id":"mgmt-group-max-10000-per-directory","text":"A single Microsoft Entra directory supports up to 10,000 management groups.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/mgmt-group-max-10000-per-directory.json"},{"id":"mgmt-group-max-6-levels-depth","text":"Management group hierarchy supports up to 6 levels of depth, excluding the root management group level and the subscription level.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/mgmt-group-max-6-levels-depth.json"},{"id":"mgmt-group-move-requires-write-on-child-target-current","text":"Moving a subscription or management group requires `Microsoft.management/managementgroups/write` permission on the child, the target parent, and the current parent management group.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/mgmt-group-move-requires-write-on-child-target-current.json"},{"id":"mgmt-group-policies-rbac-cascade-to-descendants","text":"Policies and RBAC role assignments on a management group cascade by inheritance to all descendant management groups, subscriptions, resource groups, and resources.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/mgmt-group-policies-rbac-cascade-to-descendants.json"},{"id":"mgmt-group-root-access-global-admin-elevate-only","text":"No one has default access to the root management group — only Microsoft Entra Global Admins can elevate themselves to User Access Administrator on the root.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/mgmt-group-root-access-global-admin-elevate-only.json"},{"id":"mgmt-group-root-access-requires-global-admin-elevation","text":"No one has default access to the root management group — only Microsoft Entra Global Admins can elevate themselves to manage it.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/mgmt-group-root-access-requires-global-admin-elevation.json"},{"id":"mgmt-group-root-cannot-move-or-delete","text":"The root management group cannot be moved or deleted; its ID equals the Microsoft Entra tenant ID; its display name defaults to \"Tenant root group.\"","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/mgmt-group-root-cannot-move-or-delete.json"},{"id":"mgmt-group-single-parent-rule","text":"Each management group and subscription can have only one parent management group.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/mgmt-group-single-parent-rule.json"},{"id":"mgmt-group-strict-hierarchy-model","text":"Azure management groups enforce a strict single-parent tree hierarchy with cascading RBAC and Policy inheritance, where all subscriptions must be children of a management group under the immovable tenant root.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/mgmt-group-strict-hierarchy-model.json"},{"id":"mgmt-groups-arm-cache-hierarchy-30-minutes","text":"Azure Resource Manager caches management group hierarchy details for up to 30 minutes — portal may not reflect moves immediately.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/mgmt-groups-arm-cache-hierarchy-30-minutes.json"},{"id":"mgmt-groups-inheritance-cascades-to-all-descendants","text":"Policies and RBAC role assignments on a management group cascade by inheritance to all descendant management groups, subscriptions, resource groups, and resources.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/mgmt-groups-inheritance-cascades-to-all-descendants.json"},{"id":"mgmt-groups-max-10000-per-directory","text":"A single Microsoft Entra directory supports up to 10,000 management groups.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/mgmt-groups-max-10000-per-directory.json"},{"id":"mgmt-groups-max-6-levels-depth","text":"Management group hierarchy supports up to 6 levels of depth, excluding the root management group level and the subscription level.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/mgmt-groups-max-6-levels-depth.json"},{"id":"mgmt-groups-move-requires-write-on-child-target-current","text":"Moving a subscription or management group requires `Microsoft.management/managementgroups/write` permission on the child, the target parent, and the current parent management group.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/mgmt-groups-move-requires-write-on-child-target-current.json"},{"id":"mgmt-groups-root-access-global-admin-elevate","text":"No one has default access to the root management group — only Microsoft Entra Global Admins can elevate themselves to manage it.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/mgmt-groups-root-access-global-admin-elevate.json"},{"id":"mgmt-groups-root-cannot-move-or-delete","text":"The root management group cannot be moved or deleted; its ID equals the Microsoft Entra tenant ID, and its default display name is \"Tenant root group\".","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/mgmt-groups-root-cannot-move-or-delete.json"},{"id":"mgmt-groups-single-parent-rule","text":"Each management group and subscription can have only one parent management group.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/mgmt-groups-single-parent-rule.json"},{"id":"microsoft-cloud-security-benchmark-underpins-waf","text":"Microsoft Cloud Security Benchmark provides the control framework that underpins WAF Security pillar guidance.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/microsoft-cloud-security-benchmark-underpins-waf.json"},{"id":"microsoft-recommends-private-link-over-service-endpoints","text":"Microsoft recommends Azure Private Link/private endpoints over service endpoints for new deployments.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/microsoft-recommends-private-link-over-service-endpoints.json"},{"id":"network-contributor-covers-all-subnet-operations","text":"The Network Contributor built-in role covers all subnet RBAC operations (read, write, delete, join, joinViaServiceEndpoint).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/network-contributor-covers-all-subnet-operations.json"},{"id":"network-contributor-no-vm-deployment","text":"Network Contributor lets you manage networks but does not allow deploying VMs or directly accessing the networks.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/network-contributor-no-vm-deployment.json"},{"id":"network-contributor-role-covers-subnet-operations","text":"The Network Contributor built-in role covers all subnet RBAC operations (read, write, delete, join, joinViaServiceEndpoint).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/network-contributor-role-covers-subnet-operations.json"},{"id":"network-security-perimeter-ga-all-public-regions","text":"Network Security Perimeter is GA in all public cloud regions and provides a secure logical boundary for public internet PaaS traffic scenarios, complementary to Private Link.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/network-security-perimeter-ga-all-public-regions.json"},{"id":"never-disable-route-propagation-on-gatewaysubnet","text":"Route propagation must never be disabled on GatewaySubnet — the gateway will stop functioning.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/never-disable-route-propagation-on-gatewaysubnet.json"},{"id":"nsg-infrastructure-aware-stateful-evaluation","text":"NSGs provide a complete traffic evaluation model combining ordered five-tuple matching (custom rules priority 1–4096 always before default rules 65000–65500), stateful connection tracking with graceful rule changes, and platform IP exemptions for infrastructure services (168.63.129.16, 169.254.169.254).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/nsg-infrastructure-aware-stateful-evaluation.json"},{"id":"nsg-stateful-graceful-rule-changes","text":"NSG rule changes are non-disruptive to established connections: statefulness auto-allows return traffic for permitted flows, and rule removal only blocks new connections without terminating existing ones.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/nsg-stateful-graceful-rule-changes.json"},{"id":"nva-deploy-different-subnet-avoid-loops","text":"NVAs must be deployed in a different subnet than the routed resources to avoid routing loops.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/nva-deploy-different-subnet-avoid-loops.json"},{"id":"nva-deploy-in-different-subnet-avoid-loops","text":"NVAs must be deployed in a different subnet than the resources whose traffic they route to avoid routing loops.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/nva-deploy-in-different-subnet-avoid-loops.json"},{"id":"nva-ip-forwarding-required-nic-and-os","text":"NVA IP forwarding must be enabled at both the Azure NIC level and the OS level for traffic forwarding to work.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/nva-ip-forwarding-required-nic-and-os.json"},{"id":"object-replication-block-blobs-only","text":"Object replication supports block blobs only (not append or page blobs).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/object-replication-block-blobs-only.json"},{"id":"object-replication-cross-tenant-default-false","text":"AllowCrossTenantReplication defaults to false for storage accounts created after December 15, 2023.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/object-replication-cross-tenant-default-false.json"},{"id":"object-replication-customer-managed-failover-not-supported","text":"Customer-managed failover is not supported on either the source or destination account in an object replication policy.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/object-replication-customer-managed-failover-not-supported.json"},{"id":"object-replication-destination-readonly","text":"The destination container becomes read-only while a replication policy is active; writes return HTTP 409 Conflict.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/object-replication-destination-readonly.json"},{"id":"object-replication-fails-archive-tier","text":"Object replication fails if either the source or destination blob is moved to the archive tier.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/object-replication-fails-archive-tier.json"},{"id":"object-replication-gpv2-premium-block-blob-only","text":"Azure Blob Storage object replication is supported only on general-purpose v2 and premium block blob storage account types.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/object-replication-gpv2-premium-block-blob-only.json"},{"id":"object-replication-gpv2-premium-block-only","text":"Object replication is supported only on general-purpose v2 and premium block blob storage account types.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/object-replication-gpv2-premium-block-only.json"},{"id":"object-replication-max-1000-rules","text":"Each object replication policy supports up to 1,000 rules.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/object-replication-max-1000-rules.json"},{"id":"object-replication-max-1000-rules-per-policy","text":"Each object replication policy supports up to 1,000 rules; each rule maps one source container to one destination container.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/object-replication-max-1000-rules-per-policy.json"},{"id":"object-replication-max-2-destinations","text":"A source account can replicate to at most 2 destination accounts; a destination account can have at most 2 replication policies.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/object-replication-max-2-destinations.json"},{"id":"object-replication-max-2-policies-per-destination","text":"A destination storage account can have at most 2 replication policies; a source account can replicate to at most 2 destination accounts.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/object-replication-max-2-policies-per-destination.json"},{"id":"object-replication-no-customer-managed-failover","text":"Customer-managed failover is not supported for storage accounts participating in object replication.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/object-replication-no-customer-managed-failover.json"},{"id":"object-replication-no-customer-provided-keys","text":"Object replication fails for blobs encrypted with customer-provided keys on the source account; Microsoft-managed and customer-managed keys are supported.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/object-replication-no-customer-provided-keys.json"},{"id":"object-replication-no-hierarchical-namespace","text":"Object replication is not supported for storage accounts with hierarchical namespace enabled (Data Lake Storage Gen2).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/object-replication-no-hierarchical-namespace.json"},{"id":"object-replication-no-hns-adls-gen2","text":"Object replication does not support storage accounts with hierarchical namespace enabled (ADLS Gen2 / Data Lake Storage).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/object-replication-no-hns-adls-gen2.json"},{"id":"object-replication-policy-created-on-destination","text":"Object replication policy is created on the destination account first, then linked to the source account using the same policy ID.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/object-replication-policy-created-on-destination.json"},{"id":"object-replication-policy-created-on-destination-first","text":"Object replication policy is created on the destination account first (with policyId \"default\"), then linked to the source account using the assigned policy ID.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/object-replication-policy-created-on-destination-first.json"},{"id":"object-replication-priority-sla-15min","text":"With priority replication enabled (same continent), 99% of objects replicate within 15 minutes (SLA-backed).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/object-replication-priority-sla-15min.json"},{"id":"object-replication-requires-changefeed-versioning","text":"Object replication requires change feed on the source account and blob versioning on both source and destination accounts.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/object-replication-requires-changefeed-versioning.json"},{"id":"object-replication-snapshots-not-replicated","text":"Snapshots are not replicated and version IDs are not preserved during object replication.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/object-replication-snapshots-not-replicated.json"},{"id":"object-replication-version-ids-not-preserved","text":"Object replication does not preserve version IDs — destination blobs receive new version IDs.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/object-replication-version-ids-not-preserved.json"},{"id":"override-default-route-redirects-all-traffic","text":"Overriding 0.0.0.0/0 causes all traffic (including to Azure service public IPs) to go through the specified next hop — unless a service endpoint is enabled for that service.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/override-default-route-redirects-all-traffic.json"},{"id":"paas-connectivity-dual-model","text":"Azure offers two complementary PaaS connectivity models with distinct tradeoff profiles: service endpoints are subnet-scoped, ARM-only, require no DNS changes, but cannot reach from on-premises; Private Link is instance-scoped, routes over the Microsoft backbone, requires private DNS zones, and supports on-premises access via ExpressRoute private peering — service endpoints are simpler to deploy but fundamentally less isolated and less flexible.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/paas-connectivity-dual-model.json"},{"id":"policy-assignment-updates-with-definition","text":"Azure Policy assignments use the latest definition state — updating a policy definition automatically applies to all existing assignments without reassignment.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/policy-assignment-updates-with-definition.json"},{"id":"policy-audit-if-not-exists-evaluates-child-resources","text":"`auditIfNotExists` assesses compliance based on a child or extension resource's properties, not the resource's own properties (unlike `audit`); it evaluates after the Resource Provider returns success.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/policy-audit-if-not-exists-evaluates-child-resources.json"},{"id":"policy-best-practice-start-with-audit","text":"Best practice: start Azure Policy with `audit`/`auditIfNotExists` effects before enforcement (`deny`, `modify`, `deployIfNotExists`), and always use initiatives even for a single policy definition.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/policy-best-practice-start-with-audit.json"},{"id":"policy-compliance-evaluation-every-24-hours","text":"Azure Policy automatic compliance evaluation occurs every 24 hours; additional triggers include resource create/update, new/updated assignments, and policy definition updates.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/policy-compliance-evaluation-every-24-hours.json"},{"id":"policy-cumulative-most-restrictive","text":"When multiple Azure Policy assignments layer on a resource, the net result is cumulative most restrictive — overlapping deny policies block resources; exclusions create exceptions.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/policy-cumulative-most-restrictive.json"},{"id":"policy-definition-displayname-128-description-512","text":"Azure Policy definition `displayName` is capped at 128 characters and `description` at 512 characters.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/policy-definition-displayname-128-description-512.json"},{"id":"policy-definition-location-determines-assignment-scope","text":"An Azure Policy definition must be created at a management group or subscription; it can only be assigned within that scope's hierarchy (direct members or children).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/policy-definition-location-determines-assignment-scope.json"},{"id":"policy-definition-mode-all-vs-indexed","text":"Azure Policy mode `all` evaluates resource groups, subscriptions, and all resource types; mode `indexed` only evaluates types supporting tags and location; Azure CLI defaults to `null` (equivalent to `indexed`), while the portal defaults to `all`.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/policy-definition-mode-all-vs-indexed.json"},{"id":"policy-effect-evaluation-order","text":"Azure Policy effect evaluation order: `disabled` → `append`/`modify` → `deny` → `audit` → `manual` → `auditIfNotExists` → `denyAction`; `append`/`modify` run before `deny` because they may alter the request and prevent a deny.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/policy-effect-evaluation-order.json"},{"id":"policy-explicit-deny-system","text":"Azure Policy is an explicit deny system — if any assignment denies a resource, the only way to allow it is to modify the denying assignment; no override mechanism exists.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/policy-explicit-deny-system.json"},{"id":"policy-governance-enforcement-model","text":"Azure Policy operates as an explicit deny system with cumulative most-restrictive evaluation — when multiple policies overlap, the strictest wins — orthogonal to RBAC which evaluates user actions rather than resource state, making Policy the resource-centric complement to RBAC's identity-centric access control.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/policy-governance-enforcement-model.json"},{"id":"policy-max-20-params-definition-400-initiative","text":"Azure Policy allows maximum 20 parameters per policy definition and 400 parameters per initiative definition.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/policy-max-20-params-definition-400-initiative.json"},{"id":"policy-max-500-definitions-per-scope","text":"Azure Policy limits: 500 policy definitions per scope, 200 initiative definitions per scope (2,500 per tenant), 200 assignments per scope, 1,000 exemptions per scope, 1,000 policies per initiative.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/policy-max-500-definitions-per-scope.json"},{"id":"policy-metadata-property-limit-1024-chars","text":"Each Azure Policy metadata property (`version`, `category`, `preview`, `deprecated`, `portalReview`) is limited to 1024 characters.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/policy-metadata-property-limit-1024-chars.json"},{"id":"policy-resource-provider-modes-three-ga","text":"Three Resource Provider modes are fully supported (GA): `Microsoft.Kubernetes.Data`, `Microsoft.KeyVault.Data`, and `Microsoft.Network.Data`; RP modes support only `audit`, `deny`, and `disabled` effects.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/policy-resource-provider-modes-three-ga.json"},{"id":"policy-single-effect-per-definition","text":"Each Azure Policy definition contains exactly one effect in its `policyRule`; multiple effects require multiple policy definitions.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/policy-single-effect-per-definition.json"},{"id":"policy-twelve-supported-effects","text":"Azure Policy supports 12 effects: `addToNetworkGroup`, `append`, `audit`, `auditIfNotExists`, `deny`, `denyAction`, `deployIfNotExists`, `disabled`, `manual`, `modify`, `mutate`.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/policy-twelve-supported-effects.json"},{"id":"policy-type-read-only-three-values","text":"Azure Policy `policyType` is read-only (set by the system) with three values: `Builtin` (Microsoft-maintained), `Custom` (customer-created), and `Static` (Regulatory Compliance, Microsoft-managed).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/policy-type-read-only-three-values.json"},{"id":"policy-versioning-major-minor-patch","text":"Azure Policy definitions use `Major.Minor.Patch` versioning; major = breaking changes/new enforcement effects, minor = rule tweaks/new allowed values, patch = string/metadata/security fixes.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/policy-versioning-major-minor-patch.json"},{"id":"private-endpoint-and-private-link-service-ga","text":"Both Azure Private Endpoint and Private Link Service (behind Standard LB) are generally available; individual PaaS services onboard to Private Link on different schedules.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/private-endpoint-and-private-link-service-ga.json"},{"id":"private-endpoint-maps-to-single-resource-instance","text":"A private endpoint maps to a specific PaaS resource instance (not the entire service), providing data leakage protection.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/private-endpoint-maps-to-single-resource-instance.json"},{"id":"private-endpoint-requires-private-dns-zones","text":"Azure Private Endpoints require Azure DNS / Private DNS Zones for name resolution of the private endpoint.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/private-endpoint-requires-private-dns-zones.json"},{"id":"private-link-both-endpoint-and-service-ga","text":"Both Azure Private Endpoint and Private Link Service (behind Standard LB) are generally available; individual PaaS services onboard on different schedules.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/private-link-both-endpoint-and-service-ga.json"},{"id":"private-link-monitor-data-processed-nat-port","text":"Azure Monitor tracks data processed (IN/OUT) on both private endpoints and Private Link services, plus NAT port availability for Private Link Service.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/private-link-monitor-data-processed-nat-port.json"},{"id":"private-link-monitor-data-processed-nat-ports","text":"Azure Monitor tracks data processed (IN/OUT) on both private endpoints and Private Link services, plus NAT port availability for Private Link Service.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/private-link-monitor-data-processed-nat-ports.json"},{"id":"private-link-network-security-perimeter-ga","text":"Network Security Perimeter is GA in all public cloud regions and provides a secure logical boundary for public internet PaaS traffic scenarios, complementary to Private Link.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/private-link-network-security-perimeter-ga.json"},{"id":"private-link-on-premises-via-expressroute-private-peering","text":"On-premises access to Private Link services uses ExpressRoute private peering or VPN tunnels; Microsoft peering is not required.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/private-link-on-premises-via-expressroute-private-peering.json"},{"id":"private-link-requires-private-dns-zones","text":"Azure DNS / Private DNS Zones are required for name resolution of private endpoints.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/private-link-requires-private-dns-zones.json"},{"id":"private-link-service-requires-standard-load-balancer","text":"Azure Private Link Service requires a Standard Load Balancer (not Basic) as its backend.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/private-link-service-requires-standard-load-balancer.json"},{"id":"private-link-supports-cross-region-connectivity","text":"Private Link has global reach — a consumer VNet in one region can connect to services behind Private Link in a different region.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/private-link-supports-cross-region-connectivity.json"},{"id":"private-link-traffic-stays-on-microsoft-backbone","text":"Azure Private Link traffic traverses the Microsoft backbone network and never crosses the public internet.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/private-link-traffic-stays-on-microsoft-backbone.json"},{"id":"private-link-triple-isolation-model","text":"Private Link achieves complete PaaS network isolation through three interlocking mechanisms: backbone-only routing eliminates public internet traversal, single-resource-instance endpoint targeting prevents cross-tenant data leakage, and private DNS zone requirements ensure name resolution stays within the private network — all three must be correctly configured for the isolation model to hold.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/private-link-triple-isolation-model.json"},{"id":"private-link-works-cross-tenant","text":"Azure Private Link works across different Microsoft Entra tenants with an approval call flow for connection requests.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/private-link-works-cross-tenant.json"},{"id":"private-link-zone-resilient","text":"Azure Private Link spans Availability Zones and is zone resilient.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/private-link-zone-resilient.json"},{"id":"public-lb-handles-inbound-and-outbound","text":"Public Azure Load Balancer handles both inbound (internet to VMs) and outbound (VMs to internet via private-to-public IP translation) connectivity.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/public-lb-handles-inbound-and-outbound.json"},{"id":"queue-storage-max-message-64kb","text":"Azure Queue Storage messages have a maximum size of 64 KB; queues can contain millions of messages.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/queue-storage-max-message-64kb.json"},{"id":"rbac-access-evaluation-order","text":"Azure RBAC access evaluation order: token acquisition → retrieve role/deny assignments → check deny → check roles → check conditions.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/rbac-access-evaluation-order.json"},{"id":"rbac-actions-control-plane-dataactions-data-plane","text":"Actions/NotActions apply to the control plane; DataActions/NotDataActions apply to the data plane.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/rbac-actions-control-plane-dataactions-data-plane.json"},{"id":"rbac-additive-arm-authorization-model","text":"Azure RBAC enforces an additive authorization model built on Azure Resource Manager: effective permissions are the union of all role assignments with no subtraction, role definition IDs remain stable across renames for automation safety, and the Owner/Contributor split specifically gates role assignment capability — making RBAC a monotonically increasing permission surface where the only way to reduce access is to remove assignments.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/rbac-additive-arm-authorization-model.json"},{"id":"rbac-additive-model","text":"Azure RBAC uses an additive model — effective permissions are the union of all role assignments; no role assignment subtracts from another.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/rbac-additive-model.json"},{"id":"rbac-admin-cannot-manage-via-policy","text":"The Role Based Access Control Administrator role can assign roles via RBAC but explicitly cannot manage access via Azure Policy.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/rbac-admin-cannot-manage-via-policy.json"},{"id":"rbac-admin-role-cannot-use-azure-policy","text":"The Role Based Access Control Administrator role can assign roles via RBAC but cannot manage access via Azure Policy or other mechanisms.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/rbac-admin-role-cannot-use-azure-policy.json"},{"id":"rbac-administrator-role-rbac-only-not-policy","text":"Role Based Access Control Administrator can only manage access via Azure RBAC, not via Azure Policy or other mechanisms.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/rbac-administrator-role-rbac-only-not-policy.json"},{"id":"rbac-arm-no-validate-mg-in-assignable-scopes","text":"Azure Resource Manager does not validate management group existence when specified in custom role AssignableScopes.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/rbac-arm-no-validate-mg-in-assignable-scopes.json"},{"id":"rbac-assignment-three-elements","text":"An Azure RBAC role assignment has exactly three elements: security principal, role definition, and scope.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/rbac-assignment-three-elements.json"},{"id":"rbac-built-on-arm","text":"Azure RBAC is built on Azure Resource Manager; all access decisions flow through ARM's global endpoint.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/rbac-built-on-arm.json"},{"id":"rbac-conditions-evaluated-last","text":"Conditions on Azure RBAC role assignments are evaluated last; if conditions aren't met, access is denied even if the role grants the action.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/rbac-conditions-evaluated-last.json"},{"id":"rbac-conditions-on-role-assignments","text":"Azure RBAC role assignments can include conditions that are evaluated after role matching; access is denied if conditions are not met.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/rbac-conditions-on-role-assignments.json"},{"id":"rbac-custom-role-cannot-scope-to-root","text":"Custom roles cannot set AssignableScopes to the root scope (`\"/\"`).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/rbac-custom-role-cannot-scope-to-root.json"},{"id":"rbac-custom-role-dataactions-no-management-group-scope","text":"Custom roles with DataActions cannot be assigned at management group scope.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/rbac-custom-role-dataactions-no-management-group-scope.json"},{"id":"rbac-custom-role-max-2000-assignable-scopes","text":"Custom roles support a maximum of 2,000 AssignableScopes per role definition.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/rbac-custom-role-max-2000-assignable-scopes.json"},{"id":"rbac-custom-role-no-root-scope","text":"Custom roles cannot have AssignableScopes set to root scope (`\"/\"`).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/rbac-custom-role-no-root-scope.json"},{"id":"rbac-custom-role-no-root-scope-assignable","text":"Custom roles cannot set AssignableScopes to root scope (`\"/\"`).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/rbac-custom-role-no-root-scope-assignable.json"},{"id":"rbac-custom-role-no-wildcards-in-assignable-scopes","text":"Wildcards cannot be used in AssignableScopes for custom role definitions.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/rbac-custom-role-no-wildcards-in-assignable-scopes.json"},{"id":"rbac-custom-role-one-management-group-in-assignable-scopes","text":"Only one management group can be defined in a custom role's AssignableScopes.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/rbac-custom-role-one-management-group-in-assignable-scopes.json"},{"id":"rbac-custom-role-permission-strings-case-insensitive","text":"Azure RBAC permission strings in custom role definitions are case-insensitive; wildcards are supported but limited to one wildcard (`*`) per action string.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/rbac-custom-role-permission-strings-case-insensitive.json"},{"id":"rbac-custom-role-requires-write-on-all-assignable-scopes","text":"Creating, deleting, or updating custom roles requires `Microsoft.Authorization/roleDefinitions/write` permission on all AssignableScopes.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/rbac-custom-role-requires-write-on-all-assignable-scopes.json"},{"id":"rbac-custom-role-rest-api-format-differs","text":"REST API input format for custom roles nests permissions under `properties.permissions[]`, differing from the PowerShell/CLI format which uses top-level `Actions`/`NotActions`/`DataActions`/`NotDataActions`.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/rbac-custom-role-rest-api-format-differs.json"},{"id":"rbac-custom-roles-limit-5000-per-tenant","text":"Azure has a limit of 5,000 custom roles per tenant (2,000 for 21Vianet).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/rbac-custom-roles-limit-5000-per-tenant.json"},{"id":"rbac-data-globally-replicated","text":"Azure RBAC data (definitions, assignments, deny assignments) is stored and replicated globally across all Azure regions.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/rbac-data-globally-replicated.json"},{"id":"rbac-deny-assignments-take-precedence","text":"Deny assignments are evaluated before allow role assignments; if a deny applies, access is blocked regardless of role assignments.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/rbac-deny-assignments-take-precedence.json"},{"id":"rbac-effective-permissions-formula","text":"Azure RBAC effective permissions are calculated as `Actions - NotActions` for management plane and `DataActions - NotDataActions` for data plane.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/rbac-effective-permissions-formula.json"},{"id":"rbac-five-privileged-roles","text":"Azure RBAC has exactly 5 privileged roles: Owner, Contributor, Reader, User Access Administrator, and Role Based Access Control Administrator.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/rbac-five-privileged-roles.json"},{"id":"rbac-free-with-every-subscription","text":"Azure RBAC is included free with every Azure subscription at no additional cost.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/rbac-free-with-every-subscription.json"},{"id":"rbac-group-membership-transitive","text":"Group memberships are transitive for Azure RBAC role assignment purposes — nested group members inherit roles.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/rbac-group-membership-transitive.json"},{"id":"rbac-must-remove-assignments-before-deleting-custom-role","text":"All role assignments must be removed before a custom role can be deleted (error: RoleDefinitionHasAssignments).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/rbac-must-remove-assignments-before-deleting-custom-role.json"},{"id":"rbac-network-contributor-cannot-deploy-vms","text":"Network Contributor role allows managing networks but does not grant permission to deploy virtual machines.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/rbac-network-contributor-cannot-deploy-vms.json"},{"id":"rbac-network-contributor-no-vm-deploy","text":"Network Contributor role allows managing networks but does not allow deploying VMs or accessing the networks; Virtual Machine Contributor does not grant access to the connected VNet or storage account.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/rbac-network-contributor-no-vm-deploy.json"},{"id":"rbac-notactions-exclude-not-deny","text":"NotActions excludes operations from the allowed Actions set but is not a deny — it simply subtracts from allowed permissions.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/rbac-notactions-exclude-not-deny.json"},{"id":"rbac-notactions-subtraction-not-deny","text":"`NotActions` in Azure RBAC role definitions subtracts from the `Actions` set — it is not a deny rule; a separate role assignment granting excluded actions will still apply.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/rbac-notactions-subtraction-not-deny.json"},{"id":"rbac-owner-vs-contributor-role-assignment","text":"Owner role can assign roles in Azure RBAC; Contributor role cannot assign roles, manage Blueprints, or share image galleries.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/rbac-owner-vs-contributor-role-assignment.json"},{"id":"rbac-permission-strings-case-insensitive","text":"Azure RBAC permission strings (e.g., `Microsoft.Compute/*/read`) are case-insensitive.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/rbac-permission-strings-case-insensitive.json"},{"id":"rbac-reader-role-id-guid","text":"The Azure RBAC Reader role has the immutable ID `acdd72a7-3385-48ef-bd42-f606fba81ae7`.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/rbac-reader-role-id-guid.json"},{"id":"rbac-role-assignment-conditions","text":"Azure RBAC role assignments can include conditions evaluated after role matching; access is denied if conditions are not met.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/rbac-role-assignment-conditions.json"},{"id":"rbac-role-four-permission-components","text":"Azure RBAC role definitions have four permission components: Actions, NotActions, DataActions, and NotDataActions.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/rbac-role-four-permission-components.json"},{"id":"rbac-role-ids-stable-across-renames","text":"Azure RBAC role definition IDs remain stable even if a role is renamed; best practice is to reference roles by ID in automation.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/rbac-role-ids-stable-across-renames.json"},{"id":"rbac-scope-hierarchy","text":"Azure RBAC scope hierarchy from broadest to narrowest: management group > subscription > resource group > resource.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/rbac-scope-hierarchy.json"},{"id":"rbac-storage-blob-data-owner-includes-posix-acl","text":"Storage Blob Data Owner role provides full access to blob data including the ability to assign POSIX ACLs.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/rbac-storage-blob-data-owner-includes-posix-acl.json"},{"id":"rbac-storage-blob-data-reader-vs-reader","text":"Storage Blob Data Reader grants access to blob data (data plane); Reader grants management plane visibility only — they are not interchangeable.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/rbac-storage-blob-data-reader-vs-reader.json"},{"id":"rbac-user-access-admin-manages-access-not-resources","text":"User Access Administrator role manages user access to Azure resources but cannot manage the resources themselves.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/rbac-user-access-admin-manages-access-not-resources.json"},{"id":"rbac-vm-contributor-no-vnet-storage-access","text":"Virtual Machine Contributor does not grant access to the virtual network or storage account the VM connects to and cannot assign RBAC roles.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/rbac-vm-contributor-no-vnet-storage-access.json"},{"id":"rbac-vm-contributor-no-vnet-storage-rbac","text":"Virtual Machine Contributor does not grant access to the connected VNet or storage account, nor allow RBAC assignment.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/rbac-vm-contributor-no-vnet-storage-rbac.json"},{"id":"rbac-vm-contributor-no-vnet-storage-rbac-access","text":"Virtual Machine Contributor role does not grant access to the connected VNet or storage account, nor allow RBAC assignment.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/rbac-vm-contributor-no-vnet-storage-rbac-access.json"},{"id":"rbac-wildcard-one-per-action-string","text":"Wildcards (`*`) are supported in Azure RBAC permission strings but only one wildcard is allowed per action string.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/rbac-wildcard-one-per-action-string.json"},{"id":"redis-audit-logs-premium-poll-enterprise-event","text":"Azure Cache for Redis connection audit logs use poll-based collection on Premium and event-based collection on Enterprise.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/redis-audit-logs-premium-poll-enterprise-event.json"},{"id":"redis-basic-tier-no-sla","text":"Azure Cache for Redis Basic tier has no SLA and runs on a single VM.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/redis-basic-tier-no-sla.json"},{"id":"redis-basic-tier-no-sla-no-replication","text":"Azure Cache for Redis Basic tier has no SLA and no data replication — suitable for dev/test only.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/redis-basic-tier-no-sla-no-replication.json"},{"id":"redis-c0-shared-cpu-core","text":"Azure Cache for Redis C0 cache uses a shared CPU core with minimal memory and noisy-neighbor issues — only for simple dev/test.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/redis-c0-shared-cpu-core.json"},{"id":"redis-cache-aside-pattern","text":"Azure Cache for Redis supports the cache-aside pattern where data is loaded into cache only as needed from the backend data store.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/redis-cache-aside-pattern.json"},{"id":"redis-cannot-scale-down-tiers","text":"Azure Cache for Redis can scale up from Basic to Premium but cannot scale down; Enterprise tiers support scale-up and scale-out only.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/redis-cannot-scale-down-tiers.json"},{"id":"redis-clustering-premium-and-enterprise-only","text":"Azure Cache for Redis clustering is available only on Premium, Enterprise, and Enterprise Flash tiers.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/redis-clustering-premium-and-enterprise-only.json"},{"id":"redis-collocate-client-cache-same-region","text":"Azure Cache for Redis client and cache must be in the same Azure region for optimal latency and reliability.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/redis-collocate-client-cache-same-region.json"},{"id":"redis-colocate-client-cache-same-region","text":"Azure Cache for Redis client application and cache should be placed in the same Azure region to minimize latency.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/redis-colocate-client-cache-same-region.json"},{"id":"redis-data-persistence-premium-or-enterprise","text":"Data persistence (RDB/AOF) in Azure Cache for Redis requires Premium or Enterprise tier; not available on Basic or Standard.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/redis-data-persistence-premium-or-enterprise.json"},{"id":"redis-enterprise-flash-complete-module-platform","text":"Redis Enterprise Flash provides a complete high-performance caching platform combining progressive tier capabilities with extended non-volatile memory range (300GB–4.5TB) and full module ecosystem.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/redis-enterprise-flash-complete-module-platform.json"},{"id":"redis-enterprise-flash-limited-modules","text":"Azure Cache for Redis Enterprise Flash tier supports only RediSearch (preview) and RedisJSON; full Enterprise tier supports all Redis modules (RediSearch, RedisBloom, RedisJSON, RedisTimeSeries).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/redis-enterprise-flash-limited-modules.json"},{"id":"redis-enterprise-flash-memory-range-300gb-4-5tb","text":"Azure Cache for Redis Enterprise Flash tier uses nonvolatile memory with a memory range of 300 GB to 4.5 TB.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/redis-enterprise-flash-memory-range-300gb-4-5tb.json"},{"id":"redis-enterprise-flash-nonvolatile-memory","text":"Azure Cache for Redis Enterprise Flash tier uses nonvolatile memory to reduce per-GB cost, supporting up to 4.5 TB.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/redis-enterprise-flash-nonvolatile-memory.json"},{"id":"redis-enterprise-modules-only","text":"Only Enterprise tiers support Redis Modules (RediSearch, RedisBloom, RedisJSON, RedisTimeSeries).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/redis-enterprise-modules-only.json"},{"id":"redis-enterprise-multi-threaded-oss-single-threaded","text":"Azure Cache for Redis Basic/Standard/Premium use single-threaded command processing; Enterprise tiers use multi-threaded Redis Enterprise.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/redis-enterprise-multi-threaded-oss-single-threaded.json"},{"id":"redis-enterprise-requires-marketplace-license","text":"Azure Cache for Redis Enterprise tiers require an Azure Marketplace license; Azure credits and free MSDN subscriptions are not supported.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/redis-enterprise-requires-marketplace-license.json"},{"id":"redis-enterprise-requires-marketplace-payment","text":"Azure Cache for Redis Enterprise tier requires an Azure subscription with a valid payment instrument (no free credits/MSDN) and Marketplace purchases must be enabled.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/redis-enterprise-requires-marketplace-payment.json"},{"id":"redis-enterprise-requires-marketplace-purchase","text":"Azure Cache for Redis Enterprise tiers require a valid payment instrument (no free credits/MSDN) and Marketplace purchase permissions.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/redis-enterprise-requires-marketplace-purchase.json"},{"id":"redis-enterprise-requires-payment-instrument","text":"Azure Cache for Redis Enterprise tier requires an Azure subscription with a valid payment instrument; free credits and MSDN subscriptions are not supported.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/redis-enterprise-requires-payment-instrument.json"},{"id":"redis-enterprise-requires-valid-payment-instrument","text":"Azure Cache for Redis Enterprise tier requires a valid payment instrument; Azure credits and free MSDN subscriptions are not supported.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/redis-enterprise-requires-valid-payment-instrument.json"},{"id":"redis-enterprise-scale-up-before-out","text":"For Azure Cache for Redis Enterprise tiers, scaling up is recommended before scaling out; for OSS tiers (Basic/Standard/Premium), scaling out improves performance more than scaling up.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/redis-enterprise-scale-up-before-out.json"},{"id":"redis-enterprise-scale-up-before-out-oss-scale-out","text":"Azure Cache for Redis Enterprise tiers should scale up before scaling out (multi-vCPU); OSS tiers benefit more from scaling out than scaling up (single-threaded).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/redis-enterprise-scale-up-before-out-oss-scale-out.json"},{"id":"redis-five-service-tiers","text":"Azure Cache for Redis has five service tiers: Basic, Standard, Premium, Enterprise, and Enterprise Flash.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/redis-five-service-tiers.json"},{"id":"redis-five-tiers","text":"Azure Cache for Redis offers five service tiers: Basic, Standard, Premium, Enterprise, and Enterprise Flash.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/redis-five-tiers.json"},{"id":"redis-geo-replication-passive-premium-active-enterprise","text":"Azure Cache for Redis Premium tier supports passive geo-replication only; Enterprise and Enterprise Flash support active geo-replication.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/redis-geo-replication-passive-premium-active-enterprise.json"},{"id":"redis-geo-replication-passive-vs-active","text":"Azure Cache for Redis Premium tier supports passive geo-replication; Enterprise and Enterprise Flash support active geo-replication.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/redis-geo-replication-passive-vs-active.json"},{"id":"redis-keys-command-avoid-production","text":"The Redis `KEYS` command is expensive and should be avoided in production; use `SCAN` instead.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/redis-keys-command-avoid-production.json"},{"id":"redis-modules-enterprise-only","text":"Redis modules (RediSearch, RedisBloom, RedisJSON, RedisTimeSeries) are available only on Enterprise tiers of Azure Cache for Redis.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/redis-modules-enterprise-only.json"},{"id":"redis-no-scale-down-tier","text":"Azure Cache for Redis supports scaling up from Basic to Premium but does not support scaling down to a lower tier.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/redis-no-scale-down-tier.json"},{"id":"redis-oss-clustering-requires-premium","text":"OSS Redis clustering requires Azure Cache for Redis Premium tier or higher.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/redis-oss-clustering-requires-premium.json"},{"id":"redis-oss-clustering-requires-premium-or-higher","text":"Azure Cache for Redis OSS clustering requires Premium tier or higher; not available on Basic or Standard.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/redis-oss-clustering-requires-premium-or-higher.json"},{"id":"redis-oss-single-threaded-enterprise-multi-vcpu","text":"Azure Cache for Redis OSS tiers (Basic/Standard/Premium) are single-threaded for command processing; Enterprise tiers utilize multiple vCPUs.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/redis-oss-single-threaded-enterprise-multi-vcpu.json"},{"id":"redis-oss-versions-4-and-6-skipped-5","text":"Azure Cache for Redis OSS tiers support Redis versions 4.0.x and 6.0.x; Redis 5.0 was skipped.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/redis-oss-versions-4-and-6-skipped-5.json"},{"id":"redis-persistence-premium-enterprise-only","text":"Only Premium and Enterprise tiers of Azure Cache for Redis support data persistence (RDB and AOF).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/redis-persistence-premium-enterprise-only.json"},{"id":"redis-persistence-storage-premium-managed-disks-enterprise","text":"Azure Cache for Redis Premium tier uses Azure Storage for data persistence; Enterprise tier uses Managed Disks.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/redis-persistence-storage-premium-managed-disks-enterprise.json"},{"id":"redis-pin-root-ca-not-intermediate","text":"Azure Cache for Redis certificate pinning should target root CAs (Baltimore CyberTrust Root, Microsoft RSA Root 2017, DigiCert Global Root G2), never intermediate or leaf certificates.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/redis-pin-root-ca-not-intermediate.json"},{"id":"redis-pin-root-ca-not-intermediate-leaf","text":"Azure Cache for Redis certificate pinning should target root CAs (Baltimore CyberTrust Root, Microsoft RSA Root 2017, DigiCert Global Root G2), never intermediate or leaf certificates.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/redis-pin-root-ca-not-intermediate-leaf.json"},{"id":"redis-pin-root-certificates-not-intermediates","text":"When using certificate pinning with Azure Cache for Redis, pin to root certificates — intermediate certificates rotate frequently.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/redis-pin-root-certificates-not-intermediates.json"},{"id":"redis-pin-root-certs-not-intermediates","text":"When using certificate pinning with Azure Cache for Redis, pin to root certificates, not intermediate or leaf certificates, since intermediates rotate frequently.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/redis-pin-root-certs-not-intermediates.json"},{"id":"redis-pipelining-head-of-line-blocking","text":"Redis pipelining improves throughput but large responses can consume the timeout window for subsequent responses, causing head-of-line blocking timeouts.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/redis-pipelining-head-of-line-blocking.json"},{"id":"redis-prefer-many-small-values","text":"Redis works best with smaller values; large data should be broken into multiple keys rather than stored as large blobs.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/redis-prefer-many-small-values.json"},{"id":"redis-prefer-smaller-values","text":"Redis works best with smaller values; large data should be broken into multiple keys rather than stored as large blobs.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/redis-prefer-smaller-values.json"},{"id":"redis-private-link-all-tiers","text":"Azure Cache for Redis supports network isolation via Private Link on all tiers (Basic through Enterprise Flash).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/redis-private-link-all-tiers.json"},{"id":"redis-progressive-tier-capability-ladder","text":"Azure Cache for Redis tiers progressively add capabilities: Basic provides a single-node cache, Standard adds replication, Premium adds clustering and persistence, and Enterprise/Enterprise Flash add Redis Modules — though the capability progression is not strictly additive across all dimensions.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/redis-progressive-tier-capability-ladder.json"},{"id":"redis-sla-covers-connectivity-not-data-loss","text":"Azure Cache for Redis SLA covers connectivity to cache endpoints only, not data loss protection.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/redis-sla-covers-connectivity-not-data-loss.json"},{"id":"redis-sla-covers-connectivity-only","text":"Azure Cache for Redis SLA covers connectivity to cache endpoints only, not data loss protection.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/redis-sla-covers-connectivity-only.json"},{"id":"redis-smaller-values-better-performance","text":"Redis works best with smaller values; large data should be broken into smaller chunks across multiple keys.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/redis-smaller-values-better-performance.json"},{"id":"redis-supported-versions-4-and-6","text":"Azure Cache for Redis supports OSS Redis versions 4.0.x and 6.0.x; Redis 5.0 was skipped.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/redis-supported-versions-4-and-6.json"},{"id":"redis-tls-12-required-by-default","text":"Azure Cache for Redis requires TLS by default; TLS 1.2 is the recommended minimum version.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/redis-tls-12-required-by-default.json"},{"id":"redis-use-hostname-not-ip","text":"Azure Cache for Redis clients should use the DNS hostname, not public IP addresses, because IPs can change on scale or backend operations.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/redis-use-hostname-not-ip.json"},{"id":"redis-version-5-skipped","text":"Azure Cache for Redis skipped Redis version 5.0 — supported versions went from 4.0.x directly to 6.0.x.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/redis-version-5-skipped.json"},{"id":"redis-versions-4x-6x-skipped-5","text":"Azure Cache for Redis supports Redis versions 4.0.x and 6.0.x; version 5.0 was skipped.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/redis-versions-4x-6x-skipped-5.json"},{"id":"redis-vnet-fallback-when-no-tls","text":"If TLS encrypted connections cannot be used with Azure Cache for Redis, placing cache and client inside a virtual network is the recommended mitigation.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/redis-vnet-fallback-when-no-tls.json"},{"id":"redis-vnet-fallback-when-tls-not-possible","text":"If TLS encryption cannot be used with Azure Cache for Redis, placing cache and client inside a virtual network is the recommended mitigation.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/redis-vnet-fallback-when-tls-not-possible.json"},{"id":"redis-zone-redundancy-not-basic","text":"Azure Cache for Redis zone redundancy is available on Standard, Premium, and Enterprise tiers but not on Basic tier.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/redis-zone-redundancy-not-basic.json"},{"id":"redis-zone-redundancy-standard-and-above","text":"Azure Cache for Redis zone redundancy is available on Standard tier and above; Basic tier does not support zone redundancy.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/redis-zone-redundancy-standard-and-above.json"},{"id":"redis-zone-redundancy-standard-premium-enterprise","text":"Azure Cache for Redis zone redundancy is available on Standard, Premium, and Enterprise tiers — not Basic.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/redis-zone-redundancy-standard-premium-enterprise.json"},{"id":"sas-token-security-hierarchy","text":"Azure Storage SAS tokens follow a security hierarchy: user delegation SAS (using Entra credentials) is most secure, service SAS provides resource-level scoping, and account SAS grants the broadest access — with user delegation SAS recommended as the preferred option.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/sas-token-security-hierarchy.json"},{"id":"service-endpoint-policies-resource-level-granularity","text":"Service endpoint policies provide resource-level granularity, allowing only specific Azure service resource instances (e.g., specific storage accounts) over service endpoints.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/service-endpoint-policies-resource-level-granularity.json"},{"id":"service-endpoints-arm-only","text":"VNet service endpoints are only available for VNets deployed via Azure Resource Manager (not classic deployment model).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/service-endpoints-arm-only.json"},{"id":"service-endpoints-arm-only-not-classic","text":"VNet service endpoints are only available for Azure Resource Manager (ARM) deployments, not classic deployments.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/service-endpoints-arm-only-not-classic.json"},{"id":"service-endpoints-arm-subnet-scoped-no-hybrid","text":"VNet service endpoints are triple-constrained: ARM-only (no classic deployments), subnet-scoped (each subnet independently enabled), and inaccessible from on-premises — requiring IP-based whitelisting for any hybrid connectivity to service-endpoint-secured resources.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/service-endpoints-arm-subnet-scoped-no-hybrid.json"},{"id":"service-endpoints-azure-sql-same-region-only","text":"For Azure SQL Database, service endpoint traffic applies only within the same region.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/service-endpoints-azure-sql-same-region-only.json"},{"id":"service-endpoints-configured-per-subnet","text":"VNet service endpoints are configured per-subnet, not per-VNet — each subnet must be independently enabled.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/service-endpoints-configured-per-subnet.json"},{"id":"service-endpoints-cross-tenant-storage-keyvault","text":"VNet and service resource can be in different subscriptions; some services (Storage, Key Vault) support cross-tenant service endpoints.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/service-endpoints-cross-tenant-storage-keyvault.json"},{"id":"service-endpoints-disk-traffic-not-affected","text":"Disk traffic (managed and unmanaged) is not affected by Azure Storage service endpoint routing changes.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/service-endpoints-disk-traffic-not-affected.json"},{"id":"service-endpoints-dns-entries-unchanged","text":"DNS entries for Azure services remain unchanged and continue resolving to public IPs even after enabling VNet service endpoints.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/service-endpoints-dns-entries-unchanged.json"},{"id":"service-endpoints-dns-unchanged","text":"Enabling VNet service endpoints does not change DNS resolution — Azure service FQDNs still resolve to public IP addresses.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/service-endpoints-dns-unchanged.json"},{"id":"service-endpoints-dns-unchanged-public-ips","text":"DNS entries for Azure services remain unchanged when service endpoints are enabled — they still resolve to public IP addresses.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/service-endpoints-dns-unchanged-public-ips.json"},{"id":"service-endpoints-enabling-closes-tcp-connections","text":"Enabling or disabling service endpoints closes existing TCP connections — should be avoided during critical operations.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/service-endpoints-enabling-closes-tcp-connections.json"},{"id":"service-endpoints-max-200-associations","text":"A VNet can be associated with up to 200 different subscriptions and regions per supported service when using service endpoints.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/service-endpoints-max-200-associations.json"},{"id":"service-endpoints-max-200-subscription-region-associations","text":"A VNet can be associated with up to 200 different subscriptions and regions per supported service when using service endpoints.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/service-endpoints-max-200-subscription-region-associations.json"},{"id":"service-endpoints-no-cost-no-limit","text":"VNet service endpoints have no additional cost and no limit on total service endpoints per VNet; maximum 200 subscriptions/regions per service.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/service-endpoints-no-cost-no-limit.json"},{"id":"service-endpoints-no-on-premises-traffic","text":"On-premises traffic cannot use VNet service endpoints; on-prem access to service-endpoint-secured resources requires IP firewall rules with NAT/public IPs.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/service-endpoints-no-on-premises-traffic.json"},{"id":"service-endpoints-not-available-from-on-premises","text":"On-premises traffic cannot use VNet service endpoints; on-prem access to service-endpoint-secured resources requires IP firewall rules with NAT/public IPs.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/service-endpoints-not-available-from-on-premises.json"},{"id":"service-endpoints-not-for-on-premises-traffic","text":"VNet service endpoints cannot be used for on-premises to Azure traffic; on-premises must use public/NAT IPs via IP firewall rules.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/service-endpoints-not-for-on-premises-traffic.json"},{"id":"service-endpoints-onprem-cannot-use","text":"On-premises traffic cannot use VNet service endpoints — on-prem access to secured resources requires IP firewall rules with public/NAT IPs.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/service-endpoints-onprem-cannot-use.json"},{"id":"service-endpoints-override-forced-tunneling","text":"Service endpoint routes override forced-tunneling and UDRs for Azure service traffic, keeping it on the Azure backbone.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/service-endpoints-override-forced-tunneling.json"},{"id":"service-endpoints-rbac-join-action-required","text":"Enabling VNet service endpoints requires the RBAC permission Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/action.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/service-endpoints-rbac-join-action-required.json"},{"id":"service-endpoints-require-joinviaserviceendpoint-action","text":"Enabling VNet service endpoints requires the RBAC permission `Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/action`.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/service-endpoints-require-joinviaserviceendpoint-action.json"},{"id":"service-endpoints-resource-manager-only","text":"VNet service endpoints are only available for VNets deployed via Azure Resource Manager (not classic deployment model).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/service-endpoints-resource-manager-only.json"},{"id":"service-endpoints-switch-source-ip-public-to-private","text":"Enabling VNet service endpoints switches source IP addresses from public IPv4 to private IPv4 for service traffic, which can break existing firewall rules using public IPs.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/service-endpoints-switch-source-ip-public-to-private.json"},{"id":"service-tag-route-precedence-regional-over-toplevel","text":"Service tag route precedence: Regional tag > Top-level tag > AzureCloud regional > AzureCloud; an explicit IP prefix always wins over a service tag.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/service-tag-route-precedence-regional-over-toplevel.json"},{"id":"servicebus-auto-delete-idle-min-5min","text":"Azure Service Bus auto-delete on idle minimum interval is 5 minutes.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/servicebus-auto-delete-idle-min-5min.json"},{"id":"servicebus-auto-forwarding-same-namespace","text":"Azure Service Bus auto-forwarding chains a queue or subscription to another queue or topic within the same namespace.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/servicebus-auto-forwarding-same-namespace.json"},{"id":"servicebus-auto-forwarding-same-namespace-only","text":"Azure Service Bus auto-forwarding chains a queue or subscription to another queue or topic only within the same namespace.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/servicebus-auto-forwarding-same-namespace-only.json"},{"id":"servicebus-dlq-secondary-subqueue","text":"Azure Service Bus dead-letter queue is a secondary subqueue on queues and topic subscriptions for holding undeliverable messages.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/servicebus-dlq-secondary-subqueue.json"},{"id":"servicebus-duplicate-detection","text":"Azure Service Bus supports duplicate detection — queue or topic discards duplicate copies when a sender resends, enabling safe retries.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/servicebus-duplicate-detection.json"},{"id":"servicebus-duplicate-detection-broker-level","text":"Azure Service Bus duplicate detection discards duplicate copies at the broker level when a sender resends due to uncertain outcome.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/servicebus-duplicate-detection-broker-level.json"},{"id":"servicebus-exactly-once-requires-app-dedup","text":"Azure Service Bus exactly-once processing requires application-level duplicate detection on top of Peek Lock mode.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/servicebus-exactly-once-requires-app-dedup.json"},{"id":"servicebus-express-entities-not-supported-premium","text":"Express entities are not supported in Azure Service Bus Premium namespaces.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/servicebus-express-entities-not-supported-premium.json"},{"id":"servicebus-geo-replication-metadata-and-data","text":"Azure Service Bus Premium Geo-Replication replicates both metadata and data (queues, topics, subscriptions, filters, message data, state changes, namespace configuration).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/servicebus-geo-replication-metadata-and-data.json"},{"id":"servicebus-jms-premium-2-standard-1-1-queues","text":"Azure Service Bus Premium tier supports full JMS 2.0; Standard tier supports only JMS 1.1 for queues.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/servicebus-jms-premium-2-standard-1-1-queues.json"},{"id":"servicebus-large-message-batching-not-supported","text":"Azure Service Bus large message batching is not supported.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/servicebus-large-message-batching-not-supported.json"},{"id":"servicebus-large-msg-sbmp-http-1mb-limit","text":"Azure Service Bus large messages via SBMP or HTTP are capped at 1 MB even in Premium; only AMQP supports up to 100 MB.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/servicebus-large-msg-sbmp-http-1mb-limit.json"},{"id":"servicebus-legacy-sdk-retire-sep-2026","text":"Azure Service Bus legacy SDKs (WindowsAzure.ServiceBus, Microsoft.Azure.ServiceBus, com.microsoft.azure.servicebus) retire 30 September 2026.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/servicebus-legacy-sdk-retire-sep-2026.json"},{"id":"servicebus-load-leveling-average-not-peak","text":"Azure Service Bus queues enable load leveling: consumers process at average load rather than peak load, reducing infrastructure requirements.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/servicebus-load-leveling-average-not-peak.json"},{"id":"servicebus-message-sessions-enable-fifo","text":"Azure Service Bus message sessions enable FIFO (first-in, first-out) guarantee and request-response patterns.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/servicebus-message-sessions-enable-fifo.json"},{"id":"servicebus-message-sessions-fifo","text":"Azure Service Bus message sessions enable FIFO (first-in-first-out) guarantees and request-response patterns.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/servicebus-message-sessions-fifo.json"},{"id":"servicebus-namespace-dozens-active-vms","text":"Azure Service Bus namespace is a capacity slice of a large cluster spanning dozens of all-active VMs, optionally across three availability zones.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/servicebus-namespace-dozens-active-vms.json"},{"id":"servicebus-namespace-dozens-of-vms","text":"An Azure Service Bus namespace spans dozens of all-active VMs, optionally across three availability zones.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/servicebus-namespace-dozens-of-vms.json"},{"id":"servicebus-namespace-spans-3-azs","text":"Azure Service Bus namespaces optionally span 3 availability zones for zone-redundant storage.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/servicebus-namespace-spans-3-azs.json"},{"id":"servicebus-peek-lock-at-least-once","text":"Azure Service Bus Peek Lock mode provides at-least-once semantics via two-stage receive (lock then complete or abandon).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/servicebus-peek-lock-at-least-once.json"},{"id":"servicebus-peek-lock-three-failure-outcomes","text":"Azure Service Bus Peek Lock has three failure outcomes: abandon (explicit unlock), lock timeout expiry (automatic unlock), or application crash — all result in the message becoming available again.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/servicebus-peek-lock-three-failure-outcomes.json"},{"id":"servicebus-premium-cmk-encryption","text":"Azure Service Bus customer-managed key (CMK) encryption for double encryption is a Premium-only feature, configured once at namespace creation.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/servicebus-premium-cmk-encryption.json"},{"id":"servicebus-premium-cmk-encryption-one-time-setup","text":"Azure Service Bus Premium supports customer-managed key (CMK) encryption for double encryption, configured as a one-time namespace setup; not available on Standard tier.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/servicebus-premium-cmk-encryption-one-time-setup.json"},{"id":"servicebus-premium-cmk-one-time-setup","text":"Azure Service Bus Premium supports customer-managed key (CMK) encryption as a one-time setup per namespace.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/servicebus-premium-cmk-one-time-setup.json"},{"id":"servicebus-premium-complete-jms-platform","text":"Azure Service Bus Premium provides a complete JMS 2.0 messaging platform with dedicated messaging unit isolation (1, 2, 4, 8, or 16 MUs), AMQP 1.0 wire protocol, and triple-redundant storage — unless the workload depends on large message batching, which Service Bus does not support, requiring application-level message chunking as a workaround.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/servicebus-premium-complete-jms-platform.json"},{"id":"servicebus-premium-cpu-scaling-thresholds","text":"Azure Service Bus Premium scaling guidance: scale down below 20% CPU, scale up above 70% CPU.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/servicebus-premium-cpu-scaling-thresholds.json"},{"id":"servicebus-premium-geo-replicated-enterprise-messaging","text":"Azure Service Bus Premium provides enterprise messaging with full geographic replication (metadata and data) and dedicated resource isolation (1–16 messaging units per namespace).","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/servicebus-premium-geo-replicated-enterprise-messaging.json"},{"id":"servicebus-premium-geo-replication-metadata-and-data","text":"Azure Service Bus Premium Geo-Replication continuously replicates both metadata and data to a secondary region; any secondary can be promoted to primary near-instantaneously.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/servicebus-premium-geo-replication-metadata-and-data.json"},{"id":"servicebus-premium-jms-20-standard-jms-11","text":"Azure Service Bus Premium tier is fully JMS 2.0 compliant; Standard tier supports only JMS 1.1 subset (queues only).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/servicebus-premium-jms-20-standard-jms-11.json"},{"id":"servicebus-premium-jms-20-standard-jms-11-queues","text":"Azure Service Bus Premium tier supports full JMS 2.0; Standard tier supports only JMS 1.1 for queues.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/servicebus-premium-jms-20-standard-jms-11-queues.json"},{"id":"servicebus-premium-jms2-standard-jms1-queues-only","text":"Azure Service Bus Premium supports JMS 1.1 and JMS 2.0; Standard supports only JMS 1.1 for queues.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/servicebus-premium-jms2-standard-jms1-queues-only.json"},{"id":"servicebus-premium-jms2-standard-jms11","text":"Azure Service Bus Premium tier supports JMS 2.0; Standard tier supports only a JMS 1.1 subset for queues.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/servicebus-premium-jms2-standard-jms11.json"},{"id":"servicebus-premium-jms20-standard-jms11-subset","text":"Azure Service Bus Premium tier is fully JMS 2.0 compliant; Standard tier supports only a JMS 1.1 subset focused on queues.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/servicebus-premium-jms20-standard-jms11-subset.json"},{"id":"servicebus-premium-messaging-units-1-2-4-8-16","text":"Azure Service Bus Premium tier uses messaging units (MUs) for resource isolation; valid counts are 1, 2, 4, 8, or 16 per namespace.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/servicebus-premium-messaging-units-1-2-4-8-16.json"},{"id":"servicebus-premium-mu-billing-hourly","text":"Azure Service Bus Premium messaging unit (MU) billing is hourly; you only pay for additional MUs during the hours they are active.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/servicebus-premium-mu-billing-hourly.json"},{"id":"servicebus-premium-network-security-features","text":"Network security features (service tags, service endpoints, private endpoints, IP firewall via portal) are Azure Service Bus Premium-only.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/servicebus-premium-network-security-features.json"},{"id":"servicebus-premium-partitioning-namespace-level","text":"Azure Service Bus Premium partitioning is set at the namespace level (all entities partitioned); Standard/Basic partitioning is per-entity with 16 fixed partitions.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/servicebus-premium-partitioning-namespace-level.json"},{"id":"servicebus-primary-protocol-amqp","text":"Azure Service Bus primary wire protocol is AMQP 1.0 (ISO/IEC standard); also supports HTTP/REST.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/servicebus-primary-protocol-amqp.json"},{"id":"servicebus-pull-mode-delivery","text":"Azure Service Bus delivers messages via pull mode (long-lived pull), not push.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/servicebus-pull-mode-delivery.json"},{"id":"servicebus-queue-point-to-point-topic-pub-sub","text":"Azure Service Bus queues provide point-to-point messaging; topics provide publish/subscribe (one-to-many) messaging.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/servicebus-queue-point-to-point-topic-pub-sub.json"},{"id":"servicebus-receive-delete-at-most-once","text":"Azure Service Bus Receive and Delete mode provides at-most-once semantics; message is lost if consumer crashes before processing.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/servicebus-receive-delete-at-most-once.json"},{"id":"servicebus-reliable-messaging-complete","text":"Azure Service Bus provides reliable messaging with three complementary guarantees: duplicate detection prevents double-processing at the broker level, Peek Lock ensures at-least-once delivery via two-stage receive, and message sessions enable strict FIFO ordering — but falls short of exactly-once without application-level deduplication logic.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/servicebus-reliable-messaging-complete.json"},{"id":"servicebus-sbmp-retiring-sep-2026","text":"Azure Service Bus SBMP protocol is retiring September 30, 2026.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/servicebus-sbmp-retiring-sep-2026.json"},{"id":"servicebus-security-sas-rbac-managed-identities","text":"Azure Service Bus supports three security mechanisms: SAS (Shared Access Signatures), RBAC, and Managed Identities.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/servicebus-security-sas-rbac-managed-identities.json"},{"id":"servicebus-standard-max-256kb-premium-max-100mb","text":"Azure Service Bus Standard tier max message size is 256 KB; Premium supports up to 100 MB (AMQP only).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/servicebus-standard-max-256kb-premium-max-100mb.json"},{"id":"servicebus-subscription-default-filter-true","text":"Azure Service Bus subscription default rule is a true filter that selects all messages from the topic.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/servicebus-subscription-default-filter-true.json"},{"id":"servicebus-subscription-rules-filter-plus-action","text":"Azure Service Bus subscription rules consist of a filter (selects messages) and an optional action (modifies metadata).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/servicebus-subscription-rules-filter-plus-action.json"},{"id":"servicebus-subscriptions-durable-by-default","text":"Azure Service Bus subscriptions are durable by default but can be configured to auto-expire.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/servicebus-subscriptions-durable-by-default.json"},{"id":"servicebus-transactions-single-entity","text":"Azure Service Bus transactions scope to a single messaging entity (queue, topic, or subscription).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/servicebus-transactions-single-entity.json"},{"id":"servicebus-triple-redundant-storage","text":"Azure Service Bus stores messages in triple-redundant storage, spanning availability zones if zone-enabled.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/servicebus-triple-redundant-storage.json"},{"id":"smallest-subnet-29-gives-3-usable-ips","text":"The smallest Azure subnet is /29 (8 IPs total), which yields only 3 usable IPs after the 5 reserved addresses.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/smallest-subnet-29-gives-3-usable-ips.json"},{"id":"storage-account-contributor-grants-key-access","text":"Storage Account Contributor is a management plane role that provides access to account keys, enabling Shared Key authorization as an indirect data access path.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/storage-account-contributor-grants-key-access.json"},{"id":"storage-archive-not-supported-zrs-gzrs","text":"Archive access tier is not supported on ZRS, GZRS, or RA-GZRS storage accounts.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/storage-archive-not-supported-zrs-gzrs.json"},{"id":"storage-blob-data-owner-includes-posix-acl","text":"Storage Blob Data Owner provides full blob access including POSIX ACL management; Storage Blob Data Contributor provides read/write/delete but cannot manage ACLs.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/storage-blob-data-owner-includes-posix-acl.json"},{"id":"storage-blob-delegator-required-for-user-delegation-sas","text":"The Storage Blob Delegator role is required to create user delegation SAS tokens signed with Azure AD.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/storage-blob-delegator-required-for-user-delegation-sas.json"},{"id":"storage-delegator-roles-for-sas-not-data","text":"Storage Delegator roles (Blob, File, Queue, Table) are specifically for creating user delegation SAS tokens signed with Azure AD — they do not grant direct data access.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/storage-delegator-roles-for-sas-not-data.json"},{"id":"storage-firewall-blocks-all-by-default","text":"When Azure Storage firewall rules are enabled, all requests are blocked by default — exceptions must be explicitly added for trusted Microsoft services and allowed IP ranges/subnets.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/storage-firewall-blocks-all-by-default.json"},{"id":"storage-geo-replication-async","text":"Geo-replication (GRS/GZRS) is asynchronous, meaning potential data loss on primary region failure; failover is required for write access.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/storage-geo-replication-async.json"},{"id":"storage-grs-gzrs-16-nines","text":"GRS and GZRS both provide 16 nines durability; GRS uses LRS in primary, GZRS uses ZRS in primary; secondary always uses LRS.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/storage-grs-gzrs-16-nines.json"},{"id":"storage-gzrs-microsoft-recommended","text":"GZRS is Microsoft's recommended redundancy option for maximum consistency, durability, availability, and disaster recovery performance.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/storage-gzrs-microsoft-recommended.json"},{"id":"storage-gzrs-recommended-max-resilience","text":"GZRS (Geo-Zone-Redundant Storage) is Microsoft's recommended redundancy option for maximum consistency, durability, availability, and disaster recovery.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/storage-gzrs-recommended-max-resilience.json"},{"id":"storage-lrs-11-nines-durability","text":"LRS provides 11 nines (99.999999999%) durability by replicating data 3 times within a single datacenter.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/storage-lrs-11-nines-durability.json"},{"id":"storage-lrs-3-replicas-single-datacenter","text":"LRS replicates data 3 times synchronously within a single datacenter; provides 11 nines durability.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/storage-lrs-3-replicas-single-datacenter.json"},{"id":"storage-paired-region-cannot-be-changed","text":"The geo-redundant secondary region is determined by Azure based on the primary region and cannot be changed by the customer.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/storage-paired-region-cannot-be-changed.json"},{"id":"storage-ra-grs-read-availability-9999","text":"RA-GRS and RA-GZRS provide 99.99% read availability for the hot tier by allowing reads from the secondary region without failover.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/storage-ra-grs-read-availability-9999.json"},{"id":"storage-redundancy-shared-across-all-services","text":"The redundancy setting is shared across all storage services (Blob, Files, Table, Queue) within a storage account.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/storage-redundancy-shared-across-all-services.json"},{"id":"storage-secondary-endpoint-suffix","text":"RA-GRS/RA-GZRS secondary endpoints use the suffix `-secondary` appended to the account name (e.g., `myaccount-secondary.blob.core.windows.net`); the same account access keys work for both endpoints.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/storage-secondary-endpoint-suffix.json"},{"id":"storage-secondary-endpoint-suffix-secondary","text":"The secondary region endpoint uses the suffix `-secondary` (e.g., `myaccount-secondary.blob.core.windows.net`) and shares the same access keys as the primary.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/storage-secondary-endpoint-suffix-secondary.json"},{"id":"storage-secondary-region-paired-cannot-change","text":"The geo-redundant secondary region is determined by Azure based on the primary region's paired region and cannot be changed by the customer.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/storage-secondary-region-paired-cannot-change.json"},{"id":"storage-storagev2-all-redundancy-options","text":"Standard general-purpose v2 (StorageV2) is the only storage account type that supports all redundancy options (LRS, ZRS, GRS, RA-GRS, GZRS, RA-GZRS).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/storage-storagev2-all-redundancy-options.json"},{"id":"storage-unmanaged-disks-no-zrs-gzrs","text":"Unmanaged disks do not support ZRS or GZRS redundancy options.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/storage-unmanaged-disks-no-zrs-gzrs.json"},{"id":"storage-write-availability-sla-999-hot","text":"Azure Storage write availability SLA is 99.9% for the hot tier and 99% for cool, cold, and archive tiers across all redundancy options.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/storage-write-availability-sla-999-hot.json"},{"id":"storage-zrs-12-nines-durability","text":"ZRS provides 12 nines (99.9999999999%) durability by replicating data synchronously across 3+ availability zones.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/storage-zrs-12-nines-durability.json"},{"id":"storage-zrs-3-availability-zones","text":"ZRS replicates data synchronously across 3+ availability zones in the primary region; provides 12 nines durability.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/storage-zrs-3-availability-zones.json"},{"id":"storage-zrs-recommended-datalake-files","text":"ZRS is Microsoft's recommended redundancy option for Azure Data Lake Storage and Azure Files workloads.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/storage-zrs-recommended-datalake-files.json"},{"id":"subnet-cannot-delete-with-resources","text":"A subnet can only be deleted if it contains no resources; resources must be removed first.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/subnet-cannot-delete-with-resources.json"},{"id":"subnet-delegation-cannot-remove-with-deployed-resources","text":"Subnet delegation cannot be removed if the delegated service still has resources deployed in the subnet.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/subnet-delegation-cannot-remove-with-deployed-resources.json"},{"id":"subnet-join-requires-join-action-rbac","text":"Subnet operations require Network Contributor role or custom role with `Microsoft.Network/virtualNetworks/subnets/*` actions; joining requires `Microsoft.Network/virtualNetworks/subnets/join/action`.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/subnet-join-requires-join-action-rbac.json"},{"id":"subnet-names-should-start-with-letter","text":"Subnet names should start with a letter, not a number — Application Gateway won't deploy to subnets with numeric-starting names.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/subnet-names-should-start-with-letter.json"},{"id":"subnet-nat-nsg-route-table-same-subscription-location","text":"NAT gateway, NSG, and route table associated with a subnet must be in the same subscription and location as the VNet.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/subnet-nat-nsg-route-table-same-subscription-location.json"},{"id":"subnet-network-policy-controls-private-endpoint-nsg","text":"Subnet network policy for private endpoints controls whether NSGs and route tables apply to private endpoints on the subnet.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/subnet-network-policy-controls-private-endpoint-nsg.json"},{"id":"subnet-private-preview-no-default-outbound","text":"Private Subnet (Preview) prevents default outbound internet access for VMs deployed in the subnet.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/subnet-private-preview-no-default-outbound.json"},{"id":"subnet-private-preview-prevents-default-outbound","text":"Private Subnet (Preview) prevents default outbound internet access for VMs deployed in the subnet.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/subnet-private-preview-prevents-default-outbound.json"},{"id":"udr-virtual-network-gateway-next-hop-vpn-only","text":"UDRs with next hop type Virtual network gateway are supported only when the gateway is a VPN gateway (not ExpressRoute, Route Server, or Virtual WAN).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/udr-virtual-network-gateway-next-hop-vpn-only.json"},{"id":"udr-virtual-network-gateway-vpn-only","text":"UDRs with next hop type Virtual network gateway are supported only when the gateway is a VPN gateway (not ExpressRoute, Route Server, or Virtual WAN).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/udr-virtual-network-gateway-vpn-only.json"},{"id":"vm-contributor-no-vnet-storage-access","text":"Virtual Machine Contributor does not grant access to the virtual network or storage account the VM connects to, and cannot assign RBAC roles.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/vm-contributor-no-vnet-storage-access.json"},{"id":"vm-ephemeral-storage-operational-model","text":"Azure VM ephemeral storage follows a consistent operational model: VM sizes with 'd' suffix include local NVMe storage that does not persist across deallocation, v5+ VMs automatically encrypt this storage at rest, and platform-defined paths (Linux `/dev/disk/azure/resource`, Windows drive D) provide consistent access — making ephemeral storage predictable but explicitly non-durable.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/vm-ephemeral-storage-operational-model.json"},{"id":"vmss-all-instances-same-base-image","text":"All VM instances in a scale set are created from the same base OS image and configuration.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/vmss-all-instances-same-base-image.json"},{"id":"vmss-flexible-supports-spot-and-ondemand-mix","text":"VMSS Flexible orchestration supports mixing Spot and on-demand VM instances together in the same scale set.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/vmss-flexible-supports-spot-and-ondemand-mix.json"},{"id":"vmss-immutable-infrastructure-model","text":"VMSS instances are created from a shared base image, providing consistent initial configuration across the scale set, though post-creation configuration drift remains possible through extensions and scripts.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/vmss-immutable-infrastructure-model.json"},{"id":"vnet-default-route-0000-internet","text":"The default system route for 0.0.0.0/0 has next hop type Internet; overriding it sends all traffic (including Azure service public IPs) through the specified next hop unless service endpoints provide longer-prefix matches.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/vnet-default-route-0000-internet.json"},{"id":"vnet-default-routes-rfc1918-drop","text":"Default system routes drop traffic to RFC 1918 (10/8, 172.16/12, 192.168/16) and RFC 6598 (100.64/10) ranges with next hop type None.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/vnet-default-routes-rfc1918-drop.json"},{"id":"vnet-gateway-hierarchy-routeserver-expressroute-vpn","text":"When multiple gateways are deployed, the hierarchy is: Route Server > ExpressRoute > VPN.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/vnet-gateway-hierarchy-routeserver-expressroute-vpn.json"},{"id":"vnet-global-peering-full-lb-reachability","text":"VNet peering provides full load balancer reachability across regions with latency parity to single-VNet deployments within the same region.","truth_value":"OUT","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/vnet-global-peering-full-lb-reachability.json"},{"id":"vnet-nva-deploy-different-subnet-avoid-loop","text":"Virtual appliances (NVAs) should be deployed in a different subnet than the routed resources to avoid routing loops.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/vnet-nva-deploy-different-subnet-avoid-loop.json"},{"id":"vnet-private-range-added-changes-next-hop","text":"If a private address range (RFC 1918/6598) is added to a VNet's address space, its next hop automatically changes from None (drop) to Virtual network.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/vnet-private-range-added-changes-next-hop.json"},{"id":"vnet-private-range-added-changes-nexthop-to-virtualnetwork","text":"If a private IP range (RFC 1918/6598) is added to a VNet's address space, its default system route next hop changes from None to Virtual network automatically.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/vnet-private-range-added-changes-nexthop-to-virtualnetwork.json"},{"id":"vnet-rfc1918-assigned-changes-next-hop-to-virtual-network","text":"When RFC 1918 or RFC 6598 address ranges are assigned to a VNet's address space, Azure automatically changes their next hop from None to Virtual network.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/vnet-rfc1918-assigned-changes-next-hop-to-virtual-network.json"},{"id":"vnet-rfc1918-assigned-changes-nexthop-to-virtualnetwork","text":"When RFC 1918 or RFC 6598 address ranges are assigned to a VNet's address space, Azure automatically changes their next hop from None to Virtual network.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/vnet-rfc1918-assigned-changes-nexthop-to-virtualnetwork.json"},{"id":"vnet-route-propagation-never-disable-gatewaysubnet","text":"Route propagation from gateways can be disabled per-subnet, but must never be disabled on the GatewaySubnet or the gateway will stop functioning.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/vnet-route-propagation-never-disable-gatewaysubnet.json"},{"id":"vnet-route-selection-priority-udr-bgp-system","text":"Route selection priority in Azure VNets is: UDR > BGP > System route (but system routes for VNet/peering/service endpoints are preferred over more-specific BGP routes).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/vnet-route-selection-priority-udr-bgp-system.json"},{"id":"vnet-route-server-precedence-over-vpn-expressroute","text":"Route Server takes precedence over VPN and ExpressRoute gateways when deployed in the same VNet.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/vnet-route-server-precedence-over-vpn-expressroute.json"},{"id":"vnet-routing-longest-prefix-match","text":"Azure VNet routing uses longest-prefix match to determine which route wins among same-priority routes.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/vnet-routing-longest-prefix-match.json"},{"id":"vnet-service-endpoint-routes-override-bgp-and-udr","text":"System routes for VNet, peerings, and service endpoints are preferred even over more-specific BGP routes; service endpoint routes override both BGP and UDRs for matching Azure service address prefixes.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/vnet-service-endpoint-routes-override-bgp-and-udr.json"},{"id":"vnet-service-tag-priority-regional-first","text":"Service tag route priority order: regional tags (e.g., Storage.EastUS) > top-level tags (e.g., Storage) > AzureCloud regional tags > AzureCloud tag.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/vnet-service-tag-priority-regional-first.json"},{"id":"vnet-service-tag-routes-max-25-per-table","text":"Maximum 25 service-tag routes per route table in Azure UDRs.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/vnet-service-tag-routes-max-25-per-table.json"},{"id":"vnet-system-routes-auto-created-cannot-delete","text":"System routes are automatically created per subnet and cannot be deleted, only overridden by UDRs or BGP routes.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/vnet-system-routes-auto-created-cannot-delete.json"},{"id":"vnet-system-routes-cannot-be-deleted","text":"System routes are automatically created per subnet and cannot be deleted, only overridden by UDRs or BGP routes.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/vnet-system-routes-cannot-be-deleted.json"},{"id":"vnet-udr-limit-400-expandable-to-1000","text":"Default UDR limit per route table is 400, expandable to 1,000 with Azure Virtual Network Manager.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/vnet-udr-limit-400-expandable-to-1000.json"},{"id":"vnet-virtual-appliance-different-subnet-avoid-loop","text":"Virtual appliances must be deployed in a different subnet than the routed resources to avoid routing loops.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/vnet-virtual-appliance-different-subnet-avoid-loop.json"},{"id":"vnet-vpn-expressroute-coexist-expressroute-precedence","text":"When VPN and ExpressRoute gateways coexist without Route Server, the ExpressRoute gateway takes precedence as the VNet gateway.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/vnet-vpn-expressroute-coexist-expressroute-precedence.json"},{"id":"waf-five-pillars","text":"The Azure Well-Architected Framework has five pillars: Reliability, Security, Cost Optimization, Operational Excellence, and Performance Efficiency.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/waf-five-pillars.json"},{"id":"waf-includes-assessment-tool","text":"The Azure Well-Architected Framework includes an interactive assessment tool (Azure Architecture Review) for evaluating workloads against WAF principles.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/waf-includes-assessment-tool.json"},{"id":"waf-l7-ddos-protection-l3l4","text":"WAF protects at Layer 7; Azure DDoS Protection protects at Layer 3/4 — they are complementary","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/waf-l7-ddos-protection-l3l4.json"},{"id":"waf-mission-critical-always-available-guidance","text":"Mission-critical workloads have dedicated WAF guidance focused on always-available, failure-resilient design.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/waf-mission-critical-always-available-guidance.json"},{"id":"waf-mission-critical-dedicated-guidance","text":"Mission-critical workloads have dedicated WAF guidance focused on always-available, failure-resilient design.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/waf-mission-critical-dedicated-guidance.json"},{"id":"waf-provides-workload-specific-lenses","text":"WAF provides workload-specific lenses with tailored guidance for AI, SaaS, SAP, Mission-critical, Oracle on IaaS, Sustainability, Azure VMware Solution, and Azure Virtual Desktop.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/waf-provides-workload-specific-lenses.json"},{"id":"waf-reliability-disaster-recovery-and-testing-complementary","text":"Disaster recovery and testing strategies are distinct but complementary practices within the WAF Reliability pillar.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/waf-reliability-disaster-recovery-and-testing-complementary.json"},{"id":"waf-reliability-disaster-recovery-and-testing-distinct","text":"In the WAF Reliability pillar, disaster recovery and testing strategies are distinct but complementary practices.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/waf-reliability-disaster-recovery-and-testing-distinct.json"},{"id":"waf-reliability-five-design-principles","text":"The WAF Reliability pillar has five core design principles: Design for business requirements, Design for resilience, Design for recovery, Design for operations, and Keep it simple.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/waf-reliability-five-design-principles.json"},{"id":"waf-reliability-four-strategies","text":"Reliability in WAF is achieved through four strategies: redundancy, scaling, self-healing/preservation, and simplicity.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/waf-reliability-four-strategies.json"},{"id":"waf-reliability-maturity-model","text":"The WAF Reliability pillar includes a maturity model for assessing reliability posture progression.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/waf-reliability-maturity-model.json"},{"id":"waf-reliability-sre-complementary","text":"Site Reliability Engineering (SRE) is identified as a complementary operational discipline to the WAF Reliability pillar for maintaining reliability in production.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/waf-reliability-sre-complementary.json"},{"id":"waf-reliability-target-process","text":"Reliability target planning follows a four-step flow: identify flows → failure mode analysis → set targets → monitoring/alerting.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/waf-reliability-target-process.json"},{"id":"waf-reliability-testing-and-dr-distinct","text":"Testing strategy and disaster recovery strategy are distinct but related reliability activities within the WAF Reliability pillar.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/waf-reliability-testing-and-dr-distinct.json"},{"id":"waf-reliability-testing-and-dr-drills","text":"Testing strategy and disaster recovery drills are distinct but related activities within the WAF Reliability pillar discipline.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/waf-reliability-testing-and-dr-drills.json"},{"id":"waf-security-asset-protection-layers","text":"WAF security asset protection covers: segmentation, identity & access management, network protection, encryption, resource hardening, and secrets management.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/waf-security-asset-protection-layers.json"},{"id":"waf-security-cia-triad","text":"The three security objectives of the WAF Security pillar are the CIA triad: Confidentiality, Integrity, and Availability.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/waf-security-cia-triad.json"},{"id":"waf-security-cia-triad-structure","text":"The WAF Security pillar is organized around the CIA triad (confidentiality, integrity, and availability).","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/waf-security-cia-triad-structure.json"},{"id":"waf-security-defense-in-depth","text":"Defense in depth is the overarching security strategy Azure recommends in the WAF Security pillar.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/waf-security-defense-in-depth.json"},{"id":"waf-security-five-design-principles","text":"The WAF Security pillar has five design principles: Plan your security readiness, Design to protect confidentiality, Design to protect integrity, Design to protect availability, and Sustain and evolve your security posture.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/waf-security-five-design-principles.json"},{"id":"waf-security-foundation-sequence","text":"The WAF security foundation sequence is: security baselines → secure development lifecycle (SDL) → data classification → threat monitoring → threat modeling.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/waf-security-foundation-sequence.json"},{"id":"waf-security-maturity-model","text":"The WAF Security pillar includes a formal security maturity model for assessing organizational readiness.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/waf-security-maturity-model.json"},{"id":"waf-security-organized-around-cia-triad","text":"The WAF Security pillar is organized around the CIA triad: confidentiality, integrity, and availability.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/waf-security-organized-around-cia-triad.json"},{"id":"waf-security-validation-loop-continuous","text":"The WAF Security pillar treats security testing and incident response as a continuous improvement validation loop, not a one-time activity.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/waf-security-validation-loop-continuous.json"},{"id":"waf-service-guides-per-azure-service","text":"The Azure Well-Architected Framework provides per-service WAF service guides with pillar-specific recommendations for individual Azure services.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/waf-service-guides-per-azure-service.json"},{"id":"waf-service-guides-per-service","text":"The Azure Well-Architected Framework provides per-service service guides with pillar-specific recommendations for individual Azure services.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/waf-service-guides-per-service.json"},{"id":"waf-service-guides-per-service-recommendations","text":"WAF service guides provide per-service architectural recommendations aligned with WAF pillars, bridging framework-level principles and individual Azure service configuration.","truth_value":"IN","justification_count":0,"dependent_count":0,"challenges":[],"last_reviewed":null,"review_result":null,"url":"/public/azure-expert/belief/waf-service-guides-per-service-recommendations.json"}],"count":1830}