feat(remote-speakers): enhance remote speaker management and API integration
CI / changes (push) Successful in 8s
CI / commitlint (push) Has been skipped
CI / openapi (push) Successful in 25s
CI / web (push) Failing after 34s
CI / go (push) Failing after 19s
CI / bird2 (push) Has been skipped
CI / release (push) Has been skipped
CI / changes (push) Successful in 8s
CI / commitlint (push) Has been skipped
CI / openapi (push) Successful in 25s
CI / web (push) Failing after 34s
CI / go (push) Failing after 19s
CI / bird2 (push) Has been skipped
CI / release (push) Has been skipped
- Added support for remote speaker configuration in the README and documentation. - Implemented a new endpoint for retrieving the bundle signing public key. - Updated the `evobgp-agent` to include a `serve` command for Panel→Node sync API. - Enhanced CI workflow to validate remote speaker compose files. - Introduced new fields in the API and UI for managing speaker metadata, including dispatch status and sync status. - Improved error handling and response formatting in speaker-related API endpoints. - Updated documentation to reflect changes in remote speaker functionality and usage guidelines.
This commit is contained in:
@@ -778,8 +778,47 @@ components:
|
||||
type: string
|
||||
last_applied_revision_id:
|
||||
type: ["string", "null"]
|
||||
published_revision_id:
|
||||
type: ["string", "null"]
|
||||
description: Последняя опубликованная на CP ревизия для этого спикера.
|
||||
published_at:
|
||||
type: ["string", "null"]
|
||||
format: date-time
|
||||
agent_domain:
|
||||
type: string
|
||||
description: FQDN agent API за Traefik (Address в UI, Remnawave-style).
|
||||
node_ipv4:
|
||||
type: string
|
||||
description: IPv4 VPS; default для bird_bgp_source_ipv4.
|
||||
bird_bgp_source_ipv4:
|
||||
type: string
|
||||
description: Per-speaker override router id / BGP local (см. pipeline overlay).
|
||||
dispatch_status:
|
||||
type: string
|
||||
description: ok, error, skipped — последний Panel→Node wake-up.
|
||||
sync_status:
|
||||
type: string
|
||||
description: synced, error — состояние sync на реплике.
|
||||
last_dispatch_at:
|
||||
type: string
|
||||
format: date-time
|
||||
last_dispatch_error:
|
||||
type: string
|
||||
meta_json:
|
||||
type: object
|
||||
description: >
|
||||
Расширяемый объект. Ключи agent_domain, agent_secret (только при создании),
|
||||
agent_port, node_ipv4, bird_bgp_source_ipv4, bird_bgp_source_ipv6.
|
||||
additionalProperties: true
|
||||
|
||||
BundleSigningPublicKey:
|
||||
type: object
|
||||
required: [public_key_base64]
|
||||
properties:
|
||||
public_key_base64:
|
||||
type: string
|
||||
description: Ed25519 public key (base64) для verify-bundle на реплике.
|
||||
|
||||
ConfigRevision:
|
||||
type: object
|
||||
required:
|
||||
@@ -1000,8 +1039,15 @@ components:
|
||||
properties:
|
||||
role:
|
||||
type: string
|
||||
default: replica
|
||||
endpoint:
|
||||
type: string
|
||||
description: URL agent или https://AGENT_DOMAIN
|
||||
meta_json:
|
||||
type: string
|
||||
description: >
|
||||
JSON-объект. Ключи node_ipv4, bird_bgp_source_ipv4 (default = node_ipv4),
|
||||
agent_domain, agent_secret (генерируется при создании если пуст).
|
||||
additionalProperties: true
|
||||
|
||||
BgpSpeakerPatch:
|
||||
@@ -1011,6 +1057,9 @@ components:
|
||||
type: string
|
||||
endpoint:
|
||||
type: string
|
||||
meta_json:
|
||||
type: string
|
||||
description: JSON-объект с ключами agent_domain, node_ipv4, bird_bgp_source_ipv4 и др.
|
||||
additionalProperties: true
|
||||
|
||||
LatestRevisionPointer:
|
||||
@@ -2216,6 +2265,24 @@ paths:
|
||||
default:
|
||||
$ref: "#/components/responses/DefaultProblem"
|
||||
|
||||
/v1/bundle/signing-public-key:
|
||||
get:
|
||||
tags: [Bundles]
|
||||
summary: Публичный ключ подписи бандлов
|
||||
description: >
|
||||
Ed25519 public key (base64) для `evobgp-node verify-bundle` / agent sync на реплике.
|
||||
Роль viewer и выше.
|
||||
operationId: getBundleSigningPublicKey
|
||||
responses:
|
||||
"200":
|
||||
description: Ключ для env EVOBGP_BUNDLE_PUBKEY_BASE64 на реплике.
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: "#/components/schemas/BundleSigningPublicKey"
|
||||
default:
|
||||
$ref: "#/components/responses/DefaultProblem"
|
||||
|
||||
/v1/speakers:
|
||||
get:
|
||||
tags: [Speakers]
|
||||
|
||||
Reference in New Issue
Block a user