Skip to content

Commit d913fce

Browse files
authored
Support MinIO #4928
ref DEV-2346
2 parents a36ee3d + e06cc06 commit d913fce

File tree

25 files changed

+323
-174
lines changed

25 files changed

+323
-174
lines changed

.env.example

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,12 @@ SAML_IDP_ENTITY_ID_TEMPLATE=urn:{{.app_id}}.localhost
100100
#IMAGES_OBJECT_STORE_AZURE_BLOB_STORAGE_SERVICE_URL=
101101
#IMAGES_OBJECT_STORE_AZURE_BLOB_STORAGE_ACCESS_KEY=
102102

103+
IMAGES_OBJECT_STORE_TYPE=MINIO
104+
IMAGES_OBJECT_STORE_MINIO_ENDPOINT=http://localhost:9000
105+
IMAGES_OBJECT_STORE_MINIO_BUCKET_NAME=images
106+
IMAGES_OBJECT_STORE_MINIO_ACCESS_KEY_ID=minio
107+
IMAGES_OBJECT_STORE_MINIO_SECRET_ACCESS_KEY=secretpassword
108+
103109

104110
# User export server configs, uncomment accordingly depending on storage type
105111

@@ -120,6 +126,13 @@ SAML_IDP_ENTITY_ID_TEMPLATE=urn:{{.app_id}}.localhost
120126
#USEREXPORT_OBJECT_STORE_AZURE_BLOB_STORAGE_SERVICE_URL=
121127
#USEREXPORT_OBJECT_STORE_AZURE_BLOB_STORAGE_ACCESS_KEY=
122128

129+
USEREXPORT_OBJECT_STORE_TYPE=MINIO
130+
USEREXPORT_OBJECT_STORE_MINIO_ENDPOINT=http://localhost:9000
131+
USEREXPORT_OBJECT_STORE_MINIO_BUCKET_NAME=userexport
132+
USEREXPORT_OBJECT_STORE_MINIO_ACCESS_KEY_ID=minio
133+
USEREXPORT_OBJECT_STORE_MINIO_SECRET_ACCESS_KEY=secretpassword
134+
135+
123136
UI_IMPLEMENTATION=
124137
UI_SETTINGS_IMPLEMENTATION=
125138

.vettedpositions

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -267,13 +267,15 @@
267267
/pkg/images/deps/middleware_request.go:39:39: requestcontext
268268
/pkg/images/deps/middleware_request.go:40:34: requestcontext
269269
/pkg/images/deps/middleware_request.go:45:40: requestcontext
270-
/pkg/images/handler/get.go:95:43: requestcontext
271270
/pkg/images/handler/post.go:162:83: requestcontext
272271
/pkg/images/handler/post.go:193:10: requestcontext
273272
/pkg/lib/accountmanagement/rate_limit_middleware.go:41:10: requestcontext
274273
/pkg/lib/admin/authz/middleware.go:85:18: requestcontext
275274
/pkg/lib/authenticationflow/intl_middleware.go:16:41: requestcontext
276275
/pkg/lib/authenticationflow/rate_limit_middleware.go:31:49: requestcontext
276+
/pkg/lib/cloudstorage/azure.go:128:32: requestcontext
277+
/pkg/lib/cloudstorage/gcs.go:139:38: requestcontext
278+
/pkg/lib/cloudstorage/minio.go:100:41: requestcontext
277279
/pkg/lib/config/contextbackground.go:11:52: contextbackground
278280
/pkg/lib/deps/context.go:23:10: requestcontext
279281
/pkg/lib/deps/contextbackground.go:10:28: contextbackground

