Let agents drive the flow API over MCP
The engine now speaks MCP at /mcp, with a built-in OAuth 2.1 authorization server in front of it: an agent registers itself, sends a human to the browser to approve it, and exchanges the resulting code for a token. PKCE is required, codes are single-use and stored only as hashes, the browser is redirected to the URI that was registered rather than the one asked for, and refresh tokens rotate so that replaying a spent one revokes the whole line. Twenty tools cover reading, building, publishing and running flows, and each one calls the same REST endpoint the dashboard calls, in-process, carrying the caller's own token. That keeps one description of what a flow is and what may be done to it — validation, the draft/publish split, the version check — and means an agent can do nothing a person could not do in the browser. Agent tokens are RS256 with a keypair of their own rather than the secret that signs browser sessions, so deleting the key withdraws every agent without logging anyone out, and deps.decode_token grew the branch that trusting a second issuer will need when the hosted login arrives.
This commit is contained in:
@@ -145,6 +145,11 @@ services:
|
||||
# Flows are files in a git repository; secrets sit encrypted beside it.
|
||||
- FLOWS_DIR=/data/flows
|
||||
- SECRETS_FILE=/data/secrets.enc
|
||||
# The MCP endpoint for agents, and the key its tokens are signed with.
|
||||
# The key lives on the same volume as the flows, so it survives a rebuild
|
||||
# and every issued token with it.
|
||||
- MCP_ENABLED=${MCP_ENABLED-false}
|
||||
- OAUTH_PRIVATE_KEY_FILE=/data/oauth-key.pem
|
||||
|
||||
volumes:
|
||||
- app-flow-data:/data
|
||||
|
||||
Reference in New Issue
Block a user