Skip to main content

Prefect — Azure Resources & Access

Reference for all Azure resources, RBAC assignments, and Prefect secret blocks that back the Prefect ETL platform. Use this page to answer "where does X live?" and "who can touch Y?" questions.


Azure Subscriptions

Two Azure subscriptions are used:

SubscriptionIDPurpose
Wasteology Development669a4356-6871-4f9b-9256-ba98d5a6eb4cCieTrade ACI flow execution, source ACRs
Wasteology Productiona5a6818e-a0c0-4c6a-8b5c-21e91d75caa8Always-on apps, non-CieTrade ACI flow execution

Azure Container Registries (ACRs)

RegistrySubscriptionResource GroupActive ImagesStatus
cietradeacr.azurecr.ioDevelopmentprefect-resourcesprefect:latest, wdp-imports:latestActive — CieTrade flows only
wasteologypipelinesacr.azurecr.ioProductionprefect-resourcesenevo-etl:latest, goodwill-etl:latest, qbo-etl:latest, ach-remittance:latestActive — new images go here
enevoacr.azurecr.ioDevelopmentprefect-resourcesenevo-etl:latestSuperseded — mirrored to Prod ACR
goodwillacr.azurecr.ioDevelopmentprefect-resourcesgoodwill-etl:latestSuperseded — mirrored to Prod ACR
wdppalantiriacr.azurecr.ioProductionwdp-palantiri-rgwdp-palantiri, adw-agent, wg-orchestratorActive — platform apps only

Push new ETL images to wasteologypipelinesacr.azurecr.io.


Resource Groups

Development Subscription

Resource GroupContentsPurpose
prefect-resourcescietradeacr, enevoacr, goodwillacr, ephemeral ACI instancesCieTrade flow execution
wdp_importwdpimport Container App, wdp-docsWDP import pipeline
enevo-etl-rgenevo-etl-identity managed identityLegacy Enevo identity

Production Subscription

Resource GroupContentsPurpose
prefect-resourceswasteologypipelinesacr, ephemeral ACI instancesNon-CieTrade flow execution (Enevo/Goodwill/QBO)
wdp-palantiri-rgwdppalantiriacr, wdp-palantiri, adw-agent, wg-orchestrator, tirion-agent VM, Key Vault, blob storeAlways-on platform apps
invoice-automationSQL Server wasteology.database.windows.netCieTrade source system (ABS-managed)

Service Principal: prefect-workpool-sp

The service principal prefect-workpool-sp (AppId: a4ccc4ec-6368-49b8-bf79-89b6eadcd057) authenticates all ACI operations. Its credentials are stored in Prefect secret blocks and referenced by deployments.

ScopeRolePurpose
Dev prefect-resources RGContributorSpin CieTrade ACI containers, pull from Dev ACRs
Prod prefect-resources RGContributorSpin non-CieTrade ACI containers
wasteologypipelinesacrAcrPullPull enevo-etl, goodwill-etl, qbo-etl images

RBAC: Developer Access

PersonScopeRoleWhat they can do
kgrayProduction subscriptionContributor + Data Factory ContributorCreate/manage any resource; cannot assign roles
kgrayProd prefect-resources RGUser Access AdministratorGrant any role within this RG without ABS
Shane (Sstclair)Prod prefect-resources RGContributorManage ACI containers in this RG
Shane (Sstclair)wasteologypipelinesacrAcrPushPush and pull flow images
Shane (Sstclair)Prefect Cloud workspaceEditorView/trigger/deploy flows; cannot manage workspace settings

Note: Shane has no access to the Development subscription. All new flows for Shane go to Prod prefect-resources.


Prefect Secret Blocks

Secret blocks store credentials in Prefect Cloud — deployments reference them with {{ prefect.blocks.secret.<name> }} in job_variables. Modifying a shared block affects every deployment that references it.

Block NameValue / DescriptionUsed By
azure-subscription-idDev subscription ID (669a4356)All CieTrade deployments — DO NOT CHANGE
azure-resource-groupprefect-resources (Dev RG)All CieTrade deployments — DO NOT CHANGE
azure-sp-client-idprefect-workpool-sp AppIdAll deployments
azure-sp-client-secretprefect-workpool-sp secretAll deployments
azure-sp-tenant-idWasteology Azure AD tenantAll deployments
azure-prod-subscription-idProd subscription ID (a5a6818e)Non-CieTrade flows only
azure-prod-resource-groupprefect-resources (Prod RG)Non-CieTrade flows only
azure-prod-acr-login-serverwasteologypipelinesacr.azurecr.ioNon-CieTrade flows only

Note: Non-CieTrade flows (enevo, goodwill, qbo) do NOT use azure-subscription-id — they hardcode the Prod subscription ID directly in deployment job_variables. This prevents a single secret block change from accidentally redirecting CieTrade flows.


ACI Quota

ACI CPU quota in Dev prefect-resources: 10.0 CPU cores (monitored every 4 hours by the aci-quota-monitor flow). If the cietrade-aci-pool concurrency limit (30) and actual CPU quota conflict, Prefect queues excess runs rather than erroring.

A quota increase to ≥ 20 cores on the Production subscription is recommended before migrating CieTrade flows. Contact kgray to initiate an ABS request.