feat(federation): add SQL user authentication for peer sync

Merge SQL user authentication with Emma federation sync implementation:

- Add federation_peers table for encrypted credential storage
- Add credentials.go with AES-256-GCM encryption, SHA-256 key derivation
- Extend FederatedStorage interface with credential methods
- Add --user, --password, --sovereignty flags to bd federation add-peer
- Integrate credentials into PushTo/PullFrom/Fetch via withPeerCredentials
- DOLT_REMOTE_USER/PASSWORD env vars protected by mutex for concurrency

Credentials automatically used when syncing with peers that have stored auth.

Continues: bd-wkumz.10, Closes: bd-4p67y

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
beads/crew/jane
2026-01-20 21:15:00 -08:00
committed by Steve Yegge
parent ea51c4b0bd
commit d3d2326a8b
6 changed files with 490 additions and 29 deletions

View File

@@ -0,0 +1,13 @@
package dolt
import (
"testing"
"github.com/steveyegge/beads/internal/storage"
)
func TestDoltStoreImplementsCredentialMethods(t *testing.T) {
// Compile-time check that DoltStore implements FederatedStorage with credential methods
var _ storage.FederatedStorage = (*DoltStore)(nil)
t.Log("DoltStore implements FederatedStorage interface with credential methods")
}