Keep Mongo operations online across Vault credential rotation

This commit is contained in:
Stephan D committed 2026-09-12 22:19:36 +02:00
1 parent 80d6917aa7
commit 23f7b78c3b
30 files changed
+1290 -202

No files matched your search

+5 -5
View File
@@ -1,15 +1,15 @@
package refreshtokens
import (
sessionmodel "git.sendico.io/tech/sxchnge/product/sessions/model"
"strings"
sessionmodel "git.sendico.io/tech/sxchnge/product/sessions/model"
"git.sendico.io/tech/sxchnge/shared/database/repository"
ri "git.sendico.io/tech/sxchnge/shared/database/repository/index"
"git.sendico.io/tech/sxchnge/shared/database/source"
"git.sendico.io/tech/sxchnge/shared/database/template"
"git.sendico.io/tech/sxchnge/shared/logging"
"git.sendico.io/tech/sxchnge/shared/service"
"go.mongodb.org/mongo-driver/v2/mongo"
"go.uber.org/zap"
)
@@ -24,7 +24,7 @@ type RefreshTokenDB struct {
collection Collections
}
func Create(logger mlogger.Logger, db *mongo.Database) (*RefreshTokenDB, error) {
func Create(logger mlogger.Logger, db source.Source) (*RefreshTokenDB, error) {
return CreateWithCollections(logger, db, Collections{})
}
@@ -38,11 +38,11 @@ func (c Collections) WithDefaults() Collections {
return c
}
func CreateWithCollections(logger mlogger.Logger, db *mongo.Database, collections Collections) (*RefreshTokenDB, error) {
func CreateWithCollections(logger mlogger.Logger, db source.Source, collections Collections) (*RefreshTokenDB, error) {
collections = collections.WithDefaults()
p := &RefreshTokenDB{
DBImp: *template.Create[*sessionmodel.RefreshToken](logger, mservice.Type(collections.RefreshTokens), db),
clients: repository.CreateMongoRepository(db, collections.Clients),
clients: repository.CreateRepository(db, collections.Clients),
collection: collections,
}
@@ -8,11 +8,12 @@ import (
"crypto/sha1"
"errors"
"fmt"
sessionmodel "git.sendico.io/tech/sxchnge/product/sessions/model"
"testing"
"time"
sessionmodel "git.sendico.io/tech/sxchnge/product/sessions/model"
"git.sendico.io/tech/sxchnge/product/sessions/store"
"git.sendico.io/tech/sxchnge/shared/database/source"
"git.sendico.io/tech/sxchnge/shared/errors"
factory "git.sendico.io/tech/sxchnge/shared/logging/factory"
"github.com/stretchr/testify/assert"
@@ -55,7 +56,7 @@ func setupTestDBWithMongo(t *testing.T) (*refreshtokens.RefreshTokenDB, *mongo.D
database := client.Database(fmt.Sprintf("test_refresh_tokens_%x", sha1.Sum([]byte(t.Name()))))
logger := factory.NewLogger(true)
db, err := refreshtokens.Create(logger, database)
db, err := refreshtokens.Create(logger, source.Fixed(database))
require.NoError(t, err, "failed to create refresh tokens db")
cleanup := func() {