@njdamstra/appwrite-utils-cli 1.8.9 → 1.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (285) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/CONFIG_TODO.md +1189 -0
  3. package/SELECTION_DIALOGS.md +146 -0
  4. package/SERVICE_IMPLEMENTATION_REPORT.md +462 -0
  5. package/dist/adapters/index.d.ts +7 -8
  6. package/dist/adapters/index.js +7 -9
  7. package/dist/backups/operations/bucketBackup.js +2 -2
  8. package/dist/backups/operations/collectionBackup.d.ts +1 -1
  9. package/dist/backups/operations/collectionBackup.js +3 -3
  10. package/dist/backups/operations/comprehensiveBackup.d.ts +1 -1
  11. package/dist/backups/operations/comprehensiveBackup.js +2 -2
  12. package/dist/backups/tracking/centralizedTracking.d.ts +1 -1
  13. package/dist/backups/tracking/centralizedTracking.js +2 -2
  14. package/dist/cli/commands/configCommands.js +51 -7
  15. package/dist/cli/commands/databaseCommands.d.ts +1 -0
  16. package/dist/cli/commands/databaseCommands.js +119 -9
  17. package/dist/cli/commands/functionCommands.js +3 -3
  18. package/dist/cli/commands/importFileCommands.d.ts +7 -0
  19. package/dist/cli/commands/importFileCommands.js +674 -0
  20. package/dist/cli/commands/schemaCommands.js +3 -3
  21. package/dist/cli/commands/storageCommands.js +2 -3
  22. package/dist/cli/commands/transferCommands.js +3 -5
  23. package/dist/collections/attributes.d.ts +1 -1
  24. package/dist/collections/attributes.js +85 -35
  25. package/dist/collections/indexes.js +2 -4
  26. package/dist/collections/methods.d.ts +1 -1
  27. package/dist/collections/methods.js +111 -192
  28. package/dist/collections/tableOperations.d.ts +1 -0
  29. package/dist/collections/tableOperations.js +90 -23
  30. package/dist/collections/transferOperations.d.ts +1 -1
  31. package/dist/collections/transferOperations.js +3 -4
  32. package/dist/collections/wipeOperations.d.ts +4 -3
  33. package/dist/collections/wipeOperations.js +112 -39
  34. package/dist/databases/methods.js +2 -2
  35. package/dist/databases/setup.js +2 -2
  36. package/dist/examples/yamlTerminologyExample.js +2 -2
  37. package/dist/functions/deployments.d.ts +1 -1
  38. package/dist/functions/deployments.js +5 -5
  39. package/dist/functions/fnConfigDiscovery.js +2 -2
  40. package/dist/functions/methods.js +16 -4
  41. package/dist/init.js +1 -1
  42. package/dist/interactiveCLI.d.ts +6 -1
  43. package/dist/interactiveCLI.js +64 -10
  44. package/dist/main.js +130 -177
  45. package/dist/migrations/afterImportActions.js +2 -3
  46. package/dist/migrations/appwriteToX.d.ts +97 -1
  47. package/dist/migrations/appwriteToX.js +9 -7
  48. package/dist/migrations/comprehensiveTransfer.js +3 -5
  49. package/dist/migrations/dataLoader.d.ts +194 -2
  50. package/dist/migrations/dataLoader.js +2 -5
  51. package/dist/migrations/importController.js +3 -4
  52. package/dist/migrations/importDataActions.js +3 -3
  53. package/dist/migrations/relationships.js +1 -2
  54. package/dist/migrations/services/DataTransformationService.js +2 -2
  55. package/dist/migrations/services/FileHandlerService.js +1 -1
  56. package/dist/migrations/services/ImportOrchestrator.js +4 -4
  57. package/dist/migrations/services/RateLimitManager.js +1 -1
  58. package/dist/migrations/services/RelationshipResolver.js +1 -1
  59. package/dist/migrations/services/UserMappingService.js +1 -1
  60. package/dist/migrations/services/ValidationService.js +1 -1
  61. package/dist/migrations/transfer.d.ts +8 -4
  62. package/dist/migrations/transfer.js +106 -55
  63. package/dist/migrations/yaml/YamlImportConfigLoader.js +1 -1
  64. package/dist/migrations/yaml/YamlImportIntegration.js +2 -2
  65. package/dist/migrations/yaml/generateImportSchemas.js +1 -1
  66. package/dist/setupCommands.d.ts +1 -1
  67. package/dist/setupCommands.js +5 -6
  68. package/dist/setupController.js +1 -1
  69. package/dist/shared/backupTracking.d.ts +1 -1
  70. package/dist/shared/backupTracking.js +2 -2
  71. package/dist/shared/confirmationDialogs.js +1 -1
  72. package/dist/shared/migrationHelpers.d.ts +1 -1
  73. package/dist/shared/migrationHelpers.js +3 -3
  74. package/dist/shared/operationQueue.d.ts +1 -1
  75. package/dist/shared/operationQueue.js +2 -3
  76. package/dist/shared/operationsTable.d.ts +1 -1
  77. package/dist/shared/operationsTable.js +2 -2
  78. package/dist/shared/progressManager.js +1 -1
  79. package/dist/shared/selectionDialogs.js +9 -8
  80. package/dist/storage/methods.js +4 -4
  81. package/dist/storage/schemas.d.ts +386 -2
  82. package/dist/tables/indexManager.d.ts +65 -0
  83. package/dist/tables/indexManager.js +294 -0
  84. package/dist/types.d.ts +2 -2
  85. package/dist/types.js +1 -1
  86. package/dist/users/methods.js +2 -3
  87. package/dist/utils/configMigration.js +1 -1
  88. package/dist/utils/index.d.ts +1 -1
  89. package/dist/utils/index.js +1 -1
  90. package/dist/utils/loadConfigs.d.ts +2 -2
  91. package/dist/utils/loadConfigs.js +6 -7
  92. package/dist/utils/setupFiles.js +5 -7
  93. package/dist/utilsController.d.ts +15 -8
  94. package/dist/utilsController.js +57 -28
  95. package/package.json +8 -4
  96. package/src/adapters/index.ts +8 -34
  97. package/src/backups/operations/bucketBackup.ts +2 -2
  98. package/src/backups/operations/collectionBackup.ts +4 -4
  99. package/src/backups/operations/comprehensiveBackup.ts +3 -3
  100. package/src/backups/tracking/centralizedTracking.ts +3 -3
  101. package/src/cli/commands/configCommands.ts +72 -8
  102. package/src/cli/commands/databaseCommands.ts +161 -9
  103. package/src/cli/commands/functionCommands.ts +4 -3
  104. package/src/cli/commands/importFileCommands.ts +815 -0
  105. package/src/cli/commands/schemaCommands.ts +3 -3
  106. package/src/cli/commands/storageCommands.ts +2 -3
  107. package/src/cli/commands/transferCommands.ts +3 -6
  108. package/src/collections/attributes.ts +155 -39
  109. package/src/collections/indexes.ts +5 -7
  110. package/src/collections/methods.ts +115 -150
  111. package/src/collections/tableOperations.ts +92 -21
  112. package/src/collections/transferOperations.ts +4 -5
  113. package/src/collections/wipeOperations.ts +154 -51
  114. package/src/databases/methods.ts +2 -2
  115. package/src/databases/setup.ts +2 -2
  116. package/src/examples/yamlTerminologyExample.ts +2 -2
  117. package/src/functions/deployments.ts +6 -5
  118. package/src/functions/fnConfigDiscovery.ts +2 -2
  119. package/src/functions/methods.ts +19 -6
  120. package/src/init.ts +1 -1
  121. package/src/interactiveCLI.ts +78 -13
  122. package/src/main.ts +143 -287
  123. package/src/migrations/afterImportActions.ts +2 -3
  124. package/src/migrations/appwriteToX.ts +12 -8
  125. package/src/migrations/comprehensiveTransfer.ts +6 -6
  126. package/src/migrations/dataLoader.ts +2 -5
  127. package/src/migrations/importController.ts +3 -4
  128. package/src/migrations/importDataActions.ts +3 -3
  129. package/src/migrations/relationships.ts +1 -2
  130. package/src/migrations/services/DataTransformationService.ts +2 -2
  131. package/src/migrations/services/FileHandlerService.ts +1 -1
  132. package/src/migrations/services/ImportOrchestrator.ts +4 -4
  133. package/src/migrations/services/RateLimitManager.ts +1 -1
  134. package/src/migrations/services/RelationshipResolver.ts +1 -1
  135. package/src/migrations/services/UserMappingService.ts +1 -1
  136. package/src/migrations/services/ValidationService.ts +1 -1
  137. package/src/migrations/transfer.ts +126 -83
  138. package/src/migrations/yaml/YamlImportConfigLoader.ts +1 -1
  139. package/src/migrations/yaml/YamlImportIntegration.ts +2 -2
  140. package/src/migrations/yaml/generateImportSchemas.ts +1 -1
  141. package/src/setupCommands.ts +5 -6
  142. package/src/setupController.ts +1 -1
  143. package/src/shared/backupTracking.ts +3 -3
  144. package/src/shared/confirmationDialogs.ts +1 -1
  145. package/src/shared/migrationHelpers.ts +4 -4
  146. package/src/shared/operationQueue.ts +3 -4
  147. package/src/shared/operationsTable.ts +3 -3
  148. package/src/shared/progressManager.ts +1 -1
  149. package/src/shared/selectionDialogs.ts +9 -8
  150. package/src/storage/methods.ts +4 -4
  151. package/src/tables/indexManager.ts +409 -0
  152. package/src/types.ts +2 -2
  153. package/src/users/methods.ts +2 -3
  154. package/src/utils/configMigration.ts +1 -1
  155. package/src/utils/index.ts +1 -1
  156. package/src/utils/loadConfigs.ts +15 -7
  157. package/src/utils/setupFiles.ts +5 -7
  158. package/src/utilsController.ts +86 -32
  159. package/dist/adapters/AdapterFactory.d.ts +0 -94
  160. package/dist/adapters/AdapterFactory.js +0 -405
  161. package/dist/adapters/DatabaseAdapter.d.ts +0 -233
  162. package/dist/adapters/DatabaseAdapter.js +0 -50
  163. package/dist/adapters/LegacyAdapter.d.ts +0 -50
  164. package/dist/adapters/LegacyAdapter.js +0 -612
  165. package/dist/adapters/TablesDBAdapter.d.ts +0 -45
  166. package/dist/adapters/TablesDBAdapter.js +0 -571
  167. package/dist/config/ConfigManager.d.ts +0 -445
  168. package/dist/config/ConfigManager.js +0 -625
  169. package/dist/config/configMigration.d.ts +0 -87
  170. package/dist/config/configMigration.js +0 -390
  171. package/dist/config/configValidation.d.ts +0 -66
  172. package/dist/config/configValidation.js +0 -358
  173. package/dist/config/index.d.ts +0 -8
  174. package/dist/config/index.js +0 -7
  175. package/dist/config/services/ConfigDiscoveryService.d.ts +0 -126
  176. package/dist/config/services/ConfigDiscoveryService.js +0 -374
  177. package/dist/config/services/ConfigLoaderService.d.ts +0 -129
  178. package/dist/config/services/ConfigLoaderService.js +0 -540
  179. package/dist/config/services/ConfigMergeService.d.ts +0 -208
  180. package/dist/config/services/ConfigMergeService.js +0 -308
  181. package/dist/config/services/ConfigValidationService.d.ts +0 -214
  182. package/dist/config/services/ConfigValidationService.js +0 -310
  183. package/dist/config/services/SessionAuthService.d.ts +0 -225
  184. package/dist/config/services/SessionAuthService.js +0 -456
  185. package/dist/config/services/__tests__/ConfigMergeService.test.d.ts +0 -1
  186. package/dist/config/services/__tests__/ConfigMergeService.test.js +0 -271
  187. package/dist/config/services/index.d.ts +0 -13
  188. package/dist/config/services/index.js +0 -10
  189. package/dist/config/yamlConfig.d.ts +0 -722
  190. package/dist/config/yamlConfig.js +0 -702
  191. package/dist/functions/pathResolution.d.ts +0 -37
  192. package/dist/functions/pathResolution.js +0 -185
  193. package/dist/shared/attributeMapper.d.ts +0 -20
  194. package/dist/shared/attributeMapper.js +0 -203
  195. package/dist/shared/errorUtils.d.ts +0 -54
  196. package/dist/shared/errorUtils.js +0 -95
  197. package/dist/shared/functionManager.d.ts +0 -48
  198. package/dist/shared/functionManager.js +0 -336
  199. package/dist/shared/indexManager.d.ts +0 -24
  200. package/dist/shared/indexManager.js +0 -151
  201. package/dist/shared/jsonSchemaGenerator.d.ts +0 -50
  202. package/dist/shared/jsonSchemaGenerator.js +0 -290
  203. package/dist/shared/logging.d.ts +0 -61
  204. package/dist/shared/logging.js +0 -116
  205. package/dist/shared/messageFormatter.d.ts +0 -39
  206. package/dist/shared/messageFormatter.js +0 -162
  207. package/dist/shared/pydanticModelGenerator.d.ts +0 -17
  208. package/dist/shared/pydanticModelGenerator.js +0 -615
  209. package/dist/shared/schemaGenerator.d.ts +0 -40
  210. package/dist/shared/schemaGenerator.js +0 -556
  211. package/dist/utils/ClientFactory.d.ts +0 -87
  212. package/dist/utils/ClientFactory.js +0 -212
  213. package/dist/utils/configDiscovery.d.ts +0 -78
  214. package/dist/utils/configDiscovery.js +0 -472
  215. package/dist/utils/constantsGenerator.d.ts +0 -31
  216. package/dist/utils/constantsGenerator.js +0 -321
  217. package/dist/utils/dataConverters.d.ts +0 -46
  218. package/dist/utils/dataConverters.js +0 -139
  219. package/dist/utils/directoryUtils.d.ts +0 -22
  220. package/dist/utils/directoryUtils.js +0 -59
  221. package/dist/utils/getClientFromConfig.d.ts +0 -39
  222. package/dist/utils/getClientFromConfig.js +0 -199
  223. package/dist/utils/helperFunctions.d.ts +0 -63
  224. package/dist/utils/helperFunctions.js +0 -156
  225. package/dist/utils/pathResolvers.d.ts +0 -53
  226. package/dist/utils/pathResolvers.js +0 -72
  227. package/dist/utils/projectConfig.d.ts +0 -119
  228. package/dist/utils/projectConfig.js +0 -171
  229. package/dist/utils/retryFailedPromises.d.ts +0 -2
  230. package/dist/utils/retryFailedPromises.js +0 -23
  231. package/dist/utils/sessionAuth.d.ts +0 -48
  232. package/dist/utils/sessionAuth.js +0 -164
  233. package/dist/utils/typeGuards.d.ts +0 -35
  234. package/dist/utils/typeGuards.js +0 -57
  235. package/dist/utils/validationRules.d.ts +0 -43
  236. package/dist/utils/validationRules.js +0 -42
  237. package/dist/utils/versionDetection.d.ts +0 -58
  238. package/dist/utils/versionDetection.js +0 -251
  239. package/dist/utils/yamlConverter.d.ts +0 -100
  240. package/dist/utils/yamlConverter.js +0 -428
  241. package/dist/utils/yamlLoader.d.ts +0 -70
  242. package/dist/utils/yamlLoader.js +0 -267
  243. package/src/adapters/AdapterFactory.ts +0 -510
  244. package/src/adapters/DatabaseAdapter.ts +0 -306
  245. package/src/adapters/LegacyAdapter.ts +0 -841
  246. package/src/adapters/TablesDBAdapter.ts +0 -773
  247. package/src/config/ConfigManager.ts +0 -808
  248. package/src/config/README.md +0 -274
  249. package/src/config/configMigration.ts +0 -575
  250. package/src/config/configValidation.ts +0 -445
  251. package/src/config/index.ts +0 -10
  252. package/src/config/services/ConfigDiscoveryService.ts +0 -463
  253. package/src/config/services/ConfigLoaderService.ts +0 -740
  254. package/src/config/services/ConfigMergeService.ts +0 -388
  255. package/src/config/services/ConfigValidationService.ts +0 -394
  256. package/src/config/services/SessionAuthService.ts +0 -565
  257. package/src/config/services/__tests__/ConfigMergeService.test.ts +0 -351
  258. package/src/config/services/index.ts +0 -29
  259. package/src/config/yamlConfig.ts +0 -761
  260. package/src/functions/pathResolution.ts +0 -227
  261. package/src/shared/attributeMapper.ts +0 -229
  262. package/src/shared/errorUtils.ts +0 -110
  263. package/src/shared/functionManager.ts +0 -525
  264. package/src/shared/indexManager.ts +0 -254
  265. package/src/shared/jsonSchemaGenerator.ts +0 -383
  266. package/src/shared/logging.ts +0 -149
  267. package/src/shared/messageFormatter.ts +0 -208
  268. package/src/shared/pydanticModelGenerator.ts +0 -618
  269. package/src/shared/schemaGenerator.ts +0 -644
  270. package/src/utils/ClientFactory.ts +0 -240
  271. package/src/utils/configDiscovery.ts +0 -557
  272. package/src/utils/constantsGenerator.ts +0 -369
  273. package/src/utils/dataConverters.ts +0 -159
  274. package/src/utils/directoryUtils.ts +0 -61
  275. package/src/utils/getClientFromConfig.ts +0 -257
  276. package/src/utils/helperFunctions.ts +0 -228
  277. package/src/utils/pathResolvers.ts +0 -81
  278. package/src/utils/projectConfig.ts +0 -299
  279. package/src/utils/retryFailedPromises.ts +0 -29
  280. package/src/utils/sessionAuth.ts +0 -230
  281. package/src/utils/typeGuards.ts +0 -65
  282. package/src/utils/validationRules.ts +0 -88
  283. package/src/utils/versionDetection.ts +0 -292
  284. package/src/utils/yamlConverter.ts +0 -542
  285. package/src/utils/yamlLoader.ts +0 -371
