Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
b94d378
Migrate messaging DB package to mongo-driver v2
kschneider84 Mar 13, 2026
4a26a41
Migrate management-user db package to mongo-driver v2
kschneider84 Mar 16, 2026
beaacbe
migrate global-infos db package to mongo-driver v2
kschneider84 Mar 16, 2026
6e75dcc
migrate participant-user db package to mongo-driver v2
kschneider84 Mar 16, 2026
2b607fd
use contect.Context instead of mongo.SessionContext
kschneider84 Mar 17, 2026
5f34d1b
update imports
kschneider84 Mar 17, 2026
981027b
migrate study db package to mongo-driver v2
kschneider84 Mar 18, 2026
cd8c375
package study: update import to mongodriver v2 and changed changed an…
kschneider84 Mar 18, 2026
c2ab6ae
package user-management: updated to mongodriver v2, changed any insta…
kschneider84 Mar 18, 2026
ad06833
services: updated the mongo driver to v2
kschneider84 Mar 18, 2026
c85f42b
update jobs packages with new mongo-driver v2
kschneider84 Mar 18, 2026
ac4a047
renamed files for consistent naming
kschneider84 Mar 18, 2026
f019767
Fix management user db: decouple DropIndexes(defaults) from CreateInd…
kschneider84 Mar 23, 2026
b5ecff7
Fix messaging and global infos db: decouple DropIndexes(defaults) fro…
kschneider84 Mar 23, 2026
cf679f6
Fix study and participant user db: decouple DropIndexes from CreateIn…
kschneider84 Mar 24, 2026
d8e6689
Update mongo-driver update protocol
kschneider84 Mar 27, 2026
34ac9fd
update test protocol
kschneider84 Apr 10, 2026
79aa54b
Update test protocol
kschneider84 Apr 10, 2026
5a650a3
Update test protocol
kschneider84 Apr 13, 2026
16d85be
Update test protocol
kschneider84 Apr 15, 2026
4576e99
Update test protocol
kschneider84 Apr 15, 2026
6d769d4
Update test protocol
kschneider84 Apr 21, 2026
c723f95
Update test protocol
kschneider84 Apr 21, 2026
ce8de51
Update test protocol
kschneider84 Apr 21, 2026
34efe32
Update test protocol
kschneider84 Apr 21, 2026
b97d86b
Update test protocol
kschneider84 Apr 22, 2026
3cee36c
Update test protocol
kschneider84 Apr 22, 2026
70507e4
move test protocol to test folder
kschneider84 Apr 22, 2026
986e3b2
rename variable to avoid shadowing options package
kschneider84 Apr 22, 2026
30f644f
Remove dead context.WithTimeout since mongo.Connect no longer accepts…
kschneider84 Apr 22, 2026
374b01d
rename variable to avoid shadowing
kschneider84 Apr 22, 2026
1c9101a
remove redundant fmt.Sprintf
kschneider84 Apr 22, 2026
4e3e138
Avoid passing explicit nil as variadic opts
kschneider84 Apr 22, 2026
fe7ea79
Avoid passing explicit nil to DeleteMany
kschneider84 Apr 23, 2026
0cf3766
Add error handling for InsertOne
kschneider84 Apr 24, 2026
0800e7e
Avoid passing nil to DeleteOne
kschneider84 Apr 24, 2026
456f2e1
Fix typo
kschneider84 Apr 28, 2026
1708f39
Merge remote-tracking branch 'upstream/main' into mongo-db-driver-update
kschneider84 Jun 15, 2026
2573920
Update mongo driver version
kschneider84 Jun 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ logs
test/run-management-api.sh
test/run-smtp-bridge.sh
test/run-participant-api.sh
test/run-all.sh
test/participant-api.yaml
test/smtp-bridge.yaml
*-api-routes.txt
Expand Down
6 changes: 2 additions & 4 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ require (
github.com/gin-contrib/cors v1.7.6
github.com/gin-gonic/gin v1.10.1
github.com/golang-jwt/jwt/v5 v5.3.0
go.mongodb.org/mongo-driver v1.17.4
go.mongodb.org/mongo-driver/v2 v2.5.0
)

