
Security News
Deno 2.6 + Socket: Supply Chain Defense In Your CLI
Deno 2.6 introduces deno audit with a new --socket flag that plugs directly into Socket to bring supply chain security checks into the Deno CLI.
appwrite-sync
Advanced tools
A CLI tool to automate the creation and synchronization of Appwrite database collections from a JSON schema
Here is the updated full README.md with all relevant sections, including installation from PyPI and TestPyPI, publishing instructions, developer mode, and licensing.
README.md for appwrite-sync# appwrite-sync
**`appwrite-sync`** is a CLI tool to automate the creation and synchronization of Appwrite database collections from a JSON schema. It's designed for developers who want to version and manage their Appwrite collections in a clean and repeatable way—ideal for CI/CD, team collaboration, and structured schema design.
---
## 🚀 Features
- 🔁 Sync collections, attributes, relationships, and indexes
- 📁 Reads from a single `schema.json` definition
- ⚙️ Supports all common attribute types including `string`, `enum`, `relationship`
- ✅ Idempotent: avoids duplication and handles existing resources gracefully
- 🛠 CLI-first: easily scriptable and automatable
- 📦 Packaged and installable from PyPI
---
## 📦 Installation
### From PyPI
```bash
pip install appwrite-sync
pip install --index-url https://test.pypi.org/simple/ appwrite-sync
Generate a sample .env file and schema.json template in your current directory:
appwrite-sync init
.envENDPOINT=http://localhost/v1
PROJECT_ID=your-project-id
DB_ID=your-database-id
API_KEY=your-appwrite-api-key
Edit schema.json to define collections, attributes, and indexes. Example:
{
"users": {
"name": "Users",
"attributes": {
"email": {
"type": "email",
"required": true
},
"role": {
"type": "enum",
"required": true,
"elements": ["admin", "user"]
}
},
"indexes": [
{
"key": "unique_email",
"type": "unique",
"attributes": ["email"]
}
]
}
}
Make sure your .env is sourced:
source .env
Then run:
appwrite-sync sync
Or pass DB ID directly:
appwrite-sync sync --db-id your-db-id
string, email, url, integer, boolean, datetimeenum with elementsrelationship with relatedCollection, relationType, and twoWaygit clone https://github.com/aboidrees/appwrite-sync.git
cd appwrite-sync
pip install -e . --config-settings editable_mode=compat
python -m build
twine upload dist/*
To upload to TestPyPI instead:
twine upload --repository-url https://test.pypi.org/legacy/ dist/*
pip install appwrite-sync
This project is licensed under the MIT License.
See the LICENSE file for full details.
Developed by [Muhammad Yousif]
GitHub: https://github.com/aboidrees
---
Would you like me to also generate a matching `LICENSE` file now? If so, let me know what name you want to appear in the copyright.
FAQs
A CLI tool to automate the creation and synchronization of Appwrite database collections from a JSON schema
We found that appwrite-sync demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Deno 2.6 introduces deno audit with a new --socket flag that plugs directly into Socket to bring supply chain security checks into the Deno CLI.

Security News
New DoS and source code exposure bugs in React Server Components and Next.js: what’s affected and how to update safely.

Security News
Socket CEO Feross Aboukhadijeh joins Software Engineering Daily to discuss modern software supply chain attacks and rising AI-driven security risks.