Подключение к серверу Dolt

Beadbox может подключаться к работающему SQL-серверу Dolt, обеспечивая многопользовательский доступ и командные рабочие процессы поверх тех же баз данных beads, которые вы используете из CLI.

Требуется Beadbox 0.9.12+ Проверьте вашу версию в Настройки > О программе или на /api/version.

Предварительные требования

Перед началом вам нужны три работающих компонента:

КомпонентМинимальная версияПроверка
beads CLI (bd)0.56.x+bd --version
Сервер DoltЗапущен и принимает подключенияdolt sql-server в вашем проекте
Beadbox0.9.12+Настройки > О программе

На вашем сервере Dolt должна быть хотя бы одна база данных с именем, соответствующим соглашению beads_. Именно так beads создаёт базу при запуске bd init в режиме Dolt. 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 создаёт локальный каталог .beads/ с файлом metadata.json, указывающим на ваш сервер, регистрирует воркспейс и открывает его.

Вы подключены. Изменения, сделанные через bd в CLI или другими членами команды, пишущими в тот же сервер Dolt, появятся в Beadbox в течение нескольких секунд (серверный режим опрашивает изменения с интервалом в 1 секунду).

Подключение с аутентификацией

Если ваш сервер Dolt требует имя пользователя и пароль:

  1. Выполните те же шаги, что и в Быстром старте, но заполните поля Пользователь и Пароль учётными данными вашего сервера Dolt.
  2. Если требуется TLS (обычно для удалённых серверов), установите флажок Использовать TLS.
  3. Нажмите Обнаружить базы данных и продолжите обнаружение.

Как обрабатываются пароли

  • Пароли хранятся только в оперативной памяти. Beadbox никогда не записывает ваш пароль на диск.
  • При перезапуске Beadbox пароль теряется. Чтобы не вводить его при каждом запуске, задайте BEADS_DOLT_PASSWORD в профиле вашей оболочки (см. Сохранение пароля).
  • Внутри Beadbox передаёт пароль в bd CLI через переменную окружения BEADS_DOLT_PASSWORD при каждом вызове подпроцесса.

Hosted Dolt и удалённые серверы

Для серверов Dolt, работающих на удалённой машине, облачной виртуальной машине или Hosted Dolt:

  1. Хост: Введите имя хоста или IP-адрес вашего сервера.
  2. Порт: Используйте порт, указанный вашим провайдером. Hosted Dolt обычно использует 3306.
  3. Пользователь/Пароль: Введите учётные данные от вашего провайдера.
  4. TLS: Отметьте "Использовать TLS" (обязательно для Hosted Dolt и рекомендуется для любого удалённого подключения).
  5. Нажмите Обнаружить базы данных и продолжите как обычно.

Сохранение пароля

Beadbox хранит пароли только в оперативной памяти, поэтому они теряются при перезапуске. Для любого сервера с аутентификацией (локального или удалённого) вы можете избежать повторного ввода пароля, задав его в профиле оболочки:

export BEADS_DOLT_PASSWORD="your-password-here"

Beadbox подхватывает это автоматически для всех воркспейсов в серверном режиме. Поле пароля в интерфейсе имеет приоритет, если заданы оба.

Как это работает

При добавлении серверного воркспейса Beadbox выполняет три действия:

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 использует самоподписанный сертификат, возможно, потребуется добавить центр сертификации в системное хранилище доверия. bd CLI использует системный пул корневых сертификатов и отклоняет недоверенные сертификаты.

Базы данных не найдены

No beads databases found on 127.0.0.1:3307.
Databases must follow the beads_* naming pattern.
  • Соглашение об именовании. Beadbox обнаруживает только базы данных, имена которых начинаются с beads_. Если ваша база данных названа иначе, переименуйте её или создайте новую с помощью bd init в режиме Dolt.
  • База данных существует, но не видна? У учётной записи пользователя может не быть разрешения видеть все базы данных.
  • Свежий сервер? Если вы только что запустили Dolt без инициализации beads, баз данных beads ещё нет. Выполните bd init в каталоге проекта с настроенным режимом Dolt, затем повторите обнаружение.