appwrite-utils-cli 0.10.86 → 1.0.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 (178) hide show
  1. package/.appwrite/.yaml_schemas/appwrite-config.schema.json +380 -0
  2. package/.appwrite/.yaml_schemas/collection.schema.json +255 -0
  3. package/.appwrite/collections/Categories.yaml +182 -0
  4. package/.appwrite/collections/ExampleCollection.yaml +36 -0
  5. package/.appwrite/collections/Posts.yaml +227 -0
  6. package/.appwrite/collections/Users.yaml +149 -0
  7. package/.appwrite/config.yaml +109 -0
  8. package/.appwrite/import/README.md +148 -0
  9. package/.appwrite/import/categories-import.yaml +129 -0
  10. package/.appwrite/import/posts-import.yaml +208 -0
  11. package/.appwrite/import/users-import.yaml +130 -0
  12. package/.appwrite/importData/categories.json +194 -0
  13. package/.appwrite/importData/posts.json +270 -0
  14. package/.appwrite/importData/users.json +220 -0
  15. package/.appwrite/schemas/categories.json +128 -0
  16. package/.appwrite/schemas/exampleCollection.json +52 -0
  17. package/.appwrite/schemas/posts.json +173 -0
  18. package/.appwrite/schemas/users.json +125 -0
  19. package/README.md +260 -33
  20. package/dist/collections/attributes.js +3 -2
  21. package/dist/collections/methods.js +56 -38
  22. package/dist/config/yamlConfig.d.ts +501 -0
  23. package/dist/config/yamlConfig.js +452 -0
  24. package/dist/databases/setup.d.ts +6 -0
  25. package/dist/databases/setup.js +119 -0
  26. package/dist/functions/methods.d.ts +1 -1
  27. package/dist/functions/methods.js +5 -2
  28. package/dist/functions/openapi.d.ts +4 -0
  29. package/dist/functions/openapi.js +60 -0
  30. package/dist/interactiveCLI.d.ts +5 -0
  31. package/dist/interactiveCLI.js +194 -49
  32. package/dist/main.js +91 -30
  33. package/dist/migrations/afterImportActions.js +2 -2
  34. package/dist/migrations/appwriteToX.d.ts +10 -0
  35. package/dist/migrations/appwriteToX.js +15 -4
  36. package/dist/migrations/backup.d.ts +16 -16
  37. package/dist/migrations/dataLoader.d.ts +83 -1
  38. package/dist/migrations/dataLoader.js +4 -4
  39. package/dist/migrations/importController.js +25 -18
  40. package/dist/migrations/importDataActions.js +2 -2
  41. package/dist/migrations/logging.d.ts +9 -1
  42. package/dist/migrations/logging.js +41 -22
  43. package/dist/migrations/migrationHelper.d.ts +4 -4
  44. package/dist/migrations/relationships.js +1 -1
  45. package/dist/migrations/services/DataTransformationService.d.ts +55 -0
  46. package/dist/migrations/services/DataTransformationService.js +158 -0
  47. package/dist/migrations/services/FileHandlerService.d.ts +75 -0
  48. package/dist/migrations/services/FileHandlerService.js +236 -0
  49. package/dist/migrations/services/ImportOrchestrator.d.ts +97 -0
  50. package/dist/migrations/services/ImportOrchestrator.js +488 -0
  51. package/dist/migrations/services/RateLimitManager.d.ts +138 -0
  52. package/dist/migrations/services/RateLimitManager.js +279 -0
  53. package/dist/migrations/services/RelationshipResolver.d.ts +120 -0
  54. package/dist/migrations/services/RelationshipResolver.js +332 -0
  55. package/dist/migrations/services/UserMappingService.d.ts +109 -0
  56. package/dist/migrations/services/UserMappingService.js +277 -0
  57. package/dist/migrations/services/ValidationService.d.ts +74 -0
  58. package/dist/migrations/services/ValidationService.js +260 -0
  59. package/dist/migrations/transfer.d.ts +0 -6
  60. package/dist/migrations/transfer.js +16 -132
  61. package/dist/migrations/yaml/YamlImportConfigLoader.d.ts +384 -0
  62. package/dist/migrations/yaml/YamlImportConfigLoader.js +375 -0
  63. package/dist/migrations/yaml/YamlImportIntegration.d.ts +87 -0
  64. package/dist/migrations/yaml/YamlImportIntegration.js +330 -0
  65. package/dist/migrations/yaml/generateImportSchemas.d.ts +17 -0
  66. package/dist/migrations/yaml/generateImportSchemas.js +575 -0
  67. package/dist/schemas/authUser.d.ts +9 -9
  68. package/dist/shared/attributeManager.d.ts +17 -0
  69. package/dist/shared/attributeManager.js +273 -0
  70. package/dist/shared/confirmationDialogs.d.ts +75 -0
  71. package/dist/shared/confirmationDialogs.js +236 -0
  72. package/dist/shared/functionManager.d.ts +48 -0
  73. package/dist/shared/functionManager.js +322 -0
  74. package/dist/shared/indexManager.d.ts +24 -0
  75. package/dist/shared/indexManager.js +150 -0
  76. package/dist/shared/jsonSchemaGenerator.d.ts +51 -0
  77. package/dist/shared/jsonSchemaGenerator.js +313 -0
  78. package/dist/shared/logging.d.ts +10 -0
  79. package/dist/shared/logging.js +46 -0
  80. package/dist/shared/messageFormatter.d.ts +37 -0
  81. package/dist/shared/messageFormatter.js +152 -0
  82. package/dist/shared/migrationHelpers.d.ts +173 -0
  83. package/dist/shared/migrationHelpers.js +142 -0
  84. package/dist/shared/operationLogger.d.ts +3 -0
  85. package/dist/shared/operationLogger.js +25 -0
  86. package/dist/shared/operationQueue.d.ts +13 -0
  87. package/dist/shared/operationQueue.js +79 -0
  88. package/dist/shared/progressManager.d.ts +62 -0
  89. package/dist/shared/progressManager.js +215 -0
  90. package/dist/shared/schemaGenerator.d.ts +18 -0
  91. package/dist/shared/schemaGenerator.js +523 -0
  92. package/dist/storage/methods.d.ts +3 -1
  93. package/dist/storage/methods.js +144 -55
  94. package/dist/storage/schemas.d.ts +56 -16
  95. package/dist/types.d.ts +2 -2
  96. package/dist/types.js +1 -1
  97. package/dist/users/methods.d.ts +16 -0
  98. package/dist/users/methods.js +276 -0
  99. package/dist/utils/configMigration.d.ts +1 -0
  100. package/dist/utils/configMigration.js +156 -0
  101. package/dist/utils/dataConverters.d.ts +46 -0
  102. package/dist/utils/dataConverters.js +139 -0
  103. package/dist/utils/loadConfigs.d.ts +15 -4
  104. package/dist/utils/loadConfigs.js +377 -51
  105. package/dist/utils/schemaStrings.js +2 -1
  106. package/dist/utils/setupFiles.d.ts +2 -1
  107. package/dist/utils/setupFiles.js +723 -28
  108. package/dist/utils/validationRules.d.ts +43 -0
  109. package/dist/utils/validationRules.js +42 -0
  110. package/dist/utils/yamlConverter.d.ts +48 -0
  111. package/dist/utils/yamlConverter.js +98 -0
  112. package/dist/utilsController.js +65 -43
  113. package/package.json +19 -15
  114. package/src/collections/attributes.ts +3 -2
  115. package/src/collections/methods.ts +85 -51
  116. package/src/config/yamlConfig.ts +488 -0
  117. package/src/{migrations/setupDatabase.ts → databases/setup.ts} +11 -5
  118. package/src/functions/methods.ts +8 -4
  119. package/src/functions/templates/count-docs-in-collection/package.json +25 -0
  120. package/src/functions/templates/count-docs-in-collection/tsconfig.json +28 -0
  121. package/src/functions/templates/typescript-node/package.json +24 -0
  122. package/src/functions/templates/typescript-node/tsconfig.json +28 -0
  123. package/src/functions/templates/uv/README.md +31 -0
  124. package/src/functions/templates/uv/pyproject.toml +29 -0
  125. package/src/interactiveCLI.ts +226 -61
  126. package/src/main.ts +111 -37
  127. package/src/migrations/afterImportActions.ts +2 -2
  128. package/src/migrations/appwriteToX.ts +17 -4
  129. package/src/migrations/dataLoader.ts +4 -4
  130. package/src/migrations/importController.ts +30 -22
  131. package/src/migrations/importDataActions.ts +2 -2
  132. package/src/migrations/relationships.ts +1 -1
  133. package/src/migrations/services/DataTransformationService.ts +196 -0
  134. package/src/migrations/services/FileHandlerService.ts +311 -0
  135. package/src/migrations/services/ImportOrchestrator.ts +669 -0
  136. package/src/migrations/services/RateLimitManager.ts +363 -0
  137. package/src/migrations/services/RelationshipResolver.ts +461 -0
  138. package/src/migrations/services/UserMappingService.ts +345 -0
  139. package/src/migrations/services/ValidationService.ts +349 -0
  140. package/src/migrations/transfer.ts +22 -228
  141. package/src/migrations/yaml/YamlImportConfigLoader.ts +427 -0
  142. package/src/migrations/yaml/YamlImportIntegration.ts +419 -0
  143. package/src/migrations/yaml/generateImportSchemas.ts +589 -0
  144. package/src/shared/attributeManager.ts +429 -0
  145. package/src/shared/confirmationDialogs.ts +327 -0
  146. package/src/shared/functionManager.ts +515 -0
  147. package/src/shared/indexManager.ts +253 -0
  148. package/src/shared/jsonSchemaGenerator.ts +403 -0
  149. package/src/shared/logging.ts +74 -0
  150. package/src/shared/messageFormatter.ts +195 -0
  151. package/src/{migrations/migrationHelper.ts → shared/migrationHelpers.ts} +22 -4
  152. package/src/{migrations/helper.ts → shared/operationLogger.ts} +7 -2
  153. package/src/{migrations/queue.ts → shared/operationQueue.ts} +1 -1
  154. package/src/shared/progressManager.ts +278 -0
  155. package/src/{migrations/schemaStrings.ts → shared/schemaGenerator.ts} +71 -17
  156. package/src/storage/methods.ts +199 -78
  157. package/src/types.ts +2 -2
  158. package/src/{migrations/users.ts → users/methods.ts} +2 -2
  159. package/src/utils/configMigration.ts +212 -0
  160. package/src/utils/loadConfigs.ts +414 -52
  161. package/src/utils/schemaStrings.ts +2 -1
  162. package/src/utils/setupFiles.ts +742 -40
  163. package/src/{migrations → utils}/validationRules.ts +1 -1
  164. package/src/utils/yamlConverter.ts +131 -0
  165. package/src/utilsController.ts +75 -54
  166. package/src/functions/templates/poetry/README.md +0 -30
  167. package/src/functions/templates/poetry/pyproject.toml +0 -16
  168. package/src/migrations/attributes.ts +0 -561
  169. package/src/migrations/backup.ts +0 -205
  170. package/src/migrations/databases.ts +0 -39
  171. package/src/migrations/dbHelpers.ts +0 -92
  172. package/src/migrations/indexes.ts +0 -40
  173. package/src/migrations/logging.ts +0 -29
  174. package/src/migrations/storage.ts +0 -538
  175. /package/src/{migrations → functions}/openapi.ts +0 -0
  176. /package/src/functions/templates/{poetry → uv}/src/__init__.py +0 -0
  177. /package/src/functions/templates/{poetry → uv}/src/index.py +0 -0
  178. /package/src/{migrations/converters.ts → utils/dataConverters.ts} +0 -0
