mirror of
https://github.com/gristlabs/grist-core.git
synced 2024-10-27 20:44:07 +00:00
24e76b4abc
Summary: This adds a snapshots/remove and states/remove endpoint, primarily for maintenance work rather than for the end user. If some secret gets into document history, it is useful to be able to purge it in an orderly way. Test Plan: added tests Reviewers: dsagal Reviewed By: dsagal Differential Revision: https://phab.getgrist.com/D2694
38 lines
2.0 KiB
TypeScript
38 lines
2.0 KiB
TypeScript
import {DocEntry} from 'app/common/DocListAPI';
|
|
import {DocSnapshots} from 'app/common/DocSnapshot';
|
|
import {DocReplacementOptions} from 'app/common/UserAPI';
|
|
import {OptDocSession} from 'app/server/lib/DocSession';
|
|
|
|
export interface IDocStorageManager {
|
|
getPath(docName: string): string;
|
|
getSampleDocPath(sampleDocName: string): string|null;
|
|
getCanonicalDocName(altDocName: string): Promise<string>;
|
|
|
|
// This method must not be called for the same docName twice in parallel.
|
|
// In the current implementation, it is called in the context of an
|
|
// AsyncCreate[docName].
|
|
prepareLocalDoc(docName: string, docSession: OptDocSession): Promise<boolean>;
|
|
|
|
listDocs(): Promise<DocEntry[]>;
|
|
deleteDoc(docName: string, deletePermanently?: boolean): Promise<void>;
|
|
renameDoc(oldName: string, newName: string): Promise<void>;
|
|
makeBackup(docName: string, backupTag: string): Promise<string>;
|
|
showItemInFolder(docName: string): Promise<void>;
|
|
closeStorage(): Promise<void>;
|
|
closeDocument(docName: string): Promise<void>;
|
|
// Mark document as needing a backup (due to edits, migrations, etc).
|
|
// If reason is set to 'edit' the user-facing timestamp on the document should be updated.
|
|
markAsChanged(docName: string, reason?: 'edit'): void;
|
|
testReopenStorage(): void; // restart storage during tests
|
|
addToStorage(docName: string): void; // add a new local document to storage
|
|
prepareToCloseStorage(): void; // speed up sync with remote store
|
|
getCopy(docName: string): Promise<string>; // get an immutable copy of a document
|
|
|
|
flushDoc(docName: string): Promise<void>; // flush a document to persistent storage
|
|
// If skipMetadataCache is set, then any caching of snapshots lists should be skipped.
|
|
// Metadata may not be returned in this case.
|
|
getSnapshots(docName: string, skipMetadataCache?: boolean): Promise<DocSnapshots>;
|
|
removeSnapshots(docName: string, snapshotIds: string[]): Promise<void>;
|
|
replace(docName: string, options: DocReplacementOptions): Promise<void>;
|
|
}
|