[server] fix primary index creation for couchbase
This commit is contained in:
parent
a1df2ce31f
commit
b7357dde21
|
@ -4,7 +4,6 @@ import (
|
||||||
"crypto/aes"
|
"crypto/aes"
|
||||||
"crypto/cipher"
|
"crypto/cipher"
|
||||||
"crypto/rand"
|
"crypto/rand"
|
||||||
"fmt"
|
|
||||||
"io"
|
"io"
|
||||||
|
|
||||||
"github.com/authorizerdev/authorizer/server/constants"
|
"github.com/authorizerdev/authorizer/server/constants"
|
||||||
|
@ -57,7 +56,6 @@ func DecryptAES(text string) (string, error) {
|
||||||
func EncryptAESEnv(text []byte) ([]byte, error) {
|
func EncryptAESEnv(text []byte) ([]byte, error) {
|
||||||
var res []byte
|
var res []byte
|
||||||
k, err := memorystore.Provider.GetStringStoreEnvVariable(constants.EnvKeyEncryptionKey)
|
k, err := memorystore.Provider.GetStringStoreEnvVariable(constants.EnvKeyEncryptionKey)
|
||||||
fmt.Println("=> key:", k)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return res, err
|
return res, err
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,6 +5,8 @@ import (
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"reflect"
|
"reflect"
|
||||||
|
"strings"
|
||||||
|
"time"
|
||||||
|
|
||||||
"github.com/couchbase/gocb/v2"
|
"github.com/couchbase/gocb/v2"
|
||||||
|
|
||||||
|
@ -64,10 +66,13 @@ func NewProvider() (*provider, error) {
|
||||||
if err != nil && !errors.Is(err, gocb.ErrCollectionExists) {
|
if err != nil && !errors.Is(err, gocb.ErrCollectionExists) {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
// TODO: find how to fix this sleep time.
|
||||||
|
// Add wait time for successful collection creation
|
||||||
|
time.Sleep(5 * time.Second)
|
||||||
indexQuery := fmt.Sprintf("CREATE PRIMARY INDEX ON %s.%s", scopeIdentifier, collectionName.String())
|
indexQuery := fmt.Sprintf("CREATE PRIMARY INDEX ON %s.%s", scopeIdentifier, collectionName.String())
|
||||||
_, err = scope.Query(indexQuery, nil)
|
_, err = scope.Query(indexQuery, nil)
|
||||||
if err != nil {
|
if err != nil && !strings.Contains(err.Error(), "The index #primary already exists") {
|
||||||
fmt.Println("=> err", err, collectionName.String())
|
return nil, err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -93,24 +98,20 @@ func CreateBucketAndScope(cluster *gocb.Cluster, bucketName string, scopeName st
|
||||||
FlushEnabled: true,
|
FlushEnabled: true,
|
||||||
CompressionMode: gocb.CompressionModeActive,
|
CompressionMode: gocb.CompressionModeActive,
|
||||||
}
|
}
|
||||||
|
|
||||||
err := cluster.Buckets().CreateBucket(gocb.CreateBucketSettings{
|
err := cluster.Buckets().CreateBucket(gocb.CreateBucketSettings{
|
||||||
BucketSettings: settings,
|
BucketSettings: settings,
|
||||||
ConflictResolutionType: gocb.ConflictResolutionTypeSequenceNumber,
|
ConflictResolutionType: gocb.ConflictResolutionTypeSequenceNumber,
|
||||||
}, nil)
|
}, nil)
|
||||||
|
|
||||||
bucket := cluster.Bucket(bucketName)
|
bucket := cluster.Bucket(bucketName)
|
||||||
if err != nil && !errors.Is(err, gocb.ErrBucketExists) {
|
if err != nil && !errors.Is(err, gocb.ErrBucketExists) {
|
||||||
return bucket, err
|
return bucket, err
|
||||||
}
|
}
|
||||||
|
|
||||||
if scopeName != defaultScope {
|
if scopeName != defaultScope {
|
||||||
err = bucket.Collections().CreateScope(scopeName, nil)
|
err = bucket.Collections().CreateScope(scopeName, nil)
|
||||||
if err != nil && !errors.Is(err, gocb.ErrScopeExists) {
|
if err != nil && !errors.Is(err, gocb.ErrScopeExists) {
|
||||||
return bucket, err
|
return bucket, err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return bucket, nil
|
return bucket, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
2
server/env/persist_env.go
vendored
2
server/env/persist_env.go
vendored
|
@ -3,7 +3,6 @@ package env
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
|
||||||
"os"
|
"os"
|
||||||
"reflect"
|
"reflect"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
@ -116,7 +115,6 @@ func PersistEnv() error {
|
||||||
if err != nil || env.EnvData == "" {
|
if err != nil || env.EnvData == "" {
|
||||||
// AES encryption needs 32 bit key only, so we chop off last 4 characters from 36 bit uuid
|
// AES encryption needs 32 bit key only, so we chop off last 4 characters from 36 bit uuid
|
||||||
hash := uuid.New().String()[:36-4]
|
hash := uuid.New().String()[:36-4]
|
||||||
fmt.Println("hash:", hash)
|
|
||||||
err := memorystore.Provider.UpdateEnvVariable(constants.EnvKeyEncryptionKey, hash)
|
err := memorystore.Provider.UpdateEnvVariable(constants.EnvKeyEncryptionKey, hash)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Debug("Error while updating encryption env variable: ", err)
|
log.Debug("Error while updating encryption env variable: ", err)
|
||||||
|
|
|
@ -67,7 +67,6 @@ func AdminSignupResolver(ctx context.Context, params model.AdminSignupInput) (*m
|
||||||
envData, err := crypto.EncryptEnvData(storeData)
|
envData, err := crypto.EncryptEnvData(storeData)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Debug("Failed to encrypt envstore: ", err)
|
log.Debug("Failed to encrypt envstore: ", err)
|
||||||
fmt.Println("Failed to encrypt envstore: ", err)
|
|
||||||
return res, err
|
return res, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user