CONTRIBUTING.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
* [Install dependencies](#install-dependencies)
33
* [Set up environment](#set-up-environment)
44
* [Set up the database](#set-up-the-database)
5+
* [Set up MinIO](#setup-minio)
56
* [Run](#run)
67
* [Create an account for yourselves and grant you access to the portal](#create-an-account-for-yourselves-and-grant-you-access-to-the-portal)
78
* [Known issues](#known-issues)
@@ -179,6 +180,20 @@ This project uses asdf, and there is a .tool-versions file at the project root.
179180
go run ./cmd/authgear search database migrate up
180181
```
181182
183+
## Set up MinIO
184+
185+
```sh
186+
docker compose up -d minio
187+
docker compose exec -it bash
188+
189+
# Inside the container
190+
mc alias set local http://localhost:9000 "$MINIO_ROOT_USER" "$MINIO_ROOT_PASSWORD"
191+
# Create a bucket named "images"
192+
mc mb local/images
193+
# Create a bucket named "userexport"
194+
mc mb local/userexport
195+
```
196+
182197
## Run
183198
184199
1. In case you have made changes to authui, you run `make authui` to re-build the assets, or run `make authui-dev` to start the development server (Hot Reload/Hot Module Replacement supported).

cmd/authgear/images/server/config.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"github.com/kelseyhightower/envconfig"
77

88
imagesconfig "github.com/authgear/authgear-server/pkg/images/config"
9+
"github.com/authgear/authgear-server/pkg/lib/config"
910
"github.com/authgear/authgear-server/pkg/util/validation"
1011
)
1112

@@ -43,12 +44,14 @@ func LoadConfigFromEnv() (*Config, error) {
4344

4445
func (c *Config) Initialize() error {
4546
ctx := &validation.Context{}
46-
c.ObjectStore.Initialize(ctx.Child("IMAGES_OBJECT_STORE"))
47+
objectStoreConfig := config.AbstractObjectStoreConfig(*c.ObjectStore)
48+
objectStoreConfig.Initialize(ctx.Child("IMAGES_OBJECT_STORE"))
4749
return ctx.Error("failed to initialize server configuration")
4850
}
4951

5052
func (c *Config) Validate() error {
5153
ctx := &validation.Context{}
52-
c.ObjectStore.Validate(ctx.Child("IMAGES_OBJECT_STORE"))
54+
objectStoreConfig := config.AbstractObjectStoreConfig(*c.ObjectStore)
55+
objectStoreConfig.Validate(ctx.Child("IMAGES_OBJECT_STORE"))
5356
return ctx.Error("invalid server configuration")
5457
}

custombuild/go.mod

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ require (
5252
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 // indirect
5353
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
5454
github.com/dlclark/regexp2 v1.7.0 // indirect
55+
github.com/dustin/go-humanize v1.0.1 // indirect
5556
github.com/elastic/go-elasticsearch/v7 v7.17.10 // indirect
5657
github.com/emicklei/go-restful/v3 v3.12.0 // indirect
5758
github.com/envoyproxy/go-control-plane v0.13.0 // indirect
@@ -63,6 +64,7 @@ require (
6364
github.com/go-asn1-ber/asn1-ber v1.5.6 // indirect
6465
github.com/go-gorp/gorp/v3 v3.1.0 // indirect
6566
github.com/go-gsm/charset v1.0.0 // indirect
67+
github.com/go-ini/ini v1.67.0 // indirect
6668
github.com/go-ldap/ldap/v3 v3.4.8 // indirect
6769
github.com/go-logr/logr v1.4.2 // indirect
6870
github.com/go-logr/stdr v1.2.2 // indirect
@@ -106,6 +108,8 @@ require (
106108
github.com/json-iterator/go v1.1.12 // indirect
107109
github.com/julienschmidt/httprouter v1.3.0 // indirect
108110
github.com/kelseyhightower/envconfig v1.4.0 // indirect
111+
github.com/klauspost/compress v1.17.11 // indirect
112+
github.com/klauspost/cpuid/v2 v2.2.8 // indirect
109113
github.com/lann/builder v0.0.0-20180802200727-47ae307949d0 // indirect
110114
github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0 // indirect
111115
github.com/lestrrat-go/blackmagic v1.0.2 // indirect
@@ -119,6 +123,8 @@ require (
119123
github.com/mailru/easyjson v0.7.7 // indirect
120124
github.com/mattermost/xml-roundtrip-validator v0.1.0 // indirect
121125
github.com/mattn/go-ieproxy v0.0.1 // indirect
126+
github.com/minio/md5-simd v1.1.2 // indirect
127+
github.com/minio/minio-go/v7 v7.0.81 // indirect
122128
github.com/mitchellh/copystructure v1.2.0 // indirect
123129
github.com/mitchellh/mapstructure v1.5.0 // indirect
124130
github.com/mitchellh/reflectwalk v1.0.2 // indirect
@@ -135,6 +141,7 @@ require (
135141
github.com/pquerna/otp v1.4.0 // indirect
136142
github.com/redis/go-redis/v9 v9.7.0 // indirect
137143
github.com/rivo/uniseg v0.4.7 // indirect
144+
github.com/rs/xid v1.6.0 // indirect
138145
github.com/rubenv/sql-migrate v1.7.0 // indirect
139146
github.com/russellhaering/goxmldsig v1.4.0 // indirect
140147
github.com/sagikazarmark/locafero v0.4.0 // indirect

custombuild/go.sum

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,8 @@ github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/r
118118
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc=
119119
github.com/dlclark/regexp2 v1.7.0 h1:7lJfhqlPssTb1WQx4yvTHN0uElPEv52sbaECrAQxjAo=
120120
github.com/dlclark/regexp2 v1.7.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8=
121+
github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY=
122+
github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto=
121123
github.com/elastic/go-elasticsearch/v7 v7.17.10 h1:TCQ8i4PmIJuBunvBS6bwT2ybzVFxxUhhltAs3Gyu1yo=
122124
github.com/elastic/go-elasticsearch/v7 v7.17.10/go.mod h1:OJ4wdbtDNk5g503kvlHLyErCgQwwzmDtaFC4XyOxXA4=
123125
github.com/emicklei/go-restful/v3 v3.12.0 h1:y2DdzBAURM29NFF94q6RaY4vjIH1rtwDapwQtU84iWk=
@@ -153,6 +155,8 @@ github.com/go-gorp/gorp/v3 v3.1.0 h1:ItKF/Vbuj31dmV4jxA1qblpSwkl9g1typ24xoe70IGs
153155
github.com/go-gorp/gorp/v3 v3.1.0/go.mod h1:dLEjIyyRNiXvNZ8PSmzpt1GsWAUK8kjVhEpjH8TixEw=
154156
github.com/go-gsm/charset v1.0.0 h1:6k6LOKHtxgCPXE15X0unRewjOksyhmHBIp6x7qLQ6Ls=
155157
github.com/go-gsm/charset v1.0.0/go.mod h1:sC8+2VpAM2sZDlxv11MxWIZiuf8MipOgM/hCYsRQRps=
158+
github.com/go-ini/ini v1.67.0 h1:z6ZrTEZqSWOTyH2FlglNbNgARyHG8oLW9gMELqKr06A=
159+
github.com/go-ini/ini v1.67.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8=
156160
github.com/go-ldap/ldap/v3 v3.4.8 h1:loKJyspcRezt2Q3ZRMq2p/0v8iOurlmeXDPw6fikSvQ=
157161
github.com/go-ldap/ldap/v3 v3.4.8/go.mod h1:qS3Sjlu76eHfHGpUdWkAXQTw4beih+cHsco2jXlIXrk=
158162
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
@@ -318,6 +322,11 @@ github.com/kelseyhightower/envconfig v1.4.0 h1:Im6hONhd3pLkfDFsbRgu68RDNkGF1r3dv
318322
github.com/kelseyhightower/envconfig v1.4.0/go.mod h1:cccZRl6mQpaq41TPp5QxidR+Sa3axMbJDNb//FQX6Gg=
319323
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
320324
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
325+
github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc=
326+
github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0=
327+
github.com/klauspost/cpuid/v2 v2.0.1/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
328+
github.com/klauspost/cpuid/v2 v2.2.8 h1:+StwCXwm9PdpiEkPyzBXIy+M9KUb4ODm0Zarf1kS5BM=
329+
github.com/klauspost/cpuid/v2 v2.2.8/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws=
321330
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
322331
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
323332
github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk=
@@ -362,6 +371,10 @@ github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWE
362371
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
363372
github.com/mattn/go-sqlite3 v1.14.19 h1:fhGleo2h1p8tVChob4I9HpmVFIAkKGpiukdrgQbWfGI=
364373
github.com/mattn/go-sqlite3 v1.14.19/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg=
374+
github.com/minio/md5-simd v1.1.2 h1:Gdi1DZK69+ZVMoNHRXJyNcxrMA4dSxoYHZSQbirFg34=
375+
github.com/minio/md5-simd v1.1.2/go.mod h1:MzdKDxYpY2BT9XQFocsiZf/NKVtR7nkE4RoEpN+20RM=
376+
github.com/minio/minio-go/v7 v7.0.81 h1:SzhMN0TQ6T/xSBu6Nvw3M5M8voM+Ht8RH3hE8S7zxaA=
377+
github.com/minio/minio-go/v7 v7.0.81/go.mod h1:84gmIilaX4zcvAWWzJ5Z1WI5axN+hAbM5w25xf8xvC0=
365378
github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw=
366379
github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s=
367380
github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
@@ -422,6 +435,8 @@ github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTE
422435
github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE=
423436
github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII=
424437
github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o=
438+
github.com/rs/xid v1.6.0 h1:fV591PaemRlL6JfRxGDEPl69wICngIQ3shQtzfy2gxU=
439+
github.com/rs/xid v1.6.0/go.mod h1:7XoLgs4eV+QndskICGsho+ADou8ySMSjJKDIan90Nz0=
425440
github.com/rubenv/sql-migrate v1.7.0 h1:HtQq1xyTN2ISmQDggnh0c9U3JlP8apWh8YO2jzlXpTI=
426441
github.com/rubenv/sql-migrate v1.7.0/go.mod h1:S4wtDEG1CKn+0ShpTtzWhFpHHI5PvCUtiGI+C+Z2THE=
427442
github.com/russellhaering/goxmldsig v1.4.0 h1:8UcDh/xGyQiyrW+Fq5t8f+l2DLB1+zlhYzkPUJ7Qhys=

docker-compose.yaml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,30 @@ services:
9191
ports:
9292
- "4318:4318"
9393

94+
minio:
95+
image: quay.io/minio/minio:RELEASE.2024-11-07T00-52-20Z
96+
command:
97+
- "minio"
98+
- "server"
99+
- "/data"
100+
- "--console-address"
101+
- ":9001"
102+
volumes:
103+
- minio_data:/data
104+
ports:
105+
- "9000:9000"
106+
- "9001:9001"
107+
environment:
108+
# This can be used as access key ID.
109+
# But do not do this in production.
110+
# See https://min.io/docs/minio/linux/administration/identity-access-management/minio-user-management.html#minio-root-user
111+
MINIO_ROOT_USER: "minio"
112+
# This must be at least 8 characters
113+
# this can be used as secret access key.
114+
# But do not do this in production.
115+
# See https://min.io/docs/minio/linux/administration/identity-access-management/minio-user-management.html#minio-root-user
116+
MINIO_ROOT_PASSWORD: "secretpassword"
117+
94118
ldap:
95119
profiles: ["ldap"]
96120
image: bitnami/openldap:2.6
@@ -124,3 +148,5 @@ volumes:
124148
driver: local
125149
openldap_data:
126150
driver: local
151+
minio_data:
152+
driver: local

e2e/go.mod

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ require (
6666
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 // indirect
6767
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
6868
github.com/dlclark/regexp2 v1.7.0 // indirect
69+
github.com/dustin/go-humanize v1.0.1 // indirect
6970
github.com/elastic/go-elasticsearch/v7 v7.17.10 // indirect
7071
github.com/envoyproxy/go-control-plane v0.13.0 // indirect
7172
github.com/envoyproxy/protoc-gen-validate v1.1.0 // indirect
@@ -75,6 +76,7 @@ require (
7576
github.com/getsentry/sentry-go v0.29.1 // indirect
7677
github.com/go-asn1-ber/asn1-ber v1.5.6 // indirect
7778
github.com/go-gsm/charset v1.0.0 // indirect
79+
github.com/go-ini/ini v1.67.0 // indirect
7880
github.com/go-ldap/ldap/v3 v3.4.8 // indirect
7981
github.com/go-logr/logr v1.4.2 // indirect
8082
github.com/go-logr/stdr v1.2.2 // indirect
@@ -110,6 +112,8 @@ require (
110112
github.com/jonboulle/clockwork v0.2.2 // indirect
111113
github.com/jtolds/gls v4.20.0+incompatible // indirect
112114
github.com/julienschmidt/httprouter v1.3.0 // indirect
115+
github.com/klauspost/compress v1.17.11 // indirect
116+
github.com/klauspost/cpuid/v2 v2.2.8 // indirect
113117
github.com/lann/builder v0.0.0-20180802200727-47ae307949d0 // indirect
114118
github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0 // indirect
115119
github.com/lestrrat-go/blackmagic v1.0.2 // indirect
@@ -120,6 +124,8 @@ require (
120124
github.com/magiconair/properties v1.8.7 // indirect
121125
github.com/mattermost/xml-roundtrip-validator v0.1.0 // indirect
122126
github.com/mattn/go-ieproxy v0.0.1 // indirect
127+
github.com/minio/md5-simd v1.1.2 // indirect
128+
github.com/minio/minio-go/v7 v7.0.81 // indirect
123129
github.com/mitchellh/copystructure v1.2.0 // indirect
124130
github.com/mitchellh/mapstructure v1.5.0 // indirect
125131
github.com/mitchellh/reflectwalk v1.0.2 // indirect
@@ -135,6 +141,7 @@ require (
135141
github.com/pquerna/otp v1.4.0 // indirect
136142
github.com/redis/go-redis/v9 v9.7.0 // indirect
137143
github.com/rivo/uniseg v0.4.7 // indirect
144+
github.com/rs/xid v1.6.0 // indirect
138145
github.com/russellhaering/goxmldsig v1.4.0 // indirect
139146
github.com/sagikazarmark/locafero v0.4.0 // indirect
140147
github.com/sagikazarmark/slog-shim v0.1.0 // indirect

e2e/go.sum

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,8 @@ github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/r
121121
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc=
122122
github.com/dlclark/regexp2 v1.7.0 h1:7lJfhqlPssTb1WQx4yvTHN0uElPEv52sbaECrAQxjAo=
123123
github.com/dlclark/regexp2 v1.7.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8=
124+
github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY=
125+
github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto=
124126
github.com/elastic/go-elasticsearch/v7 v7.17.10 h1:TCQ8i4PmIJuBunvBS6bwT2ybzVFxxUhhltAs3Gyu1yo=
125127
github.com/elastic/go-elasticsearch/v7 v7.17.10/go.mod h1:OJ4wdbtDNk5g503kvlHLyErCgQwwzmDtaFC4XyOxXA4=
126128
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
@@ -152,6 +154,8 @@ github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxI
152154
github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og=
153155
github.com/go-gsm/charset v1.0.0 h1:6k6LOKHtxgCPXE15X0unRewjOksyhmHBIp6x7qLQ6Ls=
154156
github.com/go-gsm/charset v1.0.0/go.mod h1:sC8+2VpAM2sZDlxv11MxWIZiuf8MipOgM/hCYsRQRps=
157+
github.com/go-ini/ini v1.67.0 h1:z6ZrTEZqSWOTyH2FlglNbNgARyHG8oLW9gMELqKr06A=
158+
github.com/go-ini/ini v1.67.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8=
155159
github.com/go-jose/go-jose/v3 v3.0.3 h1:fFKWeig/irsp7XD2zBxvnmA/XaRWp5V3CBsZXJF7G7k=
156160
github.com/go-jose/go-jose/v3 v3.0.3/go.mod h1:5b+7YgP7ZICgJDBdfjZaIt+H/9L9T/YQrVfLAMboGkQ=
157161
github.com/go-ldap/ldap/v3 v3.4.8 h1:loKJyspcRezt2Q3ZRMq2p/0v8iOurlmeXDPw6fikSvQ=
@@ -306,6 +310,11 @@ github.com/julienschmidt/httprouter v1.3.0 h1:U0609e9tgbseu3rBINet9P48AI/D3oJs4d
306310
github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM=
307311
github.com/kelseyhightower/envconfig v1.4.0 h1:Im6hONhd3pLkfDFsbRgu68RDNkGF1r3dvMUtDTo2cv8=
308312
github.com/kelseyhightower/envconfig v1.4.0/go.mod h1:cccZRl6mQpaq41TPp5QxidR+Sa3axMbJDNb//FQX6Gg=
313+
github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc=
314+
github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0=
315+
github.com/klauspost/cpuid/v2 v2.0.1/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
316+
github.com/klauspost/cpuid/v2 v2.2.8 h1:+StwCXwm9PdpiEkPyzBXIy+M9KUb4ODm0Zarf1kS5BM=
317+
github.com/klauspost/cpuid/v2 v2.2.8/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws=
309318
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
310319
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
311320
github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk=
@@ -349,6 +358,10 @@ github.com/mattn/go-ieproxy v0.0.1 h1:qiyop7gCflfhwCzGyeT0gro3sF9AIg9HU98JORTkqf
349358
github.com/mattn/go-ieproxy v0.0.1/go.mod h1:pYabZ6IHcRpFh7vIaLfK7rdcWgFEb3SFJ6/gNWuh88E=
350359
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
351360
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
361+
github.com/minio/md5-simd v1.1.2 h1:Gdi1DZK69+ZVMoNHRXJyNcxrMA4dSxoYHZSQbirFg34=
362+
github.com/minio/md5-simd v1.1.2/go.mod h1:MzdKDxYpY2BT9XQFocsiZf/NKVtR7nkE4RoEpN+20RM=
363+
github.com/minio/minio-go/v7 v7.0.81 h1:SzhMN0TQ6T/xSBu6Nvw3M5M8voM+Ht8RH3hE8S7zxaA=
364+
github.com/minio/minio-go/v7 v7.0.81/go.mod h1:84gmIilaX4zcvAWWzJ5Z1WI5axN+hAbM5w25xf8xvC0=
352365
github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw=
353366
github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s=
354367
github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
@@ -414,6 +427,8 @@ github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTE
414427
github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE=
415428
github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII=
416429
github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o=
430+
github.com/rs/xid v1.6.0 h1:fV591PaemRlL6JfRxGDEPl69wICngIQ3shQtzfy2gxU=
431+
github.com/rs/xid v1.6.0/go.mod h1:7XoLgs4eV+QndskICGsho+ADou8ySMSjJKDIan90Nz0=
417432
github.com/russellhaering/goxmldsig v1.4.0 h1:8UcDh/xGyQiyrW+Fq5t8f+l2DLB1+zlhYzkPUJ7Qhys=
418433
github.com/russellhaering/goxmldsig v1.4.0/go.mod h1:gM4MDENBQf7M+V824SGfyIUVFWydB7n0KkEubVJl+Tw=
419434
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=

go.mod

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ require (
9090
github.com/coder/websocket v1.8.12
9191
github.com/go-gsm/charset v1.0.0
9292
github.com/go-ldap/ldap/v3 v3.4.8
93+
github.com/minio/minio-go/v7 v7.0.81
9394
github.com/rivo/uniseg v0.4.7
9495
github.com/russellhaering/goxmldsig v1.4.0
9596
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.57.0
@@ -120,13 +121,19 @@ require (
120121
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
121122
github.com/census-instrumentation/opencensus-proto v0.4.1 // indirect
122123
github.com/cncf/xds/go v0.0.0-20240905190251-b4127c9b8d78 // indirect
124+
github.com/dustin/go-humanize v1.0.1 // indirect
123125
github.com/envoyproxy/go-control-plane v0.13.0 // indirect
124126
github.com/envoyproxy/protoc-gen-validate v1.1.0 // indirect
127+
github.com/go-ini/ini v1.67.0 // indirect
125128
github.com/go-logr/stdr v1.2.2 // indirect
126129
github.com/grpc-ecosystem/grpc-gateway/v2 v2.23.0 // indirect
127130
github.com/jonboulle/clockwork v0.2.2 // indirect
131+
github.com/klauspost/compress v1.17.11 // indirect
132+
github.com/klauspost/cpuid/v2 v2.2.8 // indirect
133+
github.com/minio/md5-simd v1.1.2 // indirect
128134
github.com/onsi/ginkgo v1.16.5 // indirect
129135
github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 // indirect
136+
github.com/rs/xid v1.6.0 // indirect
130137
go.opentelemetry.io/contrib/detectors/gcp v1.29.0 // indirect
131138
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.54.0 // indirect
132139
go.opentelemetry.io/otel/trace v1.32.0 // indirect

0 commit comments

Comments
 (0)