This page describes AAES Govern’s controls. AAES Operate has private-work permissions, operational reviews and recorded-spend limits; it does not include Govern. About AAES Govern
Before you enable this package
Keep dev.azure.com for Azure DevOps Services and bind ORGANIZATION and PROJECT at registration. Azure DevOps Server requires a separately reviewed configuration.
Read each action's effects and exclusions below. Before installation, also read the complete package requirements, including credential issuance, scope, expiry, and provider permissions. These are deployment prerequisites, not capabilities this package supplies.
Capabilities (5)
Each capability below is one registered operation. The complete package JSON includes its exact network destination allowlist. The repository stores it at packs/azuredevops.json and embeds a copy in the release binary.
Risk tiers. R0 is the minimum for reads. R2 is the minimum for write, create, update, execute, and invoke. R3 is the minimum for delete, send, pay, deploy, approve, share, and transfer. Operators can raise these levels. A minimum tier does not measure the operation's business or confidentiality risk.
On supported execution paths routed through AAES Govern, the R3 actions listed below require approval by an authorized person. Bypass paths and observation-only registrations are outside that guarantee. A provider's restoration feature does not remove this approval requirement. A provider-side approval, such as approving a GitLab merge request, is also separate from AAES Govern human approval. The capability matrix shows which execution paths are implemented, restricted to lab use, or refused at startup. Live compatibility must be tested in your environment.
Field guide. Endpoint is the service address and request method. Connector is the adapter that makes the call. Custody describes how the credential is held; the credential reference identifies the value to resolve. Data class sets handling requirements: pii means personal data, financial means financial records, and internal means internal organizational data.
azuredevops.projects.read v1.0.0R0
- Kind
- tool
- Action
- read
- Endpoint
GET https://dev.azure.com/ORGANIZATION/_apis/projects?api-version=7.1- Connector
- http
- Custody
- customer_vault
- Credential ref
secret-ref-azuredevops-pat- Data class
- internal
Read projects.
List projects in one Azure DevOps organization via GET /_apis/projects (api-version 7.1).
The registered path covers the collection read only — single project records, teams, and organization-level settings are not registered by this pack. ORGANIZATION is a placeholder the deployment binds to a concrete organization before enabling.
azuredevops.repos.read v1.0.0R0
- Kind
- tool
- Action
- read
- Endpoint
GET https://dev.azure.com/ORGANIZATION/PROJECT/_apis/git/repositories?api-version=7.1- Connector
- http
- Custody
- customer_vault
- Credential ref
secret-ref-azuredevops-pat- Data class
- internal
Read repositories.
List Git repositories in one project via GET /{project}/_apis/git/repositories (api-version 7.1).
The registered path covers the collection read only — repository contents, refs, commits, and pull request reads are not registered by this pack. ORGANIZATION and PROJECT are placeholders the deployment binds to concrete values before enabling.
azuredevops.pipelines.read v1.0.0R0
- Kind
- tool
- Action
- read
- Endpoint
GET https://dev.azure.com/ORGANIZATION/PROJECT/_apis/pipelines?api-version=7.1- Connector
- http
- Custody
- customer_vault
- Credential ref
secret-ref-azuredevops-pat- Data class
- internal
Read pipelines.
List pipeline definitions in one project via GET /{project}/_apis/pipelines (api-version 7.1).
The registered path covers the collection read only — single pipeline records, run lists, and logs are not registered by this pack. ORGANIZATION and PROJECT are placeholders the deployment binds to concrete values before enabling.
azuredevops.workitems.read v1.0.0R0
- Kind
- tool
- Action
- read
- Endpoint
GET https://dev.azure.com/ORGANIZATION/PROJECT/_apis/wit/workitems?api-version=7.1- Connector
- http
- Custody
- customer_vault
- Credential ref
secret-ref-azuredevops-pat- Data class
- pii
Read work items.
Read a batch of work items in one project via GET /{project}/_apis/wit/workitems (api-version 7.1), which requires the caller to name the work item ids in the ids query parameter (maximum 200 per call).
The registered path covers this id-addressed batch read only — WIQL queries, which take caller-authored query text, are not registered by this pack. The batch endpoint documents its own $expand query option (none, relations, fields, links, all), which widens what the same registered call returns; that option is part of the registered operation, not a separate capability, so a pack cannot exclude it in prose — review its permitted values at the deployment.
The distinct single-work-item path (GET /{project}/_apis/wit/workitems/{id}) is not registered. ORGANIZATION and PROJECT are placeholders the deployment binds to concrete values before enabling.
azuredevops.build.queue v1.0.0R3
- Kind
- tool
- Action
- deploy
- Endpoint
POST https://dev.azure.com/ORGANIZATION/PROJECT/_apis/build/builds?api-version=7.1- Connector
- http
- Custody
- customer_vault
- Credential ref
secret-ref-azuredevops-pat- Data class
- pii
Queue build.
Queue a build in one project via POST /{project}/_apis/build/builds (api-version 7.1). Microsoft documents that the request body chooses the definition, source branch, parameters and template parameters, so the queued build runs whatever the definition and the caller's parameters say — including deployment stages where the definition has them. The capability is registered as deploy at the minimum R3 tier, and deploy is one of the designated actions requiring human approval.
On supported execution paths mediated by AAES Govern, irreversible actions require approval by an authorized person; this does not prevent calls through bypass or observation-only paths. A queued build is outwardly visible, consumes pipeline capacity, and any deployment it performs cannot be undone by this pack. ORGANIZATION and PROJECT are placeholders the deployment binds to concrete values before enabling.
Credential reference
The credential field names a reference rather than containing credential material. Packs are designed not to contain secrets; the format checks cover only known credential formats and cannot prove that arbitrary text contains no secrets. Installing a package registers its capabilities. Configure the provider credentials, endpoints, and network access, then test the integration in your environment before enabling it.
- Reference
secret-ref-azuredevops-pat- Custody
- customer_vault
- Injection
- header (Authorization)
Configure the value and injection format specified in the package. Assign responsibility for credential rotation and revocation, restrict provider permissions, and keep credential material out of logs and responses.
Complete credential requirements
An Azure DevOps personal access token, held in the client's own secret manager. The stored material must be the complete Authorization header value: the word Basic, one separating space, then the base64 encoding of :<personal-access-token> (an empty username, then a colon, then the PAT). Microsoft documents that PATs authenticate this way, that the expiry date is chosen at creation (no longer than one year, with notification emails before expiry), that regenerating a PAT invalidates the previous value, that revoking a PAT invalidates that issued token, and that organization administrators can restrict PAT creation — an issuance control, not a substitute for revoking already-issued tokens.
Microsoft recommends Microsoft Entra tokens where available; this pack registers the documented PAT scheme only. Request the least-privilege scopes: the read forms of vso.project, vso.code, vso.build and vso.work cover the four read capabilities; build.queue additionally needs vso.build_execute — grant it only where the R3 capability is enabled, and nothing broader. Renewal ownership sits with an external deployment process: the executor injects the stored value verbatim and performs no token lifecycle itself, and it must never substitute a different credential without an approved pack change.
Executor hygiene: the value must live only in executor memory for the lifetime of a call, must never be written to logs, traces or diagnostics, and must not appear in crash dumps; a deployment that cannot meet that bar must not enable the pack.
Resources
azuredevops-organization(api, internal):https://dev.azure.com/ORGANIZATION/_apisazuredevops-project(api, pii):https://dev.azure.com/ORGANIZATION/PROJECT/_apis
Technical package and review record
Complete provider requirements and exclusions
The registered host is dev.azure.com (Azure DevOps Services). Self-hosted Azure DevOps Server uses an installer-specific host and a collection path segment: substituting either into the endpoints, the resource locators and the egress allowlist is a pack change that requires re-review before enablement. ORGANIZATION and PROJECT in the endpoint paths are placeholders the deployment substitutes with concrete values at registration time, before enabling: the pack is installed with the concrete paths it will actually call, not rebound per request.
The api-version=7.1 query parameter is required by the service and is part of every registered endpoint. This pack registers only endpoints the public Azure DevOps REST API 7.1 documentation describes: listing an organization's projects, listing a project's Git repositories, listing a project's pipeline definitions, reading work items by id in batches, and queuing a build.
Documented exclusions: work item create and update, WIQL queries (caller-authored query text), pipeline run create and update beyond queuing a build, release endpoints, pull request APIs, artifact publishing, repository writes, project create and delete, and every endpoint outside the registered list; each addition is a pack change and requires its own review.
Approval classification: reads sit at the minimum R0 tier. build.queue is registered as deploy at the minimum R3 tier because Microsoft documents that the request body chooses the definition, source branch, parameters and template parameters, so the queued build runs whatever the definition and the caller's parameters say — including deployment stages where the definition has them — and deploy is one of the designated actions requiring human approval. AAES has not been certified by Microsoft; review and test this configuration; it is not a vendor guarantee.
Download the complete package JSON for exact network allowlists, credential requirements, exclusions, and setup notes. Read these requirements before installation.
The full documentation review record is supplied in the evaluation package. The evaluation package runs in your environment and comes only with the paid design partnership. This page reproduces the source links and review block; the full record is available for evaluation. Discuss a design partnership to inspect it before installation.
Review block
This section reproduces the review block recorded in the pack file. The evidence and approval record is separate: for a reviewed pack, it is in the evaluation materials and in the release binary's embedded assets.
Review completed: 2026-09-22
6 sources, retrieved 2026-09-21
- https://learn.microsoft.com/en-us/rest/api/azure/devops/core/projects/list?view=azure-devops-rest-7.1 (retrieved 2026-09-21)
- https://learn.microsoft.com/en-us/rest/api/azure/devops/git/repositories/list?view=azure-devops-rest-7.1 (retrieved 2026-09-21)
- https://learn.microsoft.com/en-us/rest/api/azure/devops/pipelines/pipelines/list?view=azure-devops-rest-7.1 (retrieved 2026-09-21)
- https://learn.microsoft.com/en-us/rest/api/azure/devops/wit/work-items/list?view=azure-devops-rest-7.1 (retrieved 2026-09-21)
- https://learn.microsoft.com/en-us/rest/api/azure/devops/build/builds/queue?view=azure-devops-rest-7.1 (retrieved 2026-09-21)
- https://learn.microsoft.com/en-us/azure/devops/organizations/accounts/use-personal-access-tokens-to-authenticate?view=azure-devops (retrieved 2026-09-21)
Current documentation links are navigation aids. They do not change the package, its historical sources or its review date. Review dates describe a documentation review, not a live integration test. No package is provider-endorsed or yet tested against a live provider tenant.
Release identity
SHA-256 of the pack file bytes: 8a0795f91a146575a3ce10527edf84837f7c27eb17ce05fc29b9436ace1d1791
Distributable: yes, digest matches the release manifest. Editing a package changes its release identity. A deployment plan checks its own file digests; it does not restore reviewed status or authenticate approval.