Bot に、データを覚えさせよう。

メンバーの累計メッセージ数、ロール付与履歴、カスタム設定 ── Bot に必要なデータは BotShade が保管します。DB の構築も、SQL の知識も、サーバー管理も必要ありません。

Bot のフローから、シンプルに読み書き。

値の取得、保存、加減算、リセット ── どれもノードエディタからワンクリックで指定できます。SQL を書く必要も、テーブルを設計する必要もありません。

  • ノードエディタから直接読み書き

  • ギルド単位 / ユーザー単位のスコープ指定

  • 数値の加減算、文字列の連結も組み込み済み

  • 型は自動推論。スキーマ定義は不要

bot_variables

6 rows

name

value

scope

updated

welcome_count

3,421

guild

2026-05-03 14:22

last_active_role

moderator

user

2026-05-03 12:08

greeting_message

"hello"

guild

2026-05-02 09:15

ticket_counter

847

guild

2026-05-03 13:55

warn_points

2

user

2026-05-03 11:40

auto_role_target

"@member"

guild

2026-04-28 16:30

あなたの Bot のデータは、
他の Bot からは見えません。

BotShade のデータベースは Self-hosted Supabase (PostgreSQL) で動いています。Bot ごとに発行された ID と複合プライマリーキーで行を識別し、さらに PostgreSQL の Row Level Security でアクセス制御をデータベース層に強制。アプリケーションコードに頼らず、DB そのものでデータを分離します。

Row Level Security

CREATE POLICY "bot_data_isolation" ON bot_variables FOR ALL USING ( bot_id = current_setting( 'app.current_bot_id' ) ) WITH CHECK ( bot_id = current_setting( 'app.current_bot_id' ) );

Bot ごとに発行された ID をセッション変数に紐付け、PostgreSQL の Row Level Security で他の Bot のデータへのアクセスを遮断。アプリケーション側のフィルタリングに頼らず、DB 層でデータを分離します。

6 時間ごとに、自動でバックアップ。

00:00 / 06:00 / 12:00 / 18:00 (JST) の 1 日 4 回、自動でスナップショットを取得しています。データ損失時の復旧はこちらで対応します。

自動バックアップ履歴

今日 18:00

latest

今日 12:00

今日 06:00

今日 00:00

昨日 18:00

昨日 12:00

データ保管を支える、4 つの仕組み。

Bot 変数の保管

Bot のフローから、変数の追加・取得・更新を直接行えます。値はサーバー側で保管され、Bot を再起動しても失われません。型は自動推論されるため、スキーマ定義は不要です。

テナント分離

PostgreSQL の RLS と複合プライマリーキーで、Bot ごとに完全分離しています。

6 時間ごとに自動バックアップ

1 日 4 回のスナップショットを自動で取得します。

重要なデータは AES-256-GCM で暗号化

個人情報など特に重要なデータは AES-256-GCM で暗号化してからデータベースに保管します。復号鍵はクラウドのシークレットマネージャに分離して保管しているため、データベースのダンプだけでは復号できない構成です。

PostgreSQL

DB エンジン

Self-hosted Supabase

~30ms

平均クエリ応答

参考値(実測ベース)

4 回 / 日

自動バックアップ

00 / 06 / 12 / 18 (JST)

AES-256-GCM

重要データの暗号化

鍵は別保管