aboutsummaryrefslogtreecommitdiff
path: root/query/delete.md
diff options
context:
space:
mode:
Diffstat (limited to 'query/delete.md')
-rw-r--r--query/delete.md46
1 files changed, 46 insertions, 0 deletions
diff --git a/query/delete.md b/query/delete.md
new file mode 100644
index 0000000..db55292
--- /dev/null
+++ b/query/delete.md
@@ -0,0 +1,46 @@
+# Delete
+
+[back to query](README.md) /// [home](../README.md)
+
+Remove rows from a table.
+
+## Request
+
+```json
+{
+ "action": "delete",
+ "table": "items",
+ "filter": {
+ "column": "id",
+ "op": "=",
+ "value": 42
+ }
+}
+```
+
+## Fields
+
+| Field | Type | Required | Notes |
+|----------|--------|----------|-------------------------|
+| `action` | string | yes | must be `"delete"` |
+| `table` | string | yes | target table |
+| `where` | object | yes* | simple key value filter |
+| `filter` | object | yes* | structured filter |
+
+*at least one of `where` or `filter` is required. no unfiltered deletes lol.
+
+## Response
+
+```json
+{
+ "success": true,
+ "rows_affected": 1
+}
+```
+
+## Behaviors
+
+- WHERE clause is **mandatory**. same as update, no blanket deletes allowed. jsonderulo doesnt want you nuking entire tables on accident
+- ownership scoping should be applied based on your permission level
+- limit should be applied and capped to your max
+- you need write permission on the table (`rw`, `rwa`, `rwo`, `rwg`)