UNPKG

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
{ "$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 }