Open3
Web系メモ

Supabaseで認証してもanonロールとして認識される
ポリシーを設定してもRLSではじかれてしまうので困っていた。
原因
クライアント作成時、なぜかヘッダに直接ANON_KEYを指定していた。
多分AI(Cursor)のせい。
const options = global: {
headers: {
Authorization: `Bearer ${import.meta.env.VITE_SUPABASE_ANON_KEY}`,
}
}
const client = createClient(
import.meta.env.VITE_SUPABASE_URL,
import.meta.env.VITE_SUPABASE_ANON_KEY,
options
);

共同編集の実装
編集中のデータに最終ハートビート時刻を記録し、編集中は一定時間ごとにハートビートを送信する。
pg_cronを用いて定期的に最終ハートビートから時間が経ったデータのロックを解除する。

SupabaseのRealtimeでDELETEイベントが発生しない
DELETEイベントはフィルタリングできない。