REST API v1

API для реальных запросов

JSON, request ID, единые ошибки, ETag и rate-limit headers.

OpenAPI JSON
GET

/api/v1/heartbeat

Проверяет базу, диск, возможность записи, ресурсы и фоновые задачи.

curl --fail https://dropvault.gennady.live/api/v1/heartbeat
POST

/api/v1/files

Multipart-загрузка. Ответ содержит публичный идентификатор, URL и одноразово показываемый delete token.

curl -F "file=@report.pdf" \
  -F "public=true" \
  -F "retention_days=7" \
  https://dropvault.gennady.live/api/v1/files

GET /api/v1/files?page=1&page_size=20&sort=newest поддерживает пагинацию, поиск и фильтр MIME.

POST

/api/v1/auth/login

Локальная session-cookie авторизация. Для logout передайте CSRF-токен из cookie в заголовке X-CSRF-Token.

{
  "email": "demo@dropvault.local",
  "password": "your-local-password"
}
POST

/api/v1/webhooks/storage

Подпись: sha256=HMAC(secret, timestamp + "." + raw_body). Обязательны timestamp и уникальный delivery ID; повтор возвращает 409.

Единый формат ошибок

{
  "error": {
    "code": "validation_error",
    "message": "Request validation failed",
    "request_id": "…",
    "details": []
  }
}