Краткое описание сущностей, которые сохраняет
iobackup-agent, и связи их с HTTP API. Источник
правды — типы в iobackup/internal/storage и
реализация iobackup/internal/storage/bboltstore.
-db / env).encoding/json).BackupManifest в БД связаны через
backup_id (он же ключ в нескольких bucket’ах).identity/ (см.
docs/architecture/agent-identity.md): стабильный
agent_id, instance_id на процесс, hostname,
labels.GET /api/v1/agent,
/version, /health, /capabilities,
/agent/facts) и в блоке manifest.agent при
записи манифеста.iobackup.io/v1)POST /api/v1/jobs (decode +
overlay + ValidateStrict).PUT/флаги enabled через
API агента; хранится целиком как документ.jobs, ключ
`job_id` = `metadata.job_id` → JSON
job.Job.jobs_by_uid
(job_uid → job_id),
jobs_by_previous_id (цепочка rename); см.
docs/architecture/bbolt-storage-layout.md.DeleteJob.job run).run_id,
job_uid, job_id, status
(pending … timeout), времена, счётчики задач,
error.job_revision_id, job_revision;executed_job_hash, executed_job_snapshot
(sanitized; без secret values);trigger (manual/api/cli…), idempotency_key
(HTTP Idempotency-Key при POST …/runs: повтор
с тем же ключом и тем же job_uid возвращает тот же
run_id; другой job_uid — конфликт, см.
docs/operator/operations.md);attempt, retry_of_run_id,
rerun_of_run_id (reserved);lifecycle_version и расширенные timestamps
(reserved).runs ключ
run_id → JSON; индекс runs_by_job ключи
"{job_id}:{run_id}" (метод append index), значение
run_id.internal/storage/models.go константы Run*;
подробнее в backlog §6 / будущий
docs/run-lifecycle.md.task_run_id,
run_id, job_id, task_id,
status, имя артефакта, backup_id,
размер/checksum при успехе, error.task_runs по
task_run_id; индекс task_runs_by_run ключ
"{run_id}:{task_run_id}".task_log_lines.Идентификаторы: backup_id — первичный
ключ строки в bolt и в публичном API артефактов;
manifest_id — отдельный идентификатор
записи манифеста (additive). В дескрипторах artifacts[] у
манифеста могут быть свои artifact_id для
ролей data / manifest и т.д. (см.
docs/reference/manifest-schema.md).
/api/v1/artifacts; тело совпадает с JSON манифеста в store
(additive).manifests и дубль в
artifacts (один и тот же JSON по backup_id),
плюс индексы:
manifests_by_job:
"{job_id}:{backup_id}"manifests_by_task:
"{task_id}:{backup_id}"manifests_by_created_at: ключ из
created_at в формате 20060102150405, значение
backup_idНачиная с 0.17-fix.40 манифест содержит (additive):
manifest_id, job_uid,
job_revision_id, task_hashlineage, repositoryartifact_format, compressionchecksums[], artifacts[] (минимум
role=data и role=manifest sidecar)source/destination blocks (metadata +
destination.write_policy)Старые поля
artifact/checksum/source_type
остаются для совместимости.
verification_results по
verification_id; индексы
verification_results_by_backup,
verification_results_by_job.POST .../jobs/{id}/verify).job_verification_runs,
job_verification_runs_by_job.notification_events +
индексы _by_run, _by_task.retention_cleanup_events,
индексы _by_job, _by_task.task_log_lines, ключ
\x00-разделённый
"{run_id}\x00{task_id}\x00{nanos_padding}".schemastorage_schema_record с числом
version — совместимость при старте агента.locks
(storage.Lock)spec.concurrency.lock_key (по умолчанию —
job identity). Используется, чтобы предотвратить конкурентные run при
spec.concurrency.policy=forbid (см.
internal/storage/bboltstore + lifecycle).lock_key (строка),
value: JSON Lock.storage.JobRevision)submitted_yaml,
resolved_yaml, hashes, job_revision_id, ссылка
на job_uid + номер revision).job_revisions_by_id, индекс
job_revisions_by_job.metadata.submitted_hash.metadata.resolved_hash.Run:
executed_job_snapshot + executed_job_hash —
sanitized job, фактически исполнявшийся в данном run.storage.Trigger)Run.trigger: кто инициировал (manual,
api, cli, …) — foundation для аудита и
будущего scheduler.internal/storage/models.go и
docs/reference/error-codes.md. Полный «warning stream» в UI
— partial (см. публичный capabilities
и feature gates в docs/reference/feature-gates.md).internal/storage/models.go уже есть тип
AuditEvent (placeholder для единого
аудита).notification_events /
retention_cleanup_events. Полноценное хранение
AuditEvent в metadata — planned
(0.20+).GET /api/v1/capabilities,
GET /api/v1/agent/facts) из registry + конфигурации.Детальный storage layout (bucket’ы, формат вторичных
индексов) см. bbolt-storage-layout.md;
политика версий и релизов — versioning-policy.md.
Кураторский публичный индекс страниц сайта —
docs/public/technical-docs-manifest.md
(внутренний roadmap в репозитории не публикуется как часть сайта).
Единое описание manifest v1 JSON см.
docs/reference/manifest-schema.md.