Switch Docker runtime from scratch to alpine:3.19 so kubectl exec works for admin CLI operations. Add `synapbus channels create` and `synapbus channels join` CLI commands with corresponding admin socket handlers. Change default socket path to /data/synapbus.sock (absolute). Also add Helm envFrom support and NodePort configuration. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1.8 KiB
1.8 KiB
Data Model: Admin CLI & Docker Fixes
Feature: 006-admin-cli-docker-fixes Date: 2026-03-15
No Schema Changes
This feature does not introduce any new database tables, columns, or migrations. All operations use existing entities:
Existing Entities Used
Channel (existing)
id(int64): Auto-increment primary keyname(string): Unique, normalized channel namedescription(string): Optional descriptiontype(string): "standard", "blackboard", "auction"is_private(bool): Whether channel requires inviteis_system(bool): Whether channel is system-managedcreated_by(string): Agent name of creatorcreated_at(timestamp): Creation time
Membership (existing)
channel_id(int64): FK to channelsagent_name(string): Name of member agentrole(string): "owner", "member"joined_at(timestamp): When the agent joined
Data Flow
CLI Command Admin Socket Handler Channel Service
─────────────────────────────────────────────────────────────────────────────
channels create --name X → channels.create {name, desc} → CreateChannel(req)
channels join --ch X --ag Y → channels.join {channel, agent} → GetChannelByName(X)
→ JoinChannel(id, Y)
Validation Rules (existing, no changes)
- Channel names: lowercase, alphanumeric + hyphens, 1-64 chars, no leading/trailing hyphens
- Agent names: must exist in the agent registry
- Channel join: idempotent (re-joining a channel the agent is already in is a no-op)
- Private channels: require a pending invite before join