Dolt サーバーへの接続

Beadbox は稼働中の Dolt SQL サーバーに接続でき、CLI で使用している beads データベースに対して複数人での書き込みアクセスとチームワークフローを実現します。

Beadbox 0.9.12 以上が必要です バージョンは設定 > バージョン情報、または以下で確認できます /api/version.

前提条件

開始する前に、以下の3つが稼働している必要があります:

コンポーネント最小バージョン確認方法
beads CLI (bd)0.56.x+bd --version
Dolt サーバー稼働中で接続を受け付けている状態dolt sql-server プロジェクトディレクトリ内で実行
Beadbox0.9.12+設定 > バージョン情報

Dolt サーバーには beads_ 命名規則に従うデータベースが少なくとも1つ必要です。これは Dolt モードで bd init を実行したときに beads が作成するものです。Beadbox はこのプレフィックスを使って beads データベースを検出し、関係のないデータベースを無視します。

クイックスタート (ローカル、認証なし)

最も手軽な方法: 認証を設定していないローカルマシン上の Dolt サーバーに接続します。

1. Dolt サーバーを起動

cd ~/Projects/myproject
dolt sql-server

Dolt はデフォルトでポート 3307 で待ち受けます。

2. Beadbox を開く

ワークスペース選択画面でサーバーで追加をクリックします (初回起動時はウェルカム画面の詳細設定カードを探してください)。

3. 接続情報を入力

ホスト127.0.0.1 (入力済み)
ポート3307 (入力済み)
ユーザーroot (入力済み)
パスワード空のまま
TLSチェックなし

4. 「データベースを検出」をクリック

Beadbox がサーバーに接続し、SHOW DATABASES を実行して beads_* パターンに一致するすべてのデータベースを検索します。

5. データベースを選択

検出画面にサーバー上で見つかったすべての beads データベースが一覧表示されます。ワークスペースとして追加したいものにチェックを入れてください。それぞれにローカルディレクトリパスが割り当てられます。

6. 「ワークスペースを追加」をクリック

Beadbox がサーバー接続情報を含む metadata.json を持つローカルの .beads/ ディレクトリを作成し、ワークスペースを登録して開きます。

接続完了です。CLI で bd を通じて行った変更や、同じ Dolt サーバーに書き込む他のチームメンバーの変更は、数秒以内に Beadbox に表示されます (サーバーモードでは1秒間隔で変更をポーリングします)。

認証付きで接続

Dolt サーバーがユーザー名とパスワードを要求する場合:

  1. クイックスタートと同じ手順に従い、ユーザーパスワードフィールドに Dolt サーバーの認証情報を入力してください。
  2. TLS が必要な場合 (リモートサーバーでは一般的)、TLS を使用チェックボックスをオンにしてください。
  3. データベースを検出をクリックして検出を進めてください。

パスワードの取り扱い

  • パスワードはメモリ内にのみ保持されます。Beadbox はパスワードをディスクに書き込みません。
  • Beadbox を再起動するとパスワードは失われます。起動のたびに再入力する手間を省くには、シェルプロファイルで BEADS_DOLT_PASSWORD を設定してください (パスワードの永続化を参照)。
  • 内部的には、Beadbox はサブプロセス呼び出しごとに BEADS_DOLT_PASSWORD 環境変数を通じて bd CLI にパスワードを渡します。

Hosted Dolt とリモートサーバー

リモートマシン、クラウド VM、または Hosted Dolt で稼働する Dolt サーバーの場合:

  1. ホスト: サーバーのホスト名または IP を入力します。
  2. ポート: プロバイダーが指定するポートを使用します。Hosted Dolt は通常 3306 を使用します。
  3. ユーザー/パスワード: プロバイダーから提供された認証情報を入力します。
  4. TLS: 「TLS を使用」にチェックを入れてください (Hosted Dolt では必須、リモート接続全般で推奨)。
  5. データベースを検出をクリックし、通常通り進めてください。

パスワードの永続化

Beadbox はパスワードをメモリ内にのみ保持するため、再起動時に失われます。認証が必要なサーバー (ローカル、リモート問わず) では、シェルプロファイルに設定することで再入力を省略できます:

export BEADS_DOLT_PASSWORD="your-password-here"

Beadbox はすべてのサーバーモードワークスペースでこの設定を自動的に検出します。UI のパスワードフィールドと両方が設定されている場合は、UI が優先されます。

仕組み

サーバーワークスペースを追加すると、Beadbox は3つの処理を行います:

1. 接続メタデータの書き込み

ローカルプロジェクトディレクトリの .beads/metadata.json にサーバー接続情報を記録します:

{
  "dolt_mode": "server",
  "dolt_server_host": "127.0.0.1",
  "dolt_server_port": 3307,
  "dolt_database": "beads_myproject",
  "dolt_server_user": "root",
  "database": "dolt"
}

TLS が有効な場合、"dolt_server_tls": true キーが追加されます。このファイルは、ローカルの組み込みデータベースではなくリモートサーバーに接続するよう bd に指示します。パスワードは意図的にこのファイルには含まれません。

2. ワークスペースの登録

ローカルディレクトリが ~/.beads/registry.json に追加され、Beadbox と bd が次回起動時に検出できるようになります。

3. 実行時の認証情報の受け渡し

Beadbox がこのワークスペースで bd コマンドを呼び出すたびに、サブプロセスの環境に BEADS_DOLT_PASSWORD を設定します。パスワードはプロセスメモリ内にのみ存在します。

トラブルシューティング

接続拒否

Error: connect ECONNREFUSED 127.0.0.1:3307
  • Dolt は起動していますか? ps aux | grep dolt で確認するか、プロジェクトディレクトリで dolt sql-server を試してください。
  • ポートは正しいですか? Dolt のデフォルトは 3307 ですが、別のポートに設定されている可能性があります。
  • ファイアウォールは? リモートサーバーでは、インバウンド接続用にポートが開放されていることを確認してください。

アクセス拒否

Error: Access denied for user 'root'
  • パスワードが必要ですか? Dolt サーバーで認証が有効になっている可能性があります。接続フォームにパスワードを入力してください。
  • ユーザー名は正しいですか? ユーザー名が読み取りアクセス権を持つ Dolt ユーザーと一致しているか確認してください。
  • パスワードは正しいですか? パスワードはセッション間で保存されません。Beadbox を再起動した後に再入力してください。

TLS ハンドシェイクエラー

Error: TLS handshake failed
  • TLS チェックボックスの不一致 サーバーが TLS を要求する場合は「TLS を使用」にチェックを入れてください。TLS に対応していない場合はチェックを外してください。どちらの方向でも間違っているとハンドシェイクエラーが発生します。
  • 自己署名証明書 Dolt サーバーが自己署名証明書を使用している場合、CA をシステムのトラストストアに追加する必要がある場合があります。bd CLI はシステムのルート CA プールを使用し、信頼されていない証明書を拒否します。

データベースが見つからない

No beads databases found on 127.0.0.1:3307.
Databases must follow the beads_* naming pattern.
  • 命名規則 Beadbox は名前が beads_ で始まるデータベースのみを検出します。データベースが別の名前の場合は、名前を変更するか、Dolt モードで bd init を使用して新しいデータベースを作成してください。
  • データベースは存在するが表示されない? ユーザーアカウントにすべてのデータベースを参照する権限がない可能性があります。
  • 新規サーバーですか? beads を初期化せずに Dolt を起動した場合、beads データベースはまだ存在しません。Dolt モードを設定したプロジェクトディレクトリで bd init を実行してから、検出を再試行してください。