supabase-community / realtime-py

A Python Client for Phoenix Channels
MIT License
119 stars 47 forks source link

Realtime RLS Broadcasts Errors #50

Open w3b6x9 opened 2 years ago

w3b6x9 commented 2 years ago

Realtime RLS will be broadcasting database changes with errors so that clients can capture what went wrong when listening to database changes.

Please see here for the current error states: https://github.com/supabase/walrus/tree/generic_claims#error-states.

Realtime RLS will broadcast errors as either null (no errors) or an array of strings (at least one error present).

Here are two example Realtime RLS JSON payloads with errors:

{
      "columns": [{"name": "id", "type": "int8"}, {"name": "details", "type": "text"}],
      "commit_timestamp": "2021-12-28T23:59:38.984538+00:00",
      "schema": "public",
      "table": "todos",
      "type": "UPDATE",
      "old_record": {"details": "previous test", "id": 12, "user_id": 1},
      "record": {"details": "test...", "id": 12, "user_id": 1},
      "errors": ["Error 413: Payload Too Large"]
}
{
      "columns": [],
      "commit_timestamp": null,
      "schema": "public",
      "table": "todos",
      "type": "UPDATE",
      "old_record": {},
      "record": {},
      "errors": ["Error.."]
}

Notice:

J0 commented 1 year ago

Woah it's been a while - I'm going to move this to the realtime-py repo so this can be taken into consideration for the realtime-py RFC

github-actions[bot] commented 1 month ago

This issue is stale because it has been open for 365 days with no activity.