appwrite / appwrite/sdk-for-python

🚀 Feature: Python SDK does not validate row data against table schema before insertion

Open
#134 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
268
Forks
67
Avg merge
11h 59m
Merged PRs (30d)
2

Description

### 🔖 Feature description

The Python SDK allows defining table schemas (required fields, data types, defaults), but create_row does not perform any client-side validation against this schema.

As a result, issues like missing required fields or incorrect data types are only caught server-side after the API request, leading to delayed and less clear errors.

### 🎤 Pitch

The Python SDK already has full knowledge of the table schema at creation time (required fields, data types, defaults), but this information is not used when inserting rows. This leads to avoidable runtime errors that are only discovered after a network request.

* Adding optional client-side validation would:

* Catch simple mistakes (missing required fields, wrong data types) immediately

* Provide clearer, Python-native error messages

* Reduce unnecessary API calls and debugging time

* Improve onboarding and overall developer experience

This does not replace server-side validation, but complements it by shifting basic checks closer to the developer.

### 👀 Have you spent some time to check if this issue has been raised before?

- [x] I checked and didn't find similar issue

### 🏢 Have you read the Code of Conduct?

- [x] I have read the [Code of Conduct](https://github.com/appwrite/appwrite/blob/master/CODE_OF_CONDUCT.md)

Contributor guide

Open the contributing guide

Research direction

Start by locating the Python SDK's create_row entry point and the table-schema definitions it uses. Determine how required fields, data types, and defaults are represented, then define validation behavior and Python-native errors for invalid rows while preserving server-side validation.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
databases
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.