[server] fix primary index creation for couchbase

This commit is contained in:
Lakhan Samani 2023-02-02 12:28:52 +05:30
parent a1df2ce31f
commit b7357dde21
4 changed files with 7 additions and 11 deletions

View File

@ -4,7 +4,6 @@ import (
"crypto/aes"
"crypto/cipher"
"crypto/rand"
"fmt"
"io"
"github.com/authorizerdev/authorizer/server/constants"
@ -57,7 +56,6 @@ func DecryptAES(text string) (string, error) {
func EncryptAESEnv(text []byte) ([]byte, error) {
var res []byte
k, err := memorystore.Provider.GetStringStoreEnvVariable(constants.EnvKeyEncryptionKey)
fmt.Println("=> key:", k)
if err != nil {
return res, err
}

View File

@ -5,6 +5,8 @@ import (
"errors"
"fmt"
"reflect"
"strings"
"time"
"github.com/couchbase/gocb/v2"
@ -64,10 +66,13 @@ func NewProvider() (*provider, error) {
if err != nil && !errors.Is(err, gocb.ErrCollectionExists) {
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())
_, err = scope.Query(indexQuery, nil)
if err != nil {
fmt.Println("=> err", err, collectionName.String())
if err != nil && !strings.Contains(err.Error(), "The index #primary already exists") {
return nil, err
}
}
@ -93,24 +98,20 @@ func CreateBucketAndScope(cluster *gocb.Cluster, bucketName string, scopeName st
FlushEnabled: true,
CompressionMode: gocb.CompressionModeActive,
}
err := cluster.Buckets().CreateBucket(gocb.CreateBucketSettings{
BucketSettings: settings,
ConflictResolutionType: gocb.ConflictResolutionTypeSequenceNumber,
}, nil)
bucket := cluster.Bucket(bucketName)
if err != nil && !errors.Is(err, gocb.ErrBucketExists) {
return bucket, err
}
if scopeName != defaultScope {
err = bucket.Collections().CreateScope(scopeName, nil)
if err != nil && !errors.Is(err, gocb.ErrScopeExists) {
return bucket, err
}
}
return bucket, nil
}

View File

@ -3,7 +3,6 @@ package env
import (
"context"
"encoding/json"
"fmt"
"os"
"reflect"
"strconv"
@ -116,7 +115,6 @@ func PersistEnv() error {
if err != nil || env.EnvData == "" {
// AES encryption needs 32 bit key only, so we chop off last 4 characters from 36 bit uuid
hash := uuid.New().String()[:36-4]
fmt.Println("hash:", hash)
err := memorystore.Provider.UpdateEnvVariable(constants.EnvKeyEncryptionKey, hash)
if err != nil {
log.Debug("Error while updating encryption env variable: ", err)

View File

@ -67,7 +67,6 @@ func AdminSignupResolver(ctx context.Context, params model.AdminSignupInput) (*m
envData, err := crypto.EncryptEnvData(storeData)
if err != nil {
log.Debug("Failed to encrypt envstore: ", err)
fmt.Println("Failed to encrypt envstore: ", err)
return res, err
}