@serve.zone/interfaces 7.15.0 → 7.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/changelog.md +9 -0
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/data/backup.d.ts +22 -0
- package/dist_ts/data/settings.d.ts +3 -0
- package/dist_ts/requests/backup.d.ts +12 -1
- package/package.json +1 -1
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/data/backup.ts +24 -0
- package/ts/data/settings.ts +12 -0
- package/ts/requests/backup.ts +18 -0
package/changelog.md
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 2026-06-10 - 7.16.0
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
|
|
7
|
+
- add archive pruning and external backup tier interfaces (backup)
|
|
8
|
+
- Add backup record metadata for cache/external tiers and offload timestamps
|
|
9
|
+
- Define archive retention/prune result interfaces and coreflowPruneNodeArchive typed request
|
|
10
|
+
- Add settings for external backup targets and node cache retention
|
|
11
|
+
|
|
3
12
|
## 2026-06-10 - 7.15.0
|
|
4
13
|
|
|
5
14
|
### Features
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@serve.zone/interfaces',
|
|
6
|
-
version: '7.
|
|
6
|
+
version: '7.16.0',
|
|
7
7
|
description: 'Shared TypeScript interfaces and TypedRequest contracts for the serve.zone ecosystem.'
|
|
8
8
|
};
|
|
9
9
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSx3QkFBd0I7SUFDOUIsT0FBTyxFQUFFLFFBQVE7SUFDakIsV0FBVyxFQUFFLHVGQUF1RjtDQUNyRyxDQUFBIn0=
|
package/dist_ts/data/backup.d.ts
CHANGED
|
@@ -62,6 +62,14 @@ export interface IBackupRecord {
|
|
|
62
62
|
trigger: TBackupTrigger;
|
|
63
63
|
snapshots: TBackupSnapshot[];
|
|
64
64
|
replication?: IBackupReplicationResult;
|
|
65
|
+
/**
|
|
66
|
+
* Storage tier of the replicated archive: 'cache' = the platform S3
|
|
67
|
+
* binding next to cloudly; 'external' = the configured long-term target
|
|
68
|
+
* (external S3, NFS path, SMB). Offload moves cache -> external and then
|
|
69
|
+
* deletes the cache copy.
|
|
70
|
+
*/
|
|
71
|
+
tier?: 'cache' | 'external';
|
|
72
|
+
offloadedAt?: number;
|
|
65
73
|
createdAt: number;
|
|
66
74
|
updatedAt: number;
|
|
67
75
|
completedAt?: number;
|
|
@@ -70,3 +78,17 @@ export interface IBackupRecord {
|
|
|
70
78
|
restoreHistory?: IBackupRestoreEvent[];
|
|
71
79
|
tags?: Record<string, string>;
|
|
72
80
|
}
|
|
81
|
+
/** Retention policy understood by containerarchive prune. */
|
|
82
|
+
export interface IArchiveRetentionPolicy {
|
|
83
|
+
keepLast?: number;
|
|
84
|
+
keepDays?: number;
|
|
85
|
+
keepWeeks?: number;
|
|
86
|
+
keepMonths?: number;
|
|
87
|
+
}
|
|
88
|
+
export interface IArchivePruneResult {
|
|
89
|
+
removedSnapshots: number;
|
|
90
|
+
removedPacks: number;
|
|
91
|
+
rewrittenPacks: number;
|
|
92
|
+
freedBytes: number;
|
|
93
|
+
dryRun: boolean;
|
|
94
|
+
}
|
|
@@ -6,6 +6,9 @@ export interface ICloudlySettings {
|
|
|
6
6
|
hetznerToken?: string;
|
|
7
7
|
cloudflareToken?: string;
|
|
8
8
|
deploymentArchiveRetentionDays?: string;
|
|
9
|
+
backupExternalTargetType?: string;
|
|
10
|
+
backupExternalTargetConfig?: string;
|
|
11
|
+
backupNodeCacheKeepDays?: string;
|
|
9
12
|
baseosJoinToken?: string;
|
|
10
13
|
corebuildWorkerUrl?: string;
|
|
11
14
|
corebuildWorkerToken?: string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as plugins from '../plugins.js';
|
|
2
|
-
import type { IBackupArchiveManifest, IBackupArchiveObject, IBackupRecord, IBackupReplicationResult, TBackupSnapshot } from '../data/backup.js';
|
|
2
|
+
import type { IArchivePruneResult, IArchiveRetentionPolicy, IBackupArchiveManifest, IBackupArchiveObject, IBackupRecord, IBackupReplicationResult, TBackupSnapshot } from '../data/backup.js';
|
|
3
3
|
import type { IService } from '../data/service.js';
|
|
4
4
|
import type { IIdentity } from '../data/user.js';
|
|
5
5
|
export interface IReq_Any_Cloudly_CreateServiceBackup extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Any_Cloudly_CreateServiceBackup> {
|
|
@@ -135,3 +135,14 @@ export interface IReq_Coreflow_Cloudly_DownloadBackupArchiveObject extends plugi
|
|
|
135
135
|
contentsBase64: string;
|
|
136
136
|
};
|
|
137
137
|
}
|
|
138
|
+
export interface IReq_Cloudly_Coreflow_PruneNodeArchive extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_Cloudly_Coreflow_PruneNodeArchive> {
|
|
139
|
+
method: 'coreflowPruneNodeArchive';
|
|
140
|
+
request: {
|
|
141
|
+
retention: IArchiveRetentionPolicy;
|
|
142
|
+
dryRun?: boolean;
|
|
143
|
+
};
|
|
144
|
+
response: {
|
|
145
|
+
found: boolean;
|
|
146
|
+
result?: IArchivePruneResult;
|
|
147
|
+
};
|
|
148
|
+
}
|
package/package.json
CHANGED
package/ts/00_commitinfo_data.ts
CHANGED
package/ts/data/backup.ts
CHANGED
|
@@ -86,6 +86,14 @@ export interface IBackupRecord {
|
|
|
86
86
|
trigger: TBackupTrigger;
|
|
87
87
|
snapshots: TBackupSnapshot[];
|
|
88
88
|
replication?: IBackupReplicationResult;
|
|
89
|
+
/**
|
|
90
|
+
* Storage tier of the replicated archive: 'cache' = the platform S3
|
|
91
|
+
* binding next to cloudly; 'external' = the configured long-term target
|
|
92
|
+
* (external S3, NFS path, SMB). Offload moves cache -> external and then
|
|
93
|
+
* deletes the cache copy.
|
|
94
|
+
*/
|
|
95
|
+
tier?: 'cache' | 'external';
|
|
96
|
+
offloadedAt?: number;
|
|
89
97
|
createdAt: number;
|
|
90
98
|
updatedAt: number;
|
|
91
99
|
completedAt?: number;
|
|
@@ -94,3 +102,19 @@ export interface IBackupRecord {
|
|
|
94
102
|
restoreHistory?: IBackupRestoreEvent[];
|
|
95
103
|
tags?: Record<string, string>;
|
|
96
104
|
}
|
|
105
|
+
|
|
106
|
+
/** Retention policy understood by containerarchive prune. */
|
|
107
|
+
export interface IArchiveRetentionPolicy {
|
|
108
|
+
keepLast?: number;
|
|
109
|
+
keepDays?: number;
|
|
110
|
+
keepWeeks?: number;
|
|
111
|
+
keepMonths?: number;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
export interface IArchivePruneResult {
|
|
115
|
+
removedSnapshots: number;
|
|
116
|
+
removedPacks: number;
|
|
117
|
+
rewrittenPacks: number;
|
|
118
|
+
freedBytes: number;
|
|
119
|
+
dryRun: boolean;
|
|
120
|
+
}
|
package/ts/data/settings.ts
CHANGED
|
@@ -12,6 +12,18 @@ export interface ICloudlySettings {
|
|
|
12
12
|
// Retention for archived deployment records in days (default 90)
|
|
13
13
|
deploymentArchiveRetentionDays?: string;
|
|
14
14
|
|
|
15
|
+
// Long-term backup target. Type 's3' | 'nfs' | 'smb'; config is a JSON
|
|
16
|
+
// object string with the matching connection fields (s3: endpoint,
|
|
17
|
+
// accessKey, secretKey, bucket, port?, useSsl?, region?; nfs: path
|
|
18
|
+
// mounted into the cloudly container; smb: host, share, username?,
|
|
19
|
+
// password?, domain?, port?). Absent = no offload, backups stay on the
|
|
20
|
+
// cache tier.
|
|
21
|
+
backupExternalTargetType?: string;
|
|
22
|
+
backupExternalTargetConfig?: string;
|
|
23
|
+
|
|
24
|
+
// Node-local archive cache retention in days (corestore prune; default 30)
|
|
25
|
+
backupNodeCacheKeepDays?: string;
|
|
26
|
+
|
|
15
27
|
// BaseOS enrollment
|
|
16
28
|
baseosJoinToken?: string;
|
|
17
29
|
|
package/ts/requests/backup.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import * as plugins from '../plugins.js';
|
|
2
2
|
import type {
|
|
3
|
+
IArchivePruneResult,
|
|
4
|
+
IArchiveRetentionPolicy,
|
|
3
5
|
IBackupArchiveManifest,
|
|
4
6
|
IBackupArchiveObject,
|
|
5
7
|
IBackupRecord,
|
|
@@ -196,3 +198,19 @@ extends plugins.typedrequestInterfaces.implementsTR<
|
|
|
196
198
|
contentsBase64: string;
|
|
197
199
|
};
|
|
198
200
|
}
|
|
201
|
+
|
|
202
|
+
export interface IReq_Cloudly_Coreflow_PruneNodeArchive
|
|
203
|
+
extends plugins.typedrequestInterfaces.implementsTR<
|
|
204
|
+
plugins.typedrequestInterfaces.ITypedRequest,
|
|
205
|
+
IReq_Cloudly_Coreflow_PruneNodeArchive
|
|
206
|
+
> {
|
|
207
|
+
method: 'coreflowPruneNodeArchive';
|
|
208
|
+
request: {
|
|
209
|
+
retention: IArchiveRetentionPolicy;
|
|
210
|
+
dryRun?: boolean;
|
|
211
|
+
};
|
|
212
|
+
response: {
|
|
213
|
+
found: boolean;
|
|
214
|
+
result?: IArchivePruneResult;
|
|
215
|
+
};
|
|
216
|
+
}
|