Durable operation
Idempotency key, recoverable state и повторное получение результата без duplicate media.
Pulse Messenger формирует ближайшие функциональные требования. Каждый этап одновременно укрепляет Pulse Media как самостоятельную платформу и проходит отдельный security gate.
Основной backlog определяется потребностями Pulse. Параллельно появляются универсальные contracts, документация, operational tooling, usage metrics и внешние pilot scenarios — без преждевременного строительства большого SaaS.
Нумерация отражает логическую последовательность, а не фиксированные даты или окончательный состав релиза.
Raw storage закрыт. Public media получает stable catalog URLs, private media — short-lived signed URLs с expiry и key rotation foundation.
Durable upload operations, scoped idempotency, media bindings pending → active → released, physical lifecycle ready → deleting → deleted, TTL, cleanup и dry-run reconciliation.
История и realtime получают media manifests одним защищённым batch-запросом. Устраняется N+1 enrichment и добавляется partial degradation.
Media facts, immutable profiles, planner, executor, artifact manifest, resource classes и измеримый processing cost.
Canonical master, durable preview, rebuildable artifacts, format policy, metadata stripping и измерение storage/traffic savings.
Browser или mobile client загружает media напрямую по scoped short-lived grant после проверки пользователя trusted backend.
Graceful shutdown, readiness, metrics, resource budgets, integrity checks, failure injection и регулярно проверяемый restore.
Версия 0.4.5 ввела операции загрузки и bindings к внешним ресурсам, сохранив business authorization за trusted backend.
Idempotency key, recoverable state и повторное получение результата без duplicate media.
Namespace, owner, resource type, resource ID и media ID без доменного fork внутри ядра.
TTL, release retention, возобновляемое deleting state, tombstones, dry-run reconciliation и audit trail.
Платформенность подтверждается, когда другой component или внешний backend подключается без специальных таблиц, routes и обходов для своего домена.
Credentials, namespaces, scopes, rotation, revoke и usage для каждого клиента.
Accounts, Docs, Drive или внешний branding/media use case проверяют универсальность модели.
Общие upload, binding, lifecycle, delivery и operations без Messenger-specific fork.
Новая поверхность не становится публичной до закрытия access, abuse, revoke, audit и recovery model.
| Этап | Обязательный security результат |
|---|---|
| Secure Delivery | Private bytes нельзя получить по path; expiry, tampering и visibility isolation проверяются. |
| Attachment Lifecycle | Retry идемпотентен; namespace и owner проверяются; bindings tenant-safe; cleanup не удаляет удерживаемое media. |
| Batch Resolve | Один запрещённый ID не раскрывает чужой object; batch имеет limits и enumeration safeguards. |
| PAME | Decoder/pixel/resource limits; immutable profiles; artifacts наследуют access policy. |
| Direct Upload | Scoped grant; service token не попадает клиенту; replay и quota контролируются. |
| External clients | Independent identities, scopes, quotas, targeted revoke и cross-tenant tests. |
После Batch Resolve, observability, backup verification и independent service policy Pulse Media может проверить спрос через dedicated managed или self-hosted pilot. Multi-tenancy и billing строятся на измеренном опыте.