iobackup построен как provider-driven платформа со
streaming-first исполнением:
YAML/JSON)iobackup-agent — API + execution engine.iobackupctl — CLI над HTTP API.storage — bbolt для metadata.source/destination/policy/notification
registries.manifest и artifact подсистемы.prometheus metrics — /metrics для
runtime/API/run/task/provider/webhook telemetry.Каноничный набор — константы в
internal/storage/models.go (RunStatus,
TaskStatus, NotificationStatus). Переходы и
терминальность — internal/storage/lifecycle.go, подробнее в
docs/architecture/lifecycle-run-task.md.
Run (RunStatus):
pending, running, success,
partial_success, failed,
interrupted, cancelled,
timeoutTask (TaskStatus):
pending, running, success,
failed, interrupted, skipped,
cancelled, timeoutДоставка webhook (NotificationStatus, поле
notification_events.status):
pending, sending, success,
failed, skippedСмысл отдельных терминальных статусов run/task:
partial_success — run завершён без
полного провала, но были необязательные сбои (например, задачи с
required: false завершились с ошибкой) или зафиксированы
предупреждения уровня run; это не «успех без оговорок».interrupted — агент или процесс
остановлен во время выполнения; незавершённые
running/pending переводятся в терминальный
interrupted при восстановлении (см.
docs/operator/operations.md). Повторный запуск — новый
run.Maturity провайдеров и компонентов (stable / beta / experimental / …)
— в
docs/internal/roadmap/status-matrix.md.
Единая линия «контракт → исполнение → артефакт»:
agent_id,
instance_id, hostname, labels; файл identity/
и блок manifest.agent (см.
docs/architecture/agent-identity.md).JobRevision), job_id (slug)
vs job_uid (immutable chain id),
metadata.revision, hashes submitted/resolved.executed_job_snapshot /
executed_job_hash (sanitized), привязку к
job_revision_id, опционально
idempotency_key для повторяемого
POST …/runs; concurrency locks в bolt для
защиты от двойного старта.manifest_id, artifacts[] с ролями
data/manifest, checksums[],
repository / lineage, блоки
source/destination).docs/features/encryption/security.md,
docs/reference/job-format-v1.md).GET /api/v1/capabilities,
/agent/facts, /health,
/providers/health) без deep network probe; feature gates в
конфиге агента. Подробнее: docs/reference/capabilities.md,
docs/providers/providers.md.Рабочие provider-ы:
filesystem, postgres,
mysql, clickhouse, openldap,
vault, docker_composelocal, s3,
sshretentionwebhookПолная матрица stable / beta / experimental /
planned по компонентам и провайдерам:
docs/internal/roadmap/status-matrix.md.
Stub provider-ы:
Ориентир для приоритизации сценариев (детали —
docs/internal/roadmap/status-matrix.md):
filesystem + local —
наиболее прямой путь, обычно stable для базового
backup.s3,
postgres,
mysql,
clickhouse,
ssh — рабочие, но чувствительны к сети,
правам и версиям CLI (beta / ops-sensitive).docker_compose,
vault,
openldap — чаще
experimental или требуют отдельной проверки в вашем
контуре.restore,
migrate) предполагается без переписывания ядра
исполнения.