OpsMill · Agentic Access
OpsMill Agentic Access
x-agentic-access
generated
OpsMill exposes 34 API operations that an AI agent could call, of which 10 are state-changing ‘acting’ operations. This is a recommended x-agentic-access execution contract — the scope, audience, consequence tier, short-lived token constraints, and escalation each action should carry before it is handed to an autonomous agent.
By consequence: 24 read and 10 write.
Contracts are classified heuristically from the provider’s OpenAPI and refresh on every APIs.io network build; audience is bound per deployment. The model follows Curity’s Access Intelligence (apidays Munich 2026). Browse every provider’s agent contracts at agentic-access.apis.io.
CompanyInfrastructure SaasNetwork AutomationSource Of TruthData ManagementGraphQLDevOpsConfiguration ManagementAIOpsOpen Source
Operations: 34
Acting: 10
Human-in-the-loop: 0
Method: generated
By consequence
read 24
write 10
Source
Agentic Access
generated: '2026-07-20'
method: generated
source: openapi/opsmill-infrahub-openapi-original.json
description: Recommended x-agentic-access execution contracts, classified heuristically from
the OpenAPI. A governance starting point for exposing this API to AI agents — review and bind
audience per deployment. See research/curity/agentic-governance/.
summary:
operations: 34
by_action_class:
connected: 24
acting: 10
by_consequence:
read: 24
write: 10
human_in_the_loop_required: 0
operations:
- path: /api/artifact/{artifact_id}
method: get
operationId: get_artifact_api_artifact__artifact_id__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/artifact/generate/{artifact_definition_id}
method: post
operationId: generate_artifact_api_artifact_generate__artifact_definition_id__post
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/auth/login
method: post
operationId: login_user_api_auth_login_post
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/auth/refresh
method: post
operationId: refresh_jwt_token_api_auth_refresh_post
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/auth/logout
method: post
operationId: logout_api_auth_logout_post
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/auth/ldap/login
method: post
operationId: login_ldap_api_auth_ldap_login_post
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/diff/files
method: get
operationId: get_diff_files_api_diff_files_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/diff/artifacts
method: get
operationId: get_diff_artifacts_api_diff_artifacts_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/file/{repository_id}/{file_path}
method: get
operationId: get_file_api_file__repository_id___file_path__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/config
method: get
operationId: get_config_api_config_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/info
method: get
operationId: get_info_api_info_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/menu
method: get
operationId: get_menu_api_menu_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/oauth2/{provider_name}/authorize
method: get
operationId: authorize_api_oauth2__provider_name__authorize_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/oauth2/{provider_name}/token
method: get
operationId: token_api_oauth2__provider_name__token_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/oidc/{provider_name}/authorize
method: get
operationId: authorize_api_oidc__provider_name__authorize_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/oidc/{provider_name}/token
method: get
operationId: token_api_oidc__provider_name__token_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/query/{query_id}
method: post
operationId: graphql_query_post_api_query__query_id__post
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/query/{query_id}
method: get
operationId: graphql_query_get_api_query__query_id__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/schema
method: get
operationId: get_schema_api_schema_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/schema/summary
method: get
operationId: get_schema_summary_api_schema_summary_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/schema/{schema_kind}
method: get
operationId: get_schema_by_kind_api_schema__schema_kind__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/schema/json_schema/{schema_kind}
method: get
operationId: get_json_schema_by_kind_api_schema_json_schema__schema_kind__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/schema/load
method: post
operationId: load_schema_api_schema_load_post
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/schema/check
method: post
operationId: check_schema_api_schema_check_post
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/storage/files/by-hfid/{kind}
method: get
operationId: download_file_object_by_hfid_api_storage_files_by_hfid__kind__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/storage/files/by-storage-id/{storage_id}
method: get
operationId: download_file_object_by_storage_id_api_storage_files_by_storage_id__storage_id__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/storage/files/{node_id}
method: get
operationId: download_file_object_api_storage_files__node_id__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/storage/object/{identifier}
method: get
operationId: get_file_api_storage_object__identifier__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/storage/upload/content
method: post
operationId: upload_content_api_storage_upload_content_post
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/storage/upload/file
method: post
operationId: upload_file_api_storage_upload_file_post
x-agentic-access:
action-class: acting
consequence: write
subject: required
audience: null
token:
max-ttl: 900
escalation:
human-in-the-loop: conditional
triggers:
- abnormal
- high-value
audit: required
- path: /api/telemetry/snapshots
method: get
operationId: get_telemetry_snapshots_api_telemetry_snapshots_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/transform/python/{transform_id}
method: get
operationId: transform_python_api_transform_python__transform_id__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /api/transform/jinja2/{transform_id}
method: get
operationId: transform_jinja2_api_transform_jinja2__transform_id__get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
- path: /schema.graphql
method: get
operationId: get_graphql_schema_schema_graphql_get
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none