// catalogd is the metadata control plane — dataset registry, // Parquet manifest persistence, idempotent registration with // schema-fingerprint gate (per Rust ADR-020). D3 wires the // register/list/manifest routes; D1 just stands up the binary. package main import ( "flag" "log/slog" "os" "git.agentview.dev/profit/golangLAKEHOUSE/internal/shared" "github.com/go-chi/chi/v5" ) func main() { configPath := flag.String("config", "lakehouse.toml", "path to TOML config") flag.Parse() cfg, err := shared.LoadConfig(*configPath) if err != nil { slog.Error("config", "err", err) os.Exit(1) } if err := shared.Run("catalogd", cfg.Catalogd.Bind, func(_ chi.Router) { // D3 wires: // POST /catalog/register (idempotent by name + fingerprint, 409 on drift) // GET /catalog/manifest/{name} // GET /catalog/list }); err != nil { slog.Error("server", "err", err) os.Exit(1) } }