require (
Expand All @@ -24,7 +24,6 @@ require (
github.com/go-playground/universal-translator v0.18.1 // indirect
github.com/go-playground/validator/v10 v10.27.0 // indirect
github.com/goccy/go-json v0.10.5 // indirect
github.com/golang/snappy v1.0.0 // indirect
github.com/json-iterator/go v1.1.12 // indirect
github.com/klauspost/compress v1.18.0 // indirect
github.com/klauspost/cpuid/v2 v2.3.0 // indirect
Expand All @@ -34,12 +33,11 @@ require (
github.com/mattn/go-isatty v0.0.20 // indirect
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/pelletier/go-toml/v2 v2.2.4 // indirect
github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
github.com/ugorji/go/codec v1.3.0 // indirect
github.com/xdg-go/pbkdf2 v1.0.0 // indirect
github.com/xdg-go/scram v1.1.2 // indirect
github.com/xdg-go/scram v1.2.0 // indirect
github.com/xdg-go/stringprep v1.0.4 // indirect
github.com/youmark/pkcs8 v0.0.0-20240726163527-a2c0da244d78 // indirect
golang.org/x/arch v0.20.0 // indirect
Expand Down
12 changes: 4 additions & 8 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,6 @@ 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/golang-jwt/jwt/v5 v5.3.0 h1:pv4AsKCKKZuqlgs5sUmn4x8UlGa0kEVt/puTpKx9vvo=
github.com/golang-jwt/jwt/v5 v5.3.0/go.mod h1:fxCRLWMO43lRc8nhHWY6LGqRcf+1gQWArsqaEUEa5bE=
github.com/golang/snappy v1.0.0 h1:Oy607GVXHs7RtbggtPBnr2RmDArIsAefDwvrdWvRhGs=
github.com/golang/snappy v1.0.0/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
Expand All @@ -54,8 +52,6 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
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/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/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
Expand All @@ -77,15 +73,15 @@ github.com/ugorji/go/codec v1.3.0 h1:Qd2W2sQawAfG8XSvzwhBeoGq71zXOC/Q1E9y/wUcsUA
github.com/ugorji/go/codec v1.3.0/go.mod h1:pRBVtBSKl77K30Bv8R2P+cLSGaTtex6fsA2Wjqmfxj4=
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=
github.com/xdg-go/scram v1.1.2/go.mod h1:RT/sEzTbU5y00aCK8UOx6R7YryM0iF1N2MOmC3kKLN4=
github.com/xdg-go/scram v1.2.0 h1:bYKF2AEwG5rqd1BumT4gAnvwU/M9nBp2pTSxeZw7Wvs=
github.com/xdg-go/scram v1.2.0/go.mod h1:3dlrS0iBaWKYVt2ZfA4cj48umJZ+cAEbR6/SjLA88I8=
github.com/xdg-go/stringprep v1.0.4 h1:XLI/Ng3O1Atzq0oBs3TWm+5ZVgkq2aqdlvP9JtoZ6c8=
github.com/xdg-go/stringprep v1.0.4/go.mod h1:mPGuuIYwz7CmR2bT9j4GbQqutWS1zV24gijq1dTyGkM=
github.com/youmark/pkcs8 v0.0.0-20240726163527-a2c0da244d78 h1:ilQV1hzziu+LLM3zUTJ0trRztfwgjqKnBWNtSRkbmwM=
github.com/youmark/pkcs8 v0.0.0-20240726163527-a2c0da244d78/go.mod h1:aL8wCCfTfSfmXjznFBSZNN13rSJjlIOI1fUNAtF7rmI=
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
go.mongodb.org/mongo-driver v1.17.4 h1:jUorfmVzljjr0FLzYQsGP8cgN/qzzxlY9Vh0C9KFXVw=
go.mongodb.org/mongo-driver v1.17.4/go.mod h1:Hy04i7O2kC4RS06ZrhPRqj/u4DTYkFDAAccj+rVKqgQ=
go.mongodb.org/mongo-driver/v2 v2.5.0 h1:yXUhImUjjAInNcpTcAlPHiT7bIXhshCTL3jVBkF3xaE=
go.mongodb.org/mongo-driver/v2 v2.5.0/go.mod h1:yOI9kBsufol30iFsl1slpdq1I0eHPzybRWdyYUs8K/0=
golang.org/x/arch v0.20.0 h1:dx1zTU0MAE98U+TQ8BLl7XsJbgze2WnNKF/8tGp/Q6c=
golang.org/x/arch v0.20.0/go.mod h1:bdwinDaKcfZUGpH09BB7ZmOfhalA8lQdzl62l8gGWsk=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
Expand Down
2 changes: 1 addition & 1 deletion jobs/db-migration/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import (
"path/filepath"
"time"

"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/v2/bson"
)

func main() {
Expand Down
5 changes: 2 additions & 3 deletions jobs/messaging/participant-messages.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,7 @@ import (
messagingTypes "github.com/case-framework/case-backend/pkg/messaging/types"
studyservice "github.com/case-framework/case-backend/pkg/study"
studyTypes "github.com/case-framework/case-backend/pkg/study/types"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/bson/primitive"
"go.mongodb.org/mongo-driver/v2/bson"
)

func handleParticipantMessages(wg *sync.WaitGroup) {
Expand Down Expand Up @@ -174,7 +173,7 @@ func getRelevantMessages(p studyTypes.Participant) []studyTypes.StudyMessage {
if message.ScheduledFor > time.Now().Unix() {
continue
}
_id, err := primitive.ObjectIDFromHex(message.ID)
_id, err := bson.ObjectIDFromHex(message.ID)
if err != nil {
slog.Error("Error parsing message id", slog.String("messageID", message.ID), slog.String("error", err.Error()))
continue
Expand Down
2 changes: 1 addition & 1 deletion jobs/messaging/scheduled-messages.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import (
studyTypes "github.com/case-framework/case-backend/pkg/study/types"
umTypes "github.com/case-framework/case-backend/pkg/user-management/types"
umUtils "github.com/case-framework/case-backend/pkg/user-management/utils"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/v2/bson"
)

func handleScheduledMessages(wg *sync.WaitGroup) {
Expand Down
2 changes: 1 addition & 1 deletion jobs/study-daily-data-export/response-exporter.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import (
surveydefinition "github.com/case-framework/case-backend/pkg/study/exporter/survey-definition"
surveyresponses "github.com/case-framework/case-backend/pkg/study/exporter/survey-responses"
studyTypes "github.com/case-framework/case-backend/pkg/study/types"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/v2/bson"
)

func runResponseExportsForTask(rExpTask ResponseExportTask) {
Expand Down
2 changes: 1 addition & 1 deletion jobs/study-timer/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import (
studyservice "github.com/case-framework/case-backend/pkg/study"
studyTypes "github.com/case-framework/case-backend/pkg/study/types"
studyUtils "github.com/case-framework/case-backend/pkg/study/utils"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/v2/bson"
)

func main() {
Expand Down
2 changes: 1 addition & 1 deletion jobs/user-management/generate-id-lookup.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import (
studyService "github.com/case-framework/case-backend/pkg/study"
studyTypes "github.com/case-framework/case-backend/pkg/study/types"
umTypes "github.com/case-framework/case-backend/pkg/user-management/types"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/v2/bson"
)

func generateProfileIDLookup() {
Expand Down
2 changes: 1 addition & 1 deletion jobs/user-management/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import (
"log/slog"
"time"

"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/v2/bson"

emailsending "github.com/case-framework/case-backend/pkg/messaging/email-sending"
emailTypes "github.com/case-framework/case-backend/pkg/messaging/types"
Expand Down
2 changes: 1 addition & 1 deletion jobs/user-management/migrate-account-info.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import (
studyUtils "github.com/case-framework/case-backend/pkg/study/utils"
umTypes "github.com/case-framework/case-backend/pkg/user-management/types"
umUtils "github.com/case-framework/case-backend/pkg/user-management/utils"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/v2/bson"
)

func migrateAccountInfo() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import (

surveyresponses "github.com/case-framework/case-backend/pkg/study/exporter/survey-responses"
"github.com/gin-gonic/gin"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/v2/bson"
)

type PagenatedQuery struct {
Expand Down
32 changes: 20 additions & 12 deletions pkg/db/global-infos/blocked-jwts.go
Original file line number Diff line number Diff line change
@@ -1,15 +1,24 @@
package globalinfos

import (
"fmt"
"log/slog"
"time"

"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/mongo/options"
"go.mongodb.org/mongo-driver/v2/bson"
"go.mongodb.org/mongo-driver/v2/mongo"
"go.mongodb.org/mongo-driver/v2/mongo/options"
)

const (
idxBlockedJwtsToken = "token_1"
idxBlockedJwtsExpiresAt = "expiresAt_1"
)

var defaultBlockedJwtIndexNames = []string{
idxBlockedJwtsToken,
idxBlockedJwtsExpiresAt,
}

type BlockedJwt struct {
Token string `bson:"token"`
ExpiresAt time.Time `bson:"expiresAt"`
Expand All @@ -20,13 +29,13 @@ var indexesForBlockedJwtsCollection = []mongo.IndexModel{
Keys: bson.D{
{Key: "token", Value: 1},
},
Options: options.Index().SetName("token_1"),
Options: options.Index().SetName(idxBlockedJwtsToken),
},
{
Keys: bson.D{
{Key: "expiresAt", Value: 1},
},
Options: options.Index().SetExpireAfterSeconds(0).SetName("expiresAt_1"),
Options: options.Index().SetExpireAfterSeconds(0).SetName(idxBlockedJwtsExpiresAt),
},
}

Expand All @@ -35,18 +44,17 @@ func (dbService *GlobalInfosDBService) DropIndexForBlockedJwtsCollection(dropAll
defer cancel()

if dropAll {
_, err := dbService.collectionBlockedJwts().Indexes().DropAll(ctx)
err := dbService.collectionBlockedJwts().Indexes().DropAll(ctx)
if err != nil {
slog.Error("Error dropping all indexes for blocked jwts", slog.String("error", err.Error()))
}
} else {
for _, index := range indexesForBlockedJwtsCollection {
if index.Options == nil || index.Options.Name == nil {
slog.Error("Index name is nil for blocked jwts collection", slog.String("index", fmt.Sprintf("%+v", index)))
for _, indexName := range defaultBlockedJwtIndexNames {
if indexName == "" {
slog.Error("Index name is empty for blocked jwts collection")
continue
}
indexName := *index.Options.Name
_, err := dbService.collectionBlockedJwts().Indexes().DropOne(ctx, indexName)
err := dbService.collectionBlockedJwts().Indexes().DropOne(ctx, indexName)
if err != nil {
slog.Error("Error dropping index for blocked jwts", slog.String("error", err.Error()), slog.String("indexName", indexName))
}
Expand Down
11 changes: 4 additions & 7 deletions pkg/db/global-infos/db.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ import (
"time"

"github.com/case-framework/case-backend/pkg/db"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/mongo/options"
"go.mongodb.org/mongo-driver/v2/bson"
"go.mongodb.org/mongo-driver/v2/mongo"
"go.mongodb.org/mongo-driver/v2/mongo/options"
)

// collection names
Expand All @@ -26,10 +26,7 @@ type GlobalInfosDBService struct {
}

func NewGlobalInfosDBService(configs db.DBConfig) (*GlobalInfosDBService, error) {
ctx, cancel := context.WithTimeout(context.Background(), time.Duration(configs.Timeout)*time.Second)
defer cancel()

dbClient, err := mongo.Connect(ctx,
dbClient, err := mongo.Connect(
options.Client().ApplyURI(configs.URI),
options.Client().SetMaxConnIdleTime(time.Duration(configs.IdleConnTimeout)*time.Second),
options.Client().SetMaxPoolSize(configs.MaxPoolSize),
Expand Down
36 changes: 23 additions & 13 deletions pkg/db/global-infos/temptoken.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,38 +2,49 @@ package globalinfos

import (
"errors"
"fmt"
"log/slog"
"time"

"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/mongo/options"
"go.mongodb.org/mongo-driver/v2/bson"
"go.mongodb.org/mongo-driver/v2/mongo"
"go.mongodb.org/mongo-driver/v2/mongo/options"

userTypes "github.com/case-framework/case-backend/pkg/user-management/types"
umUtils "github.com/case-framework/case-backend/pkg/user-management/utils"
)

const (
idxTemptokensUserIDInstanceIDPurpose = "userID_1_instanceID_1_purpose_1"
idxTemptokensExpiration = "expiration_1"
idxTemptokensToken = "token_1"
)

var defaultTemptokenIndexNames = []string{
idxTemptokensUserIDInstanceIDPurpose,
idxTemptokensExpiration,
idxTemptokensToken,
}

var indexesForTemptokensCollection = []mongo.IndexModel{
{
Keys: bson.D{
{Key: "userID", Value: 1},
{Key: "instanceID", Value: 1},
{Key: "purpose", Value: 1},
},
Options: options.Index().SetName("userID_1_instanceID_1_purpose_1"),
Options: options.Index().SetName(idxTemptokensUserIDInstanceIDPurpose),
},
{
Keys: bson.D{
{Key: "expiration", Value: 1},
},
Options: options.Index().SetExpireAfterSeconds(0).SetName("expiration_1"),
Options: options.Index().SetExpireAfterSeconds(0).SetName(idxTemptokensExpiration),
},
{
Keys: bson.D{
{Key: "token", Value: 1},
},
Options: options.Index().SetUnique(true).SetName("token_1"),
Options: options.Index().SetUnique(true).SetName(idxTemptokensToken),
},
}

Expand All @@ -42,17 +53,16 @@ func (dbService *GlobalInfosDBService) DropIndexForTemptokensCollection(dropAll
defer cancel()

if dropAll {
if _, err := dbService.collectionTemptokens().Indexes().DropAll(ctx); err != nil {
if err := dbService.collectionTemptokens().Indexes().DropAll(ctx); err != nil {
slog.Error("Error dropping indexes for temptokens", slog.String("error", err.Error()))
}
} else {
for _, index := range indexesForTemptokensCollection {
if index.Options == nil || index.Options.Name == nil {
slog.Error("Index name is nil for temptokens collection", slog.String("index", fmt.Sprintf("%+v", index)))
for _, indexName := range defaultTemptokenIndexNames {
if indexName == "" {
slog.Error("Index name is empty for temptokens collection")
continue
}
indexName := *index.Options.Name
_, err := dbService.collectionTemptokens().Indexes().DropOne(ctx, indexName)
err := dbService.collectionTemptokens().Indexes().DropOne(ctx, indexName)
if err != nil {
slog.Error("Error dropping index for temptokens", slog.String("error", err.Error()), slog.String("indexName", indexName))
}
Expand Down
Loading