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.
173 lines • 4.3 kB
JSON
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://example.com/schemas/posts.json",
"title": "Posts",
"description": "Schema for Posts collection",
"type": "object",
"properties": {
"$id": {
"type": "string",
"description": "Document ID",
"pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,35}$"
},
"$createdAt": {
"type": "string",
"format": "date-time",
"description": "Document creation date"
},
"$updatedAt": {
"type": "string",
"format": "date-time",
"description": "Document last update date"
},
"$permissions": {
"type": "array",
"items": {
"type": "string"
},
"description": "Document permissions"
},
"title": {
"type": "string",
"description": "Post title or headline",
"maxLength": 200
},
"slug": {
"type": "string",
"description": "URL-friendly version of the title",
"maxLength": 250
},
"content": {
"type": "string",
"description": "Main post content (supports HTML/Markdown)",
"maxLength": 10000
},
"excerpt": {
"type": "string",
"description": "Brief summary or excerpt of the post",
"maxLength": 500
},
"authorId": {
"type": "string",
"description": "User ID of the post author (manual reference)",
"maxLength": 50
},
"categoryId": {
"type": "string",
"description": "Category ID for the post (manual reference)",
"maxLength": 50
},
"featuredImage": {
"type": "string",
"description": "Featured image file ID stored in Appwrite storage",
"maxLength": 255
},
"gallery": {
"type": "array",
"description": "Array of image file IDs for post gallery",
"items": {
"type": "string",
"maxLength": 2000
}
},
"tags": {
"type": "array",
"description": "Array of tags associated with the post",
"items": {
"type": "string",
"maxLength": 50
}
},
"status": {
"type": "string",
"description": "Publication status of the post",
"enum": [
"draft",
"published",
"archived",
"scheduled"
],
"default": "draft"
},
"publishedAt": {
"type": "string",
"description": "Date and time when the post was published",
"format": "date-time"
},
"scheduledAt": {
"type": "string",
"description": "Date and time when the post is scheduled to be published",
"format": "date-time"
},
"viewCount": {
"type": "integer",
"description": "Number of times the post has been viewed",
"minimum": 0,
"default": 0
},
"likeCount": {
"type": "integer",
"description": "Number of likes the post has received",
"minimum": 0,
"default": 0
},
"commentCount": {
"type": "integer",
"description": "Number of comments on the post",
"minimum": 0,
"default": 0
},
"shareCount": {
"type": "integer",
"description": "Number of times the post has been shared",
"minimum": 0,
"default": 0
},
"metaTitle": {
"type": "string",
"description": "SEO meta title (max 60 chars)",
"maxLength": 60
},
"metaDescription": {
"type": "string",
"description": "SEO meta description (max 160 chars)",
"maxLength": 160
},
"socialImage": {
"type": "string",
"description": "Social media sharing image file ID",
"maxLength": 255
},
"readingTime": {
"type": "integer",
"description": "Estimated reading time in minutes",
"minimum": 1
},
"isFeatured": {
"type": "boolean",
"description": "Whether this post is featured on the homepage",
"default": false
},
"isPinned": {
"type": "boolean",
"description": "Whether this post is pinned to the top",
"default": false
}
},
"required": [
"$id",
"$createdAt",
"$updatedAt",
"title",
"content",
"authorId",
"status",
"viewCount",
"likeCount",
"commentCount",
"shareCount",
"isFeatured",
"isPinned"
],
"additionalProperties": false
}