105 lines
3.2 KiB
YAML
105 lines
3.2 KiB
YAML
|
|
openapi: 3.0.3
|
||
|
|
info:
|
||
|
|
title: Explorer mission-control API
|
||
|
|
version: "1.0"
|
||
|
|
description: |
|
||
|
|
Public health, liquidity proxy, and bridge-trace helpers on the Go REST service.
|
||
|
|
SSE for `/mission-control/stream` should be proxied with **proxy_buffering off** so chunks flush (see `deployment/common/nginx-mission-control-sse.conf`).
|
||
|
|
servers:
|
||
|
|
- url: /explorer-api/v1
|
||
|
|
paths:
|
||
|
|
/mission-control/stream:
|
||
|
|
get:
|
||
|
|
summary: Server-Sent Events stream of bridge/RPC health
|
||
|
|
description: |
|
||
|
|
`Content-Type: text/event-stream`. Emits `event: mission-control` with JSON `{"data":{...}}` immediately, then every 20s.
|
||
|
|
Same inner `data` shape as `GET /track1/bridge/status`.
|
||
|
|
responses:
|
||
|
|
"200":
|
||
|
|
description: SSE stream
|
||
|
|
content:
|
||
|
|
text/event-stream:
|
||
|
|
schema:
|
||
|
|
type: string
|
||
|
|
/mission-control/liquidity/token/{address}/pools:
|
||
|
|
get:
|
||
|
|
summary: Cached proxy to token-aggregation pools
|
||
|
|
parameters:
|
||
|
|
- name: address
|
||
|
|
in: path
|
||
|
|
required: true
|
||
|
|
schema:
|
||
|
|
type: string
|
||
|
|
pattern: '^0x[a-fA-F0-9]{40}$'
|
||
|
|
responses:
|
||
|
|
"200":
|
||
|
|
description: Upstream JSON (pass-through)
|
||
|
|
"503":
|
||
|
|
description: TOKEN_AGGREGATION_BASE_URL not set
|
||
|
|
/mission-control/bridge/trace:
|
||
|
|
get:
|
||
|
|
summary: Resolve tx `to`/`from` via Blockscout and label with smart-contracts-master
|
||
|
|
parameters:
|
||
|
|
- name: tx
|
||
|
|
in: query
|
||
|
|
required: true
|
||
|
|
schema:
|
||
|
|
type: string
|
||
|
|
pattern: '^0x[a-fA-F0-9]{64}$'
|
||
|
|
responses:
|
||
|
|
"200":
|
||
|
|
description: Labeled trace
|
||
|
|
content:
|
||
|
|
application/json:
|
||
|
|
schema:
|
||
|
|
type: object
|
||
|
|
properties:
|
||
|
|
data:
|
||
|
|
type: object
|
||
|
|
properties:
|
||
|
|
tx_hash:
|
||
|
|
type: string
|
||
|
|
from:
|
||
|
|
type: string
|
||
|
|
to:
|
||
|
|
type: string
|
||
|
|
from_registry:
|
||
|
|
type: string
|
||
|
|
to_registry:
|
||
|
|
type: string
|
||
|
|
blockscout_url:
|
||
|
|
type: string
|
||
|
|
/track4/operator/run-script:
|
||
|
|
post:
|
||
|
|
summary: Run an allowlisted script under OPERATOR_SCRIPTS_ROOT (Track 4 + IP whitelist)
|
||
|
|
security:
|
||
|
|
- bearerAuth: []
|
||
|
|
requestBody:
|
||
|
|
required: true
|
||
|
|
content:
|
||
|
|
application/json:
|
||
|
|
schema:
|
||
|
|
type: object
|
||
|
|
required: [script]
|
||
|
|
properties:
|
||
|
|
script:
|
||
|
|
type: string
|
||
|
|
description: Path relative to OPERATOR_SCRIPTS_ROOT (no ..)
|
||
|
|
args:
|
||
|
|
type: array
|
||
|
|
items:
|
||
|
|
type: string
|
||
|
|
maxItems: 24
|
||
|
|
responses:
|
||
|
|
"200":
|
||
|
|
description: stdout/stderr and exit code
|
||
|
|
"403":
|
||
|
|
description: Not allowlisted or not whitelisted IP
|
||
|
|
"503":
|
||
|
|
description: Root or allowlist not configured
|
||
|
|
components:
|
||
|
|
securitySchemes:
|
||
|
|
bearerAuth:
|
||
|
|
type: http
|
||
|
|
scheme: bearer
|