@@ -0,0 +1,182 @@
1
+ # yaml-language-server: $schema=../.yaml_schemas/collection.schema.json
2
+ # Collection Definition: Categories
3
+ name: Categories
4
+ id: 01JYDBQTB5W8SCBAYB654CATEG
5
+ documentSecurity: false
6
+ enabled: true
7
+ permissions:
8
+ - permission: read
9
+ target: any
10
+ - permission: create
11
+ target: users
12
+ - permission: update
13
+ target: users
14
+ - permission: delete
15
+ target: users
16
+
17
+ attributes:
18
+ # Core Information
19
+ - key: name
20
+ type: string
21
+ size: 100
22
+ required: true
23
+ description: "Category name or title"
24
+
25
+ - key: slug
26
+ type: string
27
+ size: 120
28
+ required: false
29
+ description: "URL-friendly version of the category name"
30
+
31
+ - key: description
32
+ type: string
33
+ size: 500
34
+ required: false
35
+ description: "Detailed description of the category"
36
+
37
+ # Hierarchy Support
38
+ - key: parentId
39
+ type: string
40
+ size: 50
41
+ required: false
42
+ description: "Parent category ID for hierarchical structure (manual reference)"
43
+
44
+ - key: level
45
+ type: integer
46
+ required: true
47
+ default: 0
48
+ min: 0
49
+ max: 5
50
+ description: "Hierarchy level (0 = root, 1 = subcategory, etc.)"
51
+
52
+ - key: sortOrder
53
+ type: integer
54
+ required: true
55
+ default: 0
56
+ description: "Sort order within the same level"
57
+
58
+ # Visual & Branding
59
+ - key: colorCode
60
+ type: string
61
+ size: 7
62
+ required: false
63
+ description: "Hex color code for category branding (e.g., #FF5733)"
64
+
65
+ - key: icon
66
+ type: string
67
+ size: 50
68
+ required: false
69
+ description: "Icon name or class for category display"
70
+
71
+ - key: coverImage
72
+ type: string
73
+ size: 255
74
+ required: false
75
+ description: "Cover image file ID for category header"
76
+
77
+ # Status & Management
78
+ - key: isActive
79
+ type: boolean
80
+ required: true
81
+ default: true
82
+ description: "Whether the category is active and visible"
83
+
84
+ - key: isFeatured
85
+ type: boolean
86
+ required: true
87
+ default: false
88
+ description: "Whether the category is featured"
89
+
90
+ # Statistics
91
+ - key: postCount
92
+ type: integer
93
+ required: true
94
+ default: 0
95
+ min: 0
96
+ description: "Number of posts in this category"
97
+
98
+ - key: totalPostCount
99
+ type: integer
100
+ required: true
101
+ default: 0
102
+ min: 0
103
+ description: "Total posts including subcategories"
104
+
105
+ # SEO
106
+ - key: metaTitle
107
+ type: string
108
+ size: 60
109
+ required: false
110
+ description: "SEO meta title for category page"
111
+
112
+ - key: metaDescription
113
+ type: string
114
+ size: 160
115
+ required: false
116
+ description: "SEO meta description for category page"
117
+
118
+ # Content Guidelines
119
+ - key: guidelines
120
+ type: string
121
+ size: 1000
122
+ required: false
123
+ description: "Content guidelines or rules for this category"
124
+
125
+ indexes:
126
+ # Search indexes
127
+ - key: name_search
128
+ type: fulltext
129
+ attributes:
130
+ - name
131
+
132
+ - key: description_search
133
+ type: fulltext
134
+ attributes:
135
+ - description
136
+
137
+ # Hierarchy queries
138
+ - key: parent_level
139
+ type: key
140
+ attributes:
141
+ - parentId
142
+ - level
143
+
144
+ - key: level_sort
145
+ type: key
146
+ attributes:
147
+ - level
148
+ - sortOrder
149
+
150
+ # Status queries
151
+ - key: active_featured
152
+ type: key
153
+ attributes:
154
+ - isActive
155
+ - isFeatured
156
+
157
+ - key: active_sort
158
+ type: key
159
+ attributes:
160
+ - isActive
161
+ - sortOrder
162
+
163
+ # Statistics
164
+ - key: post_count_desc
165
+ type: key
166
+ attributes:
167
+ - postCount
168
+ orders:
169
+ - desc
170
+
171
+ # Unique constraints
172
+ - key: name_unique
173
+ type: unique
174
+ attributes:
175
+ - name
176
+
177
+ - key: slug_unique
178
+ type: unique
179
+ attributes:
180
+ - slug
181
+
182
+ importDefs: []
@@ -0,0 +1,36 @@
1
+ # yaml-language-server: $schema=../.yaml_schemas/collection.schema.json
2
+ # Example Collection Definition
3
+ name: ExampleCollection
4
+ id: example_collection_1750645834708
5
+ documentSecurity: false
6
+ enabled: true
7
+ permissions:
8
+ - permission: read
9
+ target: any
10
+ - permission: create
11
+ target: users
12
+ - permission: update
13
+ target: users
14
+ - permission: delete
15
+ target: users
16
+ attributes:
17
+ - key: title
18
+ type: string
19
+ size: 255
20
+ required: true
21
+ description: "The title of the item"
22
+ - key: description
23
+ type: string
24
+ size: 1000
25
+ required: false
26
+ description: "A longer description"
27
+ - key: isActive
28
+ type: boolean
29
+ required: false
30
+ default: true
31
+ indexes:
32
+ - key: title_search
33
+ type: fulltext
34
+ attributes:
35
+ - title
36
+ importDefs: []
@@ -0,0 +1,227 @@
1
+ # yaml-language-server: $schema=../.yaml_schemas/collection.schema.json
2
+ # Collection Definition: Posts
3
+ name: Posts
4
+ id: 01JYDBQTB5W8SCBAYB654POSTS
5
+ documentSecurity: false
6
+ enabled: true
7
+ permissions:
8
+ - permission: read
9
+ target: any
10
+ - permission: create
11
+ target: users
12
+ - permission: update
13
+ target: users
14
+ - permission: delete
15
+ target: users
16
+
17
+ attributes:
18
+ # Core Content
19
+ - key: title
20
+ type: string
21
+ size: 200
22
+ required: true
23
+ description: "Post title or headline"
24
+
25
+ - key: slug
26
+ type: string
27
+ size: 250
28
+ required: false
29
+ description: "URL-friendly version of the title"
30
+
31
+ - key: content
32
+ type: string
33
+ size: 10000
34
+ required: true
35
+ description: "Main post content (supports HTML/Markdown)"
36
+
37
+ - key: excerpt
38
+ type: string
39
+ size: 500
40
+ required: false
41
+ description: "Brief summary or excerpt of the post"
42
+
43
+ # Relationships (manual references)
44
+ - key: authorId
45
+ type: string
46
+ size: 50
47
+ required: true
48
+ description: "User ID of the post author (manual reference)"
49
+
50
+ - key: categoryId
51
+ type: string
52
+ size: 50
53
+ required: false
54
+ description: "Category ID for the post (manual reference)"
55
+
56
+ # Media
57
+ - key: featuredImage
58
+ type: string
59
+ size: 255
60
+ required: false
61
+ description: "Featured image file ID stored in Appwrite storage"
62
+
63
+ - key: gallery
64
+ type: string
65
+ size: 2000
66
+ required: false
67
+ array: true
68
+ description: "Array of image file IDs for post gallery"
69
+
70
+ # Metadata
71
+ - key: tags
72
+ type: string
73
+ size: 50
74
+ required: false
75
+ array: true
76
+ description: "Array of tags associated with the post"
77
+
78
+ - key: status
79
+ type: enum
80
+ elements: ["draft", "published", "archived", "scheduled"]
81
+ required: true
82
+ default: "draft"
83
+ description: "Publication status of the post"
84
+
85
+ - key: publishedAt
86
+ type: datetime
87
+ required: false
88
+ description: "Date and time when the post was published"
89
+
90
+ - key: scheduledAt
91
+ type: datetime
92
+ required: false
93
+ description: "Date and time when the post is scheduled to be published"
94
+
95
+ # Engagement Metrics
96
+ - key: viewCount
97
+ type: integer
98
+ required: true
99
+ default: 0
100
+ min: 0
101
+ description: "Number of times the post has been viewed"
102
+
103
+ - key: likeCount
104
+ type: integer
105
+ required: true
106
+ default: 0
107
+ min: 0
108
+ description: "Number of likes the post has received"
109
+
110
+ - key: commentCount
111
+ type: integer
112
+ required: true
113
+ default: 0
114
+ min: 0
115
+ description: "Number of comments on the post"
116
+
117
+ - key: shareCount
118
+ type: integer
119
+ required: true
120
+ default: 0
121
+ min: 0
122
+ description: "Number of times the post has been shared"
123
+
124
+ # SEO & Social
125
+ - key: metaTitle
126
+ type: string
127
+ size: 60
128
+ required: false
129
+ description: "SEO meta title (max 60 chars)"
130
+
131
+ - key: metaDescription
132
+ type: string
133
+ size: 160
134
+ required: false
135
+ description: "SEO meta description (max 160 chars)"
136
+
137
+ - key: socialImage
138
+ type: string
139
+ size: 255
140
+ required: false
141
+ description: "Social media sharing image file ID"
142
+
143
+ # Reading Time
144
+ - key: readingTime
145
+ type: integer
146
+ required: false
147
+ min: 1
148
+ description: "Estimated reading time in minutes"
149
+
150
+ # Featured Status
151
+ - key: isFeatured
152
+ type: boolean
153
+ required: true
154
+ default: false
155
+ description: "Whether this post is featured on the homepage"
156
+
157
+ - key: isPinned
158
+ type: boolean
159
+ required: true
160
+ default: false
161
+ description: "Whether this post is pinned to the top"
162
+
163
+ indexes:
164
+ # Search indexes
165
+ - key: title_search
166
+ type: fulltext
167
+ attributes:
168
+ - title
169
+
170
+ - key: content_search
171
+ type: fulltext
172
+ attributes:
173
+ - content
174
+
175
+ - key: combined_search
176
+ type: fulltext
177
+ attributes:
178
+ - title
179
+ - content
180
+ - excerpt
181
+
182
+ # Query optimization
183
+ - key: status_published
184
+ type: key
185
+ attributes:
186
+ - status
187
+ - publishedAt
188
+
189
+ - key: author_status
190
+ type: key
191
+ attributes:
192
+ - authorId
193
+ - status
194
+
195
+ - key: category_status
196
+ type: key
197
+ attributes:
198
+ - categoryId
199
+ - status
200
+
201
+ - key: featured_status
202
+ type: key
203
+ attributes:
204
+ - isFeatured
205
+ - status
206
+
207
+ - key: views_desc
208
+ type: key
209
+ attributes:
210
+ - viewCount
211
+ orders:
212
+ - desc
213
+
214
+ - key: likes_desc
215
+ type: key
216
+ attributes:
217
+ - likeCount
218
+ orders:
219
+ - desc
220
+
221
+ # Unique constraints
222
+ - key: slug_unique
223
+ type: unique
224
+ attributes:
225
+ - slug
226
+
227
+ importDefs: []
@@ -0,0 +1,149 @@
1
+ # yaml-language-server: $schema=../.yaml_schemas/collection.schema.json
2
+ # Collection Definition: Users
3
+ name: Users
4
+ id: 01JYDBQTB5W8SCBAYB654CCADQ
5
+ documentSecurity: false
6
+ enabled: true
7
+ permissions:
8
+ - permission: read
9
+ target: any
10
+ - permission: create
11
+ target: users
12
+ - permission: update
13
+ target: users
14
+ - permission: delete
15
+ target: users
16
+
17
+ attributes:
18
+ # Core Identity
19
+ - key: name
20
+ type: string
21
+ size: 100
22
+ required: true
23
+ description: "User's full name"
24
+
25
+ - key: email
26
+ type: email
27
+ required: true
28
+ description: "User's email address for authentication"
29
+
30
+ - key: username
31
+ type: string
32
+ size: 50
33
+ required: false
34
+ description: "Unique username handle"
35
+
36
+ # Profile Information
37
+ - key: avatar
38
+ type: string
39
+ size: 255
40
+ required: false
41
+ description: "User avatar file ID stored in Appwrite storage"
42
+
43
+ - key: phone
44
+ type: string
45
+ size: 20
46
+ required: false
47
+ description: "User's phone number"
48
+
49
+ - key: bio
50
+ type: string
51
+ size: 500
52
+ required: false
53
+ description: "User biography or description"
54
+
55
+ - key: dateOfBirth
56
+ type: datetime
57
+ required: false
58
+ description: "User's date of birth"
59
+
60
+ - key: location
61
+ type: string
62
+ size: 100
63
+ required: false
64
+ description: "User's location or city"
65
+
66
+ # User Management
67
+ - key: role
68
+ type: enum
69
+ elements: ["admin", "user", "moderator", "editor"]
70
+ required: true
71
+ default: "user"
72
+ description: "User's role in the system"
73
+
74
+ - key: isActive
75
+ type: boolean
76
+ required: true
77
+ default: true
78
+ description: "Whether the user account is active"
79
+
80
+ - key: isVerified
81
+ type: boolean
82
+ required: true
83
+ default: false
84
+ description: "Whether the user's email is verified"
85
+
86
+ # Statistics
87
+ - key: profileViews
88
+ type: integer
89
+ required: true
90
+ default: 0
91
+ min: 0
92
+ description: "Number of times user profile has been viewed"
93
+
94
+ - key: lastLoginAt
95
+ type: datetime
96
+ required: false
97
+ description: "Timestamp of user's last login"
98
+
99
+ # Social Links
100
+ - key: socialLinks
101
+ type: string
102
+ size: 1000
103
+ required: false
104
+ description: "JSON string of social media links"
105
+
106
+ # Preferences
107
+ - key: preferences
108
+ type: string
109
+ size: 2000
110
+ required: false
111
+ description: "JSON string of user preferences and settings"
112
+
113
+ indexes:
114
+ # Search indexes
115
+ - key: name_search
116
+ type: fulltext
117
+ attributes:
118
+ - name
119
+
120
+ - key: bio_search
121
+ type: fulltext
122
+ attributes:
123
+ - bio
124
+
125
+ # Unique constraints
126
+ - key: email_unique
127
+ type: unique
128
+ attributes:
129
+ - email
130
+
131
+ - key: username_unique
132
+ type: unique
133
+ attributes:
134
+ - username
135
+
136
+ # Query optimization
137
+ - key: role_active
138
+ type: key
139
+ attributes:
140
+ - role
141
+ - isActive
142
+
143
+ - key: verified_active
144
+ type: key
145
+ attributes:
146
+ - isVerified
147
+ - isActive
148
+
149
+ importDefs: []
@@ -0,0 +1,109 @@
1
+ # yaml-language-server: $schema=./.yaml_schemas/appwrite-config.schema.json
2
+ appwrite:
3
+ endpoint: https://appwrite.blackleafdigital.com/v1
4
+ project: 65f31b9f540542961b39
5
+ key: >-
6
+ standard_ed867273aaee1398af3598a649500249b0402402106eb426a50b9903c81925ffe25c2d876897021fc9521faad6efad58e849dd79f42f610279d6eaa70a5104ecce97a7a421647ef06407364958e0952978d3b3a7a3c8ae3bb0b7c6872b9e071b2cd0fee077598db19c2fe9678a3c762e18a6c6272c8a37a0b4204184119903d4
7
+ logging:
8
+ enabled: false
9
+ level: info
10
+ console: false
11
+ logDirectory: ./logs
12
+ backups:
13
+ enabled: true
14
+ interval: 3600
15
+ retention: 30
16
+ cleanup: true
17
+ data:
18
+ enableMockData: false
19
+ documentBucketId: documents
20
+ usersCollectionName: Users
21
+ importDirectory: importData
22
+ schemas:
23
+ outputDirectory: schemas
24
+ yamlSchemaDirectory: .yaml_schemas
25
+ migrations:
26
+ enabled: true
27
+ databases:
28
+ - id: main
29
+ name: Main Database
30
+ collections:
31
+ - Users
32
+ - Posts
33
+ - Categories
34
+ buckets:
35
+ - id: documents
36
+ name: Documents
37
+ permissions:
38
+ - permission: read
39
+ target: any
40
+ - permission: create
41
+ target: users
42
+ - permission: update
43
+ target: users
44
+ - permission: delete
45
+ target: users
46
+ fileSecurity: false
47
+ enabled: true
48
+ maximumFileSize: 30000000
49
+ allowedFileExtensions: []
50
+ compression: gzip
51
+ encryption: true
52
+ antivirus: true
53
+ - id: images
54
+ name: Images & Media
55
+ permissions:
56
+ - permission: read
57
+ target: any
58
+ - permission: create
59
+ target: users
60
+ fileSecurity: false
61
+ enabled: true
62
+ maximumFileSize: 10000000
63
+ allowedFileExtensions:
64
+ - jpg
65
+ - jpeg
66
+ - png
67
+ - gif
68
+ - webp
69
+ - svg
70
+ compression: gzip
71
+ encryption: false
72
+ antivirus: true
73
+ - id: avatars
74
+ name: User Avatars
75
+ permissions:
76
+ - permission: read
77
+ target: any
78
+ - permission: create
79
+ target: users
80
+ - permission: update
81
+ target: users
82
+ - permission: delete
83
+ target: users
84
+ fileSecurity: false
85
+ enabled: true
86
+ maximumFileSize: 5000000
87
+ allowedFileExtensions:
88
+ - jpg
89
+ - jpeg
90
+ - png
91
+ - webp
92
+ compression: gzip
93
+ encryption: false
94
+ antivirus: true
95
+ functions:
96
+ - id: 01JYENQDVSN3TVH1MVCBW0C2Y3
97
+ name: TestCountDocs
98
+ runtime: node-21.0
99
+ execute:
100
+ - any
101
+ events: []
102
+ schedule: ''
103
+ timeout: 15
104
+ enabled: true
105
+ logging: true
106
+ entrypoint: src/main.ts
107
+ commands: npm install && npm run build
108
+ scopes: []
109
+ specification: s-1vcpu-512mb