feat: add resumable file archive jobs and offline verification

This commit is contained in:
2026-09-23 10:50:49 +08:00
parent 2d8467e50c
commit 6eb429e21f
19 changed files with 1160 additions and 15 deletions

View File

@@ -27,7 +27,7 @@ func main() {
}
func run() error {
if len(os.Args) < 2 {
return errors.New("usage: orbit-admin release manifest|bootstrap|console-user create|verify|observe snapshot|retention inventory|credential status|rotate|revoke|apply")
return errors.New("usage: orbit-admin release manifest|bootstrap|console-user create|verify|observe snapshot|retention inventory|archive|verify-archive|credential status|rotate|revoke|apply")
}
switch os.Args[1] {
case "release":
@@ -45,7 +45,7 @@ func run() error {
case "credential":
return runCredential(os.Args[2:])
}
return errors.New("usage: orbit-admin release manifest|bootstrap|console-user create|verify|observe snapshot|retention inventory|credential status|rotate|revoke|apply")
return errors.New("usage: orbit-admin release manifest|bootstrap|console-user create|verify|observe snapshot|retention inventory|archive|verify-archive|credential status|rotate|revoke|apply")
}
// releaseManifest 是发布物自身的静态身份清单,不读取数据库、不包含 DSN、凭据或业务数据。
@@ -208,8 +208,16 @@ func runObserve(args []string) error {
}
func runRetention(args []string) error {
if len(args) > 0 {
switch args[0] {
case "archive":
return runRetentionArchive(args[1:])
case "verify-archive":
return runRetentionVerifyArchive(args[1:])
}
}
if len(args) == 0 || args[0] != "inventory" {
return errors.New("usage: orbit-admin retention inventory --before RFC3339")
return errors.New("usage: orbit-admin retention inventory --before RFC3339 | archive | verify-archive")
}
flags := flag.NewFlagSet("retention inventory", flag.ContinueOnError)
var before string