diff --git a/cmd/metal-api/internal/datastore/image_integration_test.go b/cmd/metal-api/internal/datastore/image_integration_test.go index 95c32641..b03c4631 100644 --- a/cmd/metal-api/internal/datastore/image_integration_test.go +++ b/cmd/metal-api/internal/datastore/image_integration_test.go @@ -6,7 +6,6 @@ import ( "testing" "github.com/metal-stack/metal-api/cmd/metal-api/internal/metal" - "github.com/metal-stack/metal-lib/pkg/pointer" "github.com/stretchr/testify/require" ) @@ -100,7 +99,7 @@ func TestRethinkStore_SearchImages(t *testing.T) { { name: "empty result", q: &ImageSearchQuery{ - ID: pointer.Pointer("2"), + ID: new("2"), }, mock: []*metal.Image{ {Base: metal.Base{ID: "1"}}, @@ -111,7 +110,7 @@ func TestRethinkStore_SearchImages(t *testing.T) { { name: "search by id", q: &ImageSearchQuery{ - ID: pointer.Pointer("2"), + ID: new("2"), }, mock: []*metal.Image{ {Base: metal.Base{ID: "1"}}, @@ -126,7 +125,7 @@ func TestRethinkStore_SearchImages(t *testing.T) { { name: "search by name", q: &ImageSearchQuery{ - Name: pointer.Pointer("b"), + Name: new("b"), }, mock: []*metal.Image{ {Base: metal.Base{ID: "1", Name: "a"}}, @@ -172,7 +171,7 @@ func TestRethinkStore_SearchImages(t *testing.T) { { name: "search by os", q: &ImageSearchQuery{ - OS: pointer.Pointer("ubuntu"), + OS: new("ubuntu"), }, mock: []*metal.Image{ {Base: metal.Base{ID: "1"}, OS: "debian"}, @@ -187,7 +186,7 @@ func TestRethinkStore_SearchImages(t *testing.T) { { name: "search by version", q: &ImageSearchQuery{ - Version: pointer.Pointer("v2"), + Version: new("v2"), }, mock: []*metal.Image{ {Base: metal.Base{ID: "1"}, Version: "v2"}, @@ -203,7 +202,7 @@ func TestRethinkStore_SearchImages(t *testing.T) { { name: "search by classification", q: &ImageSearchQuery{ - Classification: pointer.Pointer(string(metal.ClassificationPreview)), + Classification: new(string(metal.ClassificationPreview)), }, mock: []*metal.Image{ {Base: metal.Base{ID: "1"}, Classification: metal.ClassificationPreview}, diff --git a/cmd/metal-api/internal/datastore/machine_integration_test.go b/cmd/metal-api/internal/datastore/machine_integration_test.go index e9203d97..79d9a3f5 100644 --- a/cmd/metal-api/internal/datastore/machine_integration_test.go +++ b/cmd/metal-api/internal/datastore/machine_integration_test.go @@ -14,7 +14,6 @@ import ( "time" "github.com/metal-stack/metal-api/cmd/metal-api/internal/metal" - "github.com/metal-stack/metal-lib/pkg/pointer" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" r "gopkg.in/rethinkdb/rethinkdb-go.v6" @@ -173,7 +172,7 @@ func TestRethinkStore_SearchMachines(t *testing.T) { { name: "empty result", q: &MachineSearchQuery{ - ID: pointer.Pointer("2"), + ID: new("2"), }, mock: []*metal.Machine{ {Base: metal.Base{ID: "1"}}, @@ -184,7 +183,7 @@ func TestRethinkStore_SearchMachines(t *testing.T) { { name: "search by id", q: &MachineSearchQuery{ - ID: pointer.Pointer("2"), + ID: new("2"), }, mock: []*metal.Machine{ {Base: metal.Base{ID: "1"}}, @@ -199,7 +198,7 @@ func TestRethinkStore_SearchMachines(t *testing.T) { { name: "search by name", q: &MachineSearchQuery{ - Name: pointer.Pointer("b"), + Name: new("b"), }, mock: []*metal.Machine{ {Base: metal.Base{ID: "1", Name: "a"}}, @@ -214,7 +213,7 @@ func TestRethinkStore_SearchMachines(t *testing.T) { { name: "search by partition", q: &MachineSearchQuery{ - PartitionID: pointer.Pointer("b"), + PartitionID: new("b"), }, mock: []*metal.Machine{ {Base: metal.Base{ID: "1"}, PartitionID: "a"}, @@ -229,7 +228,7 @@ func TestRethinkStore_SearchMachines(t *testing.T) { { name: "search by size", q: &MachineSearchQuery{ - SizeID: pointer.Pointer("b"), + SizeID: new("b"), }, mock: []*metal.Machine{ {Base: metal.Base{ID: "1"}, SizeID: "a"}, @@ -245,7 +244,7 @@ func TestRethinkStore_SearchMachines(t *testing.T) { { name: "search by rack", q: &MachineSearchQuery{ - RackID: pointer.Pointer("b"), + RackID: new("b"), }, mock: []*metal.Machine{ {Base: metal.Base{ID: "1"}, RackID: "a"}, @@ -276,7 +275,7 @@ func TestRethinkStore_SearchMachines(t *testing.T) { { name: "search by allocation name", q: &MachineSearchQuery{ - AllocationName: pointer.Pointer("b-name"), + AllocationName: new("b-name"), }, mock: []*metal.Machine{ {Base: metal.Base{ID: "1"}, Allocation: &metal.MachineAllocation{Name: "a-name"}}, @@ -291,7 +290,7 @@ func TestRethinkStore_SearchMachines(t *testing.T) { { name: "search by allocation project", q: &MachineSearchQuery{ - AllocationProject: pointer.Pointer("a-project"), + AllocationProject: new("a-project"), }, mock: []*metal.Machine{ {Base: metal.Base{ID: "1"}, Allocation: &metal.MachineAllocation{Project: "a-project"}}, @@ -306,7 +305,7 @@ func TestRethinkStore_SearchMachines(t *testing.T) { { name: "search by allocation image id", q: &MachineSearchQuery{ - AllocationImageID: pointer.Pointer("ubuntu"), + AllocationImageID: new("ubuntu"), }, mock: []*metal.Machine{ {Base: metal.Base{ID: "1"}, Allocation: &metal.MachineAllocation{ImageID: "ubuntu"}}, @@ -322,7 +321,7 @@ func TestRethinkStore_SearchMachines(t *testing.T) { { name: "search by allocation hostname", q: &MachineSearchQuery{ - AllocationHostname: pointer.Pointer("host-c"), + AllocationHostname: new("host-c"), }, mock: []*metal.Machine{ {Base: metal.Base{ID: "1"}, Allocation: &metal.MachineAllocation{Hostname: "host-a"}}, @@ -337,7 +336,7 @@ func TestRethinkStore_SearchMachines(t *testing.T) { { name: "search by allocation role", q: &MachineSearchQuery{ - AllocationRole: pointer.Pointer(metal.RoleMachine), + AllocationRole: new(metal.RoleMachine), }, mock: []*metal.Machine{ {Base: metal.Base{ID: "1"}, Allocation: &metal.MachineAllocation{Role: metal.RoleFirewall}}, @@ -355,7 +354,7 @@ func TestRethinkStore_SearchMachines(t *testing.T) { { name: "search by allocation succeeded", q: &MachineSearchQuery{ - AllocationSucceeded: pointer.Pointer(true), + AllocationSucceeded: new(true), }, mock: []*metal.Machine{ {Base: metal.Base{ID: "1"}, Allocation: &metal.MachineAllocation{Succeeded: false}}, @@ -476,7 +475,7 @@ func TestRethinkStore_SearchMachines(t *testing.T) { { name: "search by hardware memory", q: &MachineSearchQuery{ - HardwareMemory: pointer.Pointer(int64(1000)), + HardwareMemory: new(int64(1000)), }, mock: []*metal.Machine{ {Base: metal.Base{ID: "1"}, Hardware: metal.MachineHardware{Memory: 1000}}, @@ -614,7 +613,7 @@ func TestRethinkStore_SearchMachines(t *testing.T) { { name: "search by state value reserved", q: &MachineSearchQuery{ - StateValue: pointer.Pointer(string(metal.ReservedState)), + StateValue: new(string(metal.ReservedState)), }, mock: []*metal.Machine{ {Base: metal.Base{ID: "1"}, State: metal.MachineState{Value: metal.AvailableState}}, @@ -630,7 +629,7 @@ func TestRethinkStore_SearchMachines(t *testing.T) { { name: "search by state value available", q: &MachineSearchQuery{ - StateValue: pointer.Pointer(string(metal.AvailableState)), + StateValue: new(string(metal.AvailableState)), }, mock: []*metal.Machine{ {Base: metal.Base{ID: "1"}, State: metal.MachineState{Value: metal.AvailableState}}, @@ -647,7 +646,7 @@ func TestRethinkStore_SearchMachines(t *testing.T) { { name: "search by ipmi address", q: &MachineSearchQuery{ - IpmiAddress: pointer.Pointer("1.1.1.2"), + IpmiAddress: new("1.1.1.2"), }, mock: []*metal.Machine{ {Base: metal.Base{ID: "1"}, IPMI: metal.IPMI{Address: "1.1.1.1"}}, @@ -662,7 +661,7 @@ func TestRethinkStore_SearchMachines(t *testing.T) { { name: "search by ipmi mac", q: &MachineSearchQuery{ - IpmiMacAddress: pointer.Pointer("mac-b"), + IpmiMacAddress: new("mac-b"), }, mock: []*metal.Machine{ {Base: metal.Base{ID: "1"}, IPMI: metal.IPMI{MacAddress: "mac-a"}}, @@ -677,7 +676,7 @@ func TestRethinkStore_SearchMachines(t *testing.T) { { name: "search by ipmi user", q: &MachineSearchQuery{ - IpmiUser: pointer.Pointer("metal"), + IpmiUser: new("metal"), }, mock: []*metal.Machine{ {Base: metal.Base{ID: "1"}, IPMI: metal.IPMI{User: "metal"}}, @@ -693,7 +692,7 @@ func TestRethinkStore_SearchMachines(t *testing.T) { { name: "search by ipmi interface", q: &MachineSearchQuery{ - IpmiInterface: pointer.Pointer("lanplus"), + IpmiInterface: new("lanplus"), }, mock: []*metal.Machine{ {Base: metal.Base{ID: "1"}, IPMI: metal.IPMI{Interface: "lanplus"}}, @@ -709,7 +708,7 @@ func TestRethinkStore_SearchMachines(t *testing.T) { { name: "search by fru chassis part number", q: &MachineSearchQuery{ - FruChassisPartNumber: pointer.Pointer("b-number"), + FruChassisPartNumber: new("b-number"), }, mock: []*metal.Machine{ {Base: metal.Base{ID: "1"}, IPMI: metal.IPMI{Fru: metal.Fru{ChassisPartNumber: "a-number"}}}, @@ -724,7 +723,7 @@ func TestRethinkStore_SearchMachines(t *testing.T) { { name: "search by fru chassis part serial", q: &MachineSearchQuery{ - FruChassisPartSerial: pointer.Pointer("b-serial"), + FruChassisPartSerial: new("b-serial"), }, mock: []*metal.Machine{ {Base: metal.Base{ID: "1"}, IPMI: metal.IPMI{Fru: metal.Fru{ChassisPartSerial: "a-serial"}}}, @@ -739,7 +738,7 @@ func TestRethinkStore_SearchMachines(t *testing.T) { { name: "search by fru board mfg", q: &MachineSearchQuery{ - FruBoardMfg: pointer.Pointer("b"), + FruBoardMfg: new("b"), }, mock: []*metal.Machine{ {Base: metal.Base{ID: "1"}, IPMI: metal.IPMI{Fru: metal.Fru{BoardMfg: "a"}}}, @@ -754,7 +753,7 @@ func TestRethinkStore_SearchMachines(t *testing.T) { { name: "search by fru board mfg serial", q: &MachineSearchQuery{ - FruBoardMfgSerial: pointer.Pointer("b"), + FruBoardMfgSerial: new("b"), }, mock: []*metal.Machine{ {Base: metal.Base{ID: "1"}, IPMI: metal.IPMI{Fru: metal.Fru{BoardMfgSerial: "a"}}}, @@ -769,7 +768,7 @@ func TestRethinkStore_SearchMachines(t *testing.T) { { name: "search by fru board part number", q: &MachineSearchQuery{ - FruBoardPartNumber: pointer.Pointer("b-number"), + FruBoardPartNumber: new("b-number"), }, mock: []*metal.Machine{ {Base: metal.Base{ID: "1"}, IPMI: metal.IPMI{Fru: metal.Fru{BoardPartNumber: "a-number"}}}, @@ -784,7 +783,7 @@ func TestRethinkStore_SearchMachines(t *testing.T) { { name: "search by fru product manufacturer", q: &MachineSearchQuery{ - FruProductManufacturer: pointer.Pointer("b"), + FruProductManufacturer: new("b"), }, mock: []*metal.Machine{ {Base: metal.Base{ID: "1"}, IPMI: metal.IPMI{Fru: metal.Fru{ProductManufacturer: "a"}}}, @@ -799,7 +798,7 @@ func TestRethinkStore_SearchMachines(t *testing.T) { { name: "search by fru product part number", q: &MachineSearchQuery{ - FruProductPartNumber: pointer.Pointer("b-number"), + FruProductPartNumber: new("b-number"), }, mock: []*metal.Machine{ {Base: metal.Base{ID: "1"}, IPMI: metal.IPMI{Fru: metal.Fru{ProductPartNumber: "a-number"}}}, @@ -814,7 +813,7 @@ func TestRethinkStore_SearchMachines(t *testing.T) { { name: "search by fru product part serial", q: &MachineSearchQuery{ - FruProductSerial: pointer.Pointer("b-serial"), + FruProductSerial: new("b-serial"), }, mock: []*metal.Machine{ {Base: metal.Base{ID: "1"}, IPMI: metal.IPMI{Fru: metal.Fru{ProductSerial: "a-serial"}}}, diff --git a/cmd/metal-api/internal/datastore/migrations/09_networktype.go b/cmd/metal-api/internal/datastore/migrations/09_networktype.go index c426a36a..a16360c3 100644 --- a/cmd/metal-api/internal/datastore/migrations/09_networktype.go +++ b/cmd/metal-api/internal/datastore/migrations/09_networktype.go @@ -3,8 +3,6 @@ package migrations import ( "slices" - "github.com/metal-stack/metal-lib/pkg/pointer" - "github.com/metal-stack/metal-api/cmd/metal-api/internal/datastore" "github.com/metal-stack/metal-api/cmd/metal-api/internal/metal" @@ -48,37 +46,37 @@ func init() { // now convert all networks for _, old := range nws { - new := old + newNetwork := old // assume external network by default - new.NetworkType = pointer.Pointer(metal.ExternalNetworkType) + newNetwork.NetworkType = new(metal.ExternalNetworkType) if old.Shared && old.ParentNetworkID != "" { - new.NetworkType = pointer.Pointer(metal.ChildSharedNetworkType) + newNetwork.NetworkType = new(metal.ChildSharedNetworkType) } if old.Shared && old.ParentNetworkID == "" { - new.NetworkType = pointer.Pointer(metal.ExternalNetworkType) + newNetwork.NetworkType = new(metal.ExternalNetworkType) } if !old.Shared && old.ParentNetworkID != "" && !slices.Contains(sharedVrfs, old.Vrf) { - new.NetworkType = pointer.Pointer(metal.ChildNetworkType) + newNetwork.NetworkType = new(metal.ChildNetworkType) } if old.ProjectID == "" && old.ParentNetworkID == "" && !slices.Contains(sharedVrfs, old.Vrf) { - new.NetworkType = pointer.Pointer(metal.ExternalNetworkType) + newNetwork.NetworkType = new(metal.ExternalNetworkType) } if old.PrivateSuper { - new.NetworkType = pointer.Pointer(metal.SuperNetworkType) + newNetwork.NetworkType = new(metal.SuperNetworkType) } if old.Underlay { - new.NetworkType = pointer.Pointer(metal.UnderlayNetworkType) + newNetwork.NetworkType = new(metal.UnderlayNetworkType) } if old.Nat { - new.NATType = pointer.Pointer(metal.IPv4MasqueradeNATType) + newNetwork.NATType = new(metal.IPv4MasqueradeNATType) } else { - new.NATType = pointer.Pointer(metal.NoneNATType) + newNetwork.NATType = new(metal.NoneNATType) } - err := ds.UpdateNetwork(&old, &new) + err := ds.UpdateNetwork(&old, &newNetwork) if err != nil { return err } diff --git a/cmd/metal-api/internal/datastore/network_integration_test.go b/cmd/metal-api/internal/datastore/network_integration_test.go index 432fca9f..1dd3576d 100644 --- a/cmd/metal-api/internal/datastore/network_integration_test.go +++ b/cmd/metal-api/internal/datastore/network_integration_test.go @@ -6,7 +6,6 @@ import ( "testing" "github.com/metal-stack/metal-api/cmd/metal-api/internal/metal" - "github.com/metal-stack/metal-lib/pkg/pointer" "github.com/stretchr/testify/require" ) @@ -111,7 +110,7 @@ func TestRethinkStore_SearchNetworks(t *testing.T) { { name: "empty result", q: &NetworkSearchQuery{ - ID: pointer.Pointer("2"), + ID: new("2"), }, mock: []*metal.Network{ {Base: metal.Base{ID: "1"}}, @@ -122,7 +121,7 @@ func TestRethinkStore_SearchNetworks(t *testing.T) { { name: "search by id", q: &NetworkSearchQuery{ - ID: pointer.Pointer("2"), + ID: new("2"), }, mock: []*metal.Network{ {Base: metal.Base{ID: "1"}}, @@ -137,7 +136,7 @@ func TestRethinkStore_SearchNetworks(t *testing.T) { { name: "search by name", q: &NetworkSearchQuery{ - Name: pointer.Pointer("b"), + Name: new("b"), }, mock: []*metal.Network{ {Base: metal.Base{ID: "1", Name: "a"}}, @@ -152,7 +151,7 @@ func TestRethinkStore_SearchNetworks(t *testing.T) { { name: "search by partition", q: &NetworkSearchQuery{ - PartitionID: pointer.Pointer("b"), + PartitionID: new("b"), }, mock: []*metal.Network{ {Base: metal.Base{ID: "1"}, PartitionID: "a"}, @@ -167,7 +166,7 @@ func TestRethinkStore_SearchNetworks(t *testing.T) { { name: "search by project", q: &NetworkSearchQuery{ - ProjectID: pointer.Pointer("b"), + ProjectID: new("b"), }, mock: []*metal.Network{ {Base: metal.Base{ID: "1"}, ProjectID: "a"}, @@ -212,7 +211,7 @@ func TestRethinkStore_SearchNetworks(t *testing.T) { { name: "search by nat", q: &NetworkSearchQuery{ - Nat: pointer.Pointer(true), + Nat: new(true), }, mock: []*metal.Network{ {Base: metal.Base{ID: "1"}, Nat: false}, @@ -227,7 +226,7 @@ func TestRethinkStore_SearchNetworks(t *testing.T) { { name: "search by private super", q: &NetworkSearchQuery{ - PrivateSuper: pointer.Pointer(true), + PrivateSuper: new(true), }, mock: []*metal.Network{ {Base: metal.Base{ID: "1"}, PrivateSuper: false}, @@ -242,7 +241,7 @@ func TestRethinkStore_SearchNetworks(t *testing.T) { { name: "search by underlay", q: &NetworkSearchQuery{ - Underlay: pointer.Pointer(false), + Underlay: new(false), }, mock: []*metal.Network{ {Base: metal.Base{ID: "1"}, Underlay: false}, @@ -258,7 +257,7 @@ func TestRethinkStore_SearchNetworks(t *testing.T) { { name: "search by vrf", q: &NetworkSearchQuery{ - Vrf: pointer.Pointer(int64(1)), + Vrf: new(int64(1)), }, mock: []*metal.Network{ {Base: metal.Base{ID: "1"}, Vrf: 0}, @@ -273,7 +272,7 @@ func TestRethinkStore_SearchNetworks(t *testing.T) { { name: "search by parent network id", q: &NetworkSearchQuery{ - ParentNetworkID: pointer.Pointer("parent"), + ParentNetworkID: new("parent"), }, mock: []*metal.Network{ {Base: metal.Base{ID: "1"}, ParentNetworkID: "0"}, @@ -303,7 +302,7 @@ func TestRethinkStore_SearchNetworks(t *testing.T) { { name: "search by ipv4 addressfamily", q: &NetworkSearchQuery{ - AddressFamily: pointer.Pointer(string(metal.IPv4AddressFamily)), + AddressFamily: new(string(metal.IPv4AddressFamily)), }, mock: []*metal.Network{ {Base: metal.Base{ID: "1"}, Prefixes: metal.Prefixes{{IP: "1.2.3.4", Length: "32"}}}, @@ -317,7 +316,7 @@ func TestRethinkStore_SearchNetworks(t *testing.T) { { name: "search by ipv6 addressfamily", q: &NetworkSearchQuery{ - AddressFamily: pointer.Pointer(string(metal.IPv6AddressFamily)), + AddressFamily: new(string(metal.IPv6AddressFamily)), }, mock: []*metal.Network{ {Base: metal.Base{ID: "1"}, Prefixes: metal.Prefixes{{IP: "1.2.3.4", Length: "32"}}}, diff --git a/cmd/metal-api/internal/datastore/size_integration_test.go b/cmd/metal-api/internal/datastore/size_integration_test.go index a4036d1b..c9a13887 100644 --- a/cmd/metal-api/internal/datastore/size_integration_test.go +++ b/cmd/metal-api/internal/datastore/size_integration_test.go @@ -6,7 +6,6 @@ import ( "testing" "github.com/metal-stack/metal-api/cmd/metal-api/internal/metal" - "github.com/metal-stack/metal-lib/pkg/pointer" "github.com/stretchr/testify/require" ) @@ -105,7 +104,7 @@ func TestRethinkStore_SearchSizes(t *testing.T) { { name: "empty result", q: &SizeSearchQuery{ - ID: pointer.Pointer("2"), + ID: new("2"), }, mock: []*metal.Size{ {Base: metal.Base{ID: "1"}}, @@ -116,7 +115,7 @@ func TestRethinkStore_SearchSizes(t *testing.T) { { name: "search by id", q: &SizeSearchQuery{ - ID: pointer.Pointer("2"), + ID: new("2"), }, mock: []*metal.Size{ {Base: metal.Base{ID: "1"}}, @@ -131,7 +130,7 @@ func TestRethinkStore_SearchSizes(t *testing.T) { { name: "search by name", q: &SizeSearchQuery{ - Name: pointer.Pointer("b"), + Name: new("b"), }, mock: []*metal.Size{ {Base: metal.Base{ID: "1", Name: "a"}}, diff --git a/cmd/metal-api/internal/datastore/size_reservation_integration_test.go b/cmd/metal-api/internal/datastore/size_reservation_integration_test.go index 95987b3e..eebc5865 100644 --- a/cmd/metal-api/internal/datastore/size_reservation_integration_test.go +++ b/cmd/metal-api/internal/datastore/size_reservation_integration_test.go @@ -6,7 +6,6 @@ import ( "testing" "github.com/metal-stack/metal-api/cmd/metal-api/internal/metal" - "github.com/metal-stack/metal-lib/pkg/pointer" "github.com/stretchr/testify/require" ) @@ -105,7 +104,7 @@ func TestRethinkStore_SearchSizeReservations(t *testing.T) { { name: "empty result", q: &SizeReservationSearchQuery{ - ID: pointer.Pointer("2"), + ID: new("2"), }, mock: []*metal.SizeReservation{ {Base: metal.Base{ID: "1"}}, @@ -116,7 +115,7 @@ func TestRethinkStore_SearchSizeReservations(t *testing.T) { { name: "search by id", q: &SizeReservationSearchQuery{ - ID: pointer.Pointer("2"), + ID: new("2"), }, mock: []*metal.SizeReservation{ {Base: metal.Base{ID: "1"}}, @@ -131,7 +130,7 @@ func TestRethinkStore_SearchSizeReservations(t *testing.T) { { name: "search by name", q: &SizeReservationSearchQuery{ - Name: pointer.Pointer("b"), + Name: new("b"), }, mock: []*metal.SizeReservation{ {Base: metal.Base{ID: "1", Name: "a"}}, @@ -146,7 +145,7 @@ func TestRethinkStore_SearchSizeReservations(t *testing.T) { { name: "search by size", q: &SizeReservationSearchQuery{ - SizeID: pointer.Pointer("size-a"), + SizeID: new("size-a"), }, mock: []*metal.SizeReservation{ {Base: metal.Base{ID: "1"}, SizeID: "size-a"}, @@ -179,7 +178,7 @@ func TestRethinkStore_SearchSizeReservations(t *testing.T) { { name: "search by partition", q: &SizeReservationSearchQuery{ - Partition: pointer.Pointer("b"), + Partition: new("b"), }, mock: []*metal.SizeReservation{ {Base: metal.Base{ID: "1"}, PartitionIDs: []string{"b"}}, @@ -195,7 +194,7 @@ func TestRethinkStore_SearchSizeReservations(t *testing.T) { { name: "search by project", q: &SizeReservationSearchQuery{ - Project: pointer.Pointer("3"), + Project: new("3"), }, mock: []*metal.SizeReservation{ {Base: metal.Base{ID: "1"}, ProjectID: "1"}, diff --git a/cmd/metal-api/internal/datastore/switch_integration_test.go b/cmd/metal-api/internal/datastore/switch_integration_test.go index e1d751e5..18dda361 100644 --- a/cmd/metal-api/internal/datastore/switch_integration_test.go +++ b/cmd/metal-api/internal/datastore/switch_integration_test.go @@ -6,7 +6,6 @@ import ( "testing" "github.com/metal-stack/metal-api/cmd/metal-api/internal/metal" - "github.com/metal-stack/metal-lib/pkg/pointer" "github.com/stretchr/testify/require" ) @@ -103,7 +102,7 @@ func TestRethinkStore_SearchSwitches(t *testing.T) { { name: "empty result", q: &SwitchSearchQuery{ - ID: pointer.Pointer("2"), + ID: new("2"), }, mock: []*metal.Switch{ {Base: metal.Base{ID: "1"}}, @@ -114,7 +113,7 @@ func TestRethinkStore_SearchSwitches(t *testing.T) { { name: "search by id", q: &SwitchSearchQuery{ - ID: pointer.Pointer("2"), + ID: new("2"), }, mock: []*metal.Switch{ {Base: metal.Base{ID: "1"}}, @@ -129,7 +128,7 @@ func TestRethinkStore_SearchSwitches(t *testing.T) { { name: "search by partition", q: &SwitchSearchQuery{ - PartitionID: pointer.Pointer("b"), + PartitionID: new("b"), }, mock: []*metal.Switch{ {Base: metal.Base{ID: "1"}, PartitionID: "a"}, @@ -146,7 +145,7 @@ func TestRethinkStore_SearchSwitches(t *testing.T) { { name: "search by rack", q: &SwitchSearchQuery{ - RackID: pointer.Pointer("b"), + RackID: new("b"), }, mock: []*metal.Switch{ {Base: metal.Base{ID: "1"}, RackID: "a"}, @@ -161,7 +160,7 @@ func TestRethinkStore_SearchSwitches(t *testing.T) { { name: "search by os vendor", q: &SwitchSearchQuery{ - OSVendor: pointer.Pointer("sonic"), + OSVendor: new("sonic"), }, mock: []*metal.Switch{ {Base: metal.Base{ID: "1"}, OS: &metal.SwitchOS{Vendor: "cumulus"}}, @@ -177,7 +176,7 @@ func TestRethinkStore_SearchSwitches(t *testing.T) { { name: "search by os version", q: &SwitchSearchQuery{ - OSVersion: pointer.Pointer("1.2.3"), + OSVersion: new("1.2.3"), }, mock: []*metal.Switch{ {Base: metal.Base{ID: "1"}, OS: &metal.SwitchOS{Version: "1.2.1"}}, diff --git a/cmd/metal-api/internal/grpc/grpc-server.go b/cmd/metal-api/internal/grpc/grpc-server.go index 41abd017..80888744 100644 --- a/cmd/metal-api/internal/grpc/grpc-server.go +++ b/cmd/metal-api/internal/grpc/grpc-server.go @@ -30,6 +30,7 @@ import ( "github.com/metal-stack/metal-api/cmd/metal-api/internal/metrics" v1 "github.com/metal-stack/metal-api/pkg/api/v1" "github.com/metal-stack/metal-lib/auditing" + auditinggrpc "github.com/metal-stack/metal-lib/auditing/grpc" "github.com/metal-stack/metal-lib/bus" ) @@ -132,11 +133,11 @@ func Run(cfg *ServerConfig) error { } for _, backend := range cfg.Auditing { - auditStreamInterceptor, err := auditing.StreamServerInterceptor(backend, log.WithGroup("auditing-grpc"), shouldAudit) + auditStreamInterceptor, err := auditinggrpc.StreamServerInterceptor(backend, log.WithGroup("auditing-grpc"), shouldAudit) if err != nil { return err } - auditUnaryInterceptor, err := auditing.UnaryServerInterceptor(backend, log.WithGroup("auditing-grpc"), shouldAudit) + auditUnaryInterceptor, err := auditinggrpc.UnaryServerInterceptor(backend, log.WithGroup("auditing-grpc"), shouldAudit) if err != nil { return err } diff --git a/cmd/metal-api/internal/service/audit-service.go b/cmd/metal-api/internal/service/audit-service.go index a4450df2..07515e9c 100644 --- a/cmd/metal-api/internal/service/audit-service.go +++ b/cmd/metal-api/internal/service/audit-service.go @@ -6,6 +6,7 @@ import ( v1 "github.com/metal-stack/metal-api/cmd/metal-api/internal/service/v1" "github.com/metal-stack/metal-lib/auditing" + auditinghttp "github.com/metal-stack/metal-lib/auditing/http" "github.com/metal-stack/metal-lib/pkg/pointer" restfulspec "github.com/emicklei/go-restful-openapi/v2" @@ -43,7 +44,7 @@ func (r *auditResource) webService() *restful.WebService { Operation("findAuditTraces"). Doc("find all audit traces that match given properties"). Metadata(restfulspec.KeyOpenAPITags, tags). - Metadata(auditing.Exclude, true). + Metadata(auditinghttp.Exclude, true). Reads(v1.AuditFindRequest{}). Writes([]v1.AuditResponse{}). Returns(http.StatusOK, "OK", []v1.AuditResponse{}). diff --git a/cmd/metal-api/internal/service/filesystem-service.go b/cmd/metal-api/internal/service/filesystem-service.go index 3ce830ec..66b594e1 100644 --- a/cmd/metal-api/internal/service/filesystem-service.go +++ b/cmd/metal-api/internal/service/filesystem-service.go @@ -8,7 +8,7 @@ import ( "github.com/metal-stack/metal-api/cmd/metal-api/internal/datastore" v1 "github.com/metal-stack/metal-api/cmd/metal-api/internal/service/v1" - "github.com/metal-stack/metal-lib/auditing" + auditinghttp "github.com/metal-stack/metal-lib/auditing/http" restfulspec "github.com/emicklei/go-restful-openapi/v2" restful "github.com/emicklei/go-restful/v3" @@ -93,7 +93,7 @@ func (r *filesystemResource) webService() *restful.WebService { Operation("tryFilesystemLayout"). Doc("try to detect a filesystemlayout based on given size and image."). Metadata(restfulspec.KeyOpenAPITags, tags). - Metadata(auditing.Exclude, true). + Metadata(auditinghttp.Exclude, true). Reads(v1.FilesystemLayoutTryRequest{}). Returns(http.StatusOK, "OK", v1.FilesystemLayoutResponse{}). DefaultReturns("Error", httperrors.HTTPErrorResponse{})) @@ -103,7 +103,7 @@ func (r *filesystemResource) webService() *restful.WebService { Operation("matchFilesystemLayout"). Doc("check if the given machine id satisfies the disk requirements of the filesystemlayout in question"). Metadata(restfulspec.KeyOpenAPITags, tags). - Metadata(auditing.Exclude, true). + Metadata(auditinghttp.Exclude, true). Reads(v1.FilesystemLayoutMatchRequest{}). Returns(http.StatusOK, "OK", v1.FilesystemLayoutResponse{}). DefaultReturns("Error", httperrors.HTTPErrorResponse{})) diff --git a/cmd/metal-api/internal/service/firewall-service.go b/cmd/metal-api/internal/service/firewall-service.go index 4d9620ad..21e64efd 100644 --- a/cmd/metal-api/internal/service/firewall-service.go +++ b/cmd/metal-api/internal/service/firewall-service.go @@ -10,10 +10,10 @@ import ( "net/http" "github.com/metal-stack/metal-api/cmd/metal-api/internal/headscale" - "github.com/metal-stack/metal-lib/auditing" "github.com/metal-stack/security" + auditinghttp "github.com/metal-stack/metal-lib/auditing/http" "github.com/metal-stack/metal-lib/httperrors" mdm "github.com/metal-stack/masterdata-api/pkg/client" @@ -97,7 +97,7 @@ func (r *firewallResource) webService() *restful.WebService { Doc("find firewalls by multiple criteria"). Reads(v1.FirewallFindRequest{}). Metadata(restfulspec.KeyOpenAPITags, tags). - Metadata(auditing.Exclude, true). + Metadata(auditinghttp.Exclude, true). Writes([]v1.FirewallResponse{}). Returns(http.StatusOK, "OK", []v1.FirewallResponse{}). DefaultReturns("Error", httperrors.HTTPErrorResponse{})) diff --git a/cmd/metal-api/internal/service/image-service.go b/cmd/metal-api/internal/service/image-service.go index a647d569..18e78be1 100644 --- a/cmd/metal-api/internal/service/image-service.go +++ b/cmd/metal-api/internal/service/image-service.go @@ -11,7 +11,7 @@ import ( "github.com/metal-stack/metal-api/cmd/metal-api/internal/datastore" "github.com/metal-stack/metal-api/cmd/metal-api/internal/metal" v1 "github.com/metal-stack/metal-api/cmd/metal-api/internal/service/v1" - "github.com/metal-stack/metal-lib/auditing" + auditinghttp "github.com/metal-stack/metal-lib/auditing/http" metalcommon "github.com/metal-stack/metal-lib/pkg/metal" restfulspec "github.com/emicklei/go-restful-openapi/v2" @@ -89,7 +89,7 @@ func (ir *imageResource) webService() *restful.WebService { Operation("findImages"). Doc("get all images that match given properties"). Metadata(restfulspec.KeyOpenAPITags, tags). - Metadata(auditing.Exclude, true). + Metadata(auditinghttp.Exclude, true). Param(ws.QueryParameter("show-usage", "include image usage into response").DataType("boolean").DefaultValue("false")). Reads(v1.ImageFindRequest{}). Writes([]v1.ImageResponse{}). diff --git a/cmd/metal-api/internal/service/ip-service.go b/cmd/metal-api/internal/service/ip-service.go index 2a704f0b..ed7d6e7d 100644 --- a/cmd/metal-api/internal/service/ip-service.go +++ b/cmd/metal-api/internal/service/ip-service.go @@ -10,6 +10,7 @@ import ( "slices" "connectrpc.com/connect" + auditinghttp "github.com/metal-stack/metal-lib/auditing/http" "github.com/metal-stack/metal-lib/bus" "github.com/metal-stack/metal-lib/pkg/tag" @@ -20,7 +21,6 @@ import ( "github.com/metal-stack/metal-api/cmd/metal-api/internal/ipam" "github.com/metal-stack/metal-api/cmd/metal-api/internal/metal" "github.com/metal-stack/metal-api/cmd/metal-api/internal/tags" - "github.com/metal-stack/metal-lib/auditing" v1 "github.com/metal-stack/metal-api/cmd/metal-api/internal/service/v1" @@ -87,7 +87,7 @@ func (r *ipResource) webService() *restful.WebService { Operation("findIPs"). Doc("get all ips that match given properties"). Metadata(restfulspec.KeyOpenAPITags, tags). - Metadata(auditing.Exclude, true). + Metadata(auditinghttp.Exclude, true). Reads(v1.IPFindRequest{}). Writes([]v1.IPResponse{}). Returns(http.StatusOK, "OK", []v1.IPResponse{}). diff --git a/cmd/metal-api/internal/service/ip-service_test.go b/cmd/metal-api/internal/service/ip-service_test.go index 996ce720..8fe06c5c 100644 --- a/cmd/metal-api/internal/service/ip-service_test.go +++ b/cmd/metal-api/internal/service/ip-service_test.go @@ -10,7 +10,6 @@ import ( "testing" "github.com/metal-stack/metal-lib/bus" - "github.com/metal-stack/metal-lib/pkg/pointer" "github.com/metal-stack/metal-lib/pkg/tag" mdmv1 "github.com/metal-stack/masterdata-api/api/v1" @@ -295,7 +294,7 @@ func TestAllocateIP(t *testing.T) { NetworkID: testdata.NwIPAM.ID, Type: metal.Ephemeral, }, - AddressFamily: pointer.Pointer(metal.IPv4AddressFamily), + AddressFamily: new(metal.IPv4AddressFamily), }, wantedIP: "10.0.0.3", wantedType: metal.Ephemeral, @@ -310,7 +309,7 @@ func TestAllocateIP(t *testing.T) { NetworkID: testdata.NwIPAM.ID, Type: metal.Ephemeral, }, - AddressFamily: pointer.Pointer(metal.IPv6AddressFamily), + AddressFamily: new(metal.IPv6AddressFamily), }, wantedStatus: http.StatusBadRequest, wantErr: errors.New("there is no prefix for the given addressfamily:IPv6 present in network:4"), diff --git a/cmd/metal-api/internal/service/machine-service.go b/cmd/metal-api/internal/service/machine-service.go index d73204c3..fd6bdde8 100644 --- a/cmd/metal-api/internal/service/machine-service.go +++ b/cmd/metal-api/internal/service/machine-service.go @@ -16,7 +16,7 @@ import ( "github.com/google/uuid" "github.com/metal-stack/metal-api/cmd/metal-api/internal/headscale" "github.com/metal-stack/metal-api/cmd/metal-api/internal/issues" - "github.com/metal-stack/metal-lib/auditing" + auditinghttp "github.com/metal-stack/metal-lib/auditing/http" "github.com/avast/retry-go/v4" "github.com/aws/aws-sdk-go/service/s3" @@ -174,7 +174,7 @@ func (r *machineResource) webService() *restful.WebService { Doc("get consolepassword for machine by id"). Reads(v1.MachineConsolePasswordRequest{}). Metadata(restfulspec.KeyOpenAPITags, tags). - Metadata(auditing.Include, true). + Metadata(auditinghttp.Include, true). Writes(v1.MachineConsolePasswordResponse{}). Returns(http.StatusOK, "OK", v1.MachineConsolePasswordResponse{}). DefaultReturns("Error", httperrors.HTTPErrorResponse{})) @@ -193,7 +193,7 @@ func (r *machineResource) webService() *restful.WebService { Operation("findMachines"). Doc("find machines by multiple criteria"). Metadata(restfulspec.KeyOpenAPITags, tags). - Metadata(auditing.Exclude, true). + Metadata(auditinghttp.Exclude, true). Reads(v1.MachineFindRequest{}). Writes([]v1.MachineResponse{}). Returns(http.StatusOK, "OK", []v1.MachineResponse{}). @@ -256,7 +256,7 @@ func (r *machineResource) webService() *restful.WebService { Operation("listIssues"). Doc("returns the list of issues that exist in the API"). Metadata(restfulspec.KeyOpenAPITags, tags). - Metadata(auditing.Exclude, true). + Metadata(auditinghttp.Exclude, true). Writes([]v1.MachineIssue{}). Returns(http.StatusOK, "OK", []v1.MachineIssue{}). DefaultReturns("Error", httperrors.HTTPErrorResponse{})) @@ -297,7 +297,7 @@ func (r *machineResource) webService() *restful.WebService { Operation("findIPMIMachines"). Doc("returns machines including the ipmi connection data"). Metadata(restfulspec.KeyOpenAPITags, tags). - Metadata(auditing.Exclude, true). + Metadata(auditinghttp.Exclude, true). Reads(v1.MachineFindRequest{}). Writes([]v1.MachineIPMIResponse{}). Returns(http.StatusOK, "OK", []v1.MachineIPMIResponse{}). diff --git a/cmd/metal-api/internal/service/network-service.go b/cmd/metal-api/internal/service/network-service.go index 1ed191fc..bf64828b 100644 --- a/cmd/metal-api/internal/service/network-service.go +++ b/cmd/metal-api/internal/service/network-service.go @@ -21,7 +21,7 @@ import ( "github.com/metal-stack/metal-api/cmd/metal-api/internal/ipam" "github.com/metal-stack/metal-api/cmd/metal-api/internal/metal" v1 "github.com/metal-stack/metal-api/cmd/metal-api/internal/service/v1" - "github.com/metal-stack/metal-lib/auditing" + auditinghttp "github.com/metal-stack/metal-lib/auditing/http" "github.com/metal-stack/metal-lib/httperrors" ) @@ -78,7 +78,7 @@ func (r *networkResource) webService() *restful.WebService { Operation("findNetworks"). Doc("get all networks that match given properties"). Metadata(restfulspec.KeyOpenAPITags, tags). - Metadata(auditing.Exclude, true). + Metadata(auditinghttp.Exclude, true). Reads(v1.NetworkFindRequest{}). Writes([]v1.NetworkResponse{}). Returns(http.StatusOK, "OK", []v1.NetworkResponse{}). diff --git a/cmd/metal-api/internal/service/partition-service.go b/cmd/metal-api/internal/service/partition-service.go index 6d1cddfb..7cae3189 100644 --- a/cmd/metal-api/internal/service/partition-service.go +++ b/cmd/metal-api/internal/service/partition-service.go @@ -9,7 +9,7 @@ import ( "github.com/metal-stack/metal-api/cmd/metal-api/internal/datastore" "github.com/metal-stack/metal-api/cmd/metal-api/internal/issues" "github.com/metal-stack/metal-api/cmd/metal-api/internal/metal" - "github.com/metal-stack/metal-lib/auditing" + auditinghttp "github.com/metal-stack/metal-lib/auditing/http" "github.com/metal-stack/metal-lib/pkg/pointer" v1 "github.com/metal-stack/metal-api/cmd/metal-api/internal/service/v1" @@ -105,7 +105,7 @@ func (r *partitionResource) webService() *restful.WebService { Operation("partitionCapacity"). Doc("get partition capacity"). Metadata(restfulspec.KeyOpenAPITags, tags). - Metadata(auditing.Exclude, true). + Metadata(auditinghttp.Exclude, true). Reads(v1.PartitionCapacityRequest{}). Writes([]v1.PartitionCapacity{}). Returns(http.StatusOK, "OK", []v1.PartitionCapacity{}). diff --git a/cmd/metal-api/internal/service/project-service.go b/cmd/metal-api/internal/service/project-service.go index 49e9b32b..14a95f28 100644 --- a/cmd/metal-api/internal/service/project-service.go +++ b/cmd/metal-api/internal/service/project-service.go @@ -13,10 +13,10 @@ import ( "github.com/metal-stack/metal-api/cmd/metal-api/internal/datastore" "github.com/metal-stack/metal-api/cmd/metal-api/internal/metal" - "github.com/metal-stack/metal-lib/auditing" restfulspec "github.com/emicklei/go-restful-openapi/v2" restful "github.com/emicklei/go-restful/v3" + auditinghttp "github.com/metal-stack/metal-lib/auditing/http" "github.com/metal-stack/metal-lib/httperrors" ) @@ -70,7 +70,7 @@ func (r *projectResource) webService() *restful.WebService { Operation("findProjects"). Doc("get all projects that match given properties"). Metadata(restfulspec.KeyOpenAPITags, tags). - Metadata(auditing.Exclude, true). + Metadata(auditinghttp.Exclude, true). Reads(v1.ProjectFindRequest{}). Writes([]v1.ProjectResponse{}). Returns(http.StatusOK, "OK", []v1.ProjectResponse{}). diff --git a/cmd/metal-api/internal/service/size-service.go b/cmd/metal-api/internal/service/size-service.go index 88e09a70..4bc977a4 100644 --- a/cmd/metal-api/internal/service/size-service.go +++ b/cmd/metal-api/internal/service/size-service.go @@ -12,7 +12,7 @@ import ( "github.com/metal-stack/metal-api/cmd/metal-api/internal/datastore" "github.com/metal-stack/metal-api/cmd/metal-api/internal/metal" v1 "github.com/metal-stack/metal-api/cmd/metal-api/internal/service/v1" - "github.com/metal-stack/metal-lib/auditing" + auditinghttp "github.com/metal-stack/metal-lib/auditing/http" "github.com/metal-stack/metal-lib/pkg/pointer" restfulspec "github.com/emicklei/go-restful-openapi/v2" @@ -102,7 +102,7 @@ func (r *sizeResource) webService() *restful.WebService { Operation("suggest"). Doc("from a given machine id returns the appropriate size"). Metadata(restfulspec.KeyOpenAPITags, tags). - Metadata(auditing.Exclude, true). + Metadata(auditinghttp.Exclude, true). Reads(v1.SizeSuggestRequest{}). Returns(http.StatusOK, "OK", []v1.SizeConstraint{}). DefaultReturns("Error", httperrors.HTTPErrorResponse{})) @@ -114,7 +114,7 @@ func (r *sizeResource) webService() *restful.WebService { Operation("listSizeReservations"). Doc("get all size reservations"). Metadata(restfulspec.KeyOpenAPITags, tags). - Metadata(auditing.Exclude, true). + Metadata(auditinghttp.Exclude, true). Writes([]v1.SizeReservationResponse{}). Returns(http.StatusOK, "OK", []v1.SizeReservationResponse{}). DefaultReturns("Error", httperrors.HTTPErrorResponse{})) @@ -124,7 +124,7 @@ func (r *sizeResource) webService() *restful.WebService { Operation("findSizeReservations"). Doc("get all size reservations"). Metadata(restfulspec.KeyOpenAPITags, tags). - Metadata(auditing.Exclude, true). + Metadata(auditinghttp.Exclude, true). Reads(v1.SizeReservationListRequest{}). Writes([]v1.SizeReservationResponse{}). Returns(http.StatusOK, "OK", []v1.SizeReservationResponse{}). @@ -175,7 +175,7 @@ func (r *sizeResource) webService() *restful.WebService { Operation("sizeReservationsUsage"). Doc("get all size reservations"). Metadata(restfulspec.KeyOpenAPITags, tags). - Metadata(auditing.Exclude, true). + Metadata(auditinghttp.Exclude, true). Reads(v1.SizeReservationListRequest{}). Writes([]v1.SizeReservationUsageResponse{}). Returns(http.StatusOK, "OK", []v1.SizeReservationUsageResponse{}). diff --git a/cmd/metal-api/internal/service/sizeimageconstraint-service.go b/cmd/metal-api/internal/service/sizeimageconstraint-service.go index 48bea470..7269c569 100644 --- a/cmd/metal-api/internal/service/sizeimageconstraint-service.go +++ b/cmd/metal-api/internal/service/sizeimageconstraint-service.go @@ -9,10 +9,10 @@ import ( "github.com/metal-stack/metal-api/cmd/metal-api/internal/datastore" "github.com/metal-stack/metal-api/cmd/metal-api/internal/metal" v1 "github.com/metal-stack/metal-api/cmd/metal-api/internal/service/v1" - "github.com/metal-stack/metal-lib/auditing" restfulspec "github.com/emicklei/go-restful-openapi/v2" restful "github.com/emicklei/go-restful/v3" + auditinghttp "github.com/metal-stack/metal-lib/auditing/http" "github.com/metal-stack/metal-lib/httperrors" ) @@ -94,7 +94,7 @@ func (r *sizeImageConstraintResource) webService() *restful.WebService { Operation("trySizeImageConstraint"). Doc("try if the given combination of image and size is supported and possible to allocate"). Metadata(restfulspec.KeyOpenAPITags, tags). - Metadata(auditing.Exclude, true). + Metadata(auditinghttp.Exclude, true). Reads(v1.SizeImageConstraintTryRequest{}). Returns(http.StatusOK, "OK", v1.EmptyBody{}). DefaultReturns("Error", httperrors.HTTPErrorResponse{})) diff --git a/cmd/metal-api/internal/service/switch-service.go b/cmd/metal-api/internal/service/switch-service.go index a282b240..c37551ae 100644 --- a/cmd/metal-api/internal/service/switch-service.go +++ b/cmd/metal-api/internal/service/switch-service.go @@ -19,7 +19,7 @@ import ( "github.com/metal-stack/metal-api/cmd/metal-api/internal/datastore" "github.com/metal-stack/metal-api/cmd/metal-api/internal/metal" v1 "github.com/metal-stack/metal-api/cmd/metal-api/internal/service/v1" - "github.com/metal-stack/metal-lib/auditing" + auditinghttp "github.com/metal-stack/metal-lib/auditing/http" "github.com/metal-stack/metal-lib/httperrors" ) @@ -71,7 +71,7 @@ func (r *switchResource) webService() *restful.WebService { Operation("findSwitches"). Doc("get all switches that match given properties"). Metadata(restfulspec.KeyOpenAPITags, tags). - Metadata(auditing.Exclude, true). + Metadata(auditinghttp.Exclude, true). Reads(v1.SwitchFindRequest{}). Writes([]v1.SwitchResponse{}). Returns(http.StatusOK, "OK", []v1.SwitchResponse{}). @@ -126,7 +126,7 @@ func (r *switchResource) webService() *restful.WebService { Operation("notifySwitch"). Param(ws.PathParameter("id", "identifier of the switch").DataType("string")). Metadata(restfulspec.KeyOpenAPITags, tags). - Metadata(auditing.Exclude, true). + Metadata(auditinghttp.Exclude, true). Reads(v1.SwitchNotifyRequest{}). Returns(http.StatusOK, "OK", v1.SwitchNotifyResponse{}). DefaultReturns("Error", httperrors.HTTPErrorResponse{})) diff --git a/cmd/metal-api/internal/service/tenant-service.go b/cmd/metal-api/internal/service/tenant-service.go index 9a36bbdd..5376fe58 100644 --- a/cmd/metal-api/internal/service/tenant-service.go +++ b/cmd/metal-api/internal/service/tenant-service.go @@ -12,7 +12,7 @@ import ( restfulspec "github.com/emicklei/go-restful-openapi/v2" restful "github.com/emicklei/go-restful/v3" - "github.com/metal-stack/metal-lib/auditing" + auditinghttp "github.com/metal-stack/metal-lib/auditing/http" "github.com/metal-stack/metal-lib/httperrors" ) @@ -65,7 +65,7 @@ func (r *tenantResource) webService() *restful.WebService { Operation("findTenants"). Doc("get all tenants that match given properties"). Metadata(restfulspec.KeyOpenAPITags, tags). - Metadata(auditing.Exclude, true). + Metadata(auditinghttp.Exclude, true). Reads(v1.TenantFindRequest{}). Writes([]v1.TenantResponse{}). Returns(http.StatusOK, "OK", []v1.TenantResponse{}). diff --git a/cmd/metal-api/main.go b/cmd/metal-api/main.go index b0fdab48..22ca23fb 100644 --- a/cmd/metal-api/main.go +++ b/cmd/metal-api/main.go @@ -29,6 +29,9 @@ import ( "github.com/metal-stack/metal-api/cmd/metal-api/internal/grpc" "github.com/metal-stack/metal-api/cmd/metal-api/internal/metrics" "github.com/metal-stack/metal-lib/auditing" + auditinghttp "github.com/metal-stack/metal-lib/auditing/http" + auditingsplunk "github.com/metal-stack/metal-lib/auditing/splunk" + auditingtimescaledb "github.com/metal-stack/metal-lib/auditing/timescaledb" "github.com/metal-stack/metal-lib/rest" nsq2 "github.com/nsqio/go-nsq" @@ -806,14 +809,14 @@ func initRestServices(searchAuditBackend auditing.Auditing, allAuditBackends []a } for _, backend := range allAuditBackends { - filterOpt := auditing.NewHttpFilterErrorCallback(func(err error, response *restful.Response) { + filterOpt := auditinghttp.NewHttpFilterErrorCallback(func(err error, response *restful.Response) { httperr := httperrors.InternalServerError(err) if err := response.WriteHeaderAndEntity(httperr.StatusCode, httperr); err != nil { logger.Error("failed to send response", "error", err) } }) - httpFilter, err := auditing.HttpFilter(backend, logger.WithGroup("audit-middleware"), filterOpt) + httpFilter, err := auditinghttp.HttpFilter(backend, logger.WithGroup("audit-middleware"), filterOpt) if err != nil { log.Fatalf("unable to create http filter for auditing: %s", err) } @@ -943,7 +946,7 @@ func createAuditingClient(log *slog.Logger) (searchBackend auditing.Auditing, ba } if viper.IsSet("auditing-timescaledb-host") { - backend, err := auditing.NewTimescaleDB(c, auditing.TimescaleDbConfig{ + backend, err := auditingtimescaledb.NewTimescaleDB(c, auditingtimescaledb.TimescaleDbConfig{ Host: viper.GetString("auditing-timescaledb-host"), Port: viper.GetString("auditing-timescaledb-port"), DB: viper.GetString("auditing-timescaledb-db"), @@ -977,7 +980,7 @@ func createAuditingClient(log *slog.Logger) (searchBackend auditing.Auditing, ba source = viper.GetString("auditing-splunk-source") } - splunkConfig := auditing.SplunkConfig{ + splunkConfig := auditingsplunk.SplunkConfig{ Endpoint: viper.GetString("auditing-splunk-endpoint"), HECToken: viper.GetString("auditing-splunk-hec-token"), SourceType: viper.GetString("auditing-splunk-source-type"), @@ -998,7 +1001,7 @@ func createAuditingClient(log *slog.Logger) (searchBackend auditing.Auditing, ba } } - splunkBackend, err := auditing.NewSplunk(auditing.Config{ + splunkBackend, err := auditingsplunk.NewSplunk(auditing.Config{ Component: source, Log: log, }, splunkConfig) @@ -1008,7 +1011,7 @@ func createAuditingClient(log *slog.Logger) (searchBackend auditing.Auditing, ba asyncSplunkBackend, err := auditing.NewAsync(splunkBackend, log, auditing.AsyncConfig{ AsyncRetry: 3, - AsyncBackoff: pointer.Pointer(1 * time.Second), + AsyncBackoff: new(1 * time.Second), }) if err != nil { return nil, nil, err diff --git a/go.mod b/go.mod index 13451df1..cc153985 100644 --- a/go.mod +++ b/go.mod @@ -3,14 +3,14 @@ module github.com/metal-stack/metal-api go 1.26 require ( - connectrpc.com/connect v1.19.1 + connectrpc.com/connect v1.19.2 github.com/Masterminds/semver/v3 v3.4.0 github.com/avast/retry-go/v4 v4.7.0 github.com/aws/aws-sdk-go v1.55.8 github.com/dustin/go-humanize v1.0.1 github.com/emicklei/go-restful-openapi/v2 v2.12.0 github.com/emicklei/go-restful/v3 v3.13.0 - github.com/go-openapi/spec v0.22.3 + github.com/go-openapi/spec v0.22.4 github.com/google/go-cmp v0.7.0 github.com/google/uuid v1.6.0 github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus v1.1.0 @@ -20,7 +20,7 @@ require ( github.com/looplab/fsm v1.0.3 github.com/metal-stack/go-ipam v1.14.13 github.com/metal-stack/masterdata-api v0.12.0 - github.com/metal-stack/metal-lib v0.24.0 + github.com/metal-stack/metal-lib v0.25.0 github.com/metal-stack/security v0.9.6 github.com/metal-stack/v v1.0.3 github.com/nsqio/go-nsq v1.1.0 @@ -29,11 +29,11 @@ require ( github.com/spf13/cobra v1.10.2 github.com/spf13/viper v1.21.0 github.com/stretchr/testify v1.11.1 - github.com/testcontainers/testcontainers-go v0.40.0 + github.com/testcontainers/testcontainers-go v0.42.0 go4.org/netipx v0.0.0-20231129151722-fdeea329fbba - golang.org/x/crypto v0.48.0 - golang.org/x/sync v0.19.0 - google.golang.org/grpc v1.79.1 + golang.org/x/crypto v0.50.0 + golang.org/x/sync v0.20.0 + google.golang.org/grpc v1.80.0 google.golang.org/protobuf v1.36.11 gopkg.in/rethinkdb/rethinkdb-go.v6 v6.2.2 ) @@ -49,49 +49,47 @@ require ( github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 github.com/beorn7/perks v1.0.1 // indirect github.com/cenkalti/backoff/v4 v4.3.0 // indirect - github.com/cenkalti/backoff/v5 v5.0.3 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/containerd/errdefs v1.0.0 // indirect github.com/containerd/errdefs/pkg v0.3.0 // indirect github.com/containerd/log v0.1.0 // indirect github.com/containerd/platforms v0.2.1 // indirect - github.com/coreos/go-oidc/v3 v3.17.0 // indirect + github.com/coreos/go-oidc/v3 v3.18.0 // indirect github.com/coreos/go-semver v0.3.1 // indirect github.com/coreos/go-systemd/v22 v22.6.0 // indirect github.com/cpuguy83/dockercfg v0.3.2 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect - github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.0 // indirect + github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.1 // indirect github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect github.com/distribution/reference v0.6.0 // indirect - github.com/docker/docker v28.5.2+incompatible // indirect github.com/docker/go-connections v0.6.0 // indirect github.com/docker/go-units v0.5.0 // indirect - github.com/ebitengine/purego v0.8.4 // indirect + github.com/ebitengine/purego v0.10.0 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect github.com/fsnotify/fsnotify v1.9.0 // indirect github.com/glebarez/go-sqlite v1.22.0 // indirect github.com/glebarez/sqlite v1.11.0 // indirect github.com/go-gormigrate/gormigrate/v2 v2.1.3 // indirect - github.com/go-jose/go-jose/v4 v4.1.3 // indirect + github.com/go-jose/go-jose/v4 v4.1.4 // indirect github.com/go-json-experiment/json v0.0.0-20250213060926-925ba3f173fa // indirect github.com/go-logr/logr v1.4.3 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-ole/go-ole v1.3.0 // indirect - github.com/go-openapi/errors v0.22.6 // indirect - github.com/go-openapi/jsonpointer v0.22.4 // indirect - github.com/go-openapi/jsonreference v0.21.4 // indirect - github.com/go-openapi/runtime v0.29.2 // indirect - github.com/go-openapi/strfmt v0.25.0 // indirect - github.com/go-openapi/swag/conv v0.25.4 // indirect - github.com/go-openapi/swag/fileutils v0.25.4 // indirect - github.com/go-openapi/swag/jsonname v0.25.4 // indirect - github.com/go-openapi/swag/jsonutils v0.25.4 // indirect - github.com/go-openapi/swag/loading v0.25.4 // indirect - github.com/go-openapi/swag/stringutils v0.25.4 // indirect - github.com/go-openapi/swag/typeutils v0.25.4 // indirect - github.com/go-openapi/swag/yamlutils v0.25.4 // indirect + github.com/go-openapi/errors v0.22.7 // indirect + github.com/go-openapi/jsonpointer v0.23.1 // indirect + github.com/go-openapi/jsonreference v0.21.5 // indirect + github.com/go-openapi/runtime v0.29.4 // indirect + github.com/go-openapi/strfmt v0.26.1 // indirect + github.com/go-openapi/swag/conv v0.26.0 // indirect + github.com/go-openapi/swag/fileutils v0.26.0 // indirect + github.com/go-openapi/swag/jsonname v0.26.0 // indirect + github.com/go-openapi/swag/jsonutils v0.26.0 // indirect + github.com/go-openapi/swag/loading v0.26.0 // indirect + github.com/go-openapi/swag/stringutils v0.26.0 // indirect + github.com/go-openapi/swag/typeutils v0.26.0 // indirect + github.com/go-openapi/swag/yamlutils v0.26.0 // indirect github.com/go-viper/mapstructure/v2 v2.5.0 // indirect - github.com/goccy/go-json v0.10.5 // indirect + github.com/goccy/go-json v0.10.6 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang-jwt/jwt/v5 v5.3.1 // indirect github.com/golang/protobuf v1.5.4 // indirect @@ -110,22 +108,24 @@ require ( github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/jmoiron/sqlx v1.4.0 // indirect github.com/json-iterator/go v1.1.12 // indirect - github.com/klauspost/compress v1.18.3 // indirect + github.com/klauspost/compress v1.18.5 // indirect github.com/lestrrat-go/blackmagic v1.0.4 // indirect github.com/lestrrat-go/httpcc v1.0.1 // indirect - github.com/lestrrat-go/httprc/v3 v3.0.4 // indirect - github.com/lestrrat-go/jwx/v3 v3.0.13 // indirect + github.com/lestrrat-go/httprc/v3 v3.0.5 // indirect + github.com/lestrrat-go/jwx/v3 v3.1.0 // indirect github.com/lestrrat-go/option/v2 v2.0.0 // indirect - github.com/lib/pq v1.11.2 // indirect + github.com/lib/pq v1.12.3 // indirect github.com/lopezator/migrator v0.3.1 // indirect github.com/lufia/plan9stats v0.0.0-20250821153705-5981dea3221d // indirect github.com/magiconair/properties v1.8.10 // indirect github.com/mattn/go-colorable v0.1.14 // indirect - github.com/mattn/go-isatty v0.0.20 // indirect + github.com/mattn/go-isatty v0.0.21 // indirect github.com/minio/minlz v1.0.1 // indirect github.com/moby/docker-image-spec v1.3.1 // indirect - github.com/moby/go-archive v0.1.0 // indirect - github.com/moby/patternmatcher v0.6.0 // indirect + github.com/moby/go-archive v0.2.0 // indirect + github.com/moby/moby/api v1.54.1 // indirect + github.com/moby/moby/client v0.4.0 // indirect + github.com/moby/patternmatcher v0.6.1 // indirect github.com/moby/sys/sequential v0.6.0 // indirect github.com/moby/sys/user v0.4.0 // indirect github.com/moby/sys/userns v0.1.0 // indirect @@ -133,16 +133,14 @@ require ( github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/montanaflynn/stats v0.7.1 // indirect - github.com/morikuni/aec v1.0.0 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/ncruces/go-strftime v0.1.9 // indirect - github.com/oklog/ulid v1.3.1 // indirect + github.com/oklog/ulid/v2 v2.1.1 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect github.com/opencontainers/image-spec v1.1.1 // indirect github.com/opentracing/opentracing-go v1.2.0 // indirect github.com/patrickmn/go-cache v2.1.0+incompatible // indirect github.com/pelletier/go-toml/v2 v2.2.4 // indirect - github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55 // indirect github.com/prometheus/client_model v0.6.2 // indirect @@ -154,17 +152,17 @@ require ( github.com/rs/zerolog v1.34.0 // indirect github.com/sagikazarmark/locafero v0.11.0 // indirect github.com/segmentio/asm v1.2.1 // indirect - github.com/shirou/gopsutil/v4 v4.25.8 // indirect - github.com/sirupsen/logrus v1.9.3 // indirect + github.com/shirou/gopsutil/v4 v4.26.3 // indirect + github.com/sirupsen/logrus v1.9.4 // indirect github.com/sourcegraph/conc v0.3.1-0.20240121214520-5f936abd7ae8 // indirect github.com/spf13/afero v1.15.0 // indirect github.com/spf13/cast v1.10.0 // indirect github.com/spf13/pflag v1.0.10 // indirect - github.com/stretchr/objx v0.5.2 // indirect + github.com/stretchr/objx v0.5.3 // indirect github.com/subosito/gotenv v1.6.0 // indirect github.com/tailscale/hujson v0.0.0-20221223112325-20486734a56a // indirect - github.com/tklauser/go-sysconf v0.3.15 // indirect - github.com/tklauser/numcpus v0.10.0 // indirect + github.com/tklauser/go-sysconf v0.3.16 // indirect + github.com/tklauser/numcpus v0.11.0 // indirect github.com/xdg-go/pbkdf2 v1.0.0 // indirect github.com/xdg-go/scram v1.1.2 // indirect github.com/xdg-go/stringprep v1.0.4 // indirect @@ -175,24 +173,22 @@ require ( go.etcd.io/etcd/client/v3 v3.6.4 // indirect go.mongodb.org/mongo-driver v1.17.9 // indirect go.opentelemetry.io/auto/sdk v1.2.1 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0 // indirect - go.opentelemetry.io/otel v1.39.0 // indirect - go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0 // indirect - go.opentelemetry.io/otel/metric v1.39.0 // indirect - go.opentelemetry.io/otel/trace v1.39.0 - go.opentelemetry.io/proto/otlp v1.8.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.68.0 // indirect + go.opentelemetry.io/otel v1.43.0 // indirect + go.opentelemetry.io/otel/metric v1.43.0 // indirect + go.opentelemetry.io/otel/trace v1.43.0 go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect - go.yaml.in/yaml/v2 v2.4.2 // indirect + go.yaml.in/yaml/v2 v2.4.4 // indirect go.yaml.in/yaml/v3 v3.0.4 // indirect go4.org/mem v0.0.0-20240501181205-ae6ca9944745 // indirect - golang.org/x/exp v0.0.0-20260218203240-3dfff04db8fa - golang.org/x/net v0.51.0 // indirect - golang.org/x/oauth2 v0.35.0 // indirect - golang.org/x/sys v0.41.0 // indirect - golang.org/x/text v0.34.0 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20251202230838-ff82c1b0f217 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20251202230838-ff82c1b0f217 // indirect + golang.org/x/exp v0.0.0-20260410095643-746e56fc9e2f + golang.org/x/net v0.53.0 // indirect + golang.org/x/oauth2 v0.36.0 // indirect + golang.org/x/sys v0.43.0 // indirect + golang.org/x/text v0.36.0 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20260120221211-b8f7ae30c516 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20260120221211-b8f7ae30c516 // indirect gopkg.in/cenkalti/backoff.v2 v2.2.1 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect diff --git a/go.sum b/go.sum index 62541928..b793564c 100644 --- a/go.sum +++ b/go.sum @@ -1,9 +1,10 @@ -connectrpc.com/connect v1.19.1 h1:R5M57z05+90EfEvCY1b7hBxDVOUl45PrtXtAV2fOC14= -connectrpc.com/connect v1.19.1/go.mod h1:tN20fjdGlewnSFeZxLKb0xwIZ6ozc3OQs2hTXy4du9w= +connectrpc.com/connect v1.19.2 h1:McQ83FGdzL+t60peksi0gXC7MQ/iLKgLduAnThbM0mo= +connectrpc.com/connect v1.19.2/go.mod h1:tN20fjdGlewnSFeZxLKb0xwIZ6ozc3OQs2hTXy4du9w= dario.cat/mergo v1.0.2 h1:85+piFYR1tMbRrLcDwR18y4UKJ3aH1Tbzi24VRW1TK8= dario.cat/mergo v1.0.2/go.mod h1:E/hbnu0NxMFBjpMIE34DRGLWqDy0g5FuKDhCb31ngxA= -filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= +filippo.io/edwards25519 v1.1.1 h1:YpjwWWlNmGIDyXOn8zLzqiD+9TyIlPhGFG96P39uBpw= +filippo.io/edwards25519 v1.1.1/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= github.com/AdaLogics/go-fuzz-headers v0.0.0-20240806141605-e8a1dd7889d6 h1:He8afgbRMd7mFxO99hRNu+6tazq8nFF9lIwo9JFroBk= github.com/AdaLogics/go-fuzz-headers v0.0.0-20240806141605-e8a1dd7889d6/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c h1:udKWzYgxTojEKWjV8V+WSxDXJ4NFATAsZjh8iIbsQIg= @@ -36,8 +37,6 @@ github.com/bsm/gomega v1.27.10 h1:yeMWxP2pV2fG3FgAODIY8EiRE3dy0aeFYt4l7wh6yKA= github.com/bsm/gomega v1.27.10/go.mod h1:JyEr/xRbxbtgWNi8tIEVPUYZ5Dzef52k01W3YH0H+O0= github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8= github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= -github.com/cenkalti/backoff/v5 v5.0.3 h1:ZN+IMa753KfX5hd8vVaMixjnqRZ3y8CuJKRKj1xcsSM= -github.com/cenkalti/backoff/v5 v5.0.3/go.mod h1:rkhZdG3JZukswDf7f0cwqPNk4K0sa+F97BxZthm/crw= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/containerd/errdefs v1.0.0 h1:tg5yIfIlQIrxYtu9ajqY42W3lpS19XqdxRQeEwYG8PI= @@ -48,8 +47,8 @@ github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= github.com/containerd/platforms v0.2.1 h1:zvwtM3rz2YHPQsF2CHYM8+KtB5dvhISiXh5ZpSBQv6A= github.com/containerd/platforms v0.2.1/go.mod h1:XHCb+2/hzowdiut9rkudds9bE5yJ7npe7dG/wG+uFPw= -github.com/coreos/go-oidc/v3 v3.17.0 h1:hWBGaQfbi0iVviX4ibC7bk8OKT5qNr4klBaCHVNvehc= -github.com/coreos/go-oidc/v3 v3.17.0/go.mod h1:wqPbKFrVnE90vty060SB40FCJ8fTHTxSwyXJqZH+sI8= +github.com/coreos/go-oidc/v3 v3.18.0 h1:V9orjXynvu5wiC9SemFTWnG4F45v403aIcjWo0d41+A= +github.com/coreos/go-oidc/v3 v3.18.0/go.mod h1:DYCf24+ncYi+XkIH97GY1+dqoRlbaSI26KVTCI9SrY4= github.com/coreos/go-semver v0.3.1 h1:yi21YpKnrx1gt5R+la8n5WgS0kCrsPp33dmEyHReZr4= github.com/coreos/go-semver v0.3.1/go.mod h1:irMmmIw/7yzSRPWryHsK7EYSg09caPQL03VsM8rvUec= github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= @@ -59,28 +58,26 @@ github.com/cpuguy83/dockercfg v0.3.2 h1:DlJTyZGBDlXqUZ2Dk2Q3xHs/FtnooJJVaad2S9GK github.com/cpuguy83/dockercfg v0.3.2/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/creack/pty v1.1.23 h1:4M6+isWdcStXEf15G/RbrMPOQj1dZ7HPZCGwE4kOeP0= -github.com/creack/pty v1.1.23/go.mod h1:08sCNb52WyoAwi2QDyzUCTgcvVFhUzewun7wtTfvcwE= +github.com/creack/pty v1.1.24 h1:bJrF4RRfyJnbTJqzRLHzcGaZK1NeM5kTC9jGgovnR1s= +github.com/creack/pty v1.1.24/go.mod h1:08sCNb52WyoAwi2QDyzUCTgcvVFhUzewun7wtTfvcwE= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.0 h1:NMZiJj8QnKe1LgsbDayM4UoHwbvwDRwnI3hwNaAHRnc= -github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.0/go.mod h1:ZXNYxsqcloTdSy/rNShjYzMhyjf0LaoftYK0p+A3h40= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.1 h1:5RVFMOWjMyRy8cARdy79nAmgYw3hK/4HUq48LQ6Wwqo= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.1/go.mod h1:ZXNYxsqcloTdSy/rNShjYzMhyjf0LaoftYK0p+A3h40= github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= github.com/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5QvfrDyIgxBk= github.com/distribution/reference v0.6.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v28.5.2+incompatible h1:DBX0Y0zAjZbSrm1uzOkdr1onVghKaftjlSWt4AFexzM= -github.com/docker/docker v28.5.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.6.0 h1:LlMG9azAe1TqfR7sO+NJttz1gy6KO7VJBh+pMmjSD94= github.com/docker/go-connections v0.6.0/go.mod h1:AahvXYshr6JgfUJGdDCs2b5EZG/vmaMAntpSFH5BFKE= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= -github.com/ebitengine/purego v0.8.4 h1:CF7LEKg5FFOsASUj0+QwaXf8Ht6TlFxg09+S9wz0omw= -github.com/ebitengine/purego v0.8.4/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= +github.com/ebitengine/purego v0.10.0 h1:QIw4xfpWT6GWTzaW5XEKy3HXoqrJGx1ijYHzTF0/ISU= +github.com/ebitengine/purego v0.10.0/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= github.com/emicklei/go-restful-openapi/v2 v2.9.1 h1:Of8B1rXdG81il5TTiSY+9Qrh7pYOr8aLdynHIpvo7fM= github.com/emicklei/go-restful-openapi/v2 v2.9.1/go.mod h1:VKNgZyYviM1hnyrjD9RDzP2RuE94xTXxV+u6MGN4v4k= github.com/emicklei/go-restful/v3 v3.7.3/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= @@ -99,8 +96,8 @@ github.com/glebarez/sqlite v1.11.0 h1:wSG0irqzP6VurnMEpFGer5Li19RpIRi2qvQz++w0GM github.com/glebarez/sqlite v1.11.0/go.mod h1:h8/o8j5wiAsqSPoWELDUdJXhjAhsVliSn7bWZjOhrgQ= github.com/go-gormigrate/gormigrate/v2 v2.1.3 h1:ei3Vq/rpPI/jCJY9mRHJAKg5vU+EhZyWhBAkaAomQuw= github.com/go-gormigrate/gormigrate/v2 v2.1.3/go.mod h1:VJ9FIOBAur+NmQ8c4tDVwOuiJcgupTG105FexPFrXzA= -github.com/go-jose/go-jose/v4 v4.1.3 h1:CVLmWDhDVRa6Mi/IgCgaopNosCaHz7zrMeF9MlZRkrs= -github.com/go-jose/go-jose/v4 v4.1.3/go.mod h1:x4oUasVrzR7071A4TnHLGSPpNOm2a21K9Kf04k1rs08= +github.com/go-jose/go-jose/v4 v4.1.4 h1:moDMcTHmvE6Groj34emNPLs/qtYXRVcd6S7NHbHz3kA= +github.com/go-jose/go-jose/v4 v4.1.4/go.mod h1:x4oUasVrzR7071A4TnHLGSPpNOm2a21K9Kf04k1rs08= github.com/go-json-experiment/json v0.0.0-20250213060926-925ba3f173fa h1:Rpu6sKAzIeSWBkrFHD52g8yipagcPbY2Lmm70NL1Gzc= github.com/go-json-experiment/json v0.0.0-20250213060926-925ba3f173fa/go.mod h1:TiCD2a1pcmjd7YnhGH0f/zKNcCD06B029pHhzV23c2M= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= @@ -111,61 +108,61 @@ github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= -github.com/go-openapi/analysis v0.24.1 h1:Xp+7Yn/KOnVWYG8d+hPksOYnCYImE3TieBa7rBOesYM= -github.com/go-openapi/analysis v0.24.1/go.mod h1:dU+qxX7QGU1rl7IYhBC8bIfmWQdX4Buoea4TGtxXY84= -github.com/go-openapi/errors v0.22.6 h1:eDxcf89O8odEnohIXwEjY1IB4ph5vmbUsBMsFNwXWPo= -github.com/go-openapi/errors v0.22.6/go.mod h1:z9S8ASTUqx7+CP1Q8dD8ewGH/1JWFFLX/2PmAYNQLgk= +github.com/go-openapi/analysis v0.25.0 h1:EnjAq1yO8wEO9HbPmY8vLPEIkdZuuFhCAKBPvCB7bCs= +github.com/go-openapi/analysis v0.25.0/go.mod h1:5WFTRE43WLkPG9r9OtlMfqkkvUTYLVVCIxLlEpyF8kE= +github.com/go-openapi/errors v0.22.7 h1:JLFBGC0Apwdzw3484MmBqspjPbwa2SHvpDm0u5aGhUA= +github.com/go-openapi/errors v0.22.7/go.mod h1://QW6SD9OsWtH6gHllUCddOXDL0tk0ZGNYHwsw4sW3w= github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= -github.com/go-openapi/jsonpointer v0.22.4 h1:dZtK82WlNpVLDW2jlA1YCiVJFVqkED1MegOUy9kR5T4= -github.com/go-openapi/jsonpointer v0.22.4/go.mod h1:elX9+UgznpFhgBuaMQ7iu4lvvX1nvNsesQ3oxmYTw80= +github.com/go-openapi/jsonpointer v0.23.1 h1:1HBACs7XIwR2RcmItfdSFlALhGbe6S92p0ry4d1GWg4= +github.com/go-openapi/jsonpointer v0.23.1/go.mod h1:iWRmZTrGn7XwYhtPt/fvdSFj1OfNBngqRT2UG3BxSqY= github.com/go-openapi/jsonreference v0.19.6/go.mod h1:diGHMEHg2IqXZGKxqyvWdfWU/aim5Dprw5bqpKkTvns= -github.com/go-openapi/jsonreference v0.21.4 h1:24qaE2y9bx/q3uRK/qN+TDwbok1NhbSmGjjySRCHtC8= -github.com/go-openapi/jsonreference v0.21.4/go.mod h1:rIENPTjDbLpzQmQWCj5kKj3ZlmEh+EFVbz3RTUh30/4= -github.com/go-openapi/loads v0.23.2 h1:rJXAcP7g1+lWyBHC7iTY+WAF0rprtM+pm8Jxv1uQJp4= -github.com/go-openapi/loads v0.23.2/go.mod h1:IEVw1GfRt/P2Pplkelxzj9BYFajiWOtY2nHZNj4UnWY= -github.com/go-openapi/runtime v0.29.2 h1:UmwSGWNmWQqKm1c2MGgXVpC2FTGwPDQeUsBMufc5Yj0= -github.com/go-openapi/runtime v0.29.2/go.mod h1:biq5kJXRJKBJxTDJXAa00DOTa/anflQPhT0/wmjuy+0= +github.com/go-openapi/jsonreference v0.21.5 h1:6uCGVXU/aNF13AQNggxfysJ+5ZcU4nEAe+pJyVWRdiE= +github.com/go-openapi/jsonreference v0.21.5/go.mod h1:u25Bw85sX4E2jzFodh1FOKMTZLcfifd1Q+iKKOUxExw= +github.com/go-openapi/loads v0.23.3 h1:g5Xap1JfwKkUnZdn+S0L3SzBDpcTIYzZ5Qaag0YDkKQ= +github.com/go-openapi/loads v0.23.3/go.mod h1:NOH07zLajXo8y55hom0omlHWDVVvCwBM/S+csCK8LqA= +github.com/go-openapi/runtime v0.29.4 h1:k2lDxrGoSAJRdhFG2tONKMpkizY/4X1cciSdtzk4Jjo= +github.com/go-openapi/runtime v0.29.4/go.mod h1:K0k/2raY6oqXJnZAgWJB2i/12QKrhUKpZcH4PfV9P18= github.com/go-openapi/spec v0.20.4/go.mod h1:faYFR1CvsJZ0mNsmsphTMSoRrNV3TEDoAM7FOEWeq8I= -github.com/go-openapi/spec v0.22.3 h1:qRSmj6Smz2rEBxMnLRBMeBWxbbOvuOoElvSvObIgwQc= -github.com/go-openapi/spec v0.22.3/go.mod h1:iIImLODL2loCh3Vnox8TY2YWYJZjMAKYyLH2Mu8lOZs= -github.com/go-openapi/strfmt v0.25.0 h1:7R0RX7mbKLa9EYCTHRcCuIPcaqlyQiWNPTXwClK0saQ= -github.com/go-openapi/strfmt v0.25.0/go.mod h1:nNXct7OzbwrMY9+5tLX4I21pzcmE6ccMGXl3jFdPfn8= +github.com/go-openapi/spec v0.22.4 h1:4pxGjipMKu0FzFiu/DPwN3CTBRlVM2yLf/YTWorYfDQ= +github.com/go-openapi/spec v0.22.4/go.mod h1:WQ6Ai0VPWMZgMT4XySjlRIE6GP1bGQOtEThn3gcWLtQ= +github.com/go-openapi/strfmt v0.26.1 h1:7zGCHji7zSYDC2tCXIusoxYQz/48jAf2q+sF6wXTG+c= +github.com/go-openapi/strfmt v0.26.1/go.mod h1:Zslk5VZPOISLwmWTMBIS7oiVFem1o1EI6zULY8Uer7Y= github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= github.com/go-openapi/swag v0.19.15/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= github.com/go-openapi/swag v0.23.1 h1:lpsStH0n2ittzTnbaSloVZLuB5+fvSY/+hnagBjSNZU= -github.com/go-openapi/swag/conv v0.25.4 h1:/Dd7p0LZXczgUcC/Ikm1+YqVzkEeCc9LnOWjfkpkfe4= -github.com/go-openapi/swag/conv v0.25.4/go.mod h1:3LXfie/lwoAv0NHoEuY1hjoFAYkvlqI/Bn5EQDD3PPU= -github.com/go-openapi/swag/fileutils v0.25.4 h1:2oI0XNW5y6UWZTC7vAxC8hmsK/tOkWXHJQH4lKjqw+Y= -github.com/go-openapi/swag/fileutils v0.25.4/go.mod h1:cdOT/PKbwcysVQ9Tpr0q20lQKH7MGhOEb6EwmHOirUk= -github.com/go-openapi/swag/jsonname v0.25.4 h1:bZH0+MsS03MbnwBXYhuTttMOqk+5KcQ9869Vye1bNHI= -github.com/go-openapi/swag/jsonname v0.25.4/go.mod h1:GPVEk9CWVhNvWhZgrnvRA6utbAltopbKwDu8mXNUMag= -github.com/go-openapi/swag/jsonutils v0.25.4 h1:VSchfbGhD4UTf4vCdR2F4TLBdLwHyUDTd1/q4i+jGZA= -github.com/go-openapi/swag/jsonutils v0.25.4/go.mod h1:7OYGXpvVFPn4PpaSdPHJBtF0iGnbEaTk8AvBkoWnaAY= -github.com/go-openapi/swag/jsonutils/fixtures_test v0.25.4 h1:IACsSvBhiNJwlDix7wq39SS2Fh7lUOCJRmx/4SN4sVo= -github.com/go-openapi/swag/jsonutils/fixtures_test v0.25.4/go.mod h1:Mt0Ost9l3cUzVv4OEZG+WSeoHwjWLnarzMePNDAOBiM= -github.com/go-openapi/swag/loading v0.25.4 h1:jN4MvLj0X6yhCDduRsxDDw1aHe+ZWoLjW+9ZQWIKn2s= -github.com/go-openapi/swag/loading v0.25.4/go.mod h1:rpUM1ZiyEP9+mNLIQUdMiD7dCETXvkkC30z53i+ftTE= -github.com/go-openapi/swag/mangling v0.25.4 h1:2b9kBJk9JvPgxr36V23FxJLdwBrpijI26Bx5JH4Hp48= -github.com/go-openapi/swag/mangling v0.25.4/go.mod h1:6dxwu6QyORHpIIApsdZgb6wBk/DPU15MdyYj/ikn0Hg= -github.com/go-openapi/swag/stringutils v0.25.4 h1:O6dU1Rd8bej4HPA3/CLPciNBBDwZj9HiEpdVsb8B5A8= -github.com/go-openapi/swag/stringutils v0.25.4/go.mod h1:GTsRvhJW5xM5gkgiFe0fV3PUlFm0dr8vki6/VSRaZK0= -github.com/go-openapi/swag/typeutils v0.25.4 h1:1/fbZOUN472NTc39zpa+YGHn3jzHWhv42wAJSN91wRw= -github.com/go-openapi/swag/typeutils v0.25.4/go.mod h1:Ou7g//Wx8tTLS9vG0UmzfCsjZjKhpjxayRKTHXf2pTE= -github.com/go-openapi/swag/yamlutils v0.25.4 h1:6jdaeSItEUb7ioS9lFoCZ65Cne1/RZtPBZ9A56h92Sw= -github.com/go-openapi/swag/yamlutils v0.25.4/go.mod h1:MNzq1ulQu+yd8Kl7wPOut/YHAAU/H6hL91fF+E2RFwc= -github.com/go-openapi/testify/enable/yaml/v2 v2.0.2 h1:0+Y41Pz1NkbTHz8NngxTuAXxEodtNSI1WG1c/m5Akw4= -github.com/go-openapi/testify/enable/yaml/v2 v2.0.2/go.mod h1:kme83333GCtJQHXQ8UKX3IBZu6z8T5Dvy5+CW3NLUUg= -github.com/go-openapi/testify/v2 v2.0.2 h1:X999g3jeLcoY8qctY/c/Z8iBHTbwLz7R2WXd6Ub6wls= -github.com/go-openapi/testify/v2 v2.0.2/go.mod h1:HCPmvFFnheKK2BuwSA0TbbdxJ3I16pjwMkYkP4Ywn54= -github.com/go-openapi/validate v0.25.1 h1:sSACUI6Jcnbo5IWqbYHgjibrhhmt3vR6lCzKZnmAgBw= -github.com/go-openapi/validate v0.25.1/go.mod h1:RMVyVFYte0gbSTaZ0N4KmTn6u/kClvAFp+mAVfS/DQc= +github.com/go-openapi/swag/conv v0.26.0 h1:5yGGsPYI1ZCva93U0AoKi/iZrNhaJEjr324YVsiD89I= +github.com/go-openapi/swag/conv v0.26.0/go.mod h1:tpAmIL7X58VPnHHiSO4uE3jBeRamGsFsfdDeDtb5ECE= +github.com/go-openapi/swag/fileutils v0.26.0 h1:WJoPRvsA7QRiiWluowkLJa9jaYR7FCuxmDvnCgaRRxU= +github.com/go-openapi/swag/fileutils v0.26.0/go.mod h1:0WDJ7lp67eNjPMO50wAWYlKvhOb6CQ37rzR7wrgI8Tc= +github.com/go-openapi/swag/jsonname v0.26.0 h1:gV1NFX9M8avo0YSpmWogqfQISigCmpaiNci8cGECU5w= +github.com/go-openapi/swag/jsonname v0.26.0/go.mod h1:urBBR8bZNoDYGr653ynhIx+gTeIz0ARZxHkAPktJK2M= +github.com/go-openapi/swag/jsonutils v0.26.0 h1:FawFML2iAXsPqmERscuMPIHmFsoP1tOqWkxBaKNMsnA= +github.com/go-openapi/swag/jsonutils v0.26.0/go.mod h1:2VmA0CJlyFqgawOaPI9psnjFDqzyivIqLYN34t9p91E= +github.com/go-openapi/swag/jsonutils/fixtures_test v0.26.0 h1:apqeINu/ICHouqiRZbyFvuDge5jCmmLTqGQ9V95EaOM= +github.com/go-openapi/swag/jsonutils/fixtures_test v0.26.0/go.mod h1:AyM6QT8uz5IdKxk5akv0y6u4QvcL9GWERt0Jx/F/R8Y= +github.com/go-openapi/swag/loading v0.26.0 h1:Apg6zaKhCJurpJer0DCxq99qwmhFddBhaMX7kilDcko= +github.com/go-openapi/swag/loading v0.26.0/go.mod h1:dBxQ/6V2uBaAQdevN18VELE6xSpJWZxLX4txe12JwDg= +github.com/go-openapi/swag/mangling v0.25.5 h1:hyrnvbQRS7vKePQPHHDso+k6CGn5ZBs5232UqWZmJZw= +github.com/go-openapi/swag/mangling v0.25.5/go.mod h1:6hadXM/o312N/h98RwByLg088U61TPGiltQn71Iw0NY= +github.com/go-openapi/swag/stringutils v0.26.0 h1:qZQngLxs5s7SLijc3N2ZO+fUq2o8LjuWAASSrJuh+xg= +github.com/go-openapi/swag/stringutils v0.26.0/go.mod h1:sWn5uY+QIIspwPhvgnqJsH8xqFT2ZbYcvbcFanRyhFE= +github.com/go-openapi/swag/typeutils v0.26.0 h1:2kdEwdiNWy+JJdOvu5MA2IIg2SylWAFuuyQIKYybfq4= +github.com/go-openapi/swag/typeutils v0.26.0/go.mod h1:oovDuIUvTrEHVMqWilQzKzV4YlSKgyZmFh7AlfABNVE= +github.com/go-openapi/swag/yamlutils v0.26.0 h1:H7O8l/8NJJQ/oiReEN+oMpnGMyt8G0hl460nRZxhLMQ= +github.com/go-openapi/swag/yamlutils v0.26.0/go.mod h1:1evKEGAtP37Pkwcc7EWMF0hedX0/x3Rkvei2wtG/TbU= +github.com/go-openapi/testify/enable/yaml/v2 v2.4.2 h1:5zRca5jw7lzVREKCZVNBpysDNBjj74rBh0N2BGQbSR0= +github.com/go-openapi/testify/enable/yaml/v2 v2.4.2/go.mod h1:XVevPw5hUXuV+5AkI1u1PeAm27EQVrhXTTCPAF85LmE= +github.com/go-openapi/testify/v2 v2.4.2 h1:tiByHpvE9uHrrKjOszax7ZvKB7QOgizBWGBLuq0ePx4= +github.com/go-openapi/testify/v2 v2.4.2/go.mod h1:SgsVHtfooshd0tublTtJ50FPKhujf47YRqauXXOUxfw= +github.com/go-openapi/validate v0.25.2 h1:12NsfLAwGegqbGWr2CnvT65X/Q2USJipmJ9b7xDJZz0= +github.com/go-openapi/validate v0.25.2/go.mod h1:Pgl1LpPPGFnZ+ys4/hTlDiRYQdI1ocKypgE+8Q8BLfY= github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpvNJ1Y= github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= github.com/go-viper/mapstructure/v2 v2.5.0 h1:vM5IJoUAy3d7zRSVtIwQgBj7BiWtMPfmPEgAXnvj1Ro= github.com/go-viper/mapstructure/v2 v2.5.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= -github.com/goccy/go-json v0.10.5 h1:Fq85nIqj+gXn/S5ahsiTlK3TmC85qgirsdTP/+DeaC4= -github.com/goccy/go-json v0.10.5/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M= +github.com/goccy/go-json v0.10.6 h1:p8HrPJzOakx/mn/bQtjgNjdTcN+/S6FcG2CTtQOrHVU= +github.com/goccy/go-json v0.10.6/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= @@ -239,8 +236,8 @@ github.com/julienschmidt/httprouter v1.3.0 h1:U0609e9tgbseu3rBINet9P48AI/D3oJs4d github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/compress v1.18.3 h1:9PJRvfbmTabkOX8moIpXPbMMbYN60bWImDDU7L+/6zw= -github.com/klauspost/compress v1.18.3/go.mod h1:R0h/fSBs8DE4ENlcrlib3PsXS61voFxhIs2DeRhCvJ4= +github.com/klauspost/compress v1.18.5 h1:/h1gH5Ce+VWNLSWqPzOVn6XBO+vJbCNGvjoaGBFW2IE= +github.com/klauspost/compress v1.18.5/go.mod h1:cwPg85FWrGar70rWktvGQj8/hthj3wpl0PGDogxkrSQ= github.com/klauspost/connect-compress/v2 v2.1.1 h1:ycZNp4rWOZBodVE2Ls5AzK4aHkyK+GteEfzRZgKNs+c= github.com/klauspost/connect-compress/v2 v2.1.1/go.mod h1:9oilsPHJMzGKkjafSBk9J7iVo4mO+dw0G0KSdVpnlVE= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= @@ -254,21 +251,21 @@ github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0 github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= github.com/lestrrat-go/blackmagic v1.0.4 h1:IwQibdnf8l2KoO+qC3uT4OaTWsW7tuRQXy9TRN9QanA= github.com/lestrrat-go/blackmagic v1.0.4/go.mod h1:6AWFyKNNj0zEXQYfTMPfZrAXUWUfTIZ5ECEUEJaijtw= -github.com/lestrrat-go/dsig v1.0.0 h1:OE09s2r9Z81kxzJYRn07TFM9XA4akrUdoMwr0L8xj38= -github.com/lestrrat-go/dsig v1.0.0/go.mod h1:dEgoOYYEJvW6XGbLasr8TFcAxoWrKlbQvmJgCR0qkDo= +github.com/lestrrat-go/dsig v1.2.1 h1:MwxzZhE4+4fguHi+uDALKVlC3Cn+O1QU1Q/F8D7hVIc= +github.com/lestrrat-go/dsig v1.2.1/go.mod h1:RD2eOaidyPvpc7IJQoO3Qq52RWdy8ZcJs8lrOnoa1Kc= github.com/lestrrat-go/dsig-secp256k1 v1.0.0 h1:JpDe4Aybfl0soBvoVwjqDbp+9S1Y2OM7gcrVVMFPOzY= github.com/lestrrat-go/dsig-secp256k1 v1.0.0/go.mod h1:CxUgAhssb8FToqbL8NjSPoGQlnO4w3LG1P0qPWQm/NU= github.com/lestrrat-go/httpcc v1.0.1 h1:ydWCStUeJLkpYyjLDHihupbn2tYmZ7m22BGkcvZZrIE= github.com/lestrrat-go/httpcc v1.0.1/go.mod h1:qiltp3Mt56+55GPVCbTdM9MlqhvzyuL6W/NMDA8vA5E= -github.com/lestrrat-go/httprc/v3 v3.0.4 h1:pXyH2ppK8GYYggygxJ3TvxpCZnbEUWc9qSwRTTApaLA= -github.com/lestrrat-go/httprc/v3 v3.0.4/go.mod h1:mSMtkZW92Z98M5YoNNztbRGxbXHql7tSitCvaxvo9l0= -github.com/lestrrat-go/jwx/v3 v3.0.13 h1:AdHKiPIYeCSnOJtvdpipPg/0SuFh9rdkN+HF3O0VdSk= -github.com/lestrrat-go/jwx/v3 v3.0.13/go.mod h1:2m0PV1A9tM4b/jVLMx8rh6rBl7F6WGb3EG2hufN9OQU= +github.com/lestrrat-go/httprc/v3 v3.0.5 h1:S+Mb4L2I+bM6JGTibLmxExhyTOqnXjqx+zi9MoXw/TM= +github.com/lestrrat-go/httprc/v3 v3.0.5/go.mod h1:mSMtkZW92Z98M5YoNNztbRGxbXHql7tSitCvaxvo9l0= +github.com/lestrrat-go/jwx/v3 v3.1.0 h1:AyyLtxc0QM75F75JroWgt1phwC7X+wOb3XKhH7XBZWw= +github.com/lestrrat-go/jwx/v3 v3.1.0/go.mod h1:uw/MN2M/Xiu4FhwcIwH11Zsh9JWx9SWzgALl7/uIEkU= github.com/lestrrat-go/option/v2 v2.0.0 h1:XxrcaJESE1fokHy3FpaQ/cXW8ZsIdWcdFzzLOcID3Ss= github.com/lestrrat-go/option/v2 v2.0.0/go.mod h1:oSySsmzMoR0iRzCDCaUfsCzxQHUEuhOViQObyy7S6Vg= github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= -github.com/lib/pq v1.11.2 h1:x6gxUeu39V0BHZiugWe8LXZYZ+Utk7hSJGThs8sdzfs= -github.com/lib/pq v1.11.2/go.mod h1:/p+8NSbOcwzAEI7wiMXFlgydTwcgTr3OSKMsD2BitpA= +github.com/lib/pq v1.12.3 h1:tTWxr2YLKwIvK90ZXEw8GP7UFHtcbTtty8zsI+YjrfQ= +github.com/lib/pq v1.12.3/go.mod h1:/p+8NSbOcwzAEI7wiMXFlgydTwcgTr3OSKMsD2BitpA= github.com/looplab/fsm v1.0.3 h1:qtxBsa2onOs0qFOtkqwf5zE0uP0+Te+wlIvXctPKpcw= github.com/looplab/fsm v1.0.3/go.mod h1:PmD3fFvQEIsjMEfvZdrCDZ6y8VwKTwWNjlpEr6IKPO4= github.com/lopezator/migrator v0.3.1 h1:ZFPT6aC7+nGWkqhleynABZ6ftycSf6hmHHLOaryq1Og= @@ -285,16 +282,16 @@ github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHP github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= -github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= -github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-isatty v0.0.21 h1:xYae+lCNBP7QuW4PUnNG61ffM4hVIfm+zUzDuSzYLGs= +github.com/mattn/go-isatty v0.0.21/go.mod h1:ZXfXG4SQHsB/w3ZeOYbR0PrPwLy+n6xiMrJlRFqopa4= github.com/mattn/go-sqlite3 v1.14.22 h1:2gZY6PC6kBnID23Tichd1K+Z0oS6nE/XwU+Vz/5o4kU= github.com/mattn/go-sqlite3 v1.14.22/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= github.com/metal-stack/go-ipam v1.14.13 h1:/W5/MDBX5EU18xNDjlBvV6JjQ1Ot12dO2WxLvV6S8vc= github.com/metal-stack/go-ipam v1.14.13/go.mod h1:eif3UGUFP7CWJdrgLIOjhVM3G2K19GN8lhCgPVfvLDs= github.com/metal-stack/masterdata-api v0.12.0 h1:8EZmf/A+GMVpShYvYDJ3YmPoK0MmqsWtzef9y1wRRwo= github.com/metal-stack/masterdata-api v0.12.0/go.mod h1:w12kbaV8wmf+/8j7JLWUNDsv6/l8sh6F9OYYYi09hDU= -github.com/metal-stack/metal-lib v0.24.0 h1:wvQQPWIXcA2tP+I6zAHUNdtVLLJfQnnV9yG2SoqUkz4= -github.com/metal-stack/metal-lib v0.24.0/go.mod h1:oITaqj/BtB9vDKM66jCXkeA+4D0eTZElgIKal5vtiNY= +github.com/metal-stack/metal-lib v0.25.0 h1:ETGPFf0/GgAshCDtrWzm6tPlv3abRZjFnE+GHd1C/oY= +github.com/metal-stack/metal-lib v0.25.0/go.mod h1:FWviUPM7oH1CnmCwkyLjWpd3yuzf6NnR97Xf45P2/Fk= github.com/metal-stack/security v0.9.6 h1:q+JbfFis/G2IuyKky2btmDmO0Y2GQ47p7lmzOi80kMY= github.com/metal-stack/security v0.9.6/go.mod h1:HBwf4y3E4VLJPG6vNW1ynlrym46cENDtzIoN9c7uxFI= github.com/metal-stack/v v1.0.3 h1:Sh2oBlnxrCUD+mVpzfC8HiqL045YWkxs0gpTvkjppqs= @@ -303,12 +300,14 @@ github.com/minio/minlz v1.0.1 h1:OUZUzXcib8diiX+JYxyRLIdomyZYzHct6EShOKtQY2A= github.com/minio/minlz v1.0.1/go.mod h1:qT0aEB35q79LLornSzeDH75LBf3aH1MV+jB5w9Wasec= github.com/moby/docker-image-spec v1.3.1 h1:jMKff3w6PgbfSa69GfNg+zN/XLhfXJGnEx3Nl2EsFP0= github.com/moby/docker-image-spec v1.3.1/go.mod h1:eKmb5VW8vQEh/BAr2yvVNvuiJuY6UIocYsFu/DxxRpo= -github.com/moby/go-archive v0.1.0 h1:Kk/5rdW/g+H8NHdJW2gsXyZ7UnzvJNOy6VKJqueWdcQ= -github.com/moby/go-archive v0.1.0/go.mod h1:G9B+YoujNohJmrIYFBpSd54GTUB4lt9S+xVQvsJyFuo= -github.com/moby/patternmatcher v0.6.0 h1:GmP9lR19aU5GqSSFko+5pRqHi+Ohk1O69aFiKkVGiPk= -github.com/moby/patternmatcher v0.6.0/go.mod h1:hDPoyOpDY7OrrMDLaYoY3hf52gNCR/YOUYxkhApJIxc= -github.com/moby/sys/atomicwriter v0.1.0 h1:kw5D/EqkBwsBFi0ss9v1VG3wIkVhzGvLklJ+w3A14Sw= -github.com/moby/sys/atomicwriter v0.1.0/go.mod h1:Ul8oqv2ZMNHOceF643P6FKPXeCmYtlQMvpizfsSoaWs= +github.com/moby/go-archive v0.2.0 h1:zg5QDUM2mi0JIM9fdQZWC7U8+2ZfixfTYoHL7rWUcP8= +github.com/moby/go-archive v0.2.0/go.mod h1:mNeivT14o8xU+5q1YnNrkQVpK+dnNe/K6fHqnTg4qPU= +github.com/moby/moby/api v1.54.1 h1:TqVzuJkOLsgLDDwNLmYqACUuTehOHRGKiPhvH8V3Nn4= +github.com/moby/moby/api v1.54.1/go.mod h1:+RQ6wluLwtYaTd1WnPLykIDPekkuyD/ROWQClE83pzs= +github.com/moby/moby/client v0.4.0 h1:S+2XegzHQrrvTCvF6s5HFzcrywWQmuVnhOXe2kiWjIw= +github.com/moby/moby/client v0.4.0/go.mod h1:QWPbvWchQbxBNdaLSpoKpCdf5E+WxFAgNHogCWDoa7g= +github.com/moby/patternmatcher v0.6.1 h1:qlhtafmr6kgMIJjKJMDmMWq7WLkKIo23hsrpR3x084U= +github.com/moby/patternmatcher v0.6.1/go.mod h1:hDPoyOpDY7OrrMDLaYoY3hf52gNCR/YOUYxkhApJIxc= github.com/moby/sys/sequential v0.6.0 h1:qrx7XFUd/5DxtqcoH1h438hF5TmOvzC/lspjy7zgvCU= github.com/moby/sys/sequential v0.6.0/go.mod h1:uyv8EUTrca5PnDsdMGXhZe6CCe8U/UiTWd+lL+7b/Ko= github.com/moby/sys/user v0.4.0 h1:jhcMKit7SA80hivmFJcbB1vqmw//wU61Zdui2eQXuMs= @@ -324,8 +323,6 @@ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9G github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/montanaflynn/stats v0.7.1 h1:etflOAAHORrCC44V+aR6Ftzort912ZU+YLiSTuV8eaE= github.com/montanaflynn/stats v0.7.1/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow= -github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= -github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/ncruces/go-strftime v0.1.9 h1:bY0MQC28UADQmHmaF5dgpLmImcShSi2kHU9XLdhx/f4= @@ -337,8 +334,8 @@ github.com/nsqio/go-nsq v1.1.0 h1:PQg+xxiUjA7V+TLdXw7nVrJ5Jbl3sN86EhGCQj4+FYE= github.com/nsqio/go-nsq v1.1.0/go.mod h1:vKq36oyeVXgsS5Q8YEO7WghqidAVXQlcFxzQbQTuDEY= github.com/nsqio/nsq v1.3.0 h1:v7NtyO844ieTIOCQEqQ7IUSSi1ImhgrTTto1rgIYGEU= github.com/nsqio/nsq v1.3.0/go.mod h1:RxNr6UC0kSkNF44LnJrlN3U3CQnQGTXk+QKfSZLzqvc= -github.com/oklog/ulid v1.3.1 h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4= -github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= +github.com/oklog/ulid/v2 v2.1.1 h1:suPZ4ARWLOJLegGFiZZ1dFAkqzhMjL3J1TzI+5wHz8s= +github.com/oklog/ulid/v2 v2.1.1/go.mod h1:rcEKHmBBKfef9DhnvX7y1HZBYxjXb0cP5ExxNsTT1QQ= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.12.0/go.mod h1:oUhWkIvk5aDxtKvDDuw8gItl8pKl42LzjC9KZE0HfGg= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= @@ -352,9 +349,9 @@ github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+ github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc= github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ= +github.com/pborman/getopt v0.0.0-20170112200414-7148bc3a4c30/go.mod h1:85jBQOZwpVEaDAr341tbn15RS4fCAsIst0qp7i8ex1o= github.com/pelletier/go-toml/v2 v2.2.4 h1:mye9XuhQ6gvn5h28+VilKrrPoQVanw5PMw/TB0t5Ec4= github.com/pelletier/go-toml/v2 v2.2.4/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY= -github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= @@ -387,11 +384,11 @@ github.com/samber/lo v1.52.0 h1:Rvi+3BFHES3A8meP33VPAxiBZX/Aws5RxrschYGjomw= github.com/samber/lo v1.52.0/go.mod h1:4+MXEGsJzbKGaUEQFKBq2xtfuznW9oz/WrgyzMzRoM0= github.com/segmentio/asm v1.2.1 h1:DTNbBqs57ioxAD4PrArqftgypG4/qNpXoJx8TVXxPR0= github.com/segmentio/asm v1.2.1/go.mod h1:BqMnlJP91P8d+4ibuonYZw9mfnzI9HfxselHZr5aAcs= -github.com/shirou/gopsutil/v4 v4.25.8 h1:NnAsw9lN7587WHxjJA9ryDnqhJpFH6A+wagYWTOH970= -github.com/shirou/gopsutil/v4 v4.25.8/go.mod h1:q9QdMmfAOVIw7a+eF86P7ISEU6ka+NLgkUxlopV4RwI= +github.com/shirou/gopsutil/v4 v4.26.3 h1:2ESdQt90yU3oXF/CdOlRCJxrP+Am1aBYubTMTfxJ1qc= +github.com/shirou/gopsutil/v4 v4.26.3/go.mod h1:LZ6ewCSkBqUpvSOf+LsTGnRinC6iaNUNMGBtDkJBaLQ= github.com/sirupsen/logrus v1.0.6/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= -github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= -github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/sirupsen/logrus v1.9.4 h1:TsZE7l11zFCLZnZ+teH4Umoq5BhEIfIzfRDZ1Uzql2w= +github.com/sirupsen/logrus v1.9.4/go.mod h1:ftWc9WdOfJ0a92nsE2jF5u5ZwH8Bv2zdeOC42RjbV2g= github.com/sourcegraph/conc v0.3.1-0.20240121214520-5f936abd7ae8 h1:+jumHNA0Wrelhe64i8F6HNlS8pkoyMv5sreGx2Ry5Rw= github.com/sourcegraph/conc v0.3.1-0.20240121214520-5f936abd7ae8/go.mod h1:3n1Cwaq1E1/1lhQhtRK2ts/ZwZEhjcQeJQ1RuC6Q/8U= github.com/spf13/afero v1.15.0 h1:b/YBCLWAJdFWJTN9cLhiXXcD7mzKn9Dm86dNnfyQw1I= @@ -407,8 +404,8 @@ github.com/spf13/viper v1.21.0 h1:x5S+0EU27Lbphp4UKm1C+1oQO+rKx36vfCoaVebLFSU= github.com/spf13/viper v1.21.0/go.mod h1:P0lhsswPGWD/1lZJ9ny3fYnVqxiegrlNrEmgLjbTCAY= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= -github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= -github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= +github.com/stretchr/objx v0.5.3 h1:jmXUvGomnU1o3W/V5h2VEradbpJDwGrzugQQvL0POH4= +github.com/stretchr/objx v0.5.3/go.mod h1:rDQraq+vQZU7Fde9LOZLr8Tax6zZvy4kuNKF+QYS+U0= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= @@ -421,14 +418,14 @@ github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8 github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= github.com/tailscale/hujson v0.0.0-20221223112325-20486734a56a h1:SJy1Pu0eH1C29XwJucQo73FrleVK6t4kYz4NVhp34Yw= github.com/tailscale/hujson v0.0.0-20221223112325-20486734a56a/go.mod h1:DFSS3NAGHthKo1gTlmEcSBiZrRJXi28rLNd/1udP1c8= -github.com/testcontainers/testcontainers-go v0.40.0 h1:pSdJYLOVgLE8YdUY2FHQ1Fxu+aMnb6JfVz1mxk7OeMU= -github.com/testcontainers/testcontainers-go v0.40.0/go.mod h1:FSXV5KQtX2HAMlm7U3APNyLkkap35zNLxukw9oBi/MY= -github.com/tklauser/go-sysconf v0.3.15 h1:VE89k0criAymJ/Os65CSn1IXaol+1wrsFHEB8Ol49K4= -github.com/tklauser/go-sysconf v0.3.15/go.mod h1:Dmjwr6tYFIseJw7a3dRLJfsHAMXZ3nEnL/aZY+0IuI4= -github.com/tklauser/numcpus v0.10.0 h1:18njr6LDBk1zuna922MgdjQuJFjrdppsZG60sHGfjso= -github.com/tklauser/numcpus v0.10.0/go.mod h1:BiTKazU708GQTYF4mB+cmlpT2Is1gLk7XVuEeem8LsQ= -github.com/valyala/fastjson v1.6.7 h1:ZE4tRy0CIkh+qDc5McjatheGX2czdn8slQjomexVpBM= -github.com/valyala/fastjson v1.6.7/go.mod h1:CLCAqky6SMuOcxStkYQvblddUtoRxhYMGLrsQns1aXY= +github.com/testcontainers/testcontainers-go v0.42.0 h1:He3IhTzTZOygSXLJPMX7n44XtK+qhjat1nI9cneBbUY= +github.com/testcontainers/testcontainers-go v0.42.0/go.mod h1:vZjdY1YmUA1qEForxOIOazfsrdyORJAbhi0bp8plN30= +github.com/tklauser/go-sysconf v0.3.16 h1:frioLaCQSsF5Cy1jgRBrzr6t502KIIwQ0MArYICU0nA= +github.com/tklauser/go-sysconf v0.3.16/go.mod h1:/qNL9xxDhc7tx3HSRsLWNnuzbVfh3e7gh/BmM179nYI= +github.com/tklauser/numcpus v0.11.0 h1:nSTwhKH5e1dMNsCdVBukSZrURJRoHbSEQjdEbY+9RXw= +github.com/tklauser/numcpus v0.11.0/go.mod h1:z+LwcLq54uWZTX0u/bGobaV34u6V7KNlTZejzM6/3MQ= +github.com/valyala/fastjson v1.6.10 h1:/yjJg8jaVQdYR3arGxPE2X5z89xrlhS0eGXdv+ADTh4= +github.com/valyala/fastjson v1.6.10/go.mod h1:e6FubmQouUNP73jtMLmcbxS6ydWIpOfhz34TSfO3JaE= github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c= github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= github.com/xdg-go/scram v1.1.2 h1:FHX5I5B4i4hKRVRBCFRxq1iQRej7WO3hhBuJf+UUySY= @@ -452,32 +449,26 @@ go.mongodb.org/mongo-driver v1.17.9 h1:IexDdCuuNJ3BHrELgBlyaH9p60JXAvdzWR128q+U5 go.mongodb.org/mongo-driver v1.17.9/go.mod h1:LlOhpH5NUEfhxcAwG0UEkMqwYcc4JU18gtCdGudk/tQ= go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64= go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0 h1:RbKq8BG0FI8OiXhBfcRtqqHcZcka+gU3cskNuf05R18= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0/go.mod h1:h06DGIukJOevXaj/xrNjhi/2098RZzcLTbc0jDAUbsg= -go.opentelemetry.io/otel v1.39.0 h1:8yPrr/S0ND9QEfTfdP9V+SiwT4E0G7Y5MO7p85nis48= -go.opentelemetry.io/otel v1.39.0/go.mod h1:kLlFTywNWrFyEdH0oj2xK0bFYZtHRYUdv1NklR/tgc8= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0 h1:GqRJVj7UmLjCVyVJ3ZFLdPRmhDUp2zFmQe3RHIOsw24= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0/go.mod h1:ri3aaHSmCTVYu2AWv44YMauwAQc0aqI9gHKIcSbI1pU= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.37.0 h1:bDMKF3RUSxshZ5OjOTi8rsHGaPKsAt76FaqgvIUySLc= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.37.0/go.mod h1:dDT67G/IkA46Mr2l9Uj7HsQVwsjASyV9SjGofsiUZDA= -go.opentelemetry.io/otel/metric v1.39.0 h1:d1UzonvEZriVfpNKEVmHXbdf909uGTOQjA0HF0Ls5Q0= -go.opentelemetry.io/otel/metric v1.39.0/go.mod h1:jrZSWL33sD7bBxg1xjrqyDjnuzTUB0x1nBERXd7Ftcs= -go.opentelemetry.io/otel/sdk v1.39.0 h1:nMLYcjVsvdui1B/4FRkwjzoRVsMK8uL/cj0OyhKzt18= -go.opentelemetry.io/otel/sdk v1.39.0/go.mod h1:vDojkC4/jsTJsE+kh+LXYQlbL8CgrEcwmt1ENZszdJE= -go.opentelemetry.io/otel/sdk/metric v1.39.0 h1:cXMVVFVgsIf2YL6QkRF4Urbr/aMInf+2WKg+sEJTtB8= -go.opentelemetry.io/otel/sdk/metric v1.39.0/go.mod h1:xq9HEVH7qeX69/JnwEfp6fVq5wosJsY1mt4lLfYdVew= -go.opentelemetry.io/otel/trace v1.39.0 h1:2d2vfpEDmCJ5zVYz7ijaJdOF59xLomrvj7bjt6/qCJI= -go.opentelemetry.io/otel/trace v1.39.0/go.mod h1:88w4/PnZSazkGzz/w84VHpQafiU4EtqqlVdxWy+rNOA= -go.opentelemetry.io/proto/otlp v1.8.0 h1:fRAZQDcAFHySxpJ1TwlA1cJ4tvcrw7nXl9xWWC8N5CE= -go.opentelemetry.io/proto/otlp v1.8.0/go.mod h1:tIeYOeNBU4cvmPqpaji1P+KbB4Oloai8wN4rWzRrFF0= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.68.0 h1:CqXxU8VOmDefoh0+ztfGaymYbhdB/tT3zs79QaZTNGY= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.68.0/go.mod h1:BuhAPThV8PBHBvg8ZzZ/Ok3idOdhWIodywz2xEcRbJo= +go.opentelemetry.io/otel v1.43.0 h1:mYIM03dnh5zfN7HautFE4ieIig9amkNANT+xcVxAj9I= +go.opentelemetry.io/otel v1.43.0/go.mod h1:JuG+u74mvjvcm8vj8pI5XiHy1zDeoCS2LB1spIq7Ay0= +go.opentelemetry.io/otel/metric v1.43.0 h1:d7638QeInOnuwOONPp4JAOGfbCEpYb+K6DVWvdxGzgM= +go.opentelemetry.io/otel/metric v1.43.0/go.mod h1:RDnPtIxvqlgO8GRW18W6Z/4P462ldprJtfxHxyKd2PY= +go.opentelemetry.io/otel/sdk v1.43.0 h1:pi5mE86i5rTeLXqoF/hhiBtUNcrAGHLKQdhg4h4V9Dg= +go.opentelemetry.io/otel/sdk v1.43.0/go.mod h1:P+IkVU3iWukmiit/Yf9AWvpyRDlUeBaRg6Y+C58QHzg= +go.opentelemetry.io/otel/sdk/metric v1.43.0 h1:S88dyqXjJkuBNLeMcVPRFXpRw2fuwdvfCGLEo89fDkw= +go.opentelemetry.io/otel/sdk/metric v1.43.0/go.mod h1:C/RJtwSEJ5hzTiUz5pXF1kILHStzb9zFlIEe85bhj6A= +go.opentelemetry.io/otel/trace v1.43.0 h1:BkNrHpup+4k4w+ZZ86CZoHHEkohws8AY+WTX09nk+3A= +go.opentelemetry.io/otel/trace v1.43.0/go.mod h1:/QJhyVBUUswCphDVxq+8mld+AvhXZLhe+8WVFxiFff0= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= -go.yaml.in/yaml/v2 v2.4.2 h1:DzmwEr2rDGHl7lsFgAHxmNz/1NlQ7xLIrlN2h5d1eGI= -go.yaml.in/yaml/v2 v2.4.2/go.mod h1:081UH+NErpNdqlCXm3TtEran0rJZGxAYx9hb/ELlsPU= +go.yaml.in/yaml/v2 v2.4.4 h1:tuyd0P+2Ont/d6e2rl3be67goVK4R6deVxCUX5vyPaQ= +go.yaml.in/yaml/v2 v2.4.4/go.mod h1:gMZqIpDtDqOfM0uNfy0SkpRhvUryYH0Z6wdMYcacYXQ= go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= go4.org/mem v0.0.0-20240501181205-ae6ca9944745 h1:Tl++JLUCe4sxGu8cTpDzRLd3tN7US4hOxG5YpKCzkek= @@ -489,15 +480,15 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.48.0 h1:/VRzVqiRSggnhY7gNRxPauEQ5Drw9haKdM0jqfcCFts= -golang.org/x/crypto v0.48.0/go.mod h1:r0kV5h3qnFPlQnBSrULhlsRfryS2pmewsg+XfMgkVos= -golang.org/x/exp v0.0.0-20260218203240-3dfff04db8fa h1:Zt3DZoOFFYkKhDT3v7Lm9FDMEV06GpzjG2jrqW+QTE0= -golang.org/x/exp v0.0.0-20260218203240-3dfff04db8fa/go.mod h1:K79w1Vqn7PoiZn+TkNpx3BUWUQksGO3JcVX6qIjytmA= +golang.org/x/crypto v0.50.0 h1:zO47/JPrL6vsNkINmLoo/PH1gcxpls50DNogFvB5ZGI= +golang.org/x/crypto v0.50.0/go.mod h1:3muZ7vA7PBCE6xgPX7nkzzjiUq87kRItoJQM1Yo8S+Q= +golang.org/x/exp v0.0.0-20260410095643-746e56fc9e2f h1:W3F4c+6OLc6H2lb//N1q4WpJkhzJCK5J6kUi1NTVXfM= +golang.org/x/exp v0.0.0-20260410095643-746e56fc9e2f/go.mod h1:J1xhfL/vlindoeF/aINzNzt2Bket5bjo9sdOYzOsU80= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.33.0 h1:tHFzIWbBifEmbwtGz65eaWyGiGZatSrT9prnU8DbVL8= -golang.org/x/mod v0.33.0/go.mod h1:swjeQEj+6r7fODbD2cqrnje9PnziFuw4bmLbBZFrQ5w= +golang.org/x/mod v0.35.0 h1:Ww1D637e6Pg+Zb2KrWfHQUnH2dQRLBQyAtpr/haaJeM= +golang.org/x/mod v0.35.0/go.mod h1:+GwiRhIInF8wPm+4AoT6L0FA1QWAad3OMdTRx4tFYlU= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -506,17 +497,17 @@ golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwY golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210421230115-4e50805a0758/go.mod h1:72T/g9IO56b78aLF+1Kcs5dz7/ng1VjMUvfKvpfy+jM= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.51.0 h1:94R/GTO7mt3/4wIKpcR5gkGmRLOuE/2hNGeWq/GBIFo= -golang.org/x/net v0.51.0/go.mod h1:aamm+2QF5ogm02fjy5Bb7CQ0WMt1/WVM7FtyaTLlA9Y= -golang.org/x/oauth2 v0.35.0 h1:Mv2mzuHuZuY2+bkyWXIHMfhNdJAdwW3FuWeCPYN5GVQ= -golang.org/x/oauth2 v0.35.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA= +golang.org/x/net v0.53.0 h1:d+qAbo5L0orcWAr0a9JweQpjXF19LMXJE8Ey7hwOdUA= +golang.org/x/net v0.53.0/go.mod h1:JvMuJH7rrdiCfbeHoo3fCQU24Lf5JJwT9W3sJFulfgs= +golang.org/x/oauth2 v0.36.0 h1:peZ/1z27fi9hUOFCAZaHyrpWG5lwe0RJEEEeH0ThlIs= +golang.org/x/oauth2 v0.36.0/go.mod h1:YDBUJMTkDnJS+A4BP4eZBjCqtokkg1hODuPjwiGPO7Q= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.19.0 h1:vV+1eWNmZ5geRlYjzm2adRgW2/mcpevXNg50YZtPCE4= -golang.org/x/sync v0.19.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= +golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4= +golang.org/x/sync v0.20.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -529,46 +520,43 @@ golang.org/x/sys v0.0.0-20210420072515-93ed5bcd2bfe/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.41.0 h1:Ivj+2Cp/ylzLiEU89QhWblYnOE9zerudt9Ftecq2C6k= -golang.org/x/sys v0.41.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= +golang.org/x/sys v0.43.0 h1:Rlag2XtaFTxp19wS8MXlJwTvoh8ArU6ezoyFsMyCTNI= +golang.org/x/sys v0.43.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.40.0 h1:36e4zGLqU4yhjlmxEaagx2KuYbJq3EwY8K943ZsHcvg= -golang.org/x/term v0.40.0/go.mod h1:w2P8uVp06p2iyKKuvXIm7N/y0UCRt3UfJTfZ7oOpglM= +golang.org/x/term v0.42.0 h1:UiKe+zDFmJobeJ5ggPwOshJIVt6/Ft0rcfrXZDLWAWY= +golang.org/x/term v0.42.0/go.mod h1:Dq/D+snpsbazcBG5+F9Q1n2rXV8Ma+71xEjTRufARgY= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= -golang.org/x/text v0.34.0 h1:oL/Qq0Kdaqxa1KbNeMKwQq0reLCCaFtqu2eNuSeNHbk= -golang.org/x/text v0.34.0/go.mod h1:homfLqTYRFyVYemLBFl5GgL/DWEiH5wcsQ5gSh1yziA= -golang.org/x/time v0.14.0 h1:MRx4UaLrDotUKUdCIqzPC48t1Y9hANFKIRpNx+Te8PI= -golang.org/x/time v0.14.0/go.mod h1:eL/Oa2bBBK0TkX57Fyni+NgnyQQN4LitPmob2Hjnqw4= +golang.org/x/text v0.36.0 h1:JfKh3XmcRPqZPKevfXVpI1wXPTqbkE5f7JA92a55Yxg= +golang.org/x/text v0.36.0/go.mod h1:NIdBknypM8iqVmPiuco0Dh6P5Jcdk8lJL0CUebqK164= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.42.0 h1:uNgphsn75Tdz5Ji2q36v/nsFSfR/9BRFvqhGBaJGd5k= -golang.org/x/tools v0.42.0/go.mod h1:Ma6lCIwGZvHK6XtgbswSoWroEkhugApmsXyrUmBhfr0= +golang.org/x/tools v0.44.0 h1:UP4ajHPIcuMjT1GqzDWRlalUEoY+uzoZKnhOjbIPD2c= +golang.org/x/tools v0.44.0/go.mod h1:KA0AfVErSdxRZIsOVipbv3rQhVXTnlU6UhKxHd1seDI= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk= -gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E= -google.golang.org/genproto/googleapis/api v0.0.0-20251202230838-ff82c1b0f217 h1:fCvbg86sFXwdrl5LgVcTEvNC+2txB5mgROGmRL5mrls= -google.golang.org/genproto/googleapis/api v0.0.0-20251202230838-ff82c1b0f217/go.mod h1:+rXWjjaukWZun3mLfjmVnQi18E1AsFbDN9QdJ5YXLto= -google.golang.org/genproto/googleapis/rpc v0.0.0-20251202230838-ff82c1b0f217 h1:gRkg/vSppuSQoDjxyiGfN4Upv/h/DQmIR10ZU8dh4Ww= -google.golang.org/genproto/googleapis/rpc v0.0.0-20251202230838-ff82c1b0f217/go.mod h1:7i2o+ce6H/6BluujYR+kqX3GKH+dChPTQU19wjRPiGk= -google.golang.org/grpc v1.79.1 h1:zGhSi45ODB9/p3VAawt9a+O/MULLl9dpizzNNpq7flY= -google.golang.org/grpc v1.79.1/go.mod h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ= +gonum.org/v1/gonum v0.17.0 h1:VbpOemQlsSMrYmn7T2OUvQ4dqxQXU+ouZFQsZOx50z4= +gonum.org/v1/gonum v0.17.0/go.mod h1:El3tOrEuMpv2UdMrbNlKEh9vd86bmQ6vqIcDwxEOc1E= +google.golang.org/genproto/googleapis/api v0.0.0-20260120221211-b8f7ae30c516 h1:vmC/ws+pLzWjj/gzApyoZuSVrDtF1aod4u/+bbj8hgM= +google.golang.org/genproto/googleapis/api v0.0.0-20260120221211-b8f7ae30c516/go.mod h1:p3MLuOwURrGBRoEyFHBT3GjUwaCQVKeNqqWxlcISGdw= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260120221211-b8f7ae30c516 h1:sNrWoksmOyF5bvJUcnmbeAmQi8baNhqg5IWaI3llQqU= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260120221211-b8f7ae30c516/go.mod h1:j9x/tPzZkyxcgEFkiKEEGxfvyumM01BEtsW8xzOahRQ= +google.golang.org/grpc v1.80.0 h1:Xr6m2WmWZLETvUNvIUmeD5OAagMw3FiKmMlTdViWsHM= +google.golang.org/grpc v1.80.0/go.mod h1:ho/dLnxwi3EDJA4Zghp7k2Ec1+c2jqup0bFkw07bwF4= google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE= google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U= @@ -625,5 +613,7 @@ modernc.org/strutil v1.2.0 h1:agBi9dp1I+eOnxXeiZawM8F4LawKv4NzGWSaLfyeNZA= modernc.org/strutil v1.2.0/go.mod h1:/mdcBmfOibveCTBxUl5B5l6W+TTH1FXPLHZE6bTosX0= modernc.org/token v1.1.0 h1:Xl7Ap9dKaEs5kLoOQeQmPWevfnk/DM5qcLcYlA8ys6Y= modernc.org/token v1.1.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= +pgregory.net/rapid v1.2.0 h1:keKAYRcjm+e1F0oAuU5F5+YPAWcyxNNRK2wud503Gnk= +pgregory.net/rapid v1.2.0/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04= tailscale.com v1.72.1 h1:hk82jek36ph2S3Tfsh57NVWKEm/pZ9nfUonvlowpfaA= tailscale.com v1.72.1/go.mod h1:v7OHtg0KLAnhOVf81Z8WrjNefj238QbFhgkWJQoKxbs= diff --git a/test/integration.go b/test/integration.go index 0f4c4129..3c61b129 100644 --- a/test/integration.go +++ b/test/integration.go @@ -131,8 +131,8 @@ func StartNsqd(t *testing.T, log *slog.Logger) (testcontainers.Container, bus.Pu consumer, err := bus.NewConsumer(log, nil) require.NoError(t, err) - tcpAddress := fmt.Sprintf("%s:%d", ip, tcpPort.Int()) - httpAddress := fmt.Sprintf("%s:%d", ip, httpPort.Int()) + tcpAddress := fmt.Sprintf("%s:%d", ip, tcpPort.Num()) + httpAddress := fmt.Sprintf("%s:%d", ip, httpPort.Num()) consumer.With(bus.NSQDs(tcpAddress))