mirror of
https://github.com/netbirdio/netbird.git
synced 2026-03-31 06:34:19 -04:00
39 lines
1.5 KiB
Go
39 lines
1.5 KiB
Go
package proxy
|
|
|
|
//go:generate go run github.com/golang/mock/mockgen -package proxy -destination=manager_mock.go -source=./manager.go -build_flags=-mod=mod
|
|
|
|
import (
|
|
"context"
|
|
"time"
|
|
|
|
"github.com/netbirdio/netbird/shared/management/proto"
|
|
)
|
|
|
|
// Manager defines the interface for proxy operations
|
|
type Manager interface {
|
|
Connect(ctx context.Context, proxyID, clusterAddress, ipAddress string) error
|
|
Disconnect(ctx context.Context, proxyID string) error
|
|
Heartbeat(ctx context.Context, proxyID, clusterAddress, ipAddress string) error
|
|
GetActiveClusterAddresses(ctx context.Context) ([]string, error)
|
|
GetActiveClusters(ctx context.Context) ([]Cluster, error)
|
|
CleanupStale(ctx context.Context, inactivityDuration time.Duration) error
|
|
}
|
|
|
|
// OIDCValidationConfig contains the OIDC configuration needed for token validation.
|
|
type OIDCValidationConfig struct {
|
|
Issuer string
|
|
Audiences []string
|
|
KeysLocation string
|
|
MaxTokenAgeSeconds int64
|
|
}
|
|
|
|
// Controller is responsible for managing proxy clusters and routing service updates.
|
|
type Controller interface {
|
|
SendServiceUpdateToCluster(ctx context.Context, accountID string, update *proto.ProxyMapping, clusterAddr string)
|
|
GetOIDCValidationConfig() OIDCValidationConfig
|
|
RegisterProxyToCluster(ctx context.Context, clusterAddr, proxyID string) error
|
|
UnregisterProxyFromCluster(ctx context.Context, clusterAddr, proxyID string) error
|
|
GetProxiesForCluster(clusterAddr string) []string
|
|
ClusterSupportsCustomPorts(clusterAddr string) *bool
|
|
}
|