Add bridge backend for sync
Signed-off-by: Bryan Frimin <bryan@getprobo.com>
This commit is contained in:
@@ -80,6 +80,7 @@ type (
|
||||
OpenAI openaiConfig `json:"openai"`
|
||||
ChromeDPAddr string `json:"chrome-dp-addr"`
|
||||
CustomDomains customDomainsConfig `json:"custom-domains"`
|
||||
SCIMBridge scimBridgeConfig `json:"scim-bridge"`
|
||||
}
|
||||
|
||||
trustCenterConfig struct {
|
||||
@@ -163,6 +164,10 @@ func New() *Implm {
|
||||
KeyType: "EC256",
|
||||
},
|
||||
},
|
||||
SCIMBridge: scimBridgeConfig{
|
||||
SyncInterval: 60, // 15 minutes
|
||||
PollInterval: 30, // 30 seconds
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
@@ -300,14 +305,18 @@ func (impl *Implm) Run(
|
||||
SessionDuration: time.Duration(impl.cfg.Auth.Cookie.Duration) * time.Hour,
|
||||
Bucket: impl.cfg.AWS.Bucket,
|
||||
TokenSecret: impl.cfg.Auth.Cookie.Secret,
|
||||
BaseURL: impl.cfg.BaseURL.String(),
|
||||
BaseURL: impl.cfg.BaseURL,
|
||||
EncryptionKey: impl.cfg.EncryptionKey,
|
||||
Certificate: samlCert,
|
||||
PrivateKey: samlKey,
|
||||
Logger: l.Named("iam"),
|
||||
TracerProvider: tp,
|
||||
Registerer: r,
|
||||
ConnectorRegistry: defaultConnectorRegistry,
|
||||
DomainVerificationInterval: impl.cfg.Auth.SAML.DomainVerificationInterval(),
|
||||
DomainVerificationResolverAddr: impl.cfg.Auth.SAML.DomainVerificationResolverAddr,
|
||||
SCIMBridgeSyncInterval: time.Duration(impl.cfg.SCIMBridge.SyncInterval) * time.Second,
|
||||
SCIMBridgePollInterval: time.Duration(impl.cfg.SCIMBridge.PollInterval) * time.Second,
|
||||
},
|
||||
)
|
||||
if err != nil {
|
||||
|
||||
25
pkg/probod/scim_bridge_config.go
Normal file
25
pkg/probod/scim_bridge_config.go
Normal file
@@ -0,0 +1,25 @@
|
||||
// Copyright (c) 2025 Probo Inc <hello@getprobo.com>.
|
||||
//
|
||||
// Permission to use, copy, modify, and/or distribute this software for any
|
||||
// purpose with or without fee is hereby granted, provided that the above
|
||||
// copyright notice and this permission notice appear in all copies.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
||||
// REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
// AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
// INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
// LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||
// OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
// PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
package probod
|
||||
|
||||
type scimBridgeConfig struct {
|
||||
// SyncInterval is the time between sync attempts for each bridge (in seconds).
|
||||
// Default: 900 (15 minutes)
|
||||
SyncInterval int `json:"sync-interval"`
|
||||
|
||||
// PollInterval is the time between polling for bridges to sync (in seconds).
|
||||
// Default: 30
|
||||
PollInterval int `json:"poll-interval"`
|
||||
}
|
||||
Reference in New Issue
Block a user