Update Rows
baatjie_updateUpdate rows in tanOS or sigsche tables by applying a patch to rows that match required filters; unfiltered updates are refused and changes are logged to the audit trail.
Instructions
Update rows matching a filter, in any table in either system. At least one filter is required — an unfiltered update is refused rather than rewriting the whole table. Recorded in tanOS audit_log.
Args:
project ('tanos' | 'sigsche'): Which system
table (string): Target table
patch (object): Columns and new values
filters (Filter[]): Which rows to change — must not be empty
actor (string): Who is writing, for the audit trail
response_format ('markdown' | 'json'): Output format
Returns: { "ok": true, "table": string, "action": "update", "affected": number, "rows": object[], "audit_logged": boolean }
Examples:
Mark a todo done -> table='todos', patch={"status":"done"}, filters=[{"column":"id","op":"eq","value":""}]
Close a maintenance ticket -> table='maintenance', patch={"status":"resolved","resolved_at":"2026-08-08T12:00:00Z"}, filters=[{"column":"ticket_id","op":"eq","value":""}]
Error Handling:
Empty filters are rejected with an explanation
Unknown columns in the patch are reported by name
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| actor | No | Who is performing this write, recorded in tanOS audit_log (e.g. 'baatjie', 'marius-ai', 'deon-ai') | mcp |
| patch | Yes | Columns to set | |
| table | Yes | Target table | |
| filters | No | Filters combined with AND. Example: [{"column":"status","op":"eq","value":"open"}] | |
| project | Yes | Which system: 'tanos' (property OS, pipeline, sequencing) or 'sigsche' (signal scheduler) | |
| response_format | No | Output format: 'markdown' for human-readable, 'json' for machine-readable | markdown |