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.
843 lines (842 loc) • 32.9 kB
TypeScript
import { z } from "zod";
export declare const BackupSchema: z.ZodObject<{
$id: z.ZodString;
$createdAt: z.ZodString;
$updatedAt: z.ZodString;
database: z.ZodString;
collections: z.ZodArray<z.ZodString>;
documents: z.ZodDefault<z.ZodArray<z.ZodObject<{
collectionId: z.ZodString;
data: z.ZodString;
}, z.core.$strip>>>;
}, z.core.$strip>;
export type Backup = z.infer<typeof BackupSchema>;
export declare const BackupCreateSchema: z.ZodObject<{
documents: z.ZodDefault<z.ZodArray<z.ZodObject<{
collectionId: z.ZodString;
data: z.ZodString;
}, z.core.$strip>>>;
collections: z.ZodArray<z.ZodString>;
database: z.ZodString;
}, z.core.$strip>;
export type BackupCreate = z.infer<typeof BackupCreateSchema>;
export declare const BatchSchema: z.ZodObject<{
$id: z.ZodString;
$createdAt: z.ZodString;
$updatedAt: z.ZodString;
data: z.ZodString;
processed: z.ZodDefault<z.ZodBoolean>;
}, z.core.$strip>;
export type Batch = z.infer<typeof BatchSchema>;
export declare const BatchCreateSchema: z.ZodObject<{
data: z.ZodString;
processed: z.ZodDefault<z.ZodBoolean>;
}, z.core.$strip>;
export type BatchCreate = z.infer<typeof BatchCreateSchema>;
export declare const OperationSchema: z.ZodObject<{
$id: z.ZodString;
$createdAt: z.ZodString;
$updatedAt: z.ZodString;
operationType: z.ZodString;
collectionId: z.ZodString;
data: z.ZodAny;
batches: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString>>>;
progress: z.ZodNumber;
total: z.ZodNumber;
error: z.ZodString;
status: z.ZodDefault<z.ZodEnum<{
error: "error";
pending: "pending";
ready: "ready";
in_progress: "in_progress";
completed: "completed";
cancelled: "cancelled";
}>>;
}, z.core.$strip>;
export type Operation = z.infer<typeof OperationSchema>;
export declare const OperationCreateSchema: z.ZodObject<{
error: z.ZodString;
data: z.ZodAny;
status: z.ZodDefault<z.ZodEnum<{
error: "error";
pending: "pending";
ready: "ready";
in_progress: "in_progress";
completed: "completed";
cancelled: "cancelled";
}>>;
collectionId: z.ZodString;
operationType: z.ZodString;
batches: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString>>>;
progress: z.ZodNumber;
total: z.ZodNumber;
}, z.core.$strip>;
export type OperationCreate = z.infer<typeof OperationCreateSchema>;
export declare const getMigrationCollectionSchemas: () => {
CurrentOperations: {
collection: {
name: string;
attributes: ({
key: string;
required: boolean;
type: "string";
size: number;
array?: boolean | undefined;
format?: string | undefined;
status?: string | undefined;
attributes?: string[] | undefined;
orders?: string[] | undefined;
$createdAt?: string | undefined;
$updatedAt?: string | undefined;
error?: string | undefined;
xdefault?: string | null | undefined;
encrypt?: boolean | undefined;
} | {
key: string;
required: boolean;
type: "integer";
array?: boolean | undefined;
format?: string | undefined;
status?: string | undefined;
attributes?: string[] | undefined;
orders?: string[] | undefined;
$createdAt?: string | undefined;
$updatedAt?: string | undefined;
error?: string | undefined;
min?: number | undefined;
max?: number | undefined;
xdefault?: number | null | undefined;
} | {
key: string;
required: boolean;
type: "double";
array?: boolean | undefined;
format?: string | undefined;
status?: string | undefined;
attributes?: string[] | undefined;
orders?: string[] | undefined;
$createdAt?: string | undefined;
$updatedAt?: string | undefined;
error?: string | undefined;
min?: number | undefined;
max?: number | undefined;
xdefault?: number | null | undefined;
} | {
key: string;
required: boolean;
type: "float";
array?: boolean | undefined;
format?: string | undefined;
status?: string | undefined;
attributes?: string[] | undefined;
orders?: string[] | undefined;
$createdAt?: string | undefined;
$updatedAt?: string | undefined;
error?: string | undefined;
min?: number | undefined;
max?: number | undefined;
xdefault?: number | null | undefined;
} | {
key: string;
required: boolean;
type: "boolean";
array?: boolean | undefined;
format?: string | undefined;
status?: string | undefined;
attributes?: string[] | undefined;
orders?: string[] | undefined;
$createdAt?: string | undefined;
$updatedAt?: string | undefined;
error?: string | undefined;
xdefault?: boolean | null | undefined;
} | {
key: string;
required: boolean;
type: "datetime";
array?: boolean | undefined;
format?: string | undefined;
status?: string | undefined;
attributes?: string[] | undefined;
orders?: string[] | undefined;
$createdAt?: string | undefined;
$updatedAt?: string | undefined;
error?: string | undefined;
xdefault?: string | null | undefined;
} | {
key: string;
required: boolean;
type: "email";
array?: boolean | undefined;
format?: string | undefined;
status?: string | undefined;
attributes?: string[] | undefined;
orders?: string[] | undefined;
$createdAt?: string | undefined;
$updatedAt?: string | undefined;
error?: string | undefined;
xdefault?: string | null | undefined;
} | {
key: string;
required: boolean;
type: "ip";
array?: boolean | undefined;
format?: string | undefined;
status?: string | undefined;
attributes?: string[] | undefined;
orders?: string[] | undefined;
$createdAt?: string | undefined;
$updatedAt?: string | undefined;
error?: string | undefined;
xdefault?: string | null | undefined;
} | {
key: string;
required: boolean;
type: "url";
array?: boolean | undefined;
format?: string | undefined;
status?: string | undefined;
attributes?: string[] | undefined;
orders?: string[] | undefined;
$createdAt?: string | undefined;
$updatedAt?: string | undefined;
error?: string | undefined;
xdefault?: string | null | undefined;
} | {
key: string;
required: boolean;
type: "enum";
elements: string[];
array?: boolean | undefined;
format?: string | undefined;
status?: string | undefined;
attributes?: string[] | undefined;
orders?: string[] | undefined;
$createdAt?: string | undefined;
$updatedAt?: string | undefined;
error?: string | undefined;
xdefault?: string | null | undefined;
} | {
key: string;
required: boolean;
type: "relationship";
relatedCollection: string;
relationType: "oneToMany" | "manyToOne" | "oneToOne" | "manyToMany";
twoWay: boolean;
onDelete: "setNull" | "cascade" | "restrict";
array?: boolean | undefined;
format?: string | undefined;
status?: string | undefined;
attributes?: string[] | undefined;
orders?: string[] | undefined;
$createdAt?: string | undefined;
$updatedAt?: string | undefined;
error?: string | undefined;
twoWayKey?: string | undefined;
side?: "parent" | "child" | undefined;
importMapping?: {
originalIdField: string;
targetField?: string | undefined;
} | undefined;
})[];
$permissions: {
permission: string;
target: string;
}[];
indexes: {
key: string;
type: "key" | "unique" | "fulltext";
attributes: string[];
status?: string | undefined;
error?: string | undefined;
orders?: string[] | undefined;
}[];
importDefs: {
filePath: string;
primaryKeyField: string;
attributeMappings: {
targetKey: string;
oldKey?: string | undefined;
oldKeys?: string[] | undefined;
valueToSet?: any;
fileData?: {
name: string;
path: string;
} | undefined;
converters?: string[] | undefined;
validationActions?: {
action: string;
params: string[];
}[] | undefined;
postImportActions?: {
action: string;
params: (string | Record<string, any>)[];
}[] | undefined;
}[];
type?: "create" | "update" | undefined;
basePath?: string | undefined;
idMappings?: {
sourceField: string;
targetField: string;
targetCollection: string;
fieldToSet?: string | undefined;
targetFieldToMatch?: string | undefined;
}[] | undefined;
createUsers?: boolean | null | undefined;
updateMapping?: {
originalIdField: string;
targetField: string;
} | undefined;
}[];
$id?: string | undefined;
enabled?: boolean | undefined;
documentSecurity?: boolean | undefined;
databaseId?: string | undefined;
databaseIds?: string[] | undefined;
};
attributes: ({
key: string;
required: boolean;
type: "string";
size: number;
array?: boolean | undefined;
format?: string | undefined;
status?: string | undefined;
attributes?: string[] | undefined;
orders?: string[] | undefined;
$createdAt?: string | undefined;
$updatedAt?: string | undefined;
error?: string | undefined;
xdefault?: string | null | undefined;
encrypt?: boolean | undefined;
} | {
key: string;
required: boolean;
type: "integer";
array?: boolean | undefined;
format?: string | undefined;
status?: string | undefined;
attributes?: string[] | undefined;
orders?: string[] | undefined;
$createdAt?: string | undefined;
$updatedAt?: string | undefined;
error?: string | undefined;
min?: number | undefined;
max?: number | undefined;
xdefault?: number | null | undefined;
} | {
key: string;
required: boolean;
type: "double";
array?: boolean | undefined;
format?: string | undefined;
status?: string | undefined;
attributes?: string[] | undefined;
orders?: string[] | undefined;
$createdAt?: string | undefined;
$updatedAt?: string | undefined;
error?: string | undefined;
min?: number | undefined;
max?: number | undefined;
xdefault?: number | null | undefined;
} | {
key: string;
required: boolean;
type: "float";
array?: boolean | undefined;
format?: string | undefined;
status?: string | undefined;
attributes?: string[] | undefined;
orders?: string[] | undefined;
$createdAt?: string | undefined;
$updatedAt?: string | undefined;
error?: string | undefined;
min?: number | undefined;
max?: number | undefined;
xdefault?: number | null | undefined;
} | {
key: string;
required: boolean;
type: "boolean";
array?: boolean | undefined;
format?: string | undefined;
status?: string | undefined;
attributes?: string[] | undefined;
orders?: string[] | undefined;
$createdAt?: string | undefined;
$updatedAt?: string | undefined;
error?: string | undefined;
xdefault?: boolean | null | undefined;
} | {
key: string;
required: boolean;
type: "datetime";
array?: boolean | undefined;
format?: string | undefined;
status?: string | undefined;
attributes?: string[] | undefined;
orders?: string[] | undefined;
$createdAt?: string | undefined;
$updatedAt?: string | undefined;
error?: string | undefined;
xdefault?: string | null | undefined;
} | {
key: string;
required: boolean;
type: "email";
array?: boolean | undefined;
format?: string | undefined;
status?: string | undefined;
attributes?: string[] | undefined;
orders?: string[] | undefined;
$createdAt?: string | undefined;
$updatedAt?: string | undefined;
error?: string | undefined;
xdefault?: string | null | undefined;
} | {
key: string;
required: boolean;
type: "ip";
array?: boolean | undefined;
format?: string | undefined;
status?: string | undefined;
attributes?: string[] | undefined;
orders?: string[] | undefined;
$createdAt?: string | undefined;
$updatedAt?: string | undefined;
error?: string | undefined;
xdefault?: string | null | undefined;
} | {
key: string;
required: boolean;
type: "url";
array?: boolean | undefined;
format?: string | undefined;
status?: string | undefined;
attributes?: string[] | undefined;
orders?: string[] | undefined;
$createdAt?: string | undefined;
$updatedAt?: string | undefined;
error?: string | undefined;
xdefault?: string | null | undefined;
} | {
key: string;
required: boolean;
type: "enum";
elements: string[];
array?: boolean | undefined;
format?: string | undefined;
status?: string | undefined;
attributes?: string[] | undefined;
orders?: string[] | undefined;
$createdAt?: string | undefined;
$updatedAt?: string | undefined;
error?: string | undefined;
xdefault?: string | null | undefined;
} | {
key: string;
required: boolean;
type: "relationship";
relatedCollection: string;
relationType: "oneToMany" | "manyToOne" | "oneToOne" | "manyToMany";
twoWay: boolean;
onDelete: "setNull" | "cascade" | "restrict";
array?: boolean | undefined;
format?: string | undefined;
status?: string | undefined;
attributes?: string[] | undefined;
orders?: string[] | undefined;
$createdAt?: string | undefined;
$updatedAt?: string | undefined;
error?: string | undefined;
twoWayKey?: string | undefined;
side?: "parent" | "child" | undefined;
importMapping?: {
originalIdField: string;
targetField?: string | undefined;
} | undefined;
})[];
};
Batches: {
collection: {
name: string;
attributes: ({
key: string;
required: boolean;
type: "string";
size: number;
array?: boolean | undefined;
format?: string | undefined;
status?: string | undefined;
attributes?: string[] | undefined;
orders?: string[] | undefined;
$createdAt?: string | undefined;
$updatedAt?: string | undefined;
error?: string | undefined;
xdefault?: string | null | undefined;
encrypt?: boolean | undefined;
} | {
key: string;
required: boolean;
type: "integer";
array?: boolean | undefined;
format?: string | undefined;
status?: string | undefined;
attributes?: string[] | undefined;
orders?: string[] | undefined;
$createdAt?: string | undefined;
$updatedAt?: string | undefined;
error?: string | undefined;
min?: number | undefined;
max?: number | undefined;
xdefault?: number | null | undefined;
} | {
key: string;
required: boolean;
type: "double";
array?: boolean | undefined;
format?: string | undefined;
status?: string | undefined;
attributes?: string[] | undefined;
orders?: string[] | undefined;
$createdAt?: string | undefined;
$updatedAt?: string | undefined;
error?: string | undefined;
min?: number | undefined;
max?: number | undefined;
xdefault?: number | null | undefined;
} | {
key: string;
required: boolean;
type: "float";
array?: boolean | undefined;
format?: string | undefined;
status?: string | undefined;
attributes?: string[] | undefined;
orders?: string[] | undefined;
$createdAt?: string | undefined;
$updatedAt?: string | undefined;
error?: string | undefined;
min?: number | undefined;
max?: number | undefined;
xdefault?: number | null | undefined;
} | {
key: string;
required: boolean;
type: "boolean";
array?: boolean | undefined;
format?: string | undefined;
status?: string | undefined;
attributes?: string[] | undefined;
orders?: string[] | undefined;
$createdAt?: string | undefined;
$updatedAt?: string | undefined;
error?: string | undefined;
xdefault?: boolean | null | undefined;
} | {
key: string;
required: boolean;
type: "datetime";
array?: boolean | undefined;
format?: string | undefined;
status?: string | undefined;
attributes?: string[] | undefined;
orders?: string[] | undefined;
$createdAt?: string | undefined;
$updatedAt?: string | undefined;
error?: string | undefined;
xdefault?: string | null | undefined;
} | {
key: string;
required: boolean;
type: "email";
array?: boolean | undefined;
format?: string | undefined;
status?: string | undefined;
attributes?: string[] | undefined;
orders?: string[] | undefined;
$createdAt?: string | undefined;
$updatedAt?: string | undefined;
error?: string | undefined;
xdefault?: string | null | undefined;
} | {
key: string;
required: boolean;
type: "ip";
array?: boolean | undefined;
format?: string | undefined;
status?: string | undefined;
attributes?: string[] | undefined;
orders?: string[] | undefined;
$createdAt?: string | undefined;
$updatedAt?: string | undefined;
error?: string | undefined;
xdefault?: string | null | undefined;
} | {
key: string;
required: boolean;
type: "url";
array?: boolean | undefined;
format?: string | undefined;
status?: string | undefined;
attributes?: string[] | undefined;
orders?: string[] | undefined;
$createdAt?: string | undefined;
$updatedAt?: string | undefined;
error?: string | undefined;
xdefault?: string | null | undefined;
} | {
key: string;
required: boolean;
type: "enum";
elements: string[];
array?: boolean | undefined;
format?: string | undefined;
status?: string | undefined;
attributes?: string[] | undefined;
orders?: string[] | undefined;
$createdAt?: string | undefined;
$updatedAt?: string | undefined;
error?: string | undefined;
xdefault?: string | null | undefined;
} | {
key: string;
required: boolean;
type: "relationship";
relatedCollection: string;
relationType: "oneToMany" | "manyToOne" | "oneToOne" | "manyToMany";
twoWay: boolean;
onDelete: "setNull" | "cascade" | "restrict";
array?: boolean | undefined;
format?: string | undefined;
status?: string | undefined;
attributes?: string[] | undefined;
orders?: string[] | undefined;
$createdAt?: string | undefined;
$updatedAt?: string | undefined;
error?: string | undefined;
twoWayKey?: string | undefined;
side?: "parent" | "child" | undefined;
importMapping?: {
originalIdField: string;
targetField?: string | undefined;
} | undefined;
})[];
$permissions: {
permission: string;
target: string;
}[];
indexes: {
key: string;
type: "key" | "unique" | "fulltext";
attributes: string[];
status?: string | undefined;
error?: string | undefined;
orders?: string[] | undefined;
}[];
importDefs: {
filePath: string;
primaryKeyField: string;
attributeMappings: {
targetKey: string;
oldKey?: string | undefined;
oldKeys?: string[] | undefined;
valueToSet?: any;
fileData?: {
name: string;
path: string;
} | undefined;
converters?: string[] | undefined;
validationActions?: {
action: string;
params: string[];
}[] | undefined;
postImportActions?: {
action: string;
params: (string | Record<string, any>)[];
}[] | undefined;
}[];
type?: "create" | "update" | undefined;
basePath?: string | undefined;
idMappings?: {
sourceField: string;
targetField: string;
targetCollection: string;
fieldToSet?: string | undefined;
targetFieldToMatch?: string | undefined;
}[] | undefined;
createUsers?: boolean | null | undefined;
updateMapping?: {
originalIdField: string;
targetField: string;
} | undefined;
}[];
$id?: string | undefined;
enabled?: boolean | undefined;
documentSecurity?: boolean | undefined;
databaseId?: string | undefined;
databaseIds?: string[] | undefined;
};
attributes: ({
key: string;
required: boolean;
type: "string";
size: number;
array?: boolean | undefined;
format?: string | undefined;
status?: string | undefined;
attributes?: string[] | undefined;
orders?: string[] | undefined;
$createdAt?: string | undefined;
$updatedAt?: string | undefined;
error?: string | undefined;
xdefault?: string | null | undefined;
encrypt?: boolean | undefined;
} | {
key: string;
required: boolean;
type: "integer";
array?: boolean | undefined;
format?: string | undefined;
status?: string | undefined;
attributes?: string[] | undefined;
orders?: string[] | undefined;
$createdAt?: string | undefined;
$updatedAt?: string | undefined;
error?: string | undefined;
min?: number | undefined;
max?: number | undefined;
xdefault?: number | null | undefined;
} | {
key: string;
required: boolean;
type: "double";
array?: boolean | undefined;
format?: string | undefined;
status?: string | undefined;
attributes?: string[] | undefined;
orders?: string[] | undefined;
$createdAt?: string | undefined;
$updatedAt?: string | undefined;
error?: string | undefined;
min?: number | undefined;
max?: number | undefined;
xdefault?: number | null | undefined;
} | {
key: string;
required: boolean;
type: "float";
array?: boolean | undefined;
format?: string | undefined;
status?: string | undefined;
attributes?: string[] | undefined;
orders?: string[] | undefined;
$createdAt?: string | undefined;
$updatedAt?: string | undefined;
error?: string | undefined;
min?: number | undefined;
max?: number | undefined;
xdefault?: number | null | undefined;
} | {
key: string;
required: boolean;
type: "boolean";
array?: boolean | undefined;
format?: string | undefined;
status?: string | undefined;
attributes?: string[] | undefined;
orders?: string[] | undefined;
$createdAt?: string | undefined;
$updatedAt?: string | undefined;
error?: string | undefined;
xdefault?: boolean | null | undefined;
} | {
key: string;
required: boolean;
type: "datetime";
array?: boolean | undefined;
format?: string | undefined;
status?: string | undefined;
attributes?: string[] | undefined;
orders?: string[] | undefined;
$createdAt?: string | undefined;
$updatedAt?: string | undefined;
error?: string | undefined;
xdefault?: string | null | undefined;
} | {
key: string;
required: boolean;
type: "email";
array?: boolean | undefined;
format?: string | undefined;
status?: string | undefined;
attributes?: string[] | undefined;
orders?: string[] | undefined;
$createdAt?: string | undefined;
$updatedAt?: string | undefined;
error?: string | undefined;
xdefault?: string | null | undefined;
} | {
key: string;
required: boolean;
type: "ip";
array?: boolean | undefined;
format?: string | undefined;
status?: string | undefined;
attributes?: string[] | undefined;
orders?: string[] | undefined;
$createdAt?: string | undefined;
$updatedAt?: string | undefined;
error?: string | undefined;
xdefault?: string | null | undefined;
} | {
key: string;
required: boolean;
type: "url";
array?: boolean | undefined;
format?: string | undefined;
status?: string | undefined;
attributes?: string[] | undefined;
orders?: string[] | undefined;
$createdAt?: string | undefined;
$updatedAt?: string | undefined;
error?: string | undefined;
xdefault?: string | null | undefined;
} | {
key: string;
required: boolean;
type: "enum";
elements: string[];
array?: boolean | undefined;
format?: string | undefined;
status?: string | undefined;
attributes?: string[] | undefined;
orders?: string[] | undefined;
$createdAt?: string | undefined;
$updatedAt?: string | undefined;
error?: string | undefined;
xdefault?: string | null | undefined;
} | {
key: string;
required: boolean;
type: "relationship";
relatedCollection: string;
relationType: "oneToMany" | "manyToOne" | "oneToOne" | "manyToMany";
twoWay: boolean;
onDelete: "setNull" | "cascade" | "restrict";
array?: boolean | undefined;
format?: string | undefined;
status?: string | undefined;
attributes?: string[] | undefined;
orders?: string[] | undefined;
$createdAt?: string | undefined;
$updatedAt?: string | undefined;
error?: string | undefined;
twoWayKey?: string | undefined;
side?: "parent" | "child" | undefined;
importMapping?: {
originalIdField: string;
targetField?: string | undefined;
} | undefined;
})[];
};
};