diff --git a/cmd/baton-ipa/main.go b/cmd/baton-ipa/main.go index d33f35e8..bbba2221 100644 --- a/cmd/baton-ipa/main.go +++ b/cmd/baton-ipa/main.go @@ -9,6 +9,7 @@ import ( "github.com/conductorone/baton-ipa/pkg/connector" configschema "github.com/conductorone/baton-sdk/pkg/config" "github.com/conductorone/baton-sdk/pkg/connectorbuilder" + "github.com/conductorone/baton-sdk/pkg/connectorrunner" "github.com/conductorone/baton-sdk/pkg/types" "github.com/grpc-ecosystem/go-grpc-middleware/logging/zap/ctxzap" "github.com/spf13/viper" @@ -20,7 +21,7 @@ var version = "dev" func main() { ctx := context.Background() - _, cmd, err := configschema.DefineConfiguration(ctx, "baton-ipa", getConnector, config.Configuration) + _, cmd, err := configschema.DefineConfiguration(ctx, "baton-ipa", getConnector, config.Configuration, connectorrunner.WithConnectorVersion(version)) if err != nil { fmt.Fprintln(os.Stderr, err.Error()) os.Exit(1) diff --git a/vendor/github.com/conductorone/baton-sdk/pkg/connectorrunner/runner.go b/vendor/github.com/conductorone/baton-sdk/pkg/connectorrunner/runner.go index e5ddb37c..4205e3f1 100644 --- a/vendor/github.com/conductorone/baton-sdk/pkg/connectorrunner/runner.go +++ b/vendor/github.com/conductorone/baton-sdk/pkg/connectorrunner/runner.go @@ -343,6 +343,14 @@ type runnerConfig struct { targetedSyncResourceIDs []string externalResourceC1Z string externalResourceEntitlementIdFilter string + connectorVersion string +} + +func WithConnectorVersion(version string) Option { + return func(ctx context.Context, cfg *runnerConfig) error { + cfg.connectorVersion = version + return nil + } } // WithRateLimiterConfig sets the RateLimiterConfig for a runner. @@ -757,7 +765,11 @@ func NewConnectorRunner(ctx context.Context, c types.ConnectorServer, opts ...Op return runner, nil } - tm, err := c1api.NewC1TaskManager(ctx, cfg.clientID, cfg.clientSecret, cfg.tempDir, cfg.skipFullSync, cfg.externalResourceC1Z, cfg.externalResourceEntitlementIdFilter, cfg.targetedSyncResourceIDs) + tm, err := c1api.NewC1TaskManager( + ctx, cfg.clientID, cfg.clientSecret, cfg.tempDir, cfg.skipFullSync, + cfg.externalResourceC1Z, cfg.externalResourceEntitlementIdFilter, + cfg.targetedSyncResourceIDs, cfg.connectorVersion, + ) if err != nil { return nil, err } diff --git a/vendor/github.com/conductorone/baton-sdk/pkg/tasks/c1api/hello.go b/vendor/github.com/conductorone/baton-sdk/pkg/tasks/c1api/hello.go index da5b0223..c81f557b 100644 --- a/vendor/github.com/conductorone/baton-sdk/pkg/tasks/c1api/hello.go +++ b/vendor/github.com/conductorone/baton-sdk/pkg/tasks/c1api/hello.go @@ -21,8 +21,9 @@ type helloHelpers interface { } type helloTaskHandler struct { - task *v1.Task - helpers helloHelpers + task *v1.Task + helpers helloHelpers + connectorVersion string } func (c *helloTaskHandler) osInfo(ctx context.Context) (*v1.BatonServiceHelloRequest_OSInfo, error) { @@ -56,13 +57,22 @@ func (c *helloTaskHandler) buildInfo(ctx context.Context) *v1.BatonServiceHelloR bi, ok := debug.ReadBuildInfo() if !ok { l.Error("failed to get build info") - return &v1.BatonServiceHelloRequest_BuildInfo{} + ret := &v1.BatonServiceHelloRequest_BuildInfo{} + if c.connectorVersion != "" { + ret.PackageVersion = c.connectorVersion + } + return ret + } + + packageVersion := bi.Main.Version + if c.connectorVersion != "" { + packageVersion = c.connectorVersion } return &v1.BatonServiceHelloRequest_BuildInfo{ LangVersion: bi.GoVersion, Package: bi.Main.Path, - PackageVersion: bi.Main.Version, + PackageVersion: packageVersion, } } @@ -105,9 +115,10 @@ func (c *helloTaskHandler) HandleTask(ctx context.Context) error { return nil } -func newHelloTaskHandler(task *v1.Task, helpers helloHelpers) *helloTaskHandler { +func newHelloTaskHandler(task *v1.Task, helpers helloHelpers, connectorVersion string) *helloTaskHandler { return &helloTaskHandler{ - task: task, - helpers: helpers, + task: task, + helpers: helpers, + connectorVersion: connectorVersion, } } diff --git a/vendor/github.com/conductorone/baton-sdk/pkg/tasks/c1api/manager.go b/vendor/github.com/conductorone/baton-sdk/pkg/tasks/c1api/manager.go index ad3867e3..96121bbc 100644 --- a/vendor/github.com/conductorone/baton-sdk/pkg/tasks/c1api/manager.go +++ b/vendor/github.com/conductorone/baton-sdk/pkg/tasks/c1api/manager.go @@ -53,6 +53,7 @@ type c1ApiTaskManager struct { externalResourceC1Z string externalResourceEntitlementIdFilter string targetedSyncResourceIDs []string + connectorVersion string } // getHeartbeatInterval returns an appropriate heartbeat interval. If the interval is 0, it will return the default heartbeat interval. @@ -256,7 +257,7 @@ func (c *c1ApiTaskManager) Process(ctx context.Context, task *v1.Task, cc types. c.targetedSyncResourceIDs, ) case taskTypes.HelloType: - handler = newHelloTaskHandler(task, tHelpers) + handler = newHelloTaskHandler(task, tHelpers, c.connectorVersion) case taskTypes.GrantType: handler = newGrantTaskHandler(task, tHelpers) case taskTypes.RevokeType: @@ -305,6 +306,7 @@ func (c *c1ApiTaskManager) Process(ctx context.Context, task *v1.Task, cc types. func NewC1TaskManager( ctx context.Context, clientID string, clientSecret string, tempDir string, skipFullSync bool, externalC1Z string, externalResourceEntitlementIdFilter string, targetedSyncResourceIDs []string, + connectorVersion string, ) (tasks.Manager, error) { serviceClient, err := newServiceClient(ctx, clientID, clientSecret) if err != nil { @@ -318,5 +320,6 @@ func NewC1TaskManager( externalResourceC1Z: externalC1Z, externalResourceEntitlementIdFilter: externalResourceEntitlementIdFilter, targetedSyncResourceIDs: targetedSyncResourceIDs, + connectorVersion: connectorVersion, }, nil }