Database (internal/db) stores listeners, routes, and firewall rules with WAL mode, foreign keys, and idempotent migrations. First run seeds from TOML config; subsequent runs load from DB as source of truth. gRPC admin API now writes to the database before updating in-memory state (write-through cache pattern). Adds snapshot command for VACUUM INTO backups. Refactors firewall.New to accept raw rule slices instead of config struct for flexibility. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
19 lines
300 B
Go
19 lines
300 B
Go
package main
|
|
|
|
import (
|
|
"github.com/spf13/cobra"
|
|
)
|
|
|
|
func rootCmd() *cobra.Command {
|
|
cmd := &cobra.Command{
|
|
Use: "mc-proxy",
|
|
Short: "TLS proxy and router for Metacircular Dynamics services",
|
|
Version: version,
|
|
}
|
|
|
|
cmd.AddCommand(serverCmd())
|
|
cmd.AddCommand(snapshotCmd())
|
|
|
|
return cmd
|
|
}
|