From a52777602faf10c7650ef336fae73f2065ed0fdd Mon Sep 17 00:00:00 2001 From: nessi Date: Tue, 17 Mar 2026 19:59:40 +0100 Subject: [PATCH] feat: resolve policy destinations before device enrollment with fallback default Fetch policy destinations before calling repo.Enroll instead of after, passing destinations to enrollment creation. Add fallback to default 172.16.10.0/24 destination when no policies are resolved. Re-resolve destinations after enrollment with device ID for final response. --- backend/internal/device/service.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/backend/internal/device/service.go b/backend/internal/device/service.go index 6effb74..6f733a4 100644 --- a/backend/internal/device/service.go +++ b/backend/internal/device/service.go @@ -38,12 +38,20 @@ func (s *Service) Enroll(ctx context.Context, userID uuid.UUID, input EnrollRequ return EnrollmentResponse{}, err } - enrollment, err := s.repo.Enroll(ctx, userID, selectedGateway.ID, input, assignedIP, selectedGateway.DNSServers, nil) + destinations, err := s.policyService.ResolveDestinations(ctx, userID, nil) + if err != nil { + return EnrollmentResponse{}, err + } + if len(destinations) == 0 { + destinations = []string{"172.16.10.0/24"} + } + + enrollment, err := s.repo.Enroll(ctx, userID, selectedGateway.ID, input, assignedIP, selectedGateway.DNSServers, destinations) if err != nil { return EnrollmentResponse{}, err } - destinations, err := s.policyService.ResolveDestinations(ctx, userID, &enrollment.Device.ID) + destinations, err = s.policyService.ResolveDestinations(ctx, userID, &enrollment.Device.ID) if err != nil { return EnrollmentResponse{}, err }