mirror of
https://github.com/netbirdio/netbird.git
synced 2026-04-16 15:26:40 +00:00
Consolidate all expose business logic (validation, permission checks, TTL tracking, reaping) into the manager layer, making the gRPC layer a pure transport adapter that only handles proto conversion and authentication. - Add ExposeServiceRequest/ExposeServiceResponse domain types with validation in the reverseproxy package - Move expose tracker (TTL tracking, reaping, per-peer limits) from gRPC server into manager/expose_tracker.go - Internalize tracking in CreateServiceFromPeer, RenewServiceFromPeer, and new StopServiceFromPeer so callers don't manage tracker state - Untrack ephemeral services in DeleteService/DeleteAllServices to keep tracker in sync when services are deleted via API - Simplify gRPC expose handlers to parse, auth, convert, delegate - Remove tracker methods from Manager interface (internal detail)
29 lines
1.7 KiB
Go
29 lines
1.7 KiB
Go
package reverseproxy
|
|
|
|
//go:generate go run github.com/golang/mock/mockgen -package reverseproxy -destination=interface_mock.go -source=./interface.go -build_flags=-mod=mod
|
|
|
|
import (
|
|
"context"
|
|
)
|
|
|
|
type Manager interface {
|
|
GetAllServices(ctx context.Context, accountID, userID string) ([]*Service, error)
|
|
GetService(ctx context.Context, accountID, userID, serviceID string) (*Service, error)
|
|
CreateService(ctx context.Context, accountID, userID string, service *Service) (*Service, error)
|
|
UpdateService(ctx context.Context, accountID, userID string, service *Service) (*Service, error)
|
|
DeleteService(ctx context.Context, accountID, userID, serviceID string) error
|
|
DeleteAllServices(ctx context.Context, accountID, userID string) error
|
|
SetCertificateIssuedAt(ctx context.Context, accountID, serviceID string) error
|
|
SetStatus(ctx context.Context, accountID, serviceID string, status ProxyStatus) error
|
|
ReloadAllServicesForAccount(ctx context.Context, accountID string) error
|
|
ReloadService(ctx context.Context, accountID, serviceID string) error
|
|
GetGlobalServices(ctx context.Context) ([]*Service, error)
|
|
GetServiceByID(ctx context.Context, accountID, serviceID string) (*Service, error)
|
|
GetAccountServices(ctx context.Context, accountID string) ([]*Service, error)
|
|
GetServiceIDByTargetID(ctx context.Context, accountID string, resourceID string) (string, error)
|
|
CreateServiceFromPeer(ctx context.Context, accountID, peerID string, req *ExposeServiceRequest) (*ExposeServiceResponse, error)
|
|
RenewServiceFromPeer(ctx context.Context, accountID, peerID, domain string) error
|
|
StopServiceFromPeer(ctx context.Context, accountID, peerID, domain string) error
|
|
StartExposeReaper(ctx context.Context)
|
|
}
|