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
TypeScript
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>;
}