概要
supabasae cli を用いてローカル環境を用意しているとき、開発環境用に作成した Auth Users を都度削除したくなった。
バージョン
- supabase cli: 1.4.7
- @supabase/supabase-js: 2.1.0
結果
ちょっと公式ドキュメントだけだと分かりづらかったけど以下の感じに。
import { createClient } from '@supabase/supabase-js'
const supabaseClient = createClient(process.env.SUPABASE_URL, SUPABASE_SERVICE_ROLE_KEY)
await supabaseClient.auth.admin.listUsers().then(async res => {
await Promise.all(res.data.users.map(user => supabaseClient.auth.admin.deleteUser(user.id)))
})
大事なのは auth.admin
がサーバー向け機能であるため、 createClient
の第二引数には service_role key
を設定する必要があること。
ローカル環境の service_role key
は supabase status
から確認できる。
$ supabase status
supabase local development setup is running.
API URL: http://localhost:54321
DB URL: postgresql://postgres:postgres@localhost:54322/postgres
Studio URL: http://localhost:54323
Inbucket URL: http://localhost:54324
anon key: hogehoge
service_role key: fugafuga