@@ -1,722 +0,0 @@
1
- import { z } from "zod";
2
- import { type AppwriteConfig, type AppwriteFunction } from "@njdamstra/appwrite-utils";
3
- declare const YamlConfigSchema: z.ZodObject<{
4
- appwrite: z.ZodObject<{
5
- endpoint: z.ZodDefault<z.ZodString>;
6
- project: z.ZodString;
7
- key: z.ZodString;
8
- sessionCookie: z.ZodOptional<z.ZodString>;
9
- authMethod: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
10
- session: "session";
11
- apikey: "apikey";
12
- auto: "auto";
13
- }>>>;
14
- sessionMetadata: z.ZodOptional<z.ZodObject<{
15
- email: z.ZodOptional<z.ZodString>;
16
- expiresAt: z.ZodOptional<z.ZodString>;
17
- }, z.core.$strip>>;
18
- }, z.core.$strip>;
19
- logging: z.ZodDefault<z.ZodOptional<z.ZodObject<{
20
- enabled: z.ZodDefault<z.ZodBoolean>;
21
- level: z.ZodDefault<z.ZodEnum<{
22
- error: "error";
23
- info: "info";
24
- debug: "debug";
25
- warn: "warn";
26
- }>>;
27
- directory: z.ZodOptional<z.ZodString>;
28
- console: z.ZodDefault<z.ZodBoolean>;
29
- }, z.core.$strip>>>;
30
- backups: z.ZodDefault<z.ZodOptional<z.ZodObject<{
31
- enabled: z.ZodDefault<z.ZodBoolean>;
32
- interval: z.ZodDefault<z.ZodNumber>;
33
- retention: z.ZodDefault<z.ZodNumber>;
34
- cleanup: z.ZodDefault<z.ZodBoolean>;
35
- }, z.core.$strip>>>;
36
- data: z.ZodDefault<z.ZodOptional<z.ZodObject<{
37
- enableMockData: z.ZodDefault<z.ZodBoolean>;
38
- documentBucketId: z.ZodDefault<z.ZodString>;
39
- usersCollectionName: z.ZodDefault<z.ZodString>;
40
- importDirectory: z.ZodDefault<z.ZodString>;
41
- }, z.core.$strip>>>;
42
- schemas: z.ZodDefault<z.ZodOptional<z.ZodObject<{
43
- outputDirectory: z.ZodDefault<z.ZodString>;
44
- yamlSchemaDirectory: z.ZodDefault<z.ZodString>;
45
- collectionsDirectory: z.ZodDefault<z.ZodString>;
46
- tablesDirectory: z.ZodDefault<z.ZodString>;
47
- }, z.core.$strip>>>;
48
- migrations: z.ZodDefault<z.ZodOptional<z.ZodObject<{
49
- enabled: z.ZodDefault<z.ZodBoolean>;
50
- }, z.core.$strip>>>;
51
- databases: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
52
- id: z.ZodString;
53
- name: z.ZodString;
54
- bucket: z.ZodOptional<z.ZodObject<{
55
- id: z.ZodString;
56
- name: z.ZodString;
57
- permissions: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodObject<{
58
- permission: z.ZodString;
59
- target: z.ZodString;
60
- }, z.core.$strip>, z.ZodPipe<z.ZodString, z.ZodTransform<{
61
- permission: string;
62
- target: string;
63
- }, string>>]>>>;
64
- fileSecurity: z.ZodOptional<z.ZodBoolean>;
65
- enabled: z.ZodOptional<z.ZodBoolean>;
66
- maximumFileSize: z.ZodOptional<z.ZodNumber>;
67
- allowedFileExtensions: z.ZodOptional<z.ZodArray<z.ZodString>>;
68
- compression: z.ZodOptional<z.ZodEnum<{
69
- none: "none";
70
- gzip: "gzip";
71
- zstd: "zstd";
72
- }>>;
73
- encryption: z.ZodOptional<z.ZodBoolean>;
74
- antivirus: z.ZodOptional<z.ZodBoolean>;
75
- }, z.core.$strip>>;
76
- }, z.core.$strip>>>>;
77
- buckets: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
78
- id: z.ZodString;
79
- name: z.ZodString;
80
- permissions: z.ZodOptional<z.ZodArray<z.ZodUnion<[z.ZodObject<{
81
- permission: z.ZodString;
82
- target: z.ZodString;
83
- }, z.core.$strip>, z.ZodPipe<z.ZodString, z.ZodTransform<{
84
- permission: string;
85
- target: string;
86
- }, string>>]>>>;
87
- fileSecurity: z.ZodOptional<z.ZodBoolean>;
88
- enabled: z.ZodOptional<z.ZodBoolean>;
89
- maximumFileSize: z.ZodOptional<z.ZodNumber>;
90
- allowedFileExtensions: z.ZodOptional<z.ZodArray<z.ZodString>>;
91
- compression: z.ZodOptional<z.ZodEnum<{
92
- none: "none";
93
- gzip: "gzip";
94
- zstd: "zstd";
95
- }>>;
96
- encryption: z.ZodOptional<z.ZodBoolean>;
97
- antivirus: z.ZodOptional<z.ZodBoolean>;
98
- }, z.core.$strip>>>>;
99
- functions: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodObject<{
100
- id: z.ZodString;
101
- name: z.ZodString;
102
- runtime: any;
103
- execute: z.ZodOptional<z.ZodArray<z.ZodString>>;
104
- events: z.ZodOptional<z.ZodArray<z.ZodString>>;
105
- schedule: z.ZodOptional<z.ZodString>;
106
- timeout: z.ZodOptional<z.ZodNumber>;
107
- enabled: z.ZodOptional<z.ZodBoolean>;
108
- logging: z.ZodOptional<z.ZodBoolean>;
109
- entrypoint: z.ZodOptional<z.ZodString>;
110
- commands: z.ZodOptional<z.ZodString>;
111
- scopes: z.ZodOptional<z.ZodArray<z.ZodString & z.ZodType<"users.read" | "users.write" | "sessions.read" | "sessions.write" | "teams.read" | "teams.write" | "databases.read" | "databases.write" | "collections.read" | "collections.write" | "tables.read" | "tables.write" | "attributes.read" | "attributes.write" | "indexes.read" | "indexes.write" | "documents.read" | "documents.write" | "rows.read" | "rows.write" | "files.read" | "files.write" | "buckets.read" | "buckets.write" | "functions.read" | "functions.write" | "execution.read" | "execution.write" | "locale.read" | "avatars.read" | "health.read" | "rules.read" | "rules.write" | "migrations.read" | "migrations.write" | "sites.read" | "sites.write" | "log.read" | "log.write" | "tokens.read" | "tokens.write" | "vcs.read" | "vcs.write" | "assistant.read" | "messages.read" | "messages.write" | "targets.read" | "targets.write" | "providers.read" | "providers.write" | "topics.read" | "topics.write" | "subscribers.read" | "subscribers.write", string, z.core.$ZodTypeInternals<"users.read" | "users.write" | "sessions.read" | "sessions.write" | "teams.read" | "teams.write" | "databases.read" | "databases.write" | "collections.read" | "collections.write" | "tables.read" | "tables.write" | "attributes.read" | "attributes.write" | "indexes.read" | "indexes.write" | "documents.read" | "documents.write" | "rows.read" | "rows.write" | "files.read" | "files.write" | "buckets.read" | "buckets.write" | "functions.read" | "functions.write" | "execution.read" | "execution.write" | "locale.read" | "avatars.read" | "health.read" | "rules.read" | "rules.write" | "migrations.read" | "migrations.write" | "sites.read" | "sites.write" | "log.read" | "log.write" | "tokens.read" | "tokens.write" | "vcs.read" | "vcs.write" | "assistant.read" | "messages.read" | "messages.write" | "targets.read" | "targets.write" | "providers.read" | "providers.write" | "topics.read" | "topics.write" | "subscribers.read" | "subscribers.write", string>>>>;
112
- installationId: z.ZodOptional<z.ZodString>;
113
- providerRepositoryId: z.ZodOptional<z.ZodString>;
114
- providerBranch: z.ZodOptional<z.ZodString>;
115
- providerSilentMode: z.ZodOptional<z.ZodBoolean>;
116
- providerRootDirectory: z.ZodOptional<z.ZodString>;
117
- templateRepository: z.ZodOptional<z.ZodString>;
118
- templateOwner: z.ZodOptional<z.ZodString>;
119
- templateRootDirectory: z.ZodOptional<z.ZodString>;
120
- templateBranch: z.ZodOptional<z.ZodString>;
121
- specification: z.ZodOptional<z.ZodString & z.ZodType<"s-0.5vcpu-512mb" | "s-1vcpu-512mb" | "s-1vcpu-1gb" | "s-2vcpu-2gb" | "s-2vcpu-4gb" | "s-4vcpu-4gb" | "s-4vcpu-8gb" | "s-8vcpu-4gb" | "s-8vcpu-8gb", string, z.core.$ZodTypeInternals<"s-0.5vcpu-512mb" | "s-1vcpu-512mb" | "s-1vcpu-1gb" | "s-2vcpu-2gb" | "s-2vcpu-4gb" | "s-4vcpu-4gb" | "s-4vcpu-8gb" | "s-8vcpu-4gb" | "s-8vcpu-8gb", string>>>;
122
- dirPath: z.ZodOptional<z.ZodString>;
123
- predeployCommands: z.ZodOptional<z.ZodArray<z.ZodString>>;
124
- deployDir: z.ZodOptional<z.ZodString>;
125
- ignore: z.ZodOptional<z.ZodArray<z.ZodString>>;
126
- templateVersion: z.ZodOptional<z.ZodString>;
127
- }, z.core.$strip>>>>;
128
- }, z.core.$strip>;
129
- export type YamlConfig = z.infer<typeof YamlConfigSchema>;
130
- export declare const convertYamlToAppwriteConfig: (yamlConfig: YamlConfig) => AppwriteConfig;
131
- /**
132
- * Enhanced config loading with session authentication support
133
- * Supports session override options for preserving session state
134
- */
135
- export interface YamlSessionOptions {
136
- sessionCookie?: string;
137
- authMethod?: "session" | "apikey" | "auto";
138
- sessionMetadata?: {
139
- email?: string;
140
- expiresAt?: string;
141
- };
142
- }
143
- /**
144
- * Load YAML config with optional session preservation
145
- * Maintains authentication priority: explicit session > YAML file > system prefs
146
- */
147
- export declare const loadYamlConfigWithSession: (configPath: string, sessionOptions?: YamlSessionOptions) => Promise<AppwriteConfig | null>;
148
- export declare const loadYamlConfig: (configPath: string) => Promise<AppwriteConfig | null>;
149
- export declare const findYamlConfig: (startDir: string) => string | null;
150
- export declare const generateYamlConfigTemplate: (outputPath: string) => void;
151
- /**
152
- * Converts AppwriteConfig back to YAML format and writes to file
153
- * @param configPath Path to the YAML config file
154
- * @param config The AppwriteConfig to convert and save
155
- */
156
- export declare const writeYamlConfig: (configPath: string, config: AppwriteConfig) => Promise<void>;
157
- /**
158
- * Adds a new function to the YAML config file
159
- * @param configPath Path to the YAML config file
160
- * @param newFunction The function configuration to add
161
- */
162
- export declare const addFunctionToYamlConfig: (configPath: string, newFunction: AppwriteFunction) => Promise<void>;
163
- /**
164
- * Extract session options from AppwriteConfig for YAML operations
165
- * Useful for preserving session state during config reloads
166
- */
167
- export declare const extractSessionOptionsFromConfig: (config: AppwriteConfig) => YamlSessionOptions;
168
- /**
169
- * Create session-preserved YAML config operations
170
- * Maintains authentication state during config file updates
171
- */
172
- export declare const createSessionPreservingYamlConfig: (configPath: string, sessionOptions: YamlSessionOptions) => {
173
- load: () => Promise<{
174
- appwriteEndpoint: string;
175
- appwriteProject: string;
176
- appwriteKey: string;
177
- appwriteClient: any;
178
- authMethod: "session" | "apikey" | "auto";
179
- logging: {
180
- enabled: boolean;
181
- level: "error" | "warn" | "info" | "debug";
182
- console: boolean;
183
- logDirectory?: string | undefined;
184
- };
185
- enableBackups: boolean;
186
- backupInterval: number;
187
- backupRetention: number;
188
- enableBackupCleanup: boolean;
189
- enableMockData: boolean;
190
- documentBucketId: string;
191
- usersCollectionName: string;
192
- databases: {
193
- $id: string;
194
- name: string;
195
- bucket?: {
196
- $id: string;
197
- name: string;
198
- permissions?: ({
199
- permission: string;
200
- target: string;
201
- } | {
202
- permission: string;
203
- target: string;
204
- })[] | undefined;
205
- fileSecurity?: boolean | undefined;
206
- enabled?: boolean | undefined;
207
- maximumFileSize?: number | undefined;
208
- allowedFileExtensions?: string[] | undefined;
209
- compression?: "none" | "gzip" | "zstd" | undefined;
210
- encryption?: boolean | undefined;
211
- antivirus?: boolean | undefined;
212
- } | undefined;
213
- }[];
214
- buckets: {
215
- $id: string;
216
- name: string;
217
- permissions?: ({
218
- permission: string;
219
- target: string;
220
- } | {
221
- permission: string;
222
- target: string;
223
- })[] | undefined;
224
- fileSecurity?: boolean | undefined;
225
- enabled?: boolean | undefined;
226
- maximumFileSize?: number | undefined;
227
- allowedFileExtensions?: string[] | undefined;
228
- compression?: "none" | "gzip" | "zstd" | undefined;
229
- encryption?: boolean | undefined;
230
- antivirus?: boolean | undefined;
231
- }[];
232
- apiMode: "auto" | "legacy" | "tablesdb";
233
- sessionCookie?: string | undefined;
234
- sessionMetadata?: {
235
- email?: string | undefined;
236
- expiresAt?: string | undefined;
237
- } | undefined;
238
- collections?: {
239
- name: string;
240
- attributes: ({
241
- key: string;
242
- required: boolean;
243
- type: "integer";
244
- array?: boolean | undefined;
245
- format?: string | undefined;
246
- status?: string | undefined;
247
- attributes?: string[] | undefined;
248
- orders?: string[] | undefined;
249
- $createdAt?: string | undefined;
250
- $updatedAt?: string | undefined;
251
- error?: string | undefined;
252
- min?: number | undefined;
253
- max?: number | undefined;
254
- xdefault?: number | null | undefined;
255
- } | {
256
- key: string;
257
- required: boolean;
258
- type: "relationship";
259
- relatedCollection: string;
260
- relationType: "oneToMany" | "manyToOne" | "oneToOne" | "manyToMany";
261
- twoWay: boolean;
262
- onDelete: "setNull" | "cascade" | "restrict";
263
- array?: boolean | undefined;
264
- format?: string | undefined;
265
- status?: string | undefined;
266
- attributes?: string[] | undefined;
267
- orders?: string[] | undefined;
268
- $createdAt?: string | undefined;
269
- $updatedAt?: string | undefined;
270
- error?: string | undefined;
271
- twoWayKey?: string | undefined;
272
- side?: "parent" | "child" | undefined;
273
- importMapping?: {
274
- originalIdField: string;
275
- targetField?: string | undefined;
276
- } | undefined;
277
- } | {
278
- key: string;
279
- required: boolean;
280
- type: "string";
281
- size: number;
282
- array?: boolean | undefined;
283
- format?: string | undefined;
284
- status?: string | undefined;
285
- attributes?: string[] | undefined;
286
- orders?: string[] | undefined;
287
- $createdAt?: string | undefined;
288
- $updatedAt?: string | undefined;
289
- error?: string | undefined;
290
- xdefault?: string | null | undefined;
291
- encrypt?: boolean | undefined;
292
- } | {
293
- key: string;
294
- required: boolean;
295
- type: "double";
296
- array?: boolean | undefined;
297
- format?: string | undefined;
298
- status?: string | undefined;
299
- attributes?: string[] | undefined;
300
- orders?: string[] | undefined;
301
- $createdAt?: string | undefined;
302
- $updatedAt?: string | undefined;
303
- error?: string | undefined;
304
- min?: number | undefined;
305
- max?: number | undefined;
306
- xdefault?: number | null | undefined;
307
- } | {
308
- key: string;
309
- required: boolean;
310
- type: "float";
311
- array?: boolean | undefined;
312
- format?: string | undefined;
313
- status?: string | undefined;
314
- attributes?: string[] | undefined;
315
- orders?: string[] | undefined;
316
- $createdAt?: string | undefined;
317
- $updatedAt?: string | undefined;
318
- error?: string | undefined;
319
- min?: number | undefined;
320
- max?: number | undefined;
321
- xdefault?: number | null | undefined;
322
- } | {
323
- key: string;
324
- required: boolean;
325
- type: "boolean";
326
- array?: boolean | undefined;
327
- format?: string | undefined;
328
- status?: string | undefined;
329
- attributes?: string[] | undefined;
330
- orders?: string[] | undefined;
331
- $createdAt?: string | undefined;
332
- $updatedAt?: string | undefined;
333
- error?: string | undefined;
334
- xdefault?: boolean | null | undefined;
335
- } | {
336
- key: string;
337
- required: boolean;
338
- type: "datetime";
339
- array?: boolean | undefined;
340
- format?: string | undefined;
341
- status?: string | undefined;
342
- attributes?: string[] | undefined;
343
- orders?: string[] | undefined;
344
- $createdAt?: string | undefined;
345
- $updatedAt?: string | undefined;
346
- error?: string | undefined;
347
- xdefault?: string | null | undefined;
348
- } | {
349
- key: string;
350
- required: boolean;
351
- type: "email";
352
- array?: boolean | undefined;
353
- format?: string | undefined;
354
- status?: string | undefined;
355
- attributes?: string[] | undefined;
356
- orders?: string[] | undefined;
357
- $createdAt?: string | undefined;
358
- $updatedAt?: string | undefined;
359
- error?: string | undefined;
360
- xdefault?: string | null | undefined;
361
- } | {
362
- key: string;
363
- required: boolean;
364
- type: "ip";
365
- array?: boolean | undefined;
366
- format?: string | undefined;
367
- status?: string | undefined;
368
- attributes?: string[] | undefined;
369
- orders?: string[] | undefined;
370
- $createdAt?: string | undefined;
371
- $updatedAt?: string | undefined;
372
- error?: string | undefined;
373
- xdefault?: string | null | undefined;
374
- } | {
375
- key: string;
376
- required: boolean;
377
- type: "url";
378
- array?: boolean | undefined;
379
- format?: string | undefined;
380
- status?: string | undefined;
381
- attributes?: string[] | undefined;
382
- orders?: string[] | undefined;
383
- $createdAt?: string | undefined;
384
- $updatedAt?: string | undefined;
385
- error?: string | undefined;
386
- xdefault?: string | null | undefined;
387
- } | {
388
- key: string;
389
- required: boolean;
390
- type: "enum";
391
- elements: string[];
392
- array?: boolean | undefined;
393
- format?: string | undefined;
394
- status?: string | undefined;
395
- attributes?: string[] | undefined;
396
- orders?: string[] | undefined;
397
- $createdAt?: string | undefined;
398
- $updatedAt?: string | undefined;
399
- error?: string | undefined;
400
- xdefault?: string | null | undefined;
401
- })[];
402
- $permissions: {
403
- permission: string;
404
- target: string;
405
- }[];
406
- indexes: {
407
- key: string;
408
- type: "key" | "unique" | "fulltext";
409
- attributes: string[];
410
- status?: string | undefined;
411
- error?: string | undefined;
412
- orders?: string[] | undefined;
413
- }[];
414
- importDefs: {
415
- filePath: string;
416
- primaryKeyField: string;
417
- attributeMappings: {
418
- targetKey: string;
419
- oldKey?: string | undefined;
420
- oldKeys?: string[] | undefined;
421
- valueToSet?: any;
422
- fileData?: {
423
- name: string;
424
- path: string;
425
- } | undefined;
426
- converters?: string[] | undefined;
427
- validationActions?: {
428
- action: string;
429
- params: string[];
430
- }[] | undefined;
431
- postImportActions?: {
432
- action: string;
433
- params: (string | Record<string, any>)[];
434
- }[] | undefined;
435
- }[];
436
- type?: "create" | "update" | undefined;
437
- basePath?: string | undefined;
438
- idMappings?: {
439
- sourceField: string;
440
- targetField: string;
441
- targetCollection: string;
442
- fieldToSet?: string | undefined;
443
- targetFieldToMatch?: string | undefined;
444
- }[] | undefined;
445
- createUsers?: boolean | null | undefined;
446
- updateMapping?: {
447
- originalIdField: string;
448
- targetField: string;
449
- } | undefined;
450
- }[];
451
- $id?: string | undefined;
452
- enabled?: boolean | undefined;
453
- documentSecurity?: boolean | undefined;
454
- databaseId?: string | undefined;
455
- databaseIds?: string[] | undefined;
456
- }[] | undefined;
457
- tables?: {
458
- attributes: ({
459
- key: string;
460
- required: boolean;
461
- type: "integer";
462
- array?: boolean | undefined;
463
- format?: string | undefined;
464
- status?: string | undefined;
465
- attributes?: string[] | undefined;
466
- orders?: string[] | undefined;
467
- $createdAt?: string | undefined;
468
- $updatedAt?: string | undefined;
469
- error?: string | undefined;
470
- min?: number | undefined;
471
- max?: number | undefined;
472
- xdefault?: number | null | undefined;
473
- } | {
474
- key: string;
475
- required: boolean;
476
- type: "relationship";
477
- relatedCollection: string;
478
- relationType: "oneToMany" | "manyToOne" | "oneToOne" | "manyToMany";
479
- twoWay: boolean;
480
- onDelete: "setNull" | "cascade" | "restrict";
481
- array?: boolean | undefined;
482
- format?: string | undefined;
483
- status?: string | undefined;
484
- attributes?: string[] | undefined;
485
- orders?: string[] | undefined;
486
- $createdAt?: string | undefined;
487
- $updatedAt?: string | undefined;
488
- error?: string | undefined;
489
- twoWayKey?: string | undefined;
490
- side?: "parent" | "child" | undefined;
491
- importMapping?: {
492
- originalIdField: string;
493
- targetField?: string | undefined;
494
- } | undefined;
495
- } | {
496
- key: string;
497
- required: boolean;
498
- type: "string";
499
- size: number;
500
- array?: boolean | undefined;
501
- format?: string | undefined;
502
- status?: string | undefined;
503
- attributes?: string[] | undefined;
504
- orders?: string[] | undefined;
505
- $createdAt?: string | undefined;
506
- $updatedAt?: string | undefined;
507
- error?: string | undefined;
508
- xdefault?: string | null | undefined;
509
- encrypt?: boolean | undefined;
510
- } | {
511
- key: string;
512
- required: boolean;
513
- type: "double";
514
- array?: boolean | undefined;
515
- format?: string | undefined;
516
- status?: string | undefined;
517
- attributes?: string[] | undefined;
518
- orders?: string[] | undefined;
519
- $createdAt?: string | undefined;
520
- $updatedAt?: string | undefined;
521
- error?: string | undefined;
522
- min?: number | undefined;
523
- max?: number | undefined;
524
- xdefault?: number | null | undefined;
525
- } | {
526
- key: string;
527
- required: boolean;
528
- type: "float";
529
- array?: boolean | undefined;
530
- format?: string | undefined;
531
- status?: string | undefined;
532
- attributes?: string[] | undefined;
533
- orders?: string[] | undefined;
534
- $createdAt?: string | undefined;
535
- $updatedAt?: string | undefined;
536
- error?: string | undefined;
537
- min?: number | undefined;
538
- max?: number | undefined;
539
- xdefault?: number | null | undefined;
540
- } | {
541
- key: string;
542
- required: boolean;
543
- type: "boolean";
544
- array?: boolean | undefined;
545
- format?: string | undefined;
546
- status?: string | undefined;
547
- attributes?: string[] | undefined;
548
- orders?: string[] | undefined;
549
- $createdAt?: string | undefined;
550
- $updatedAt?: string | undefined;
551
- error?: string | undefined;
552
- xdefault?: boolean | null | undefined;
553
- } | {
554
- key: string;
555
- required: boolean;
556
- type: "datetime";
557
- array?: boolean | undefined;
558
- format?: string | undefined;
559
- status?: string | undefined;
560
- attributes?: string[] | undefined;
561
- orders?: string[] | undefined;
562
- $createdAt?: string | undefined;
563
- $updatedAt?: string | undefined;
564
- error?: string | undefined;
565
- xdefault?: string | null | undefined;
566
- } | {
567
- key: string;
568
- required: boolean;
569
- type: "email";
570
- array?: boolean | undefined;
571
- format?: string | undefined;
572
- status?: string | undefined;
573
- attributes?: string[] | undefined;
574
- orders?: string[] | undefined;
575
- $createdAt?: string | undefined;
576
- $updatedAt?: string | undefined;
577
- error?: string | undefined;
578
- xdefault?: string | null | undefined;
579
- } | {
580
- key: string;
581
- required: boolean;
582
- type: "ip";
583
- array?: boolean | undefined;
584
- format?: string | undefined;
585
- status?: string | undefined;
586
- attributes?: string[] | undefined;
587
- orders?: string[] | undefined;
588
- $createdAt?: string | undefined;
589
- $updatedAt?: string | undefined;
590
- error?: string | undefined;
591
- xdefault?: string | null | undefined;
592
- } | {
593
- key: string;
594
- required: boolean;
595
- type: "url";
596
- array?: boolean | undefined;
597
- format?: string | undefined;
598
- status?: string | undefined;
599
- attributes?: string[] | undefined;
600
- orders?: string[] | undefined;
601
- $createdAt?: string | undefined;
602
- $updatedAt?: string | undefined;
603
- error?: string | undefined;
604
- xdefault?: string | null | undefined;
605
- } | {
606
- key: string;
607
- required: boolean;
608
- type: "enum";
609
- elements: string[];
610
- array?: boolean | undefined;
611
- format?: string | undefined;
612
- status?: string | undefined;
613
- attributes?: string[] | undefined;
614
- orders?: string[] | undefined;
615
- $createdAt?: string | undefined;
616
- $updatedAt?: string | undefined;
617
- error?: string | undefined;
618
- xdefault?: string | null | undefined;
619
- })[];
620
- columns: undefined;
621
- indexes: {
622
- key: string;
623
- type: "key" | "unique" | "fulltext";
624
- attributes: string[];
625
- status?: string | undefined;
626
- error?: string | undefined;
627
- orders?: string[] | undefined;
628
- }[];
629
- name: string;
630
- $permissions: {
631
- permission: string;
632
- target: string;
633
- }[];
634
- importDefs: {
635
- filePath: string;
636
- primaryKeyField: string;
637
- attributeMappings: {
638
- targetKey: string;
639
- oldKey?: string | undefined;
640
- oldKeys?: string[] | undefined;
641
- valueToSet?: any;
642
- fileData?: {
643
- name: string;
644
- path: string;
645
- } | undefined;
646
- converters?: string[] | undefined;
647
- validationActions?: {
648
- action: string;
649
- params: string[];
650
- }[] | undefined;
651
- postImportActions?: {
652
- action: string;
653
- params: (string | Record<string, any>)[];
654
- }[] | undefined;
655
- }[];
656
- type?: "create" | "update" | undefined;
657
- basePath?: string | undefined;
658
- idMappings?: {
659
- sourceField: string;
660
- targetField: string;
661
- targetCollection: string;
662
- fieldToSet?: string | undefined;
663
- targetFieldToMatch?: string | undefined;
664
- }[] | undefined;
665
- createUsers?: boolean | null | undefined;
666
- updateMapping?: {
667
- originalIdField: string;
668
- targetField: string;
669
- } | undefined;
670
- }[];
671
- $id?: string | undefined;
672
- enabled?: boolean | undefined;
673
- documentSecurity?: boolean | undefined;
674
- databaseId?: string | undefined;
675
- databaseIds?: string[] | undefined;
676
- tableId?: string | undefined;
677
- rowSecurity?: boolean | undefined;
678
- }[] | undefined;
679
- functions?: {
680
- $id: string;
681
- name: string;
682
- runtime: any;
683
- execute: string[];
684
- events: string[];
685
- dirPath?: string | undefined;
686
- schedule?: string | undefined;
687
- timeout?: number | undefined;
688
- enabled?: boolean | undefined;
689
- logging?: boolean | undefined;
690
- ignore?: string[] | undefined;
691
- entrypoint?: string | undefined;
692
- predeployCommands?: string[] | undefined;
693
- deployDir?: string | undefined;
694
- commands?: string | undefined;
695
- scopes?: ("users.read" | "users.write" | "sessions.read" | "sessions.write" | "teams.read" | "teams.write" | "databases.read" | "databases.write" | "collections.read" | "collections.write" | "tables.read" | "tables.write" | "attributes.read" | "attributes.write" | "indexes.read" | "indexes.write" | "documents.read" | "documents.write" | "rows.read" | "rows.write" | "files.read" | "files.write" | "buckets.read" | "buckets.write" | "functions.read" | "functions.write" | "execution.read" | "execution.write" | "locale.read" | "avatars.read" | "health.read" | "rules.read" | "rules.write" | "migrations.read" | "migrations.write" | "sites.read" | "sites.write" | "log.read" | "log.write" | "tokens.read" | "tokens.write" | "vcs.read" | "vcs.write" | "assistant.read" | "messages.read" | "messages.write" | "targets.read" | "targets.write" | "providers.read" | "providers.write" | "topics.read" | "topics.write" | "subscribers.read" | "subscribers.write")[] | undefined;
696
- installationId?: string | undefined;
697
- providerRepositoryId?: string | undefined;
698
- providerBranch?: string | undefined;
699
- providerSilentMode?: boolean | undefined;
700
- providerRootDirectory?: string | undefined;
701
- templateRepository?: string | undefined;
702
- templateOwner?: string | undefined;
703
- templateRootDirectory?: string | undefined;
704
- templateVersion?: string | undefined;
705
- specification?: "s-0.5vcpu-512mb" | "s-1vcpu-512mb" | "s-1vcpu-1gb" | "s-2vcpu-2gb" | "s-2vcpu-4gb" | "s-4vcpu-4gb" | "s-4vcpu-8gb" | "s-8vcpu-4gb" | "s-8vcpu-8gb" | undefined;
706
- }[] | undefined;
707
- schemaConfig?: {
708
- outputDirectory: string;
709
- yamlSchemaDirectory: string;
710
- importDirectory: string;
711
- collectionsDirectory: string;
712
- tablesDirectory: string;
713
- } | undefined;
714
- } | null>;
715
- write: (config: AppwriteConfig) => Promise<void>;
716
- addFunction: (func: AppwriteFunction) => Promise<void>;
717
- };
718
- /**
719
- * Determine if YAML config has session authentication configured
720
- */
721
- export declare const hasYamlSessionAuth: (configPath: string) => boolean;
722
- export {};