Skip to content

Commit 63cd3d8

Browse files
authored
chore: upgrade go libs and add testing around authentication (#1097)
1 parent 9a890a5 commit 63cd3d8

File tree

10 files changed

+554
-76
lines changed

10 files changed

+554
-76
lines changed

go.mod

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,8 @@ require (
5151

5252
require (
5353
github.com/ClickHouse/clickhouse-go/v2 v2.37.2
54-
github.com/formancehq/go-libs/v3 v3.3.0
54+
github.com/formancehq/go-libs/v3 v3.3.1-0.20251105163453-90aeacc71cc5
55+
github.com/go-jose/go-jose/v4 v4.0.5
5556
github.com/iancoleman/strcase v0.3.0
5657
github.com/mitchellh/mapstructure v1.5.0
5758
github.com/olivere/elastic/v7 v7.0.32
@@ -87,6 +88,8 @@ require (
8788
github.com/spf13/afero v1.14.0 // indirect
8889
github.com/spf13/cast v1.9.2 // indirect
8990
github.com/subosito/gotenv v1.6.0 // indirect
91+
github.com/zitadel/oidc/v3 v3.45.0 // indirect
92+
github.com/zitadel/schema v1.3.1 // indirect
9093
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
9194
go.uber.org/automaxprocs v1.6.0 // indirect
9295
)
@@ -150,8 +153,6 @@ require (
150153
github.com/golang/snappy v1.0.0 // indirect
151154
github.com/google/pprof v0.0.0-20250403155104-27863c87afa6 // indirect
152155
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect
153-
github.com/gorilla/mux v1.8.1 // indirect
154-
github.com/gorilla/schema v1.4.1 // indirect
155156
github.com/gorilla/securecookie v1.1.2 // indirect
156157
github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.1 // indirect
157158
github.com/hashicorp/errwrap v1.1.0 // indirect
@@ -179,7 +180,6 @@ require (
179180
github.com/moby/docker-image-spec v1.3.1 // indirect
180181
github.com/moby/term v0.5.2 // indirect
181182
github.com/muhlemmer/gu v0.3.1 // indirect
182-
github.com/muhlemmer/httpforwarded v0.1.0 // indirect
183183
github.com/nats-io/jwt/v2 v2.7.4 // indirect
184184
github.com/nats-io/nats-server/v2 v2.11.8 // indirect
185185
github.com/nats-io/nkeys v0.4.11 // indirect
@@ -194,7 +194,6 @@ require (
194194
github.com/puzpuzpuz/xsync/v3 v3.5.1 // indirect
195195
github.com/rcrowley/go-metrics v0.0.0-20250401214520-65e299d6c5c9 // indirect
196196
github.com/riandyrn/otelchi v0.12.2
197-
github.com/rs/cors v1.11.1 // indirect
198197
github.com/shirou/gopsutil/v4 v4.25.5 // indirect
199198
github.com/shomali11/util v0.0.0-20220717175126-f0771b70947f // indirect
200199
github.com/sirupsen/logrus v1.9.3 // indirect
@@ -214,7 +213,6 @@ require (
214213
github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect
215214
github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect
216215
github.com/yusufpapurcu/wmi v1.2.4 // indirect
217-
github.com/zitadel/oidc/v2 v2.12.2 // indirect
218216
go.opentelemetry.io/contrib/instrumentation/host v0.62.0 // indirect
219217
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.62.0 // indirect
220218
go.opentelemetry.io/contrib/instrumentation/runtime v0.62.0 // indirect
@@ -243,6 +241,5 @@ require (
243241
google.golang.org/genproto/googleapis/rpc v0.0.0-20250603155806-513f23925822 // indirect
244242
google.golang.org/grpc v1.74.2
245243
google.golang.org/protobuf v1.36.8
246-
gopkg.in/go-jose/go-jose.v2 v2.6.3 // indirect
247244
gopkg.in/yaml.v2 v2.4.0 // indirect
248245
)

go.sum

Lines changed: 8 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -120,8 +120,8 @@ github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM=
120120
github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU=
121121
github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg=
122122
github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
123-
github.com/formancehq/go-libs/v3 v3.3.0 h1:Qs6oPRNHJbR4xu3Lzl2zGAiQD94XLpabAFYPq3YBqK0=
124-
github.com/formancehq/go-libs/v3 v3.3.0/go.mod h1:kr5pgap99LPdSVcYWgI+mCN51wr5D+YxEnt9A6JUiFU=
123+
github.com/formancehq/go-libs/v3 v3.3.1-0.20251105163453-90aeacc71cc5 h1:XBarY0BHqKxj+lSe1Dpx7VYxi5yQOk6cFOvDlMNmuBc=
124+
github.com/formancehq/go-libs/v3 v3.3.1-0.20251105163453-90aeacc71cc5/go.mod h1:yKUaxtPYKdVEUD3wp4Se24jc+o1Q01wHospFs7umqmo=
125125
github.com/formancehq/numscript v0.0.19 h1:TiFQbW3hC+vTeG4OBMKFxuGfQyxWK6mDLQJJkJSE8s0=
126126
github.com/formancehq/numscript v0.0.19/go.mod h1:J6g9hekGidj1uf8mbBoR0c4+xrSUdVL2mGPFzumgiNk=
127127
github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw=
@@ -148,6 +148,8 @@ github.com/go-faster/city v1.0.1 h1:4WAxSZ3V2Ws4QRDrscLEDcibJY8uf41H6AhXDrNDcGw=
148148
github.com/go-faster/city v1.0.1/go.mod h1:jKcUJId49qdW3L1qKHH/3wPeUstCVpVSXTM6vO3VcTw=
149149
github.com/go-faster/errors v0.7.1 h1:MkJTnDoEdi9pDabt1dpWf7AA8/BaSYZqibYyhZ20AYg=
150150
github.com/go-faster/errors v0.7.1/go.mod h1:5ySTjWFiphBs07IKuiL69nxdfd5+fzh1u7FPGZP2quo=
151+
github.com/go-jose/go-jose/v4 v4.0.5 h1:M6T8+mKZl/+fNNuFHvGIzDz7BTLQPIounk/b9dw3AaE=
152+
github.com/go-jose/go-jose/v4 v4.0.5/go.mod h1:s3P1lRrkT8igV8D9OjyL4WRyHvjB6a4JSllnOrmmBOA=
151153
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
152154
github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI=
153155
github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
@@ -168,8 +170,6 @@ github.com/goccy/go-yaml v1.18.0 h1:8W7wMFS12Pcas7KU+VVkaiCng+kG8QiFeFwzFb+rwuw=
168170
github.com/goccy/go-yaml v1.18.0/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA=
169171
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
170172
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
171-
github.com/golang/mock v1.7.0-rc.1 h1:YojYx61/OLFsiv6Rw1Z96LpldJIy31o+UHmwAUMJ6/U=
172-
github.com/golang/mock v1.7.0-rc.1/go.mod h1:s42URUywIqd+OcERslBJvOjepvNymP31m3q8d/GkuRs=
173173
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
174174
github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
175175
github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
@@ -192,10 +192,6 @@ github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+
192192
github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
193193
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
194194
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
195-
github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY=
196-
github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ=
197-
github.com/gorilla/schema v1.4.1 h1:jUg5hUjCSDZpNGLuXQOgIWGdlgrIdYvgQ0wZtdK1M3E=
198-
github.com/gorilla/schema v1.4.1/go.mod h1:Dg5SSm5PV60mhF2NFaTV1xuYYj8tV8NOPRo4FggUMnM=
199195
github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4=
200196
github.com/gorilla/securecookie v1.1.2 h1:YCIWL56dvtr73r6715mJs5ZvhtnY73hBvEF8kXD8ePA=
201197
github.com/gorilla/securecookie v1.1.2/go.mod h1:NfCASbcHqRSY+3a8tlWJwsQap2VX5pwzwo4h3eOamfo=
@@ -248,8 +244,6 @@ github.com/jcmturner/gokrb5/v8 v8.4.4 h1:x1Sv4HaTpepFkXbt2IkL29DXRf8sOfZXo8eRKh6
248244
github.com/jcmturner/gokrb5/v8 v8.4.4/go.mod h1:1btQEpgT6k+unzCwX1KdWMEwPPkkgBtP+F6aCACiMrs=
249245
github.com/jcmturner/rpc/v2 v2.0.3 h1:7FXXj8Ti1IaVFpSAziCZWNzbNuZmnvw/i6CqLNdWfZY=
250246
github.com/jcmturner/rpc/v2 v2.0.3/go.mod h1:VUJYCIDm3PVOEHw8sgt091/20OJjskO/YJki3ELg/Hc=
251-
github.com/jeremija/gosubmit v0.2.7 h1:At0OhGCFGPXyjPYAsCchoBUhE099pcBXmsb4iZqROIc=
252-
github.com/jeremija/gosubmit v0.2.7/go.mod h1:Ui+HS073lCFREXBbdfrJzMB57OI/bdxTiLtrDHHhFPI=
253247
github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E=
254248
github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc=
255249
github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
@@ -299,8 +293,6 @@ github.com/moby/term v0.5.2/go.mod h1:d3djjFCrjnB+fl8NJux+EJzu0msscUP+f8it8hPkFL
299293
github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc=
300294
github.com/muhlemmer/gu v0.3.1 h1:7EAqmFrW7n3hETvuAdmFmn4hS8W+z3LgKtrnow+YzNM=
301295
github.com/muhlemmer/gu v0.3.1/go.mod h1:YHtHR+gxM+bKEIIs7Hmi9sPT3ZDUvTN/i88wQpZkrdM=
302-
github.com/muhlemmer/httpforwarded v0.1.0 h1:x4DLrzXdliq8mprgUMR0olDvHGkou5BJsK/vWUetyzY=
303-
github.com/muhlemmer/httpforwarded v0.1.0/go.mod h1:yo9czKedo2pdZhoXe+yDkGVbU0TJ0q9oQ90BVoDEtw0=
304296
github.com/nats-io/jwt/v2 v2.7.4 h1:jXFuDDxs/GQjGDZGhNgH4tXzSUK6WQi2rsj4xmsNOtI=
305297
github.com/nats-io/jwt/v2 v2.7.4/go.mod h1:me11pOkwObtcBNR8AiMrUbtVOUGkqYjMQZ6jnSdVUIA=
306298
github.com/nats-io/nats-server/v2 v2.11.8 h1:7T1wwwd/SKTDWW47KGguENE7Wa8CpHxLD1imet1iW7c=
@@ -355,8 +347,6 @@ github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs=
355347
github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro=
356348
github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ=
357349
github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc=
358-
github.com/rs/cors v1.11.1 h1:eU3gRzXLRK57F5rKMGMZURNdIG4EoAmX8k94r9wXWHA=
359-
github.com/rs/cors v1.11.1/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU=
360350
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
361351
github.com/sagikazarmark/locafero v0.9.0 h1:GbgQGNtTrEmddYDSAH9QLRyfAHY12md+8YFTqyMTC9k=
362352
github.com/sagikazarmark/locafero v0.9.0/go.mod h1:UBUyz37V+EdMS3hDF3QWIiVr/2dPrx49OMO0Bn0hJqk=
@@ -467,8 +457,10 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec
467457
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
468458
github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0=
469459
github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0=
470-
github.com/zitadel/oidc/v2 v2.12.2 h1:3kpckg4rurgw7w7aLJrq7yvRxb2pkNOtD08RH42vPEs=
471-
github.com/zitadel/oidc/v2 v2.12.2/go.mod h1:vhP26g1g4YVntcTi0amMYW3tJuid70nxqxf+kb6XKgg=
460+
github.com/zitadel/oidc/v3 v3.45.0 h1:SaVJ2kdcJi/zdEWWlAns+81VxmfdYX4E+2mWFVIH7Ec=
461+
github.com/zitadel/oidc/v3 v3.45.0/go.mod h1:UeK0iVOoqfMuDVgSfv56BqTz8YQC2M+tGRIXZ7Ii3VY=
462+
github.com/zitadel/schema v1.3.1 h1:QT3kwiRIRXXLVAs6gCK/u044WmUVh6IlbLXUsn6yRQU=
463+
github.com/zitadel/schema v1.3.1/go.mod h1:071u7D2LQacy1HAN+YnMd/mx1qVE2isb0Mjeqg46xnU=
472464
go.mongodb.org/mongo-driver v1.11.4/go.mod h1:PTSz5yu21bkT/wXpkS7WR5f0ddqw5quethTUn9WM+2g=
473465
go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA=
474466
go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A=
@@ -621,8 +613,6 @@ gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8
621613
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
622614
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
623615
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
624-
gopkg.in/go-jose/go-jose.v2 v2.6.3 h1:nt80fvSDlhKWQgSWyHyy5CfmlQr+asih51R8PTWNKKs=
625-
gopkg.in/go-jose/go-jose.v2 v2.6.3/go.mod h1:zzZDPkNNw/c9IE7Z9jr11mBZQhKQTMzoEEIoEdZlFBI=
626616
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
627617
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
628618
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=

pkg/testserver/server.go

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,3 +100,28 @@ func WorkerAddressInstrumentation(addr *deferred.Deferred[string]) testservice.I
100100
return nil
101101
}
102102
}
103+
104+
// AuthInstrumentation enables authentication for testing
105+
// This is used for integration tests to verify authentication works correctly
106+
// The auth module from go-libs uses flags declared in auth/cli.go:
107+
// - auth-enabled: Enable auth
108+
// - auth-issuer: Issuer URL
109+
// - auth-check-scopes: Check scopes
110+
// - auth-service: Service name
111+
func AuthInstrumentation(issuer *deferred.Deferred[string]) testservice.InstrumentationFunc {
112+
return func(ctx context.Context, runConfiguration *testservice.RunConfiguration) error {
113+
// Enable auth
114+
runConfiguration.AppendArgs("--auth-enabled")
115+
// Set issuer
116+
vIssuer, err := issuer.Wait(ctx)
117+
if err != nil {
118+
return fmt.Errorf("waiting for issuer: %w", err)
119+
}
120+
runConfiguration.AppendArgs("--auth-issuer", vIssuer)
121+
// Enable scope checking
122+
runConfiguration.AppendArgs("--auth-check-scopes")
123+
// Set service name
124+
runConfiguration.AppendArgs("--auth-service", "ledger")
125+
return nil
126+
}
127+
}

0 commit comments

Comments
 (0)