From 557ea48d7f0f79f6da115a68dc4172864aeb1f29 Mon Sep 17 00:00:00 2001 From: Janos Miko Date: Tue, 2 Jul 2024 23:01:12 +0200 Subject: [PATCH] chg: prepare release --- .../workflows/main-docker-image-mariadb.yml | 4 +- CHANGELOG.md | 29 ++++++- Makefile | 4 +- VERSION.txt | 2 +- .../environments/includes/db.base.yml | 2 +- .../environments/includes/opensearch.base.yml | 3 + .../magento2.splitdb.checkout.base.yml | 2 +- .../magento2/magento2.splitdb.sales.base.yml | 2 +- .../magento2/magento2.tests.base.yml | 2 +- .../environments/shopware/db.base.yml | 2 +- go.mod | 53 ++++++------- go.sum | 58 ++++++++++++++ internal/config/config.go | 75 ++++++++++++------- internal/logic/bootstrapMagento2.go | 45 +++++++++-- internal/logic/bootstrapShopware.go | 33 +++++++- sonar-project.properties | 2 +- 16 files changed, 240 insertions(+), 78 deletions(-) diff --git a/.github/workflows/main-docker-image-mariadb.yml b/.github/workflows/main-docker-image-mariadb.yml index 646ef202..8c2fe49c 100644 --- a/.github/workflows/main-docker-image-mariadb.yml +++ b/.github/workflows/main-docker-image-mariadb.yml @@ -19,7 +19,9 @@ jobs: matrix: include: - BUILD_TAG: "latest" - IMAGE_TAG: "11.3" + IMAGE_TAG: "11.4" + - BUILD_TAG: "11.4" + IMAGE_TAG: "11.4" - BUILD_TAG: "11.3" IMAGE_TAG: "11.3" - BUILD_TAG: "11.2" diff --git a/CHANGELOG.md b/CHANGELOG.md index ad373161..a12371fd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,9 +5,34 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [0.6.5] - 2024-05-10 +## [0.6.7] - 2024-06-02 + +### Changed + +- Update default Magento version to v2.4.7-p1. +- Update default Shopware version to v6.6.3.1. +- Revamp error handling to use errorspkg +- Use inline error-handling where possible +- Update go deps +- Use gcr mirror for image build +- Use prebuilt supervisord image instead of building it inline +- Change varnish and php-fpm health check methods +- Use a dedicated `OPENSEARCH_INITIAL_ADMIN_PASSWORD` for Opensearch >= 2.12.0 +- Update default dependencies versions for Magento, Shopware, Wordpress, etc. +- Better support for Mariadb 11+ + +## [0.6.6] - 2024-05-14 + +### Changed + +- Enable reward-cloud plugin +- Fix opensearch-dashboard host + +### Fixed + +- Minor bug fixes -We're super excited to announce `Reward` 0.6.5! +## [0.6.5] - 2024-05-10 ### Changed diff --git a/Makefile b/Makefile index 0685be13..68337054 100644 --- a/Makefile +++ b/Makefile @@ -22,10 +22,10 @@ build: ## Build the command to ./dist CGO_ENABLED=0 go build -ldflags="-s -w" -o dist/reward ./cmd/reward/main.go package: ## Build the binaries and packages using goreleaser (without releasing it) - goreleaser --clean --snapshot --skip-publish + goreleaser --clean --snapshot build-local: ## Build the binaries only using goreleaser (without releasing it) - goreleaser --clean --snapshot --skip-publish --config .local.goreleaser.yml + goreleaser --clean --snapshot --config .local.goreleaser.yml ## —— Go Commands ————————————————————————————————————————————————————————— gomod: ## Update Go Dependencies diff --git a/VERSION.txt b/VERSION.txt index d01a9894..41a02aff 100644 --- a/VERSION.txt +++ b/VERSION.txt @@ -1 +1 @@ -v0.6.6 +v0.6.7 diff --git a/assets/templates/docker-compose/environments/includes/db.base.yml b/assets/templates/docker-compose/environments/includes/db.base.yml index d4b6d7a5..b9c2671b 100644 --- a/assets/templates/docker-compose/environments/includes/db.base.yml +++ b/assets/templates/docker-compose/environments/includes/db.base.yml @@ -23,7 +23,7 @@ services: - {{ default 3306 $.mysql_expose_target }}:3306 {{- end }} command: - - mysqld + - {{ $.database_executable }} - --max_allowed_packet=1024M - --explicit_defaults_for_timestamp=on {{ if ge 10.5 (float64 $.mariadb_version) }} diff --git a/assets/templates/docker-compose/environments/includes/opensearch.base.yml b/assets/templates/docker-compose/environments/includes/opensearch.base.yml index 90a78a1c..c8e22cf2 100644 --- a/assets/templates/docker-compose/environments/includes/opensearch.base.yml +++ b/assets/templates/docker-compose/environments/includes/opensearch.base.yml @@ -31,6 +31,9 @@ services: - discovery.type=single-node - plugins.security.disabled=true - "ES_JAVA_OPTS=-Xms{{ default "64m" $.opensearch_xms }} -Xmx{{ default "512m" $.opensearch_xmx }}" + {{- if ge ( semver "2.12" | (semver ( default "1.2" $.opensearch_version )).Compare ) 0 }} + - OPENSEARCH_INITIAL_ADMIN_PASSWORD={{ $.opensearch_initial_admin_password }} + {{- end }} volumes: - osdata:/usr/share/opensearch/data {{- if isEnabled ( default false $.opensearch_expose ) }} diff --git a/assets/templates/docker-compose/environments/magento2/magento2.splitdb.checkout.base.yml b/assets/templates/docker-compose/environments/magento2/magento2.splitdb.checkout.base.yml index 00b97795..fd50203e 100644 --- a/assets/templates/docker-compose/environments/magento2/magento2.splitdb.checkout.base.yml +++ b/assets/templates/docker-compose/environments/magento2/magento2.splitdb.checkout.base.yml @@ -27,7 +27,7 @@ services: - MYSQL_USER={{ default "magento" $.mysql_user }} - MYSQL_PASSWORD={{ default "magento" $.mysql_password }} command: - - mysqld + - {{ $.database_executable }} - --max_allowed_packet=1024M volumes: - checkoutdbdata:/var/lib/mysql diff --git a/assets/templates/docker-compose/environments/magento2/magento2.splitdb.sales.base.yml b/assets/templates/docker-compose/environments/magento2/magento2.splitdb.sales.base.yml index b602f5ac..9232bae8 100644 --- a/assets/templates/docker-compose/environments/magento2/magento2.splitdb.sales.base.yml +++ b/assets/templates/docker-compose/environments/magento2/magento2.splitdb.sales.base.yml @@ -27,7 +27,7 @@ services: - MYSQL_USER={{ default "magento" $.mysql_user }} - MYSQL_PASSWORD={{ default "magento" $.mysql_password }} command: - - mysqld + - {{ $.database_executable }} - --max_allowed_packet=1024M volumes: - salesdbdata:/var/lib/mysql diff --git a/assets/templates/docker-compose/environments/magento2/magento2.tests.base.yml b/assets/templates/docker-compose/environments/magento2/magento2.tests.base.yml index 1edb1789..b4611f10 100644 --- a/assets/templates/docker-compose/environments/magento2/magento2.tests.base.yml +++ b/assets/templates/docker-compose/environments/magento2/magento2.tests.base.yml @@ -13,7 +13,7 @@ services: - MYSQL_USER={{ default "magento" $.mysql_user }} - MYSQL_PASSWORD={{ default "magento" $.mysql_password }} command: - - mysqld + - {{ $.database_executable }} - --max_allowed_packet=1024M - --explicit_defaults_for_timestamp=on volumes: diff --git a/assets/templates/docker-compose/environments/shopware/db.base.yml b/assets/templates/docker-compose/environments/shopware/db.base.yml index 5a2da122..4cf619df 100644 --- a/assets/templates/docker-compose/environments/shopware/db.base.yml +++ b/assets/templates/docker-compose/environments/shopware/db.base.yml @@ -26,5 +26,5 @@ services: entrypoint: | /bin/bash -c ' echo "$$DB_AUTO_CREATE_SH" > /docker-entrypoint-initdb.d/db-auto-create.sh - exec /usr/local/bin/docker-entrypoint.sh mysqld + exec /usr/local/bin/docker-entrypoint.sh {{ $.database_executable }} ' diff --git a/go.mod b/go.mod index 6724892d..e24df6e6 100644 --- a/go.mod +++ b/go.mod @@ -5,22 +5,23 @@ go 1.22 require ( github.com/Masterminds/semver v1.5.0 github.com/Masterminds/sprig/v3 v3.2.3 - github.com/docker/cli v26.0.0+incompatible - github.com/docker/docker v26.0.0+incompatible - github.com/hashicorp/go-version v1.6.0 + github.com/docker/cli v27.0.3+incompatible + github.com/docker/docker v27.0.3+incompatible + github.com/hashicorp/go-version v1.7.0 github.com/inconshreveable/go-update v0.0.0-20160112193335-8152e7eb6ccf - github.com/jedib0t/go-pretty/v6 v6.5.6 - github.com/sethvargo/go-password v0.2.0 + github.com/jedib0t/go-pretty/v6 v6.5.9 + github.com/pkg/errors v0.9.1 + github.com/sethvargo/go-password v0.3.1 github.com/sirupsen/logrus v1.9.3 github.com/spf13/afero v1.11.0 - github.com/spf13/cobra v1.8.0 + github.com/spf13/cobra v1.8.1 github.com/spf13/pflag v1.0.5 - github.com/spf13/viper v1.18.2 + github.com/spf13/viper v1.19.0 github.com/stretchr/testify v1.9.0 - github.com/ulikunitz/xz v0.5.11 - golang.org/x/crypto v0.21.0 - golang.org/x/sys v0.18.0 - golang.org/x/text v0.14.0 + github.com/ulikunitz/xz v0.5.12 + golang.org/x/crypto v0.24.0 + golang.org/x/sys v0.21.0 + golang.org/x/text v0.16.0 gopkg.in/ini.v1 v1.67.0 gopkg.in/yaml.v3 v3.0.1 ) @@ -29,21 +30,22 @@ require ( dario.cat/mergo v1.0.0 // indirect github.com/Masterminds/goutils v1.1.1 // indirect github.com/Masterminds/semver/v3 v3.2.1 // indirect - github.com/Microsoft/go-winio v0.6.1 // indirect + github.com/Microsoft/go-winio v0.6.2 // indirect github.com/containerd/log v0.1.0 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect - github.com/distribution/reference v0.5.0 // indirect + github.com/distribution/reference v0.6.0 // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-units v0.5.0 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect github.com/fsnotify/fsnotify v1.7.0 // indirect - github.com/go-logr/logr v1.4.1 // indirect + github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect + github.com/go-viper/mapstructure/v2 v2.0.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect github.com/google/uuid v1.6.0 // indirect github.com/hashicorp/hcl v1.0.0 // indirect - github.com/huandu/xstrings v1.4.0 // indirect + github.com/huandu/xstrings v1.5.0 // indirect github.com/imdario/mergo v0.3.16 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/magiconair/properties v1.8.7 // indirect @@ -56,29 +58,28 @@ require ( github.com/morikuni/aec v1.0.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect github.com/opencontainers/image-spec v1.1.0 // indirect - github.com/pelletier/go-toml/v2 v2.2.0 // indirect - github.com/pkg/errors v0.9.1 // indirect + github.com/pelletier/go-toml/v2 v2.2.2 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/rivo/uniseg v0.4.7 // indirect - github.com/sagikazarmark/locafero v0.4.0 // indirect + github.com/sagikazarmark/locafero v0.6.0 // indirect github.com/sagikazarmark/slog-shim v0.1.0 // indirect - github.com/shopspring/decimal v1.3.1 // indirect + github.com/shopspring/decimal v1.4.0 // indirect github.com/sourcegraph/conc v0.3.0 // indirect github.com/spf13/cast v1.6.0 // indirect github.com/subosito/gotenv v1.6.0 // indirect github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/xeipuuv/gojsonschema v1.2.0 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 // indirect - go.opentelemetry.io/otel v1.24.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0 // indirect + go.opentelemetry.io/otel v1.27.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.24.0 // indirect - go.opentelemetry.io/otel/metric v1.24.0 // indirect + go.opentelemetry.io/otel/metric v1.27.0 // indirect go.opentelemetry.io/otel/sdk v1.24.0 // indirect - go.opentelemetry.io/otel/trace v1.24.0 // indirect + go.opentelemetry.io/otel/trace v1.27.0 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/exp v0.0.0-20240325151524-a685a6edb6d8 // indirect - golang.org/x/mod v0.16.0 // indirect - golang.org/x/tools v0.19.0 // indirect + golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 // indirect + golang.org/x/mod v0.18.0 // indirect + golang.org/x/tools v0.22.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gotest.tools/v3 v3.4.0 // indirect ) diff --git a/go.sum b/go.sum index 4cbe9643..48c0da78 100644 --- a/go.sum +++ b/go.sum @@ -13,21 +13,30 @@ github.com/Masterminds/sprig/v3 v3.2.3 h1:eL2fZNezLomi0uOLqjQoN6BfsDD+fyLtgbJMAj github.com/Masterminds/sprig/v3 v3.2.3/go.mod h1:rXcFaZ2zZbLRJv/xSysmlgIM1u11eBaRMhvYXJNkGuM= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= 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/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= +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/cli v26.0.0+incompatible h1:90BKrx1a1HKYpSnnBFR6AgDq/FqkHxwlUyzJVPxD30I= github.com/docker/cli v26.0.0+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= +github.com/docker/cli v27.0.3+incompatible h1:usGs0/BoBW8MWxGeEtqPMkzOY56jZ6kYlSN5BLDioCQ= +github.com/docker/cli v27.0.3+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/docker v26.0.0+incompatible h1:Ng2qi+gdKADUa/VM+6b6YaY2nlZhk/lVJiKR/2bMudU= github.com/docker/docker v26.0.0+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v27.0.3+incompatible h1:aBGI9TeQ4MPlhquTQKq9XbK79rKFVwXNUAYz9aXyEBE= +github.com/docker/docker v27.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= @@ -41,8 +50,12 @@ github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyT github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= +github.com/go-viper/mapstructure/v2 v2.0.0 h1:dhn8MZ1gZ0mzeodTG3jt5Vj/o87xZKuNAprG2mQfMfc= +github.com/go-viper/mapstructure/v2 v2.0.0/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= @@ -59,11 +72,15 @@ github.com/grpc-ecosystem/grpc-gateway/v2 v2.19.0 h1:Wqo399gCIufwto+VfwCSvsnfGpF github.com/grpc-ecosystem/grpc-gateway/v2 v2.19.0/go.mod h1:qmOFXW2epJhM0qSnUUYpldc7gVz2KMQwJ/QYCDIa7XU= github.com/hashicorp/go-version v1.6.0 h1:feTTfFNnjP967rlCxM/I9g701jU+RN74YKx2mOkIeek= github.com/hashicorp/go-version v1.6.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/hashicorp/go-version v1.7.0 h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKeRZfjY= +github.com/hashicorp/go-version v1.7.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/huandu/xstrings v1.3.3/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= github.com/huandu/xstrings v1.4.0 h1:D17IlohoQq4UcpqD7fDk80P7l+lwAmlFaBHgOipl2FU= github.com/huandu/xstrings v1.4.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= +github.com/huandu/xstrings v1.5.0 h1:2ag3IFq9ZDANvthTwTiqSSZLjDc+BedvHPAp5tJy2TI= +github.com/huandu/xstrings v1.5.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= github.com/imdario/mergo v0.3.16 h1:wwQJbIsHYGMUyLSPrEq1CT16AhnhNJQ51+4fdHUnCl4= github.com/imdario/mergo v0.3.16/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY= @@ -73,6 +90,8 @@ github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2 github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/jedib0t/go-pretty/v6 v6.5.6 h1:nKXVLqPfAwY7sWcYXdNZZZ2fjqDpAtj9UeWupgfUxSg= github.com/jedib0t/go-pretty/v6 v6.5.6/go.mod h1:5LQIxa52oJ/DlDSLv0HEkWOFMDGoWkJb9ss5KqPpJBg= +github.com/jedib0t/go-pretty/v6 v6.5.9 h1:ACteMBRrrmm1gMsXe9PSTOClQ63IXDUt03H5U+UV8OU= +github.com/jedib0t/go-pretty/v6 v6.5.9/go.mod h1:zbn98qrYlh95FIhwwsbIip0LYpwSG8SUOScs+v9/t0E= 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/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= @@ -103,6 +122,8 @@ github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQ github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= github.com/pelletier/go-toml/v2 v2.2.0 h1:QLgLl2yMN7N+ruc31VynXs1vhMZa7CeHHejIeBAsoHo= github.com/pelletier/go-toml/v2 v2.2.0/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs= +github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6Wq+LM= +github.com/pelletier/go-toml/v2 v2.2.2/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs= 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= @@ -116,13 +137,19 @@ github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/f github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/sagikazarmark/locafero v0.4.0 h1:HApY1R9zGo4DBgr7dqsTH/JJxLTTsOt7u6keLGt6kNQ= github.com/sagikazarmark/locafero v0.4.0/go.mod h1:Pe1W6UlPYUk/+wc/6KFhbORCfqzgYEpgQ3O5fPuL3H4= +github.com/sagikazarmark/locafero v0.6.0 h1:ON7AQg37yzcRPU69mt7gwhFEBwxI6P9T4Qu3N51bwOk= +github.com/sagikazarmark/locafero v0.6.0/go.mod h1:77OmuIc6VTraTXKXIs/uvUxKGUXjE1GbemJYHqdNjX0= github.com/sagikazarmark/slog-shim v0.1.0 h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6gto+ugjYE= github.com/sagikazarmark/slog-shim v0.1.0/go.mod h1:SrcSrq8aKtyuqEI1uvTDTK1arOWRIczQRv+GVI1AkeQ= github.com/sethvargo/go-password v0.2.0 h1:BTDl4CC/gjf/axHMaDQtw507ogrXLci6XRiLc7i/UHI= github.com/sethvargo/go-password v0.2.0/go.mod h1:Ym4Mr9JXLBycr02MFuVQ/0JHidNetSgbzutTr3zsYXE= +github.com/sethvargo/go-password v0.3.1 h1:WqrLTjo7X6AcVYfC6R7GtSyuUQR9hGyAj/f1PYQZCJU= +github.com/sethvargo/go-password v0.3.1/go.mod h1:rXofC1zT54N7R8K/h1WDUdkf9BOx5OptoxrMBcrXzvs= github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= github.com/shopspring/decimal v1.3.1 h1:2Usl1nmF/WZucqkFZhnfFYxxxu8LG21F6nPQBE5gKV8= github.com/shopspring/decimal v1.3.1/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= +github.com/shopspring/decimal v1.4.0 h1:bxl37RwXBklmTi0C79JfXCEBD1cqqHt0bbgBAGFp81k= +github.com/shopspring/decimal v1.4.0/go.mod h1:gawqmDU56v4yIKSwfBSFip1HdCCXN8/+DMd9qYNcwME= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo= @@ -134,10 +161,14 @@ github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0= github.com/spf13/cast v1.6.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.18.2 h1:LUXCnvUvSM6FXAsj6nnfc8Q2tp1dIgUfY9Kc8GsSOiQ= github.com/spf13/viper v1.18.2/go.mod h1:EKmWIqdnk5lOcmR72yw6hS+8OPYcwD0jteitLMVB+yk= +github.com/spf13/viper v1.19.0 h1:RWq5SEjt8o25SROyN3z2OrDB9l7RPd3lwTWU8EcEdcI= +github.com/spf13/viper v1.19.0/go.mod h1:GQUN9bilAbhU/jgc1bKs99f/suXKeUMct8Adx5+Ntkg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= @@ -155,6 +186,8 @@ github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8 github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= github.com/ulikunitz/xz v0.5.11 h1:kpFauv27b6ynzBNT/Xy+1k+fK4WswhN/6PN5WhFAGw8= github.com/ulikunitz/xz v0.5.11/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= +github.com/ulikunitz/xz v0.5.12 h1:37Nm15o69RwBkXM0J6A5OlE67RZTfzUxTj8fB3dfcsc= +github.com/ulikunitz/xz v0.5.12/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb h1:zGWFAtiMcyryUHoUjUJX0/lt1H2+i2Ka2n+D3DImSNo= github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= @@ -167,18 +200,26 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0 h1:jq9TW8u3so/bN+JPT166wjOI6/vQPF6Xe7nMNIltagk= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0/go.mod h1:p8pYQP+m5XfbZm9fxtSKAbM6oIllS7s2AfxrChvc7iw= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0 h1:9l89oX4ba9kHbBol3Xin3leYJ+252h0zszDtBwyKe2A= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.52.0/go.mod h1:XLZfZboOJWHNKUv7eH0inh0E9VV6eWDFB/9yJyTLPp0= go.opentelemetry.io/otel v1.24.0 h1:0LAOdjNmQeSTzGBzduGe/rU4tZhMwL5rWgtp9Ku5Jfo= go.opentelemetry.io/otel v1.24.0/go.mod h1:W7b9Ozg4nkF5tWI5zsXkaKKDjdVjpD4oAt9Qi/MArHo= +go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg= +go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.24.0 h1:t6wl9SPayj+c7lEIFgm4ooDBZVb01IhLB4InpomhRw8= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.24.0/go.mod h1:iSDOcsnSA5INXzZtwaBPrKp/lWu/V14Dd+llD0oI2EA= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.24.0 h1:Xw8U6u2f8DK2XAkGRFV7BBLENgnTGX9i4rQRxJf+/vs= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.24.0/go.mod h1:6KW1Fm6R/s6Z3PGXwSJN2K4eT6wQB3vXX6CVnYX9NmM= go.opentelemetry.io/otel/metric v1.24.0 h1:6EhoGWWK28x1fbpA4tYTOWBkPefTDQnb8WSGXlc88kI= go.opentelemetry.io/otel/metric v1.24.0/go.mod h1:VYhLe1rFfxuTXLgj4CBiyz+9WYBA8pNGJgDcSFRKBco= +go.opentelemetry.io/otel/metric v1.27.0 h1:hvj3vdEKyeCi4YaYfNjv2NUje8FqKqUY8IlF0FxV/ik= +go.opentelemetry.io/otel/metric v1.27.0/go.mod h1:mVFgmRlhljgBiuk/MP/oKylr4hs85GZAylncepAX/ak= go.opentelemetry.io/otel/sdk v1.24.0 h1:YMPPDNymmQN3ZgczicBY3B6sf9n62Dlj9pWD3ucgoDw= go.opentelemetry.io/otel/sdk v1.24.0/go.mod h1:KVrIYw6tEubO9E96HQpcmpTKDVn9gdv35HoYiQWGDFg= go.opentelemetry.io/otel/trace v1.24.0 h1:CsKnnL4dUAr/0llH9FKuc698G04IrpWV0MQA/Y1YELI= go.opentelemetry.io/otel/trace v1.24.0/go.mod h1:HPc3Xr/cOApsBI154IU0OI0HJexz+aw5uPdbs3UCjNU= +go.opentelemetry.io/otel/trace v1.27.0 h1:IqYb813p7cmbHk0a5y6pD5JPakbVfftRXABGt5/Rscw= +go.opentelemetry.io/otel/trace v1.27.0/go.mod h1:6RiD1hkAprV4/q+yd2ln1HG9GoPx39SuvvstaLBl+l4= go.opentelemetry.io/proto/otlp v1.1.0 h1:2Di21piLrCqJ3U3eXGCTPHE9R8Nh+0uglSnOyxikMeI= go.opentelemetry.io/proto/otlp v1.1.0/go.mod h1:GpBHCBWiqvVLDqmHZsoMM3C5ySeKTC7ej/RNTae6MdY= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= @@ -190,13 +231,19 @@ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA= golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= +golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= +golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= golang.org/x/exp v0.0.0-20240325151524-a685a6edb6d8 h1:aAcj0Da7eBAtrTp03QXWvm88pSyOt+UgdZw2BFZ+lEw= golang.org/x/exp v0.0.0-20240325151524-a685a6edb6d8/go.mod h1:CQ1k9gNrJ50XIzaKCRR2hssIjF07kZFEiieALBM/ARQ= +golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 h1:yixxcjnhBmY0nkL253HFVIm0JsFHwrHdT3Yh6szTnfY= +golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8/go.mod h1:jj3sYF3dwk5D+ghuXyeI3r5MFf+NT2An6/9dOA95KSI= 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.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic= golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.18.0 h1:5+9lSbEzPSdWkH32vYPBwEpX8KwDbM52Ud9xBUvNlb0= +golang.org/x/mod v0.18.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= 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= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -206,6 +253,7 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/net v0.22.0 h1:9sGLhx7iRIHEiX0oAJ3MRZMUCElJgy7Br1nO+AMN3Tc= golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= +golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ= 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= @@ -224,17 +272,22 @@ golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= +golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= 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.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/term v0.18.0 h1:FcHjZXDMxI8mM3nwhX9HlKop4C0YQvCVCdwYl2wOtE8= golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= +golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= 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.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4= +golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -245,15 +298,20 @@ golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.19.0 h1:tfGCXNR1OsFG+sVdLAitlpjAvD/I6dHDKnYrpEZUHkw= golang.org/x/tools v0.19.0/go.mod h1:qoJWxmGSIBmAeriMx19ogtrEPrGtDbPK634QFIcLAhc= +golang.org/x/tools v0.22.0 h1:gqSGLZqv+AI9lIQzniJ0nZDRG5GBPsSi+DRNHWNz6yA= +golang.org/x/tools v0.22.0/go.mod h1:aCwcsjqvq7Yqt6TNyX7QMU2enbQ/Gt0bo6krSeEri+c= 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= google.golang.org/genproto v0.0.0-20231106174013-bbf56f31fb17 h1:wpZ8pe2x1Q3f2KyT5f8oP/fa9rHAKgFPr/HZdNuS+PQ= +google.golang.org/genproto v0.0.0-20240213162025-012b6fc9bca9 h1:9+tzLLstTlPTRyJTh+ah5wIMsBW5c4tQwGTN3thOW9Y= google.golang.org/genproto/googleapis/api v0.0.0-20240102182953-50ed04b92917 h1:rcS6EyEaoCO52hQDupoSfrxI3R6C2Tq741is7X8OvnM= google.golang.org/genproto/googleapis/api v0.0.0-20240102182953-50ed04b92917/go.mod h1:CmlNWB9lSezaYELKS5Ym1r44VrrbPUa7JTvw+6MbpJ0= +google.golang.org/genproto/googleapis/api v0.0.0-20240311132316-a219d84964c2 h1:rIo7ocm2roD9DcFIX67Ym8icoGCKSARAiPljFhh5suQ= google.golang.org/genproto/googleapis/rpc v0.0.0-20240102182953-50ed04b92917 h1:6G8oQ016D88m1xAKljMlBOOGWDZkes4kMhgGFlf8WcQ= google.golang.org/genproto/googleapis/rpc v0.0.0-20240102182953-50ed04b92917/go.mod h1:xtjpI3tXFPP051KaWnhvxkiubL/6dJ18vLVf7q2pTOU= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240314234333-6e1732d8331c h1:lfpJ/2rWPa/kJgxyyXM8PrNnfCzcmxJ265mADgwmvLI= google.golang.org/grpc v1.61.1 h1:kLAiWrZs7YeDM6MumDe7m3y4aM6wacLzM1Y/wiLP9XY= google.golang.org/grpc v1.61.1/go.mod h1:VUbo7IFqmF1QtCAstipjG0GIoq49KvMe9+h1jFLBNJs= google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I= diff --git a/internal/config/config.go b/internal/config/config.go index bf36e3f4..9d6d59d6 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -207,14 +207,14 @@ func (c *Config) Init() *Config { if c.EnvType() == "magento1" { c.SetDefault(fmt.Sprintf("%s_magento_version", c.AppName()), "1.9.4") } else { - c.SetDefault(fmt.Sprintf("%s_magento_version", c.AppName()), "2.4.6-p3") + c.SetDefault(fmt.Sprintf("%s_magento_version", c.AppName()), "2.4.7-p1") } c.SetDefault(fmt.Sprintf("%s_magento_type", c.AppName()), "community") c.SetDefault(fmt.Sprintf("%s_magento_mode", c.AppName()), "developer") c.SetDefault(fmt.Sprintf("%s_db_prefix", c.AppName()), "") c.SetDefault(fmt.Sprintf("%s_crypt_key", c.AppName()), "") - c.SetDefault(fmt.Sprintf("%s_shopware_version", c.AppName()), "6.4.18.0") + c.SetDefault(fmt.Sprintf("%s_shopware_version", c.AppName()), "6.6.3.1") c.SetDefault(fmt.Sprintf("%s_shopware_mode", c.AppName()), "production") c.SetDefault(fmt.Sprintf("%s_env_db_command", c.AppName()), "mysql") @@ -222,6 +222,22 @@ func (c *Config) Init() *Config { c.SetDefault(fmt.Sprintf("%s_env_db_container", c.AppName()), "db") c.SetDefault(fmt.Sprintf("%s_single_web_container", c.AppName()), false) + // If Opensearch is enabled and the version is >= 2.12 then set the initial admin password + if c.ServiceEnabled("opensearch") { + opensearchVersion := c.GetString("OPENSEARCH_VERSION") + if opensearchVersion != "" && version.Must(version.NewVersion(opensearchVersion)).GreaterThanOrEqual(version.Must(version.NewVersion("2.12.0"))) { + c.SetDefault("OPENSEARCH_INITIAL_ADMIN_PASSWORD", "OpensearchPassword123!") + } + } + + c.SetDefault("DATABASE_EXECUTABLE", "mysqld") + if c.GetString("MARIADB_VERSION") != "" { + mariadbVersion := c.GetString("MARIADB_VERSION") + if version.Must(version.NewVersion(mariadbVersion)).GreaterThanOrEqual(version.Must(version.NewVersion("11.0"))) { + c.Set("DATABASE_EXECUTABLE", "mariadbd") + } + } + c.SetLogging() return c @@ -625,7 +641,7 @@ func (c *Config) EnvTypes() map[string]string { `%[1]v_DB=true %[1]v_REDIS=true -MARIADB_VERSION=10.4 +MARIADB_VERSION=10.6 NODE_VERSION=16 PHP_VERSION=8.2 REDIS_VERSION=6.0 @@ -673,14 +689,14 @@ BLACKFIRE_SERVER_TOKEN= %[1]v_MERCURE=false ELASTICSEARCH_VERSION=7.16 -OPENSEARCH_VERSION=1.2 -MARIADB_VERSION=10.4 +OPENSEARCH_VERSION=2.12 +MARIADB_VERSION=10.6 NODE_VERSION=16 -PHP_VERSION=8.2 -RABBITMQ_VERSION=3.9 -REDIS_VERSION=6.0 +PHP_VERSION=8.3 +RABBITMQ_VERSION=3.12 +REDIS_VERSION=7.2 VARNISH_VERSION=7.0 -COMPOSER_VERSION=2.2.22 +COMPOSER_VERSION=2.7.7 %[1]v_SYNC_IGNORE= @@ -705,9 +721,9 @@ XDEBUG_VERSION= "laravel": fmt.Sprintf( `MARIADB_VERSION=10.4 NODE_VERSION=16 -PHP_VERSION=8.2 -REDIS_VERSION=6.0 -COMPOSER_VERSION=2 +PHP_VERSION=8.3 +REDIS_VERSION=7.2 +COMPOSER_VERSION=2.7.7 %[1]v_DB=true %[1]v_REDIS=true @@ -740,7 +756,7 @@ MAIL_DRIVER=sendmail "pwa-studio": fmt.Sprintf( `NODE_VERSION=16 %[1]v_VARNISH=false -VARNISH_VERSION=6.5 +VARNISH_VERSION=7.4 `, strings.ToUpper(c.AppName()), ), @@ -757,11 +773,11 @@ VARNISH_VERSION=6.5 MARIADB_VERSION=10.4 NODE_VERSION=16 -PHP_VERSION=8.2 +PHP_VERSION=8.3 RABBITMQ_VERSION=3.8 -REDIS_VERSION=6.0 -VARNISH_VERSION=6.5 -COMPOSER_VERSION=2 +REDIS_VERSION=7.2 +VARNISH_VERSION=7.4 +COMPOSER_VERSION=2.7.7 `, strings.ToUpper(c.AppName()), ), @@ -773,21 +789,22 @@ COMPOSER_VERSION=2 %[1]v_OPENSEARCH=true %[1]v_VARNISH=false -MARIADB_VERSION=10.4 +MARIADB_VERSION=11.3 +OPENSEARCH_VERSION=2.12 NODE_VERSION=16 -PHP_VERSION=8.2 +PHP_VERSION=8.3 RABBITMQ_VERSION=3.8 -REDIS_VERSION=6.0 +REDIS_VERSION=7.2 VARNISH_VERSION=6.5 -COMPOSER_VERSION=2.4.4 +COMPOSER_VERSION=2.7.7 `, strings.ToUpper(c.AppName()), ), "wordpress": fmt.Sprintf( - `MARIADB_VERSION=10.4 + `MARIADB_VERSION=11.3 NODE_VERSION=16 -PHP_VERSION=8.2 -COMPOSER_VERSION=2 +PHP_VERSION=8.3 +COMPOSER_VERSION=2.7.7 %[1]v_DB=true %[1]v_REDIS=false @@ -818,11 +835,11 @@ DB_PASSWORD=wordpress %[1]v_OPENSEARCH=false %[1]v_VARNISH=false -RABBITMQ_VERSION=3.8 -ELASTICSEARCH_VERSION=7.16 -OPENSEARCH_VERSION=1.2 -REDIS_VERSION=6.0 -VARNISH_VERSION=6.5`, strings.ToUpper(c.AppName()), +RABBITMQ_VERSION=3.12 +ELASTICSEARCH_VERSION=8.13 +OPENSEARCH_VERSION=2.12 +REDIS_VERSION=7.2 +VARNISH_VERSION=7.4`, strings.ToUpper(c.AppName()), ), } } diff --git a/internal/logic/bootstrapMagento2.go b/internal/logic/bootstrapMagento2.go index 4d592e64..bc03613a 100644 --- a/internal/logic/bootstrapMagento2.go +++ b/internal/logic/bootstrapMagento2.go @@ -344,13 +344,44 @@ func (c *bootstrapper) installMagento2ConfigureSearch() error { return errors.Wrap(err, "setting magento search engine index prefix") } - if err := c.RunCmdEnvExec( - fmt.Sprintf( - "bin/magento config:set --lock-env catalog/search/%s_enable_auth 0", - searchEngine, - ), - ); err != nil { - return errors.Wrap(err, "disabling magento search engine auth") + // Enable auth if OpenSearch is enabled and version is 2.12.0 or above + openSearchInitialAdminPassword := c.GetString("OPENSEARCH_INITIAL_ADMIN_PASSWORD") + if openSearchInitialAdminPassword != "" { + if err := c.RunCmdEnvExec( + fmt.Sprintf( + "bin/magento config:set --lock-env catalog/search/%s_enable_auth 1", + searchEngine, + ), + ); err != nil { + return errors.Wrap(err, "disabling magento search engine auth") + } + if err := c.RunCmdEnvExec( + fmt.Sprintf( + "bin/magento config:set --lock-env catalog/search/%s_username admin", + searchEngine, + ), + ); err != nil { + return errors.Wrap(err, "disabling magento search engine auth") + } + + if err := c.RunCmdEnvExec( + fmt.Sprintf( + "bin/magento config:set --lock-env catalog/search/%s_password %s", + searchEngine, + openSearchInitialAdminPassword, + ), + ); err != nil { + return errors.Wrap(err, "disabling magento search engine auth") + } + } else { + if err := c.RunCmdEnvExec( + fmt.Sprintf( + "bin/magento config:set --lock-env catalog/search/%s_enable_auth 0", + searchEngine, + ), + ); err != nil { + return errors.Wrap(err, "disabling magento search engine auth") + } } if err := c.RunCmdEnvExec( diff --git a/internal/logic/bootstrapShopware.go b/internal/logic/bootstrapShopware.go index 39882127..0f8750c5 100644 --- a/internal/logic/bootstrapShopware.go +++ b/internal/logic/bootstrapShopware.go @@ -4,6 +4,7 @@ import ( "bytes" "container/list" "fmt" + "net/url" "path/filepath" "text/template" @@ -126,7 +127,7 @@ func (c *bootstrapper) installShopwareProdSetup(freshInstall bool) error { "--no-interaction --force "+ "--app-env dev --app-url https://%s "+ "--database-url mysql://app:app@db:3306/shopware "+ - "--es-enabled=%d --es-hosts=%s:9200 --es-indexing-enabled=%d "+ + "--es-enabled=%d --es-hosts=%s --es-indexing-enabled=%d "+ "--cdn-strategy=physical_filename "+ "--mailer-url=native://default", c.TraefikFullDomain(), @@ -138,6 +139,13 @@ func (c *bootstrapper) installShopwareProdSetup(freshInstall bool) error { return errors.Wrap(err, "running shopware system:setup") } + // Add LOCK_DSN to .env + if err := c.RunCmdEnvExec( + `echo 'LOCK_DSN="flock://var/lock"' >> .env`, + ); err != nil { + return errors.Wrap(err, "adding LOCK_DSN to .env") + } + params := "" if freshInstall { params = "--basic-setup" @@ -158,8 +166,16 @@ func (c *bootstrapper) installShopwareProdSetup(freshInstall bool) error { // Ignore if themes cannot be dumped. _ = c.RunCmdEnvExec("export CI=1 && bin/console theme:dump") - if err := c.RunCmdEnvExec("export PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=1 && bin/build.sh"); err != nil { - return errors.Wrap(err, "building storefront") + if err := c.RunCmdEnvExec("export PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=1 && if [ -f 'bin/build.sh' ]; then bin/build.sh; fi"); err != nil { + return errors.Wrap(err, "running shopware bin/build.sh") + } + + if err := c.RunCmdEnvExec("export PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=1 && if [ -f 'bin/build-storefront.sh']; then bin/build-storefront.sh; fi"); err != nil { + return errors.Wrap(err, "running shopware bin/build-storefront.sh") + } + + if err := c.RunCmdEnvExec("export PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=1 && if [ -f 'bin/build-administration.sh']; then bin/build-administration.sh; fi"); err != nil { + return errors.Wrap(err, "running shopware bin/build-administration.sh") } if err := c.RunCmdEnvExec("bin/console system:update:finish --no-interaction"); err != nil { @@ -193,13 +209,22 @@ func (c *bootstrapper) installShopwareConfigureSearch() (int, string) { { switch { case c.ServiceEnabled("opensearch"): - searchHost = "opensearch" + searchEnabled = 1 + searchHost = "http://opensearch:9200" c.Set("SHOPWARE_SEARCH_ENABLED", 1) c.Set("SHOPWARE_SEARCH_INDEXING_ENABLED", 1) c.Set("SHOPWARE_SEARCH_HOST", "opensearch") + openSearchInitialAdminPassword := c.GetString("OPENSEARCH_INITIAL_ADMIN_PASSWORD") + if openSearchInitialAdminPassword != "" { + c.Set("SHOPWARE_SEARCH_USERNAME", "admin") + c.Set("SHOPWARE_SEARCH_PASSWORD", openSearchInitialAdminPassword) + searchHost = "http://admin:" + url.PathEscape(openSearchInitialAdminPassword) + "@opensearch:9200" + } + case c.ServiceEnabled("elasticsearch"): + searchEnabled = 1 searchHost = "elasticsearch" c.Set("SHOPWARE_SEARCH_ENABLED", 1) diff --git a/sonar-project.properties b/sonar-project.properties index f3932965..87acead6 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -2,7 +2,7 @@ sonar.projectKey=rewardenv_reward sonar.organization=rewardenv # This is the name and version displayed in the SonarCloud UI. sonar.projectName=reward -sonar.projectVersion=0.6.6 +sonar.projectVersion=0.6.7 # Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows. #sonar.sources=. # Encoding of the source code. Default is default system encoding