- remove Java plugins (velocity/paper), dashboard, all MC-specific code
(handshake, death_code, varint, hostname-HMAC); available in history pre-v0.2
- merge crates/* into one package with src/bin/{rampart,rampart-manager,rampart-cli}
- ProtocolHandler trait + registry (no implementations yet), universal PoW kept
- XDP: universal L3/L4 filter (xdp/core/) + pluggable hook API (xdp/hooks/),
fix IPv6 saddr bug; clang build verified
- docs: bilingual knowledge base (docs/kb/: attacks x4, defense-levels,
practice x3), rewrite README/architecture for universal concept
- TODO.md v4.0: <=300-line module limit, competitor benchmark section (ref/)
- deploy/CI/docs cleanup: no MC references, new binary names
cargo build/clippy(-D warnings)/test green (55 tests)
2.7 KiB
2.7 KiB
API Reference - Rampart Manager
REST API управления. Base URL:
http://MANAGER:8080Авторизация: Bearer JWT (получить через/api/v1/auth/login).
Реализованные маршруты — см. src/bin/rampart-manager.rs. Это полный список: ничего сверх перечисленного здесь API не предоставляет.
Аутентификация
POST /api/v1/auth/login
// Request
{"password": "значение API_PASSWORD"}
// Response 200
{"token": "eyJhbGciOiJIUzI1NiIs..."}
// 401 → неверный пароль; 429 → больше 5 попыток за минуту с одного IP
Все защищённые запросы:
Authorization: Bearer <token>
Токен живёт JWT_EXPIRATION_SECS секунд (дефолт 86400).
Health (публичный)
GET /api/v1/health
{"status": "healthy", "version": "0.3.0-dev"}
Servers
GET /api/v1/servers 🔒
Список серверов из Redis-реестра (rampart:servers:*).
{
"servers": [
{"name": "app-01", "type": "tcp", "ip": "10.0.2.1", "port": 25566, "status": "online"}
]
}
Redis недоступен → пустой список.
Blacklist
GET /api/v1/blacklist 🔒
{
"items": [
{"target": "1.2.3.4", "type": "ip", "reason": "manual_ban",
"created_at": "...", "expires_at": null}
],
"total": 42
}
Источник: Redis set rampart:blacklist. Пагинации и фильтров нет.
POST /api/v1/blacklist 🔒
// Request
{"target": "1.2.3.4", "type": "ip", "reason": "manual_ban", "duration_secs": 3600}
// Response 200/201 — запись добавлена в Redis set
Edge-ноды подхватывают ban при следующей синхронизации блэклиста.
Nodes
GET /api/v1/nodes 🔒
Список зарегистрированных edge-нод из Redis (rampart:nodes:*, heartbeat).
{
"nodes": [
{"id": "edge-eu-1", "role": "edge", "ip": "10.0.100.1",
"status": "online", "last_heartbeat": "..."}
]
}
Не реализовано
Честно, на текущий момент в API нет:
- удаления записей blacklist (только add/list);
- drain нод через API (есть только CLI
rampart-cli drain); - webhooks, metrics summary, challenge management;
- регистрации нод через
POST /api/v1/nodes; - rate limiting на сами запросы API (кроме login).
Версия: 2.0 | Август 2026