UNPKG

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.

65 lines (64 loc) 3.25 kB
import { Client, Databases, Storage, type Models } from "node-appwrite"; import { type AppwriteConfig, type AppwriteFunction, type Specification } from "appwrite-utils"; import { type AfterImportActions, type ConverterFunctions, type ValidationRules } from "appwrite-utils"; import { type TransferOptions } from "./migrations/transfer.js"; export interface SetupOptions { databases?: Models.Database[]; collections?: string[]; doBackup?: boolean; wipeDatabase?: boolean; wipeCollections?: boolean; wipeDocumentStorage?: boolean; wipeUsers?: boolean; transferUsers?: boolean; generateSchemas?: boolean; importData?: boolean; checkDuplicates?: boolean; shouldWriteFile?: boolean; } export declare class UtilsController { private appwriteFolderPath?; private appwriteConfigPath?; config?: AppwriteConfig; appwriteServer?: Client; database?: Databases; storage?: Storage; converterDefinitions: ConverterFunctions; validityRuleDefinitions: ValidationRules; afterImportActionsDefinitions: AfterImportActions; constructor(currentUserDir: string, directConfig?: { appwriteEndpoint?: string; appwriteProject?: string; appwriteKey?: string; }); init(): Promise<void>; reloadConfig(): Promise<void>; setupMigrationDatabase(): Promise<void>; ensureDatabaseConfigBucketsExist(databases?: Models.Database[]): Promise<void>; ensureDatabasesExist(databases?: Models.Database[]): Promise<void>; ensureCollectionsExist(database: Models.Database, collections?: Models.Collection[]): Promise<void>; getDatabasesByIds(ids: string[]): Promise<Models.Database[] | undefined>; wipeOtherDatabases(databasesToKeep: Models.Database[]): Promise<void>; wipeUsers(): Promise<void>; backupDatabase(database: Models.Database): Promise<void>; listAllFunctions(): Promise<Models.Function[]>; findFunctionDirectories(): Promise<Map<any, any>>; deployFunction(functionName: string, functionPath?: string, functionConfig?: AppwriteFunction): Promise<void>; syncFunctions(): Promise<void>; wipeDatabase(database: Models.Database, wipeBucket?: boolean): Promise<void>; wipeBucketFromDatabase(database: Models.Database): Promise<void>; wipeCollection(database: Models.Database, collection: Models.Collection): Promise<void>; wipeDocumentStorage(bucketId: string): Promise<void>; createOrUpdateCollectionsForDatabases(databases: Models.Database[], collections?: Models.Collection[]): Promise<void>; createOrUpdateCollections(database: Models.Database, deletedCollections?: { collectionId: string; collectionName: string; }[], collections?: Models.Collection[]): Promise<void>; generateSchemas(): Promise<void>; importData(options?: SetupOptions): Promise<void>; synchronizeConfigurations(databases?: Models.Database[], config?: AppwriteConfig): Promise<void>; syncDb(databases?: Models.Database[], collections?: Models.Collection[]): Promise<void>; getAppwriteFolderPath(): string | undefined; transferData(options: TransferOptions): Promise<void>; updateFunctionSpecifications(functionId: string, specification: Specification): Promise<void>; }