本配方只定义 legacy 目录已完成正式归档后,如何在另一个明确、独立的回退授权下恢复
legacy 原路径。它不是回退授权,不包含可执行的生产 rollback config,也不允许在正常迁移
中预先执行回退。
ARCHIVED/0 terminal 的 bytes/SHA-256 精确可读。AUTH-* rollback authorization、AUDIT-* rollback audit、唯一ROLLBACK-* identity 和 operator。配置必须符合dev/ana-dev/shared_content_publisher/postcommit_archive.rollback.schema.json,且只含:
schema_version=SHARED_CONTENT_POSTCOMMIT_ARCHIVE_ROLLBACK_CONFIG_V1;test_control=PRODUCTION/NONE。缺字段、多字段、类型错误、AUTH/AUDIT 域错误、任一身份或哈希漂移均须在移动前失败关闭。
python -m shared_content_publisher.postcommit_archive --rollback-config <authorized-rollback-config.json>
协调器必须先以 CreateNew 形成独立 rollback contract、原 archive terminal 副本和 rollback
manifest;随后一次 no-overwrite 同卷目录原子改名 archive target → legacy source;最后原子
发布 rollback terminal。成功为 LEGACY_RESTORED/0,同配置完整重放为IDEMPOTENT_LEGACY_RESTORED/0。
任一中断由同配置从回执锚和 source/target 真值恢复。source/target 双存在或双缺失、回执
部分写、授权/配置/terminal/归档树漂移均 RECOVERY_REQUIRED/30。回退终态存在后,原
archive config 不得把 legacy 再次归档。