From 97ea6779a300b4acd11de815b2d1931fabf41ee3 Mon Sep 17 00:00:00 2001 From: Colby Farley Date: Sun, 12 Apr 2026 21:25:04 -0500 Subject: [PATCH] chore: prepare v1.4.0 release --- CHANGELOG.md | 16 ++++++++++++++++ pyproject.toml | 2 +- src/azurefox/__init__.py | 2 +- src/azurefox/models/common.py | 2 +- tests/golden/acr.json | 2 +- tests/golden/aks.json | 2 +- tests/golden/api-mgmt.json | 2 +- tests/golden/app-services.json | 2 +- tests/golden/application-gateway.json | 2 +- tests/golden/arm-deployments.json | 2 +- tests/golden/auth-policies.json | 2 +- tests/golden/automation.json | 2 +- tests/golden/cross-tenant.json | 2 +- tests/golden/databases.json | 2 +- tests/golden/devops.json | 2 +- tests/golden/dns.json | 2 +- tests/golden/endpoints.json | 2 +- tests/golden/env-vars.json | 2 +- tests/golden/functions.json | 2 +- tests/golden/inventory.json | 2 +- tests/golden/keyvault.json | 2 +- tests/golden/lighthouse.json | 2 +- tests/golden/managed-identities.json | 2 +- tests/golden/network-effective.json | 2 +- tests/golden/network-ports.json | 2 +- tests/golden/nics.json | 2 +- tests/golden/permissions.json | 2 +- tests/golden/principals.json | 2 +- tests/golden/privesc.json | 2 +- tests/golden/rbac.json | 2 +- tests/golden/resource-trusts.json | 2 +- tests/golden/role-trusts.json | 2 +- tests/golden/snapshots-disks.json | 2 +- tests/golden/storage.json | 2 +- tests/golden/tokens-credentials.json | 2 +- tests/golden/vms.json | 2 +- tests/golden/vmss.json | 2 +- tests/golden/whoami.json | 2 +- tests/golden/workloads.json | 2 +- tests/test_models.py | 2 +- 40 files changed, 55 insertions(+), 39 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 78cf5fd..4b18a30 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,21 @@ # Changelog +## [1.4.0] - 2026-04-12 + +### Added +- Shipped the new `compute-control` chain family so AzureFox can join compute footholds to + defended Azure-control follow-on paths in one operator-facing view. +- Added first-class `container-apps` and `container-instances` flat commands so those runtime + surfaces are visible directly instead of only through shared compute follow-on logic. + +### Changed +- Tightened `compute-control` admission, mixed-identity handling, terminal wording, and fixture + coverage so live output stays truthful while still surfacing the strongest defended control path. +- Refreshed help text, README chain guidance, fixtures, and golden outputs to match the shipped + chain and container-runtime surface. +- Bumped the published package and output schema version to `1.4.0` for the completed minor + release boundary. + ## [1.3.0] - 2026-04-08 ### Added diff --git a/pyproject.toml b/pyproject.toml index 7640f30..0c0057a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "azurefox" -version = "1.3.0" +version = "1.4.0" description = "AzureFox - offensive-focused Azure situational awareness CLI" readme = "README.md" requires-python = ">=3.11" diff --git a/src/azurefox/__init__.py b/src/azurefox/__init__.py index 34e4ab4..bc07c82 100644 --- a/src/azurefox/__init__.py +++ b/src/azurefox/__init__.py @@ -2,4 +2,4 @@ __all__ = ["__version__"] -__version__ = "1.3.0" +__version__ = "1.4.0" diff --git a/src/azurefox/models/common.py b/src/azurefox/models/common.py index 846c392..1b34f90 100644 --- a/src/azurefox/models/common.py +++ b/src/azurefox/models/common.py @@ -6,7 +6,7 @@ from pydantic import BaseModel, Field, model_validator -SCHEMA_VERSION = "1.3.0" +SCHEMA_VERSION = "1.4.0" class OutputMode(StrEnum): diff --git a/tests/golden/acr.json b/tests/golden/acr.json index 3ef21d3..935c015 100644 --- a/tests/golden/acr.json +++ b/tests/golden/acr.json @@ -4,7 +4,7 @@ "metadata": { "command": "acr", "generated_at": "", - "schema_version": "1.3.0", + "schema_version": "1.4.0", "subscription_id": "22222222-2222-2222-2222-222222222222", "tenant_id": "11111111-1111-1111-1111-111111111111", "token_source": null diff --git a/tests/golden/aks.json b/tests/golden/aks.json index e071951..a05362c 100644 --- a/tests/golden/aks.json +++ b/tests/golden/aks.json @@ -79,7 +79,7 @@ "metadata": { "command": "aks", "generated_at": "", - "schema_version": "1.3.0", + "schema_version": "1.4.0", "subscription_id": "22222222-2222-2222-2222-222222222222", "tenant_id": "11111111-1111-1111-1111-111111111111", "token_source": null diff --git a/tests/golden/api-mgmt.json b/tests/golden/api-mgmt.json index 661c79a..6ad1488 100644 --- a/tests/golden/api-mgmt.json +++ b/tests/golden/api-mgmt.json @@ -56,7 +56,7 @@ "metadata": { "command": "api-mgmt", "generated_at": "", - "schema_version": "1.3.0", + "schema_version": "1.4.0", "subscription_id": "22222222-2222-2222-2222-222222222222", "tenant_id": "11111111-1111-1111-1111-111111111111", "token_source": null diff --git a/tests/golden/app-services.json b/tests/golden/app-services.json index e497817..f5044e7 100644 --- a/tests/golden/app-services.json +++ b/tests/golden/app-services.json @@ -56,7 +56,7 @@ "metadata": { "command": "app-services", "generated_at": "", - "schema_version": "1.3.0", + "schema_version": "1.4.0", "subscription_id": "22222222-2222-2222-2222-222222222222", "tenant_id": "11111111-1111-1111-1111-111111111111", "token_source": null diff --git a/tests/golden/application-gateway.json b/tests/golden/application-gateway.json index f645b7a..8161437 100644 --- a/tests/golden/application-gateway.json +++ b/tests/golden/application-gateway.json @@ -118,7 +118,7 @@ "metadata": { "command": "application-gateway", "generated_at": "", - "schema_version": "1.3.0", + "schema_version": "1.4.0", "subscription_id": "22222222-2222-2222-2222-222222222222", "tenant_id": "11111111-1111-1111-1111-111111111111", "token_source": null diff --git a/tests/golden/arm-deployments.json b/tests/golden/arm-deployments.json index f1fb9c9..d2be85f 100644 --- a/tests/golden/arm-deployments.json +++ b/tests/golden/arm-deployments.json @@ -120,7 +120,7 @@ "command": "arm-deployments", "devops_organization": null, "generated_at": "", - "schema_version": "1.3.0", + "schema_version": "1.4.0", "subscription_id": "22222222-2222-2222-2222-222222222222", "tenant_id": "11111111-1111-1111-1111-111111111111", "token_source": null diff --git a/tests/golden/auth-policies.json b/tests/golden/auth-policies.json index d3f5197..8e2d383 100644 --- a/tests/golden/auth-policies.json +++ b/tests/golden/auth-policies.json @@ -107,7 +107,7 @@ "metadata": { "command": "auth-policies", "generated_at": "", - "schema_version": "1.3.0", + "schema_version": "1.4.0", "subscription_id": "22222222-2222-2222-2222-222222222222", "tenant_id": "11111111-1111-1111-1111-111111111111", "token_source": null diff --git a/tests/golden/automation.json b/tests/golden/automation.json index e0d4da4..8bee0b9 100644 --- a/tests/golden/automation.json +++ b/tests/golden/automation.json @@ -1,6 +1,6 @@ { "metadata": { - "schema_version": "1.3.0", + "schema_version": "1.4.0", "command": "automation", "generated_at": "", "tenant_id": "11111111-1111-1111-1111-111111111111", diff --git a/tests/golden/cross-tenant.json b/tests/golden/cross-tenant.json index 033a5d5..eb41c46 100644 --- a/tests/golden/cross-tenant.json +++ b/tests/golden/cross-tenant.json @@ -71,7 +71,7 @@ "command": "cross-tenant", "devops_organization": null, "generated_at": "", - "schema_version": "1.3.0", + "schema_version": "1.4.0", "subscription_id": "22222222-2222-2222-2222-222222222222", "tenant_id": "11111111-1111-1111-1111-111111111111", "token_source": null diff --git a/tests/golden/databases.json b/tests/golden/databases.json index 5531aef..9b3a7e6 100644 --- a/tests/golden/databases.json +++ b/tests/golden/databases.json @@ -118,7 +118,7 @@ "metadata": { "command": "databases", "generated_at": "", - "schema_version": "1.3.0", + "schema_version": "1.4.0", "subscription_id": "22222222-2222-2222-2222-222222222222", "tenant_id": "11111111-1111-1111-1111-111111111111", "token_source": null diff --git a/tests/golden/devops.json b/tests/golden/devops.json index ee1f614..eb718b8 100644 --- a/tests/golden/devops.json +++ b/tests/golden/devops.json @@ -1,6 +1,6 @@ { "metadata": { - "schema_version": "1.3.0", + "schema_version": "1.4.0", "command": "devops", "generated_at": "", "tenant_id": "11111111-1111-1111-1111-111111111111", diff --git a/tests/golden/dns.json b/tests/golden/dns.json index 9cd0e1e..49458e1 100644 --- a/tests/golden/dns.json +++ b/tests/golden/dns.json @@ -2,7 +2,7 @@ "metadata": { "command": "dns", "generated_at": "", - "schema_version": "1.3.0", + "schema_version": "1.4.0", "tenant_id": "11111111-1111-1111-1111-111111111111", "subscription_id": "22222222-2222-2222-2222-222222222222", "token_source": null diff --git a/tests/golden/endpoints.json b/tests/golden/endpoints.json index 96d7e9d..7b55cee 100644 --- a/tests/golden/endpoints.json +++ b/tests/golden/endpoints.json @@ -108,7 +108,7 @@ "command": "endpoints", "devops_organization": null, "generated_at": "", - "schema_version": "1.3.0", + "schema_version": "1.4.0", "subscription_id": "22222222-2222-2222-2222-222222222222", "tenant_id": "11111111-1111-1111-1111-111111111111", "token_source": null diff --git a/tests/golden/env-vars.json b/tests/golden/env-vars.json index 1cd587b..528c796 100644 --- a/tests/golden/env-vars.json +++ b/tests/golden/env-vars.json @@ -110,7 +110,7 @@ "command": "env-vars", "devops_organization": null, "generated_at": "", - "schema_version": "1.3.0", + "schema_version": "1.4.0", "subscription_id": "22222222-2222-2222-2222-222222222222", "tenant_id": "11111111-1111-1111-1111-111111111111", "token_source": null diff --git a/tests/golden/functions.json b/tests/golden/functions.json index 8a5b283..0f24751 100644 --- a/tests/golden/functions.json +++ b/tests/golden/functions.json @@ -40,7 +40,7 @@ "metadata": { "command": "functions", "generated_at": "", - "schema_version": "1.3.0", + "schema_version": "1.4.0", "subscription_id": "22222222-2222-2222-2222-222222222222", "tenant_id": "11111111-1111-1111-1111-111111111111", "token_source": null diff --git a/tests/golden/inventory.json b/tests/golden/inventory.json index 5b42965..b37025a 100644 --- a/tests/golden/inventory.json +++ b/tests/golden/inventory.json @@ -4,7 +4,7 @@ "command": "inventory", "devops_organization": null, "generated_at": "", - "schema_version": "1.3.0", + "schema_version": "1.4.0", "subscription_id": "22222222-2222-2222-2222-222222222222", "tenant_id": "11111111-1111-1111-1111-111111111111", "token_source": null diff --git a/tests/golden/keyvault.json b/tests/golden/keyvault.json index e7dc31f..5f3b1f4 100644 --- a/tests/golden/keyvault.json +++ b/tests/golden/keyvault.json @@ -108,7 +108,7 @@ "command": "keyvault", "devops_organization": null, "generated_at": "", - "schema_version": "1.3.0", + "schema_version": "1.4.0", "subscription_id": "22222222-2222-2222-2222-222222222222", "tenant_id": "11111111-1111-1111-1111-111111111111", "token_source": null diff --git a/tests/golden/lighthouse.json b/tests/golden/lighthouse.json index 2dac78a..d5723aa 100644 --- a/tests/golden/lighthouse.json +++ b/tests/golden/lighthouse.json @@ -124,7 +124,7 @@ "command": "lighthouse", "devops_organization": null, "generated_at": "", - "schema_version": "1.3.0", + "schema_version": "1.4.0", "subscription_id": "22222222-2222-2222-2222-222222222222", "tenant_id": "11111111-1111-1111-1111-111111111111", "token_source": null diff --git a/tests/golden/managed-identities.json b/tests/golden/managed-identities.json index ded626e..b3db80f 100644 --- a/tests/golden/managed-identities.json +++ b/tests/golden/managed-identities.json @@ -1,6 +1,6 @@ { "metadata": { - "schema_version": "1.3.0", + "schema_version": "1.4.0", "command": "managed-identities", "generated_at": "2026-04-12T04:41:01.427084Z", "tenant_id": "11111111-1111-1111-1111-111111111111", diff --git a/tests/golden/network-effective.json b/tests/golden/network-effective.json index 1529b5a..8348675 100644 --- a/tests/golden/network-effective.json +++ b/tests/golden/network-effective.json @@ -50,7 +50,7 @@ "command": "network-effective", "devops_organization": null, "generated_at": "", - "schema_version": "1.3.0", + "schema_version": "1.4.0", "subscription_id": "22222222-2222-2222-2222-222222222222", "tenant_id": "11111111-1111-1111-1111-111111111111", "token_source": null diff --git a/tests/golden/network-ports.json b/tests/golden/network-ports.json index 88ca67b..c56eb7a 100644 --- a/tests/golden/network-ports.json +++ b/tests/golden/network-ports.json @@ -4,7 +4,7 @@ "metadata": { "command": "network-ports", "generated_at": "", - "schema_version": "1.3.0", + "schema_version": "1.4.0", "subscription_id": "22222222-2222-2222-2222-222222222222", "tenant_id": "11111111-1111-1111-1111-111111111111", "token_source": null diff --git a/tests/golden/nics.json b/tests/golden/nics.json index be7c405..01127f2 100644 --- a/tests/golden/nics.json +++ b/tests/golden/nics.json @@ -4,7 +4,7 @@ "metadata": { "command": "nics", "generated_at": "", - "schema_version": "1.3.0", + "schema_version": "1.4.0", "subscription_id": "22222222-2222-2222-2222-222222222222", "tenant_id": "11111111-1111-1111-1111-111111111111", "token_source": null diff --git a/tests/golden/permissions.json b/tests/golden/permissions.json index d487a4a..4718dc5 100644 --- a/tests/golden/permissions.json +++ b/tests/golden/permissions.json @@ -5,7 +5,7 @@ "command": "permissions", "devops_organization": null, "generated_at": "2026-04-12T18:56:06.241502Z", - "schema_version": "1.3.0", + "schema_version": "1.4.0", "subscription_id": "22222222-2222-2222-2222-222222222222", "tenant_id": "11111111-1111-1111-1111-111111111111", "token_source": null diff --git a/tests/golden/principals.json b/tests/golden/principals.json index 3cc02a8..779d20b 100644 --- a/tests/golden/principals.json +++ b/tests/golden/principals.json @@ -5,7 +5,7 @@ "command": "principals", "devops_organization": null, "generated_at": "2026-04-12T18:56:06.240867Z", - "schema_version": "1.3.0", + "schema_version": "1.4.0", "subscription_id": "22222222-2222-2222-2222-222222222222", "tenant_id": "11111111-1111-1111-1111-111111111111", "token_source": null diff --git a/tests/golden/privesc.json b/tests/golden/privesc.json index 6ad7dc8..e7446e5 100644 --- a/tests/golden/privesc.json +++ b/tests/golden/privesc.json @@ -5,7 +5,7 @@ "command": "privesc", "devops_organization": null, "generated_at": "", - "schema_version": "1.3.0", + "schema_version": "1.4.0", "subscription_id": "22222222-2222-2222-2222-222222222222", "tenant_id": "11111111-1111-1111-1111-111111111111", "token_source": null diff --git a/tests/golden/rbac.json b/tests/golden/rbac.json index 10c986b..cdaf161 100644 --- a/tests/golden/rbac.json +++ b/tests/golden/rbac.json @@ -4,7 +4,7 @@ "command": "rbac", "devops_organization": null, "generated_at": "", - "schema_version": "1.3.0", + "schema_version": "1.4.0", "subscription_id": "22222222-2222-2222-2222-222222222222", "tenant_id": "11111111-1111-1111-1111-111111111111", "token_source": null diff --git a/tests/golden/resource-trusts.json b/tests/golden/resource-trusts.json index 373aa6f..a328d55 100644 --- a/tests/golden/resource-trusts.json +++ b/tests/golden/resource-trusts.json @@ -51,7 +51,7 @@ "command": "resource-trusts", "devops_organization": null, "generated_at": "", - "schema_version": "1.3.0", + "schema_version": "1.4.0", "subscription_id": "22222222-2222-2222-2222-222222222222", "tenant_id": "11111111-1111-1111-1111-111111111111", "token_source": null diff --git a/tests/golden/role-trusts.json b/tests/golden/role-trusts.json index ccb85f2..b35579f 100644 --- a/tests/golden/role-trusts.json +++ b/tests/golden/role-trusts.json @@ -3,7 +3,7 @@ "metadata": { "command": "role-trusts", "generated_at": "", - "schema_version": "1.3.0", + "schema_version": "1.4.0", "subscription_id": "22222222-2222-2222-2222-222222222222", "tenant_id": "11111111-1111-1111-1111-111111111111", "token_source": null diff --git a/tests/golden/snapshots-disks.json b/tests/golden/snapshots-disks.json index 0f92223..868f2cd 100644 --- a/tests/golden/snapshots-disks.json +++ b/tests/golden/snapshots-disks.json @@ -1,6 +1,6 @@ { "metadata": { - "schema_version": "1.3.0", + "schema_version": "1.4.0", "command": "snapshots-disks", "generated_at": "", "tenant_id": "11111111-1111-1111-1111-111111111111", diff --git a/tests/golden/storage.json b/tests/golden/storage.json index 3b1083e..ea017e5 100644 --- a/tests/golden/storage.json +++ b/tests/golden/storage.json @@ -24,7 +24,7 @@ "command": "storage", "devops_organization": null, "generated_at": "", - "schema_version": "1.3.0", + "schema_version": "1.4.0", "subscription_id": "22222222-2222-2222-2222-222222222222", "tenant_id": "11111111-1111-1111-1111-111111111111", "token_source": null diff --git a/tests/golden/tokens-credentials.json b/tests/golden/tokens-credentials.json index f3f7680..dd806f2 100644 --- a/tests/golden/tokens-credentials.json +++ b/tests/golden/tokens-credentials.json @@ -168,7 +168,7 @@ "command": "tokens-credentials", "devops_organization": null, "generated_at": "", - "schema_version": "1.3.0", + "schema_version": "1.4.0", "subscription_id": "22222222-2222-2222-2222-222222222222", "tenant_id": "11111111-1111-1111-1111-111111111111", "token_source": null diff --git a/tests/golden/vms.json b/tests/golden/vms.json index 1e456e6..52016fc 100644 --- a/tests/golden/vms.json +++ b/tests/golden/vms.json @@ -16,7 +16,7 @@ "command": "vms", "devops_organization": null, "generated_at": "", - "schema_version": "1.3.0", + "schema_version": "1.4.0", "subscription_id": "22222222-2222-2222-2222-222222222222", "tenant_id": "11111111-1111-1111-1111-111111111111", "token_source": null diff --git a/tests/golden/vmss.json b/tests/golden/vmss.json index c34145f..f341518 100644 --- a/tests/golden/vmss.json +++ b/tests/golden/vmss.json @@ -5,7 +5,7 @@ "command": "vmss", "devops_organization": null, "generated_at": "", - "schema_version": "1.3.0", + "schema_version": "1.4.0", "subscription_id": "22222222-2222-2222-2222-222222222222", "tenant_id": "11111111-1111-1111-1111-111111111111", "token_source": null diff --git a/tests/golden/whoami.json b/tests/golden/whoami.json index 73b38ca..2ae98fa 100644 --- a/tests/golden/whoami.json +++ b/tests/golden/whoami.json @@ -12,7 +12,7 @@ "command": "whoami", "devops_organization": null, "generated_at": "", - "schema_version": "1.3.0", + "schema_version": "1.4.0", "subscription_id": "22222222-2222-2222-2222-222222222222", "tenant_id": "11111111-1111-1111-1111-111111111111", "token_source": "fixture" diff --git a/tests/golden/workloads.json b/tests/golden/workloads.json index 72cf97e..a9cae7d 100644 --- a/tests/golden/workloads.json +++ b/tests/golden/workloads.json @@ -6,7 +6,7 @@ "command": "workloads", "devops_organization": null, "generated_at": "", - "schema_version": "1.3.0", + "schema_version": "1.4.0", "subscription_id": "22222222-2222-2222-2222-222222222222", "tenant_id": "11111111-1111-1111-1111-111111111111", "token_source": null diff --git a/tests/test_models.py b/tests/test_models.py index a47ea49..d235906 100644 --- a/tests/test_models.py +++ b/tests/test_models.py @@ -29,7 +29,7 @@ def test_schema_version() -> None: - assert SCHEMA_VERSION == "1.3.0" + assert SCHEMA_VERSION == "1.4.0" def test_collection_issue_scope_defaults_from_context_collector() -> None: