feat(dolt): add server mode config to metadata.json schema (bd-dolt.2.2)
Add Dolt server mode configuration to metadata.json for multi-writer access:
- Add DoltMode, DoltServerHost, DoltServerPort, DoltServerUser fields to Config
- Add helper methods with sensible defaults (127.0.0.1:3306, root user)
- Update factory to read server mode config and pass to dolt.Config
- Add --server, --server-host, --server-port, --server-user flags to bd init
- Validate that --server requires --backend dolt
- Add comprehensive tests for server mode configuration
Example metadata.json for server mode:
{
"backend": "dolt",
"database": "dolt",
"dolt_mode": "server",
"dolt_server_host": "192.168.1.100",
"dolt_server_port": 3306,
"dolt_server_user": "beads"
}
Password should be set via BEADS_DOLT_PASSWORD env var for security.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -31,6 +31,7 @@ type Options struct {
|
||||
ServerMode bool // Connect to dolt sql-server instead of embedded
|
||||
ServerHost string // Server host (default: 127.0.0.1)
|
||||
ServerPort int // Server port (default: 3306)
|
||||
ServerUser string // MySQL user (default: root)
|
||||
}
|
||||
|
||||
// New creates a storage backend based on the backend type.
|
||||
@@ -88,6 +89,19 @@ func NewFromConfigWithOptions(ctx context.Context, beadsDir string, opts Options
|
||||
case configfile.BackendSQLite:
|
||||
return NewWithOptions(ctx, backend, cfg.DatabasePath(beadsDir), opts)
|
||||
case configfile.BackendDolt:
|
||||
// Merge Dolt server mode config into options (config provides defaults, opts can override)
|
||||
if cfg.IsDoltServerMode() {
|
||||
opts.ServerMode = true
|
||||
if opts.ServerHost == "" {
|
||||
opts.ServerHost = cfg.GetDoltServerHost()
|
||||
}
|
||||
if opts.ServerPort == 0 {
|
||||
opts.ServerPort = cfg.GetDoltServerPort()
|
||||
}
|
||||
if opts.ServerUser == "" {
|
||||
opts.ServerUser = cfg.GetDoltServerUser()
|
||||
}
|
||||
}
|
||||
return NewWithOptions(ctx, backend, cfg.DatabasePath(beadsDir), opts)
|
||||
default:
|
||||
return nil, fmt.Errorf("unknown storage backend in config: %s", backend)
|
||||
|
||||
@@ -47,6 +47,7 @@ func init() {
|
||||
ServerMode: opts.ServerMode,
|
||||
ServerHost: opts.ServerHost,
|
||||
ServerPort: opts.ServerPort,
|
||||
ServerUser: opts.ServerUser,
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user