mirror of
https://github.com/gristlabs/grist-core.git
synced 2024-10-27 20:44:07 +00:00
71519d9e5c
Summary: Deliberate changes: * save snapshots to s3 prior to migrations. * label migration snapshots in s3 metadata. * avoid pruning migration snapshots for a month. Opportunistic changes: * Associate document timezone with snapshots, so pruning can respect timezones. * Associate actionHash/Num with snapshots. * Record time of last change in snapshots (rather than just s3 upload time, which could be a while later). This ended up being a biggish change, because there was nowhere ideal to put tags (list of possibilities in diff). Test Plan: added tests Reviewers: dsagal Reviewed By: dsagal Differential Revision: https://phab.getgrist.com/D2646
38 lines
878 B
TypeScript
38 lines
878 B
TypeScript
/**
|
|
* Core metadata about a single document version.
|
|
*/
|
|
export interface ObjSnapshot {
|
|
lastModified: string;
|
|
snapshotId: string;
|
|
}
|
|
|
|
/**
|
|
* Extended Grist metadata about a single document version. Names of fields are kept
|
|
* short since there is a tight limit on total metadata size in S3.
|
|
*/
|
|
export interface ObjMetadata {
|
|
t?: string; // timestamp
|
|
tz?: string; // timezone
|
|
h?: string; // actionHash
|
|
n?: number; // actionNum
|
|
label?: string;
|
|
}
|
|
|
|
export interface ObjSnapshotWithMetadata extends ObjSnapshot {
|
|
metadata?: ObjMetadata;
|
|
}
|
|
|
|
/**
|
|
* Information about a single document snapshot in S3, including a Grist docId.
|
|
*/
|
|
export interface DocSnapshot extends ObjSnapshotWithMetadata {
|
|
docId: string;
|
|
}
|
|
|
|
/**
|
|
* A collection of document snapshots. Most recent snapshots first.
|
|
*/
|
|
export interface DocSnapshots {
|
|
snapshots: DocSnapshot[];
|
|
}
|