From 63144078a11cb215f4d87a3e5e5922520fe59a0e Mon Sep 17 00:00:00 2001 From: Michael Quigley Date: Sat, 13 Sep 2025 23:30:21 -0400 Subject: [PATCH] df -> v0.3.0 --- canary/config.go | 6 +++--- cmd/zrok/accessPublic.go | 4 ++-- cmd/zrok/accessPublicValidate.go | 4 ++-- cmd/zrok/adminBootstrap.go | 4 ++-- cmd/zrok/adminGc.go | 4 ++-- cmd/zrok/adminMigrate.go | 4 ++-- cmd/zrok/adminUnbootstrap.go | 4 ++-- cmd/zrok/controller.go | 4 ++-- cmd/zrok/controllerMetricsBridge.go | 4 ++-- cmd/zrok/controllerValidate.go | 4 ++-- controller/automation/client.go | 2 +- controller/config/config.go | 6 +++--- .../dynamicProxyController/amqp_publisher.go | 8 +++---- controller/dynamicProxyController/config.go | 6 +++--- controller/emailUi/config.go | 2 +- controller/env/df.go | 14 ++++++------- controller/metrics/amqpSink.go | 8 +++---- controller/metrics/amqpSource.go | 8 +++---- controller/metrics/bridge.go | 6 +++--- controller/metrics/config.go | 8 ++++--- controller/metrics/fileSource.go | 6 +++--- controller/metrics/websocketSource.go | 8 +++---- controller/store/store.go | 2 +- controller/zrokEdgeSdk/client.go | 2 +- endpoints/dynamicProxy/amqpSubscriber.go | 13 ++++++------ endpoints/dynamicProxy/authOauth.go | 4 ++-- endpoints/dynamicProxy/authOauthRouter.go | 13 ++++++------ endpoints/dynamicProxy/config.go | 18 ++++++++-------- endpoints/dynamicProxy/controllerClient.go | 10 ++++----- endpoints/dynamicProxy/http.go | 10 ++++----- endpoints/dynamicProxy/main.go | 21 ++++++++++--------- endpoints/dynamicProxy/mappings.go | 12 +++++------ endpoints/dynamicProxy/providerGithub.go | 6 +++--- endpoints/dynamicProxy/providerGoogle.go | 6 +++--- endpoints/dynamicProxy/providerOidc.go | 6 +++--- endpoints/publicProxy/config.go | 16 +++++++------- endpoints/publicProxy/providerGithub.go | 6 +++--- endpoints/publicProxy/providerGoogle.go | 6 +++--- endpoints/publicProxy/providerOidc.go | 6 +++--- go.mod | 2 +- go.sum | 4 ++-- 41 files changed, 146 insertions(+), 141 deletions(-) diff --git a/canary/config.go b/canary/config.go index cb02a564..a7cbf347 100644 --- a/canary/config.go +++ b/canary/config.go @@ -1,7 +1,7 @@ package canary import ( - "github.com/michaelquigley/df" + "github.com/michaelquigley/df/dd" "github.com/openziti/zrok/controller/metrics" "github.com/pkg/errors" "github.com/sirupsen/logrus" @@ -15,13 +15,13 @@ type Config struct { } func LoadConfig(path string) (*Config, error) { - cfg, err := df.NewFromYAML[Config](path) + cfg, err := dd.NewFromYAML[Config](path) if err != nil { return nil, err } if cfg.V != ConfigVersion { return nil, errors.Errorf("expecting canary configuration version '%v', got '%v'", ConfigVersion, cfg.V) } - logrus.Info(df.MustInspect(cfg)) + logrus.Info(dd.MustInspect(cfg)) return cfg, nil } diff --git a/cmd/zrok/accessPublic.go b/cmd/zrok/accessPublic.go index 334b4d1b..57e65e10 100644 --- a/cmd/zrok/accessPublic.go +++ b/cmd/zrok/accessPublic.go @@ -3,7 +3,7 @@ package main import ( "fmt" - "github.com/michaelquigley/df" + "github.com/michaelquigley/df/dd" "github.com/openziti/zrok/endpoints/publicProxy" "github.com/openziti/zrok/tui" "github.com/sirupsen/logrus" @@ -42,7 +42,7 @@ func (cmd *accessPublicCommand) run(_ *cobra.Command, args []string) { panic(err) } } - logrus.Info(df.MustInspect(cfg)) + logrus.Info(dd.MustInspect(cfg)) frontend, err := publicProxy.NewHTTP(cfg) if err != nil { if !panicInstead { diff --git a/cmd/zrok/accessPublicValidate.go b/cmd/zrok/accessPublicValidate.go index 9897c081..6efdf0dc 100644 --- a/cmd/zrok/accessPublicValidate.go +++ b/cmd/zrok/accessPublicValidate.go @@ -3,7 +3,7 @@ package main import ( "fmt" - "github.com/michaelquigley/df" + "github.com/michaelquigley/df/dd" "github.com/openziti/zrok/endpoints/publicProxy" "github.com/openziti/zrok/tui" "github.com/sirupsen/logrus" @@ -34,5 +34,5 @@ func (cmd *accessPublicValidateCommand) run(_ *cobra.Command, args []string) { if err := cfg.Load(args[0]); err != nil { tui.Error(fmt.Sprintf("unable to load configuration '%v'", args[0]), err) } - logrus.Info(df.MustInspect(cfg)) + logrus.Info(dd.MustInspect(cfg)) } diff --git a/cmd/zrok/adminBootstrap.go b/cmd/zrok/adminBootstrap.go index 10ab182a..d630839d 100644 --- a/cmd/zrok/adminBootstrap.go +++ b/cmd/zrok/adminBootstrap.go @@ -1,7 +1,7 @@ package main import ( - "github.com/michaelquigley/df" + "github.com/michaelquigley/df/dd" "github.com/openziti/zrok/controller" "github.com/openziti/zrok/controller/config" "github.com/sirupsen/logrus" @@ -35,7 +35,7 @@ func (cmd *adminBootstrap) run(_ *cobra.Command, args []string) { if err != nil { panic(err) } - logrus.Info(df.MustInspect(inCfg)) + logrus.Info(dd.MustInspect(inCfg)) if err := controller.Bootstrap(cmd.skipFrontend, inCfg); err != nil { panic(err) } diff --git a/cmd/zrok/adminGc.go b/cmd/zrok/adminGc.go index d9262e36..58cf22e1 100644 --- a/cmd/zrok/adminGc.go +++ b/cmd/zrok/adminGc.go @@ -1,7 +1,7 @@ package main import ( - "github.com/michaelquigley/df" + "github.com/michaelquigley/df/dd" "github.com/openziti/zrok/controller" "github.com/openziti/zrok/controller/config" "github.com/sirupsen/logrus" @@ -32,7 +32,7 @@ func (gc *adminGcCommand) run(_ *cobra.Command, args []string) { if err != nil { panic(err) } - logrus.Info(df.MustInspect(cfg)) + logrus.Info(dd.MustInspect(cfg)) if err := controller.GC(cfg); err != nil { panic(err) } diff --git a/cmd/zrok/adminMigrate.go b/cmd/zrok/adminMigrate.go index 8378f748..bb9b3d54 100644 --- a/cmd/zrok/adminMigrate.go +++ b/cmd/zrok/adminMigrate.go @@ -1,7 +1,7 @@ package main import ( - "github.com/michaelquigley/df" + "github.com/michaelquigley/df/dd" "github.com/openziti/zrok/controller/config" "github.com/openziti/zrok/controller/store" "github.com/sirupsen/logrus" @@ -36,7 +36,7 @@ func (cmd *adminMigrate) run(_ *cobra.Command, args []string) { panic(err) } - logrus.Info(df.MustInspect(inCfg)) + logrus.Info(dd.MustInspect(inCfg)) // disable auto-migration, we'll control it manually inCfg.Store.DisableAutoMigration = true diff --git a/cmd/zrok/adminUnbootstrap.go b/cmd/zrok/adminUnbootstrap.go index ced5cc05..78f4844e 100644 --- a/cmd/zrok/adminUnbootstrap.go +++ b/cmd/zrok/adminUnbootstrap.go @@ -1,7 +1,7 @@ package main import ( - "github.com/michaelquigley/df" + "github.com/michaelquigley/df/dd" "github.com/openziti/zrok/controller" "github.com/openziti/zrok/controller/config" "github.com/sirupsen/logrus" @@ -32,7 +32,7 @@ func (cmd *adminUnbootstrap) run(_ *cobra.Command, args []string) { if err != nil { panic(err) } - logrus.Info(df.MustInspect(cfg)) + logrus.Info(dd.MustInspect(cfg)) if err := controller.Unbootstrap(cfg); err != nil { panic(err) } diff --git a/cmd/zrok/controller.go b/cmd/zrok/controller.go index 26020e34..d53188ee 100644 --- a/cmd/zrok/controller.go +++ b/cmd/zrok/controller.go @@ -1,7 +1,7 @@ package main import ( - "github.com/michaelquigley/df" + "github.com/michaelquigley/df/dd" "github.com/openziti/zrok/controller" "github.com/openziti/zrok/controller/config" "github.com/sirupsen/logrus" @@ -42,7 +42,7 @@ func (cmd *controllerCommand) run(_ *cobra.Command, args []string) { if err != nil { panic(err) } - logrus.Info(df.MustInspect(cfg)) + logrus.Info(dd.MustInspect(cfg)) if err := controller.Run(cfg); err != nil { panic(err) } diff --git a/cmd/zrok/controllerMetricsBridge.go b/cmd/zrok/controllerMetricsBridge.go index 7a68d690..b05599f1 100644 --- a/cmd/zrok/controllerMetricsBridge.go +++ b/cmd/zrok/controllerMetricsBridge.go @@ -6,7 +6,7 @@ import ( "syscall" "time" - "github.com/michaelquigley/df" + "github.com/michaelquigley/df/dd" "github.com/openziti/zrok/controller/config" "github.com/openziti/zrok/controller/metrics" "github.com/sirupsen/logrus" @@ -37,7 +37,7 @@ func (cmd *bridgeCommand) run(_ *cobra.Command, args []string) { if err != nil { panic(err) } - logrus.Info(df.MustInspect(cfg)) + logrus.Info(dd.MustInspect(cfg)) bridge, err := metrics.NewBridge(cfg.Bridge) if err != nil { diff --git a/cmd/zrok/controllerValidate.go b/cmd/zrok/controllerValidate.go index 683e9124..aafff62b 100644 --- a/cmd/zrok/controllerValidate.go +++ b/cmd/zrok/controllerValidate.go @@ -1,7 +1,7 @@ package main import ( - "github.com/michaelquigley/df" + "github.com/michaelquigley/df/dd" "github.com/openziti/zrok/controller/config" "github.com/openziti/zrok/tui" "github.com/sirupsen/logrus" @@ -32,5 +32,5 @@ func (cmd *controllerValidateCommand) run(_ *cobra.Command, args []string) { if err != nil { tui.Error("controller config validation failed", err) } - logrus.Info(df.MustInspect(cfg)) + logrus.Info(dd.MustInspect(cfg)) } diff --git a/controller/automation/client.go b/controller/automation/client.go index dff9d7b2..96509c8f 100644 --- a/controller/automation/client.go +++ b/controller/automation/client.go @@ -10,7 +10,7 @@ import ( type Config struct { ApiEndpoint string Username string - Password string `df:"+secret"` + Password string `dd:"+secret"` } type Client struct { diff --git a/controller/config/config.go b/controller/config/config.go index 3f0f5b65..1b6e2507 100644 --- a/controller/config/config.go +++ b/controller/config/config.go @@ -6,7 +6,7 @@ import ( "strconv" "time" - "github.com/michaelquigley/df" + "github.com/michaelquigley/df/dd" "github.com/openziti/zrok/controller/agentController" "github.com/openziti/zrok/controller/dynamicProxyController" "github.com/openziti/zrok/controller/emailUi" @@ -41,7 +41,7 @@ type Config struct { } type AdminConfig struct { - Secrets []string `df:"+secret"` + Secrets []string `dd:"+secret"` TouLink string NewAccountLink string ProfileEndpoint string @@ -125,7 +125,7 @@ func DefaultConfig() *Config { func LoadConfig(path string) (*Config, error) { cfg := DefaultConfig() - if err := df.MergeFromYAML(cfg, path, env.GetDfOptions()); err != nil { + if err := dd.MergeFromYAML(cfg, path, env.GetDdOptions()); err != nil { return nil, errors.Wrapf(err, "error loading controller config '%v'", path) } if !envVersionOk() && cfg.V != ConfigVersion { diff --git a/controller/dynamicProxyController/amqp_publisher.go b/controller/dynamicProxyController/amqp_publisher.go index b5d20f0a..a8372699 100644 --- a/controller/dynamicProxyController/amqp_publisher.go +++ b/controller/dynamicProxyController/amqp_publisher.go @@ -5,15 +5,15 @@ import ( "encoding/json" "time" - "github.com/michaelquigley/df" + "github.com/michaelquigley/df/dd" "github.com/pkg/errors" amqp "github.com/rabbitmq/amqp091-go" "github.com/sirupsen/logrus" ) type AmqpPublisherConfig struct { - Url string `df:"+required"` - ExchangeName string `df:"+required"` + Url string `dd:"+required"` + ExchangeName string `dd:"+required"` } type AmqpPublisher struct { @@ -74,7 +74,7 @@ func (p *AmqpPublisher) Publish(ctx context.Context, frontendToken string, m Map } } - data, err := df.Unbind(m) + data, err := dd.Unbind(m) if err != nil { return errors.Wrap(err, "failed to serialize mapping") } diff --git a/controller/dynamicProxyController/config.go b/controller/dynamicProxyController/config.go index d9922ef5..17d3e400 100644 --- a/controller/dynamicProxyController/config.go +++ b/controller/dynamicProxyController/config.go @@ -1,7 +1,7 @@ package dynamicProxyController type Config struct { - IdentityPath string `df:"+required"` - ServiceName string `df:"+required"` - AmqpPublisher *AmqpPublisherConfig `df:"+required"` + IdentityPath string `dd:"+required"` + ServiceName string `dd:"+required"` + AmqpPublisher *AmqpPublisherConfig `dd:"+required"` } diff --git a/controller/emailUi/config.go b/controller/emailUi/config.go index 77c26cae..a10367dd 100644 --- a/controller/emailUi/config.go +++ b/controller/emailUi/config.go @@ -4,6 +4,6 @@ type Config struct { Host string Port int Username string - Password string `df:"+secret"` + Password string `dd:"+secret"` From string } diff --git a/controller/env/df.go b/controller/env/df.go index 2ab8394c..8b9b0836 100644 --- a/controller/env/df.go +++ b/controller/env/df.go @@ -1,16 +1,16 @@ package env import ( - "github.com/michaelquigley/df" + "github.com/michaelquigley/df/dd" "github.com/openziti/zrok/controller/metrics" ) -var dfOpts *df.Options +var ddOpts *dd.Options -func GetDfOptions() *df.Options { - if dfOpts == nil { - dfOpts = &df.Options{ - DynamicBinders: map[string]func(map[string]any) (df.Dynamic, error){ +func GetDdOptions() *dd.Options { + if ddOpts == nil { + ddOpts = &dd.Options{ + DynamicBinders: map[string]func(map[string]any) (dd.Dynamic, error){ metrics.AmqpSinkType: metrics.LoadAmqpSink, metrics.AmqpSourceType: metrics.LoadAmqpSource, metrics.FileSourceType: metrics.LoadFileSource, @@ -18,5 +18,5 @@ func GetDfOptions() *df.Options { }, } } - return dfOpts + return ddOpts } diff --git a/controller/metrics/amqpSink.go b/controller/metrics/amqpSink.go index 60006043..0cd4f540 100644 --- a/controller/metrics/amqpSink.go +++ b/controller/metrics/amqpSink.go @@ -4,7 +4,7 @@ import ( "context" "time" - "github.com/michaelquigley/df" + "github.com/michaelquigley/df/dd" "github.com/pkg/errors" amqp "github.com/rabbitmq/amqp091-go" "github.com/sirupsen/logrus" @@ -13,12 +13,12 @@ import ( const AmqpSinkType = "amqpSink" type AmqpSinkConfig struct { - Url string `df:"+secret"` + Url string `dd:"+secret"` QueueName string } -func LoadAmqpSink(v map[string]any) (df.Dynamic, error) { - cfg, err := df.New[AmqpSinkConfig](v) +func LoadAmqpSink(v map[string]any) (dd.Dynamic, error) { + cfg, err := dd.New[AmqpSinkConfig](v) if err != nil { return nil, err } diff --git a/controller/metrics/amqpSource.go b/controller/metrics/amqpSource.go index eadb6e43..b22a50bf 100644 --- a/controller/metrics/amqpSource.go +++ b/controller/metrics/amqpSource.go @@ -3,7 +3,7 @@ package metrics import ( "time" - "github.com/michaelquigley/df" + "github.com/michaelquigley/df/dd" "github.com/pkg/errors" amqp "github.com/rabbitmq/amqp091-go" "github.com/sirupsen/logrus" @@ -12,12 +12,12 @@ import ( const AmqpSourceType = "amqpSource" type AmqpSourceConfig struct { - Url string `df:"+secret"` + Url string `dd:"+secret"` QueueName string } -func LoadAmqpSource(v map[string]any) (df.Dynamic, error) { - cfg, err := df.New[AmqpSourceConfig](v) +func LoadAmqpSource(v map[string]any) (dd.Dynamic, error) { + cfg, err := dd.New[AmqpSourceConfig](v) if err != nil { return nil, err } diff --git a/controller/metrics/bridge.go b/controller/metrics/bridge.go index 724819a8..565356a5 100644 --- a/controller/metrics/bridge.go +++ b/controller/metrics/bridge.go @@ -1,14 +1,14 @@ package metrics import ( - "github.com/michaelquigley/df" + "github.com/michaelquigley/df/dd" "github.com/pkg/errors" "github.com/sirupsen/logrus" ) type BridgeConfig struct { - Source df.Dynamic - Sink df.Dynamic + Source dd.Dynamic + Sink dd.Dynamic } type Bridge struct { diff --git a/controller/metrics/config.go b/controller/metrics/config.go index 14d344e5..ef246557 100644 --- a/controller/metrics/config.go +++ b/controller/metrics/config.go @@ -1,6 +1,8 @@ package metrics -import "github.com/michaelquigley/df" +import ( + "github.com/michaelquigley/df/dd" +) type Config struct { Influx *InfluxConfig @@ -8,12 +10,12 @@ type Config struct { } type AgentConfig struct { - Source df.Dynamic + Source dd.Dynamic } type InfluxConfig struct { Url string Bucket string Org string - Token string `df:"+secret"` + Token string `dd:"+secret"` } diff --git a/controller/metrics/fileSource.go b/controller/metrics/fileSource.go index 932ed9f6..320fb978 100644 --- a/controller/metrics/fileSource.go +++ b/controller/metrics/fileSource.go @@ -4,7 +4,7 @@ import ( "encoding/binary" "os" - "github.com/michaelquigley/df" + "github.com/michaelquigley/df/dd" "github.com/nxadm/tail" "github.com/pkg/errors" "github.com/sirupsen/logrus" @@ -17,8 +17,8 @@ type FileSourceConfig struct { PointerPath string } -func LoadFileSource(v map[string]any) (df.Dynamic, error) { - cfg, err := df.New[FileSourceConfig](v) +func LoadFileSource(v map[string]any) (dd.Dynamic, error) { + cfg, err := dd.New[FileSourceConfig](v) if err != nil { return nil, err } diff --git a/controller/metrics/websocketSource.go b/controller/metrics/websocketSource.go index 16bde48e..36fe11ff 100644 --- a/controller/metrics/websocketSource.go +++ b/controller/metrics/websocketSource.go @@ -10,7 +10,7 @@ import ( "time" "github.com/gorilla/websocket" - "github.com/michaelquigley/df" + "github.com/michaelquigley/df/dd" "github.com/openziti/channel/v4" "github.com/openziti/channel/v4/websockets" "github.com/openziti/edge-api/rest_util" @@ -28,11 +28,11 @@ type WebsocketSourceConfig struct { WebsocketEndpoint string // wss://127.0.0.1:1280/fabric/v1/ws-api ApiEndpoint string // https://127.0.0.1:1280 Username string - Password string `df:"+secret"` + Password string `dd:"+secret"` } -func LoadWebsocketSource(v map[string]any) (df.Dynamic, error) { - cfg, err := df.New[WebsocketSourceConfig](v) +func LoadWebsocketSource(v map[string]any) (dd.Dynamic, error) { + cfg, err := dd.New[WebsocketSourceConfig](v) if err != nil { return nil, err } diff --git a/controller/store/store.go b/controller/store/store.go index 211c1db0..ff56e020 100644 --- a/controller/store/store.go +++ b/controller/store/store.go @@ -23,7 +23,7 @@ type Model struct { } type Config struct { - Path string `df:"+secret"` + Path string `dd:"+secret"` Type string EnableLocking bool DisableAutoMigration bool diff --git a/controller/zrokEdgeSdk/client.go b/controller/zrokEdgeSdk/client.go index f5904a9b..9d8b948a 100644 --- a/controller/zrokEdgeSdk/client.go +++ b/controller/zrokEdgeSdk/client.go @@ -10,7 +10,7 @@ import ( type Config struct { ApiEndpoint string Username string - Password string `df:"+secret"` + Password string `dd:"+secret"` } func Client(cfg *Config) (*rest_management_api_client.ZitiEdgeManagement, error) { diff --git a/endpoints/dynamicProxy/amqpSubscriber.go b/endpoints/dynamicProxy/amqpSubscriber.go index 1a612cbf..1ccbf77e 100644 --- a/endpoints/dynamicProxy/amqpSubscriber.go +++ b/endpoints/dynamicProxy/amqpSubscriber.go @@ -6,7 +6,8 @@ import ( "time" "github.com/google/uuid" - "github.com/michaelquigley/df" + "github.com/michaelquigley/df/da" + "github.com/michaelquigley/df/dd" "github.com/openziti/zrok/controller/dynamicProxyController" "github.com/pkg/errors" amqp "github.com/rabbitmq/amqp091-go" @@ -14,8 +15,8 @@ import ( ) type amqpSubscriberConfig struct { - Url string `df:"+required"` - ExchangeName string `df:"+required"` + Url string `dd:"+required"` + ExchangeName string `dd:"+required"` QueueDepth int } @@ -31,12 +32,12 @@ type amqpSubscriber struct { updates chan *dynamicProxyController.Mapping } -func buildAmqpSubscriber(app *df.Application[*config]) error { +func buildAmqpSubscriber(app *da.Application[*config]) error { subscriber, err := newAmqpSubscriber(app.Cfg) if err != nil { return err } - df.Set(app.C, subscriber) + da.Set(app.C, subscriber) return nil } @@ -206,7 +207,7 @@ func (s *amqpSubscriber) handleMessage(delivery amqp.Delivery) error { if err := json.Unmarshal(delivery.Body, &data); err != nil { return errors.Wrap(err, "failed to unmarshal mapping data") } - update, err := df.New[dynamicProxyController.Mapping](data) + update, err := dd.New[dynamicProxyController.Mapping](data) if err != nil { return err } diff --git a/endpoints/dynamicProxy/authOauth.go b/endpoints/dynamicProxy/authOauth.go index a5c5d8ec..187b86ae 100644 --- a/endpoints/dynamicProxy/authOauth.go +++ b/endpoints/dynamicProxy/authOauth.go @@ -8,7 +8,7 @@ import ( "github.com/gobwas/glob" "github.com/golang-jwt/jwt/v5" - "github.com/michaelquigley/df" + "github.com/michaelquigley/df/dd" "github.com/openziti/zrok/endpoints/proxyUi" "github.com/pkg/errors" "github.com/sirupsen/logrus" @@ -161,7 +161,7 @@ func configureOauth(cfg *config, tls bool) error { // configure providers (they will register themselves with the router) for _, v := range cfg.Oauth.Providers { - if prvCfg, ok := v.(df.Dynamic); ok { + if prvCfg, ok := v.(dd.Dynamic); ok { switch prvCfg.Type() { case "github": githubCfg, ok := prvCfg.(*githubConfig) diff --git a/endpoints/dynamicProxy/authOauthRouter.go b/endpoints/dynamicProxy/authOauthRouter.go index 50ac3162..53a36672 100644 --- a/endpoints/dynamicProxy/authOauthRouter.go +++ b/endpoints/dynamicProxy/authOauthRouter.go @@ -7,17 +7,18 @@ import ( "time" "github.com/gorilla/mux" - "github.com/michaelquigley/df" + "github.com/michaelquigley/df/da" + "github.com/michaelquigley/df/dd" "github.com/openziti/zrok/endpoints/proxyUi" "github.com/pkg/errors" "github.com/sirupsen/logrus" ) -var oauthBinders map[string]func(map[string]any) (df.Dynamic, error) +var oauthBinders map[string]func(map[string]any) (dd.Dynamic, error) -func registerOauthBinder(typ string, binder func(map[string]any) (df.Dynamic, error)) { +func registerOauthBinder(typ string, binder func(map[string]any) (dd.Dynamic, error)) { if oauthBinders == nil { - oauthBinders = make(map[string]func(map[string]any) (df.Dynamic, error)) + oauthBinders = make(map[string]func(map[string]any) (dd.Dynamic, error)) } oauthBinders[typ] = binder } @@ -122,7 +123,7 @@ func (r *oauthRouter) Stop() error { } // buildOAuthRouter creates and registers the OAuth router as a df component -func buildOAuthRouter(app *df.Application[*config]) error { +func buildOAuthRouter(app *da.Application[*config]) error { if app.Cfg.Oauth == nil { logrus.Info("no oauth configuration; skipping oauth router") return nil @@ -132,6 +133,6 @@ func buildOAuthRouter(app *df.Application[*config]) error { globalOAuthRouter = newOAuthRouter(app.Cfg.Oauth) // register with df container for lifecycle management - df.Set(app.C, globalOAuthRouter) + da.Set(app.C, globalOAuthRouter) return nil } diff --git a/endpoints/dynamicProxy/config.go b/endpoints/dynamicProxy/config.go index f0798288..2cbe96b5 100644 --- a/endpoints/dynamicProxy/config.go +++ b/endpoints/dynamicProxy/config.go @@ -3,21 +3,21 @@ package dynamicProxy import ( "time" - "github.com/michaelquigley/df" + "github.com/michaelquigley/df/dd" "github.com/openziti/zrok/endpoints" ) type config struct { - V int `df:"+match=1"` - FrontendToken string `df:"+required"` + V int `dd:"+match=1"` + FrontendToken string `dd:"+required"` Identity string BindAddress string TemplatePath string MappingRefreshInterval time.Duration Interstitial *interstitialConfig Oauth *oauthConfig - AmqpSubscriber *amqpSubscriberConfig `df:"+required"` - Controller *controllerClientConfig `df:"+required"` + AmqpSubscriber *amqpSubscriberConfig `dd:"+required"` + Controller *controllerClientConfig `dd:"+required"` Tls *endpoints.TlsConfig } @@ -34,15 +34,15 @@ type oauthConfig struct { CookieDomain string SessionLifetime time.Duration IntermediateLifetime time.Duration - SigningKey string `df:"+secret"` - EncryptionKey string `df:"+secret"` - Providers []df.Dynamic + SigningKey string `dd:"+secret"` + EncryptionKey string `dd:"+secret"` + Providers []dd.Dynamic } type oauthProviderConfig struct { Name string ClientId string - ClientSecret string `df:"+secret"` + ClientSecret string `dd:"+secret"` } func defaults() *config { diff --git a/endpoints/dynamicProxy/controllerClient.go b/endpoints/dynamicProxy/controllerClient.go index 1754d79c..5b3c360b 100644 --- a/endpoints/dynamicProxy/controllerClient.go +++ b/endpoints/dynamicProxy/controllerClient.go @@ -5,7 +5,7 @@ import ( "net" "time" - "github.com/michaelquigley/df" + "github.com/michaelquigley/df/da" "github.com/openziti/sdk-golang/ziti" "github.com/openziti/zrok/controller/dynamicProxyController" "github.com/pkg/errors" @@ -16,8 +16,8 @@ import ( ) type controllerClientConfig struct { - IdentityPath string `df:"+required"` - ServiceName string `df:"+required"` + IdentityPath string `dd:"+required"` + ServiceName string `dd:"+required"` Timeout time.Duration } @@ -29,12 +29,12 @@ type controllerClient struct { cancel context.CancelFunc } -func buildControllerClient(app *df.Application[*config]) error { +func buildControllerClient(app *da.Application[*config]) error { client, err := newControllerClient(app.Cfg.Controller) if err != nil { return err } - df.Set(app.C, client) + da.Set(app.C, client) return nil } diff --git a/endpoints/dynamicProxy/http.go b/endpoints/dynamicProxy/http.go index e1774676..5a854e7f 100644 --- a/endpoints/dynamicProxy/http.go +++ b/endpoints/dynamicProxy/http.go @@ -10,7 +10,7 @@ import ( "strings" "time" - "github.com/michaelquigley/df" + "github.com/michaelquigley/df/da" "github.com/openziti/sdk-golang/ziti" "github.com/openziti/zrok/endpoints" "github.com/openziti/zrok/endpoints/proxyUi" @@ -31,12 +31,12 @@ type httpListener struct { server *http.Server } -func buildHttpListener(app *df.Application[*config]) error { +func buildHttpListener(app *da.Application[*config]) error { hl, err := newHttpListener(app.Cfg) if err != nil { return err } - df.Set(app.C, hl) + da.Set(app.C, hl) return nil } @@ -272,9 +272,9 @@ func (l *httpListener) initializeHandler() error { return nil } -func (l *httpListener) Link(c *df.Container) error { +func (l *httpListener) Link(c *da.Container) error { var found bool - l.mappings, found = df.Get[*mappings](c) + l.mappings, found = da.Get[*mappings](c) if !found { return errors.New("mapping not found") } diff --git a/endpoints/dynamicProxy/main.go b/endpoints/dynamicProxy/main.go index 20c487be..90acc83d 100644 --- a/endpoints/dynamicProxy/main.go +++ b/endpoints/dynamicProxy/main.go @@ -1,26 +1,27 @@ package dynamicProxy import ( - "github.com/michaelquigley/df" + "github.com/michaelquigley/df/da" + "github.com/michaelquigley/df/dd" "github.com/sirupsen/logrus" ) type Service struct { - app *df.Application[*config] + app *da.Application[*config] } func NewService(cfgPath string) (*Service, error) { - svc := &Service{app: df.NewApplication[*config](defaults())} - df.WithFactoryFunc(svc.app, buildAmqpSubscriber) - df.WithFactoryFunc(svc.app, buildControllerClient) - df.WithFactoryFunc(svc.app, buildMappings) - df.WithFactoryFunc(svc.app, buildOAuthRouter) - df.WithFactoryFunc(svc.app, buildHttpListener) - opts := &df.Options{DynamicBinders: oauthBinders} + svc := &Service{app: da.NewApplication[*config](defaults())} + da.WithFactoryFunc(svc.app, buildAmqpSubscriber) + da.WithFactoryFunc(svc.app, buildControllerClient) + da.WithFactoryFunc(svc.app, buildMappings) + da.WithFactoryFunc(svc.app, buildOAuthRouter) + da.WithFactoryFunc(svc.app, buildHttpListener) + opts := &dd.Options{DynamicBinders: oauthBinders} if err := svc.app.InitializeWithOptions(opts, cfgPath); err != nil { return nil, err } - logrus.Info(df.MustInspect(svc.app.Cfg)) + logrus.Info(dd.MustInspect(svc.app.Cfg)) return svc, nil } diff --git a/endpoints/dynamicProxy/mappings.go b/endpoints/dynamicProxy/mappings.go index f1813c85..c25ea138 100644 --- a/endpoints/dynamicProxy/mappings.go +++ b/endpoints/dynamicProxy/mappings.go @@ -5,7 +5,7 @@ import ( "sync" "time" - "github.com/michaelquigley/df" + "github.com/michaelquigley/df/da" "github.com/openziti/zrok/controller/dynamicProxyController" "github.com/pkg/errors" "github.com/sirupsen/logrus" @@ -21,10 +21,10 @@ type mappings struct { nameMap map[string]*dynamicProxyController.FrontendMapping } -func buildMappings(app *df.Application[*config]) error { +func buildMappings(app *da.Application[*config]) error { mappings := newMappings() mappings.cfg = app.Cfg - df.Set(app.C, mappings) + da.Set(app.C, mappings) return nil } @@ -42,14 +42,14 @@ func (m *mappings) getMapping(name string) (*dynamicProxyController.FrontendMapp return mapping, exists } -func (m *mappings) Link(c *df.Container) error { +func (m *mappings) Link(c *da.Container) error { var found bool - m.amqp, found = df.Get[*amqpSubscriber](c) + m.amqp, found = da.Get[*amqpSubscriber](c) if !found { return errors.New("no amqp subscriber found") } - m.ctrl, found = df.Get[*controllerClient](c) + m.ctrl, found = da.Get[*controllerClient](c) if !found { return errors.New("no controller client found") } diff --git a/endpoints/dynamicProxy/providerGithub.go b/endpoints/dynamicProxy/providerGithub.go index bb96e225..183c373f 100644 --- a/endpoints/dynamicProxy/providerGithub.go +++ b/endpoints/dynamicProxy/providerGithub.go @@ -12,7 +12,7 @@ import ( "github.com/golang-jwt/jwt/v5" "github.com/google/uuid" "github.com/gorilla/mux" - "github.com/michaelquigley/df" + "github.com/michaelquigley/df/dd" "github.com/openziti/zrok/endpoints/proxyUi" "github.com/pkg/errors" "github.com/sirupsen/logrus" @@ -33,8 +33,8 @@ type githubConfig struct { ClientSecret string } -func newGithubConfig(v map[string]interface{}) (df.Dynamic, error) { - return df.New[githubConfig](v) +func newGithubConfig(v map[string]interface{}) (dd.Dynamic, error) { + return dd.New[githubConfig](v) } func (c *githubConfig) Type() string { return "github" } diff --git a/endpoints/dynamicProxy/providerGoogle.go b/endpoints/dynamicProxy/providerGoogle.go index 52b14321..429b6d65 100644 --- a/endpoints/dynamicProxy/providerGoogle.go +++ b/endpoints/dynamicProxy/providerGoogle.go @@ -12,7 +12,7 @@ import ( "github.com/golang-jwt/jwt/v5" "github.com/google/uuid" "github.com/gorilla/mux" - "github.com/michaelquigley/df" + "github.com/michaelquigley/df/dd" "github.com/openziti/zrok/endpoints/proxyUi" "github.com/sirupsen/logrus" "github.com/zitadel/oidc/v2/pkg/client/rp" @@ -32,8 +32,8 @@ type googleConfig struct { ClientSecret string } -func newGoogleConfig(v map[string]interface{}) (df.Dynamic, error) { - return df.New[googleConfig](v) +func newGoogleConfig(v map[string]interface{}) (dd.Dynamic, error) { + return dd.New[googleConfig](v) } func (c *googleConfig) Type() string { return "google" } diff --git a/endpoints/dynamicProxy/providerOidc.go b/endpoints/dynamicProxy/providerOidc.go index 08632eef..5d2d15bc 100644 --- a/endpoints/dynamicProxy/providerOidc.go +++ b/endpoints/dynamicProxy/providerOidc.go @@ -11,7 +11,7 @@ import ( "github.com/golang-jwt/jwt/v5" "github.com/google/uuid" "github.com/gorilla/mux" - "github.com/michaelquigley/df" + "github.com/michaelquigley/df/dd" "github.com/openziti/zrok/endpoints/proxyUi" "github.com/sirupsen/logrus" "github.com/zitadel/oidc/v3/pkg/client/rp" @@ -33,8 +33,8 @@ type oidcConfig struct { Pkce bool } -func newOidcConfig(v map[string]interface{}) (df.Dynamic, error) { - return df.New[oidcConfig](v) +func newOidcConfig(v map[string]interface{}) (dd.Dynamic, error) { + return dd.New[oidcConfig](v) } func (c *oidcConfig) Type() string { return "oidc" } diff --git a/endpoints/publicProxy/config.go b/endpoints/publicProxy/config.go index 4a5ff706..9886763b 100644 --- a/endpoints/publicProxy/config.go +++ b/endpoints/publicProxy/config.go @@ -5,7 +5,7 @@ import ( "net/http" "time" - "github.com/michaelquigley/df" + "github.com/michaelquigley/df/dd" "github.com/openziti/zrok/endpoints" "github.com/openziti/zrok/endpoints/proxyUi" "github.com/pkg/errors" @@ -39,9 +39,9 @@ type OauthConfig struct { CookieDomain string SessionLifetime time.Duration IntermediateLifetime time.Duration - SigningKey string `df:"+secret"` - EncryptionKey string `df:"+secret"` - Providers []df.Dynamic `df:"+secret"` + SigningKey string `dd:"+secret"` + EncryptionKey string `dd:"+secret"` + Providers []dd.Dynamic `dd:"+secret"` } func DefaultConfig() *Config { @@ -52,14 +52,14 @@ func DefaultConfig() *Config { } func (c *Config) Load(path string) error { - opts := &df.Options{ - DynamicBinders: map[string]func(map[string]any) (df.Dynamic, error){ + opts := &dd.Options{ + DynamicBinders: map[string]func(map[string]any) (dd.Dynamic, error){ (&githubConfig{}).Type(): newGithubConfig, (&googleConfig{}).Type(): newGoogleConfig, (&oidcConfig{}).Type(): newOidcConfig, }, } - if err := df.MergeFromYAML(c, path, opts); err != nil { + if err := dd.MergeFromYAML(c, path, opts); err != nil { return errors.Wrapf(err, "error loading frontend config '%v'", path) } if c.V != V { @@ -75,7 +75,7 @@ func configureOauth(ctx context.Context, cfg *Config, tls bool) error { } for _, v := range cfg.Oauth.Providers { - if prvCfg, ok := v.(df.Dynamic); ok { + if prvCfg, ok := v.(dd.Dynamic); ok { switch prvCfg.Type() { case "github": githubCfg, ok := prvCfg.(*githubConfig) diff --git a/endpoints/publicProxy/providerGithub.go b/endpoints/publicProxy/providerGithub.go index 7239644b..d8ce87e7 100644 --- a/endpoints/publicProxy/providerGithub.go +++ b/endpoints/publicProxy/providerGithub.go @@ -11,7 +11,7 @@ import ( "github.com/golang-jwt/jwt/v5" "github.com/google/uuid" - "github.com/michaelquigley/df" + "github.com/michaelquigley/df/dd" "github.com/openziti/zrok/endpoints/proxyUi" "github.com/pkg/errors" "github.com/sirupsen/logrus" @@ -28,8 +28,8 @@ type githubConfig struct { ClientSecret string } -func newGithubConfig(v map[string]interface{}) (df.Dynamic, error) { - return df.New[githubConfig](v) +func newGithubConfig(v map[string]interface{}) (dd.Dynamic, error) { + return dd.New[githubConfig](v) } func (c *githubConfig) Type() string { return "github" } diff --git a/endpoints/publicProxy/providerGoogle.go b/endpoints/publicProxy/providerGoogle.go index bed2e014..6c1ec401 100644 --- a/endpoints/publicProxy/providerGoogle.go +++ b/endpoints/publicProxy/providerGoogle.go @@ -11,7 +11,7 @@ import ( "github.com/golang-jwt/jwt/v5" "github.com/google/uuid" - "github.com/michaelquigley/df" + "github.com/michaelquigley/df/dd" "github.com/openziti/zrok/endpoints/proxyUi" "github.com/sirupsen/logrus" "github.com/zitadel/oidc/v2/pkg/client/rp" @@ -27,8 +27,8 @@ type googleConfig struct { ClientSecret string } -func newGoogleConfig(v map[string]interface{}) (df.Dynamic, error) { - return df.New[googleConfig](v) +func newGoogleConfig(v map[string]interface{}) (dd.Dynamic, error) { + return dd.New[googleConfig](v) } func (c *googleConfig) Type() string { return "google" } diff --git a/endpoints/publicProxy/providerOidc.go b/endpoints/publicProxy/providerOidc.go index e06c2748..f5368ac6 100644 --- a/endpoints/publicProxy/providerOidc.go +++ b/endpoints/publicProxy/providerOidc.go @@ -10,7 +10,7 @@ import ( "github.com/golang-jwt/jwt/v5" "github.com/google/uuid" - "github.com/michaelquigley/df" + "github.com/michaelquigley/df/dd" "github.com/openziti/zrok/endpoints/proxyUi" "github.com/sirupsen/logrus" "github.com/zitadel/oidc/v3/pkg/client/rp" @@ -28,8 +28,8 @@ type oidcConfig struct { Pkce bool } -func newOidcConfig(v map[string]interface{}) (df.Dynamic, error) { - return df.New[oidcConfig](v) +func newOidcConfig(v map[string]interface{}) (dd.Dynamic, error) { + return dd.New[oidcConfig](v) } func (c *oidcConfig) Type() string { return "oidc" } diff --git a/go.mod b/go.mod index 5b9c1da5..7abb5050 100644 --- a/go.mod +++ b/go.mod @@ -35,7 +35,7 @@ require ( github.com/kolesnikovae/go-winjob v1.0.0 github.com/lib/pq v1.10.9 github.com/mattn/go-sqlite3 v1.14.18 - github.com/michaelquigley/df v0.2.9 + github.com/michaelquigley/df v0.3.0 github.com/michaelquigley/pfxlog v0.6.10 github.com/muesli/reflow v0.3.0 github.com/net-byte/vtun v1.7.0 diff --git a/go.sum b/go.sum index f66b966c..c26e0a2b 100644 --- a/go.sum +++ b/go.sum @@ -696,8 +696,8 @@ github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d h1:5PJl274Y63IEHC+7izoQ github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE= github.com/mholt/acmez/v3 v3.0.0 h1:r1NcjuWR0VaKP2BTjDK9LRFBw/WvURx3jlaEUl9Ht8E= github.com/mholt/acmez/v3 v3.0.0/go.mod h1:L1wOU06KKvq7tswuMDwKdcHeKpFFgkppZy/y0DFxagQ= -github.com/michaelquigley/df v0.2.9 h1:G7c1oJN8M33IozcRG7BhVKqUn+YY/ddxJxOfXlfeSqc= -github.com/michaelquigley/df v0.2.9/go.mod h1:Ym3uLqdbI6DxhqzLLtAzQ2ry7KfPKCjfXEgoOL23xfI= +github.com/michaelquigley/df v0.3.0 h1:LftBDBNNishz8jRAKhzd6qtqmjYgWZyZ6ZZkDtwMQuM= +github.com/michaelquigley/df v0.3.0/go.mod h1:Ym3uLqdbI6DxhqzLLtAzQ2ry7KfPKCjfXEgoOL23xfI= github.com/michaelquigley/pfxlog v0.6.10 h1:IbC/H3MmSDcPlQHF1UZPQU13Dkrs0+ycWRyQd2ihnjw= github.com/michaelquigley/pfxlog v0.6.10/go.mod h1:gEiNTfKEX6cJHSwRpOuqBpc8oYrlhMiDK/xMk/gV7D0= github.com/microcosm-cc/bluemonday v1.0.1/go.mod h1:hsXNsILzKxV+sX77C5b8FSuKF00vh2OMYv+xgHpAMF4=