appwrite-utils-cli
Version:
Appwrite Utility Functions to help with database management, data conversion, data import, migrations, and much more. Meant to be used as a CLI tool, I do not recommend installing this in frontend environments.
61 lines (53 loc) • 1.65 kB
text/typescript
/**
* Schema for operation tracking table (_appwrite_operations)
*
* This table is created dynamically in each database to track long-running operations
* like imports, exports, transfers, and backups.
*/
import { z } from "zod";
export interface OperationRecord {
$id: string;
$createdAt: string;
$updatedAt: string;
operationType: string; // 'import', 'export', 'transfer', 'backup', etc.
targetCollection?: string; // Optional: which collection is being operated on
status: OperationStatus;
progress: number; // Current progress count
total: number; // Total items to process
data?: any; // Optional: serialized operation data
error?: string; // Optional: error message if failed
}
export type OperationStatus =
| 'pending'
| 'in_progress'
| 'completed'
| 'failed'
| 'cancelled';
export const OPERATION_STATUSES = [
'pending',
'in_progress',
'completed',
'failed',
'cancelled'
] as const;
export const OperationStatusSchema = z.enum([
'pending',
'in_progress',
'completed',
'failed',
'cancelled'
]);
export const OperationRecordSchema = z.object({
$id: z.string(),
$createdAt: z.string(),
$updatedAt: z.string(),
operationType: z.string(),
targetCollection: z.string().optional(),
status: OperationStatusSchema,
progress: z.number(),
total: z.number(),
data: z.any().optional(),
error: z.string().optional()
});
export const OPERATIONS_TABLE_ID = "_appwrite_operations";
export const OPERATIONS_TABLE_NAME = "Operations Tracking";