2023-10-17 10:02:07 +02:00
|
|
|
package integrations
|
|
|
|
|
|
|
|
|
|
import (
|
2024-02-12 11:54:49 +01:00
|
|
|
"context"
|
|
|
|
|
|
2023-10-17 10:02:07 +02:00
|
|
|
"github.com/gorilla/mux"
|
2024-04-08 17:04:07 +02:00
|
|
|
log "github.com/sirupsen/logrus"
|
2024-09-29 14:31:30 +02:00
|
|
|
"go.opentelemetry.io/otel/metric"
|
2024-04-08 17:04:07 +02:00
|
|
|
|
2025-06-12 16:40:51 +01:00
|
|
|
"github.com/netbirdio/netbird/management/server/store"
|
|
|
|
|
"github.com/netbirdio/netbird/management/server/telemetry"
|
|
|
|
|
|
2025-02-26 17:42:45 +01:00
|
|
|
"github.com/netbirdio/netbird/management/server/account"
|
2023-12-30 20:19:00 +01:00
|
|
|
"github.com/netbirdio/netbird/management/server/activity"
|
2025-06-04 17:38:08 +03:00
|
|
|
activitystore "github.com/netbirdio/netbird/management/server/activity/store"
|
2025-02-28 19:43:02 +00:00
|
|
|
"github.com/netbirdio/netbird/management/server/integrations/integrated_validator"
|
2025-01-31 13:34:35 +01:00
|
|
|
"github.com/netbirdio/netbird/management/server/integrations/port_forwarding"
|
|
|
|
|
"github.com/netbirdio/netbird/management/server/peers"
|
|
|
|
|
"github.com/netbirdio/netbird/management/server/permissions"
|
2025-02-26 17:57:36 +01:00
|
|
|
"github.com/netbirdio/netbird/management/server/settings"
|
2023-10-17 10:02:07 +02:00
|
|
|
)
|
|
|
|
|
|
2023-10-27 16:32:00 +02:00
|
|
|
func RegisterHandlers(
|
2024-02-12 11:54:49 +01:00
|
|
|
ctx context.Context,
|
|
|
|
|
prefix string,
|
2023-10-27 16:32:00 +02:00
|
|
|
router *mux.Router,
|
2025-03-10 15:56:12 +03:00
|
|
|
accountManager account.Manager,
|
2024-04-08 17:04:07 +02:00
|
|
|
integratedValidator integrated_validator.IntegratedValidator,
|
2024-09-29 14:31:30 +02:00
|
|
|
meter metric.Meter,
|
2025-01-31 13:34:35 +01:00
|
|
|
permissionsManager permissions.Manager,
|
|
|
|
|
peersManager peers.Manager,
|
|
|
|
|
proxyController port_forwarding.Controller,
|
2025-02-26 17:57:36 +01:00
|
|
|
settingsManager settings.Manager,
|
2024-02-12 11:54:49 +01:00
|
|
|
) (*mux.Router, error) {
|
|
|
|
|
return router, nil
|
2023-10-17 10:02:07 +02:00
|
|
|
}
|
2023-12-30 20:19:00 +01:00
|
|
|
|
2025-06-12 17:21:48 +01:00
|
|
|
func InitEventStore(ctx context.Context, dataDir string, key string, _ *Metrics) (activity.Store, string, error) {
|
2023-12-30 20:19:00 +01:00
|
|
|
var err error
|
|
|
|
|
if key == "" {
|
|
|
|
|
log.Debugf("generate new activity store encryption key")
|
2025-06-04 17:38:08 +03:00
|
|
|
key, err = activitystore.GenerateKey()
|
2023-12-30 20:19:00 +01:00
|
|
|
if err != nil {
|
|
|
|
|
return nil, "", err
|
|
|
|
|
}
|
|
|
|
|
}
|
2025-06-04 17:38:08 +03:00
|
|
|
store, err := activitystore.NewSqlStore(ctx, dataDir, key)
|
2023-12-30 20:19:00 +01:00
|
|
|
return store, key, err
|
|
|
|
|
}
|
2025-03-30 15:37:13 +01:00
|
|
|
|
|
|
|
|
func InitPermissionsManager(store store.Store) permissions.Manager {
|
|
|
|
|
return permissions.NewManager(store)
|
|
|
|
|
}
|
2025-06-12 16:40:51 +01:00
|
|
|
|
|
|
|
|
type Metrics struct {
|
|
|
|
|
telemetry.AppMetrics
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func InitIntegrationMetrics(ctx context.Context, metrics telemetry.AppMetrics) (*Metrics, error) {
|
|
|
|
|
return &Metrics{
|
|
|
|
|
AppMetrics: metrics,
|
|
|
|
|
}, nil
|
|
|
|
|
}
|