44 lines
687 B
Markdown
44 lines
687 B
Markdown
|
|
# Claw Broker (MVP)
|
||
|
|
|
||
|
|
Minimal privileged broker for claw.approvals.execute.
|
||
|
|
|
||
|
|
## API
|
||
|
|
|
||
|
|
- POST /v1/execute
|
||
|
|
- Bearer token via CLAW_BROKER_TOKEN
|
||
|
|
|
||
|
|
Request fields:
|
||
|
|
|
||
|
|
- executionId
|
||
|
|
- approvalRequestId
|
||
|
|
- approvalGrantId
|
||
|
|
- exactCommand
|
||
|
|
- targetHost
|
||
|
|
- targetUser
|
||
|
|
- requestedBy
|
||
|
|
- channel
|
||
|
|
- chatId
|
||
|
|
- humanUserId
|
||
|
|
- sessionId
|
||
|
|
|
||
|
|
Response fields:
|
||
|
|
|
||
|
|
- executionId
|
||
|
|
- status
|
||
|
|
- exitCode
|
||
|
|
- stdoutSummary
|
||
|
|
- stderrSummary
|
||
|
|
- startedAt
|
||
|
|
- finishedAt
|
||
|
|
|
||
|
|
## Validation
|
||
|
|
|
||
|
|
Broker re-checks in Postgres before execution:
|
||
|
|
|
||
|
|
- request/grant exist
|
||
|
|
- status allows execution
|
||
|
|
- once grant atomic consume
|
||
|
|
- command exact match
|
||
|
|
- scope match (targetHost, targetUser, channel, chatId, humanUserId, sessionId)
|
||
|
|
- dangerous shell policy
|