reference-owner-agent-control-surface Specification
Purpose
TBD - created by archiving change add-owner-connection-delete-contract. Update Purpose after archive.
Requirements
Requirement: Owner-agent connection delete SHALL be a typed, connection-scoped, audited control action
The owner-agent control surface SHALL model connection delete as a connection-scoped owner-agent action that, when implemented, removes one connection's configuration and erases its collected data, and that until implemented is advertised as a typed unsupported action with a reason pointing at the defined cascade contract. The delete action SHALL be authorized by an owner-agent bearer over the REST control plane only, SHALL NOT be reachable over /mcp, and SHALL be distinct from the revoke_connection action.
Scenario: Control catalog advertises delete honestly
- WHEN a trusted owner agent reads the owner-agent control capability document and each connection's supported actions
- THEN the
delete_connectionaction SHALL appear with a typed status - AND while delete is unsupported the action SHALL be marked
unsupportedwith a reason naming the defined cascade contract rather than being silently omitted - AND the catalog SHALL NOT advertise a
delete_connectionmethod or URL while the action is unsupported
Scenario: Owner agent deletes a connection by connection_id
- WHEN the
delete_connectionaction is supported and a trusted owner agent deletes a connection byconnection_idover the owner-agent REST control plane - THEN the reference SHALL resolve and verify owner ownership of that
connection_idbefore erasing any data - AND it SHALL erase exactly that connection's data and configured row and clear its device back-reference, affecting no sibling connection
- AND it SHALL record a non-secret delete audit event including actor kind, client identity, target connection identity, operation, outcome, and deletion summary, without logging bearer tokens, provider credentials, or record contents
Scenario: Connector-only delete is ambiguous
- WHEN the
delete_connectionaction is supported and a trusted owner agent requests a delete using onlyconnector_idwhile more than one active connection exists for that connector type - THEN the reference SHALL reject the request with a typed ambiguity error including the available
connection_idvalues and retry guidance - AND it SHALL NOT delete an arbitrarily chosen connection
Scenario: Owner bearer cannot delete over MCP
- WHEN a client presents an owner-agent bearer to
/mcp - THEN the reference SHALL reject the bearer for MCP tool access
- AND defining a
delete_connectionREST control action SHALL NOT make any delete capability reachable over/mcpwith an owner bearer
Requirement: Owner-agent cancel_run SHALL be a typed, run-scoped, non-destructive control action
The owner-agent control surface SHALL model run cancellation as a run-scoped owner control action that stops a single active connector run by its run_id without erasing collected records, schedules, grants, or connection configuration. The cancel_run action SHALL be distinct from run_connection, revoke_connection, and delete_connection. While the action is reachable only over the owner-session reference control plane and not yet over the owner-agent bearer REST surface, the catalog SHALL advertise it as a typed action without advertising an owner-agent bearer method or URL it does not yet serve.
Scenario: Control catalog advertises cancel_run honestly
- WHEN a trusted owner agent reads the owner-agent control capability document
- THEN a run-scoped
cancel_runaction SHALL appear with a typed status - AND it SHALL be described as non-destructive and distinct from
run_connection,revoke_connection, anddelete_connection - AND the catalog SHALL NOT advertise an owner-agent bearer method or URL for
cancel_runwhile only the owner-session reference route serves it
Scenario: Cancellation does not destroy data or sibling runs
- WHEN an owner cancels a single active run
- THEN the reference SHALL stop only that run
- AND it SHALL preserve that connection's already-collected records, schedule, grants, and configuration
- AND it SHALL NOT affect any sibling connection's active run or configuration
Scenario: Owner bearer cannot cancel over MCP
- WHEN a client presents an owner-agent bearer to
/mcp - THEN the reference SHALL reject the bearer for MCP tool access
- AND defining a
cancel_runcontrol action SHALL NOT make any cancellation capability reachable over/mcpwith an owner bearer
Requirement: Owner-agent credentials SHALL authorize an explicit owner REST control surface
The reference implementation SHALL expose a documented owner-agent REST control surface for trusted local agents that have completed owner-agent onboarding. The surface SHALL be separate from grant-scoped MCP and SHALL require explicit owner-agent bearer authorization for bearer-based access.
Scenario: Trusted owner agent discovers control capabilities
- WHEN a trusted owner agent reads the reference instance metadata after onboarding
- THEN the metadata SHALL advertise the owner-agent control surface entrypoint
- AND it SHALL identify supported owner-agent action families without exposing secrets
Scenario: Owner bearer is used on MCP
- WHEN a client presents an owner-agent bearer to
/mcp - THEN the reference implementation SHALL reject the bearer for MCP tool access
- AND the response SHALL point the client toward grant-scoped MCP or owner-agent REST control as appropriate
Requirement: Owner-agent control SHALL distinguish connector templates from connection instances
The owner-agent control surface SHALL expose connector templates separately from configured connection instances. Connector templates SHALL identify connector implementation metadata. Connection instances SHALL identify owner-approved bindings using connection_id and SHALL include the connector type identity that produced them.
Scenario: Owner agent lists Amazon state
- WHEN the owner has one configured Amazon connection
- THEN the owner-agent connection listing SHALL include a connection row with
connection_id - AND the row SHALL include connector type identity such as
connector_idorconnector_keyequal toamazon - AND the row SHALL include an owner-visible
display_name
Scenario: Owner has two Amazon accounts
- WHEN the owner has two configured Amazon connections
- THEN both connection rows SHALL share the Amazon connector type identity
- AND each row SHALL carry a distinct
connection_id - AND owner-agent operations SHALL require or resolve to the intended
connection_idbefore mutating instance state
Requirement: Owner-agent control SHALL initiate connections as typed owner-mediated intents
The owner-agent control surface SHALL let a trusted owner agent initiate a new connection through a typed intent. The intent SHALL return the next owner-mediated step instead of silently creating a provider connection or bypassing provider authentication.
Scenario: Connector supports OAuth
- WHEN a trusted owner agent initiates a connection for an OAuth-backed connector
- THEN the reference implementation SHALL create an auditable connection intent
- AND the response SHALL include an owner-openable authorization URL or equivalent typed
open_urlstep - AND no connection instance SHALL be marked active until the provider authorization completes
Scenario: Connector requires browser assistance
- WHEN a trusted owner agent initiates a connection for a browser-bound connector
- THEN the response SHALL describe the browser-assistance step required from the owner or local environment
- AND it SHALL NOT claim that the agent can complete provider login or 2FA by bearer authority alone
Scenario: Connector does not support agent initiation
- WHEN a trusted owner agent initiates a connection for an unsupported connector
- THEN the response SHALL be typed as unsupported
- AND it SHALL include a concise reason and any available dashboard or manual next step
Requirement: Owner-agent control SHALL advertise and enforce per-connection actions
The owner-agent control surface SHALL advertise supported actions for each connector template and connection instance, and SHALL reject unsupported or ambiguous actions with typed errors.
Scenario: Agent inspects available actions
- WHEN a trusted owner agent lists connection instances
- THEN each instance SHALL describe supported owner actions such as rename, run now, schedule, pause, resume, delete, revoke credentials, or inspect diagnostics when available
- AND unavailable actions SHALL be omitted or marked unsupported with a typed reason
Scenario: Agent targets connector type when instance is ambiguous
- WHEN a trusted owner agent requests an instance-scoped action using only
connector_id - AND more than one active connection exists for that connector type
- THEN the reference implementation SHALL reject the request with a typed ambiguity error
- AND it SHALL include the available
connection_idvalues and retry guidance
Requirement: Owner-agent control SHALL advertise owner-agent-capable surface families honestly
The owner-agent control surface SHALL advertise as supported any non-connection-scoped action family whose routes already accept a trusted owner-agent bearer, so the control catalog is a complete discovery source and a trusted owner agent never has to read route source to find an owner-agent-usable capability. Advertising such a family SHALL NOT widen /mcp: the routes remain reachable only over the REST control plane, and /mcp SHALL continue to reject owner bearers.
Scenario: Owner agent discovers event-subscription management
- WHEN a trusted owner agent reads the owner-agent control capability document
- THEN it SHALL include an event-subscription management family marked
supported - AND the family SHALL point at the
/v1/event-subscriptionsroute family that already accepts a trusted owner-agent bearer - AND the advertised family SHALL NOT be projected onto any single connection's per-connection action list, because it is not bound to one connection
Scenario: Advertised surface family does not widen MCP
- WHEN a trusted owner agent presents its owner-agent bearer to
/mcp - THEN the reference implementation SHALL reject the bearer for MCP tool access
- AND advertising the event-subscription family in the REST control catalog SHALL NOT make those routes reachable over
/mcpwith an owner bearer
Requirement: Owner-agent control mutations SHALL be auditable and secret-safe
Owner-agent control mutations SHALL record non-secret audit evidence including actor kind, client identity, target resource, operation, and outcome. Audit evidence SHALL NOT include bearer tokens, provider credentials, callback secrets, raw uploaded files, or provider session cookies.
Scenario: Owner agent renames a connection
- WHEN a trusted owner agent renames a connection display name
- THEN the mutation SHALL record that an owner-agent client performed the rename
- AND subsequent owner-agent and read surfaces SHALL expose the updated
display_name
Scenario: Mutation fails
- WHEN a trusted owner agent attempts a control mutation that fails validation or authorization
- THEN the response SHALL use a typed error envelope
- AND audit evidence SHALL record the failed operation without logging secrets