docs(docs): describe durable jobs, telemetry, and bundle limits
Зафиксированы очередь job, семантика метрик, лимиты бандла и исходящих запросов, а также чеклист продакшена для пула соединений. Co-authored-by: Cursor <[email protected]>
This commit is contained in:
1 parent
bda45d633e
commit
240d83fc61
15 files changed
+839
-17
No files matched your search
@@ -0,0 +1,25 @@
|
||||
# Ограничения подписанных bundles
|
||||
|
||||
Формат `.tar.gz`, поля manifest, порядок файлов и Ed25519-подпись не изменены. Замороженный legacy fixture и проверка структуры старого manifest остаются тестами совместимости. Новые ограничения применяются до больших выделений памяти и не требуют обновления wire-протокола speakers 2.56.2.
|
||||
|
||||
| Ограничение по умолчанию | Значение |
|
||||
| --- | --- |
|
||||
| Сжатый bundle / HTTP download / локальный файл | 128 MiB |
|
||||
| Весь распакованный tar, включая headers, PAX и хвост gzip | 512 MiB |
|
||||
| Один payload-файл | 256 MiB |
|
||||
| `manifest.json` | 2 MiB |
|
||||
| Файловые записи tar, включая manifest и signature; служебные PAX ограничены общим объёмом tar | 4096 |
|
||||
| Длина относительного пути | 1024 bytes |
|
||||
| Ответ latest revision | 64 KiB |
|
||||
| Диагностическое тело HTTP-ошибки | 4 KiB |
|
||||
| Чтение error-body перед HTTP retry | 64 KiB на попытку |
|
||||
|
||||
Это верхние пределы обработки недоверенного ввода, а не гарантия работы на устройстве с малым RAM. Проверка пока хранит сжатый bundle и распакованные payloads в памяти. Большие конфигурации, включая порядок миллиона IPv6 route-строк, не ограничены маленьким лимитом отдельного CDN-источника. Размерный regression test использует повторяющиеся типовые строки и не заменяет benchmark уникальных префиксов или BIRD.
|
||||
|
||||
В Go API `bundle.Limits` позволяет явно менять бюджеты: `BuildGzippedTarWithLimits`, `VerifyGzippedTarWithLimits`, `WriteExtractedFilesWithLimits` и `ReadCompressed`. Нулевые поля выбирают defaults; отрицательные значения отклоняются. `nodecli.SyncConfig.BundleLimits` передаёт одинаковые бюджеты в download, verify и extract. Обычные команды CLI используют defaults.
|
||||
|
||||
Verifier проверяет gzip checksum, включая данные после tar EOF, ограничивает внутреннее чтение tar/PAX, отвергает дубликаты путей, ссылки и другие nonregular entries, а также payloads вне подписанного manifest. Пути должны быть каноническими относительными POSIX-путями: absolute, traversal, backslash, Windows drive/stream и device names отклоняются. Извлечение использует directory confinement `os.Root` из Go 1.24 и не следует существующим symlinks; существующий hard link удаляется до exclusive-create нового файла, сохраняя внешний файл.
|
||||
|
||||
Sparse entries отклоняются, а суммарный логический размер файлов дополнительно ограничен 512 MiB: физический размер sparse tar не отражает объём создаваемого содержимого.
|
||||
|
||||
Эти проверки действуют в новых binaries, не изменяют уже установленный agent 2.56.2 и не делают переключение всего дерева конфигурации атомарным: безопасное применение BIRD и восстановление описываются отдельно.
|
||||
Reference in new issue
Block a user