fix(server): rename config -> env

This commit is contained in:
Lakhan Samani 2022-01-17 13:12:46 +05:30
parent e07448f670
commit c15b65b473
11 changed files with 331 additions and 323 deletions

View File

@ -20,6 +20,7 @@ require (
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.1 // indirect
github.com/robertkrimen/otto v0.0.0-20211024170158-b87d35c0b86f
github.com/stretchr/testify v1.7.0
github.com/ugorji/go v1.2.6 // indirect
github.com/vektah/gqlparser/v2 v2.2.0
go.mongodb.org/mongo-driver v1.8.1

File diff suppressed because it is too large Load Diff

View File

@ -17,7 +17,11 @@ type AuthResponse struct {
User *User `json:"user"`
}
type Config struct {
type DeleteUserInput struct {
Email string `json:"email"`
}
type Env struct {
AdminSecret *string `json:"ADMIN_SECRET"`
DatabaseType *string `json:"DATABASE_TYPE"`
DatabaseURL *string `json:"DATABASE_URL"`
@ -53,10 +57,6 @@ type Config struct {
OrganizationLogo *string `json:"ORGANIZATION_LOGO"`
}
type DeleteUserInput struct {
Email string `json:"email"`
}
type Error struct {
Message string `json:"message"`
Reason string `json:"reason"`
@ -117,8 +117,9 @@ type SignUpInput struct {
Roles []string `json:"roles"`
}
type UpdateConfigInput struct {
type UpdateEnvInput struct {
AdminSecret *string `json:"ADMIN_SECRET"`
ConfirmAdminSecret *string `json:"CONFIRM_ADMIN_SECRET"`
DatabaseType *string `json:"DATABASE_TYPE"`
DatabaseURL *string `json:"DATABASE_URL"`
DatabaseName *string `json:"DATABASE_NAME"`

View File

@ -62,7 +62,7 @@ type Response {
message: String!
}
type Config {
type Env {
ADMIN_SECRET: String
DATABASE_TYPE: String
DATABASE_URL: String
@ -98,8 +98,9 @@ type Config {
ORGANIZATION_LOGO: String
}
input UpdateConfigInput {
input UpdateEnvInput {
ADMIN_SECRET: String
CONFIRM_ADMIN_SECRET: String
DATABASE_TYPE: String
DATABASE_URL: String
DATABASE_NAME: String
@ -236,7 +237,7 @@ type Mutation {
_admin_signup(params: AdminSignupInput!): Response!
_admin_login(params: AdminLoginInput!): Response!
_admin_logout: Response!
_update_config(params: UpdateConfigInput!): Response!
_update_env(params: UpdateEnvInput!): Response!
}
type Query {
@ -247,5 +248,5 @@ type Query {
_users: [User!]!
_verification_requests: [VerificationRequest!]!
_admin_session: Response!
_config: Config!
_env: Env!
}

View File

@ -67,8 +67,8 @@ func (r *mutationResolver) AdminLogout(ctx context.Context) (*model.Response, er
return resolvers.AdminLogoutResolver(ctx)
}
func (r *mutationResolver) UpdateConfig(ctx context.Context, params model.UpdateConfigInput) (*model.Response, error) {
return resolvers.UpdateConfigResolver(ctx, params)
func (r *mutationResolver) UpdateEnv(ctx context.Context, params model.UpdateEnvInput) (*model.Response, error) {
return resolvers.UpdateEnvResolver(ctx, params)
}
func (r *queryResolver) Meta(ctx context.Context) (*model.Meta, error) {
@ -95,8 +95,8 @@ func (r *queryResolver) AdminSession(ctx context.Context) (*model.Response, erro
return resolvers.AdminSessionResolver(ctx)
}
func (r *queryResolver) Config(ctx context.Context) (*model.Config, error) {
return resolvers.ConfigResolver(ctx)
func (r *queryResolver) Env(ctx context.Context) (*model.Env, error) {
return resolvers.EnvResolver(ctx)
}
// Mutation returns generated.MutationResolver implementation.

View File

@ -10,13 +10,11 @@ import (
"github.com/authorizerdev/authorizer/server/utils"
)
// TODO rename to env_data
// ConfigResolver is a resolver for config query
// EnvResolver is a resolver for config query
// This is admin only query
func ConfigResolver(ctx context.Context) (*model.Config, error) {
func EnvResolver(ctx context.Context) (*model.Env, error) {
gc, err := utils.GinContextFromContext(ctx)
var res *model.Config
var res *model.Env
if err != nil {
return res, err
@ -62,7 +60,7 @@ func ConfigResolver(ctx context.Context) (*model.Config, error) {
organizationName := store[constants.EnvKeyOrganizationName].(string)
organizationLogo := store[constants.EnvKeyOrganizationLogo].(string)
res = &model.Config{
res = &model.Env{
AdminSecret: &adminSecret,
DatabaseType: &databaseType,
DatabaseURL: &databaseURL,

View File

@ -14,11 +14,9 @@ import (
"github.com/authorizerdev/authorizer/server/utils"
)
// TODO rename to UpdateEnvDataResolver
// UpdateConfigResolver is a resolver for update config mutation
// UpdateEnvResolver is a resolver for update config mutation
// This is admin only mutation
func UpdateConfigResolver(ctx context.Context, params model.UpdateConfigInput) (*model.Response, error) {
func UpdateEnvResolver(ctx context.Context, params model.UpdateEnvInput) (*model.Response, error) {
gc, err := utils.GinContextFromContext(ctx)
var res *model.Response

View File

@ -1,31 +0,0 @@
package test
import (
"fmt"
"log"
"testing"
"github.com/authorizerdev/authorizer/server/constants"
"github.com/authorizerdev/authorizer/server/envstore"
"github.com/authorizerdev/authorizer/server/resolvers"
"github.com/authorizerdev/authorizer/server/utils"
"github.com/stretchr/testify/assert"
)
func configTests(t *testing.T, s TestSetup) {
t.Helper()
t.Run(`should get config`, func(t *testing.T) {
req, ctx := createContext(s)
_, err := resolvers.ConfigResolver(ctx)
log.Println("error:", err)
assert.NotNil(t, err)
h, err := utils.EncryptPassword(envstore.EnvInMemoryStoreObj.GetEnvVariable(constants.EnvKeyAdminSecret).(string))
assert.Nil(t, err)
req.Header.Set("Cookie", fmt.Sprintf("%s=%s", envstore.EnvInMemoryStoreObj.GetEnvVariable(constants.EnvKeyAdminCookieName).(string), h))
res, err := resolvers.ConfigResolver(ctx)
assert.Nil(t, err)
assert.Equal(t, *res.AdminSecret, envstore.EnvInMemoryStoreObj.GetEnvVariable(constants.EnvKeyAdminSecret).(string))
})
}

View File

@ -0,0 +1,29 @@
package test
import (
"testing"
"github.com/authorizerdev/authorizer/server/constants"
"github.com/authorizerdev/authorizer/server/env"
"github.com/authorizerdev/authorizer/server/envstore"
"github.com/stretchr/testify/assert"
)
func TestEnvs(t *testing.T) {
envstore.EnvInMemoryStoreObj.UpdateEnvVariable(constants.EnvKeyEnvPath, "../../.env.sample")
env.InitEnv()
store := envstore.EnvInMemoryStoreObj.GetEnvStoreClone()
assert.Equal(t, store[constants.EnvKeyAdminSecret].(string), "admin")
assert.Equal(t, store[constants.EnvKeyEnv].(string), "production")
assert.False(t, store[constants.EnvKeyDisableEmailVerification].(bool))
assert.False(t, store[constants.EnvKeyDisableMagicLinkLogin].(bool))
assert.False(t, store[constants.EnvKeyDisableBasicAuthentication].(bool))
assert.Equal(t, store[constants.EnvKeyJwtType].(string), "HS256")
assert.Equal(t, store[constants.EnvKeyJwtSecret].(string), "random_string")
assert.Equal(t, store[constants.EnvKeyJwtRoleClaim].(string), "role")
assert.EqualValues(t, store[constants.EnvKeyRoles].([]string), []string{"user"})
assert.EqualValues(t, store[constants.EnvKeyDefaultRoles].([]string), []string{"user"})
assert.EqualValues(t, store[constants.EnvKeyProtectedRoles].([]string), []string{"admin"})
assert.EqualValues(t, store[constants.EnvKeyAllowedOrigins].([]string), []string{"*"})
}

View File

@ -1,29 +1,31 @@
package test
import (
"fmt"
"log"
"testing"
"github.com/authorizerdev/authorizer/server/constants"
"github.com/authorizerdev/authorizer/server/env"
"github.com/authorizerdev/authorizer/server/envstore"
"github.com/authorizerdev/authorizer/server/resolvers"
"github.com/authorizerdev/authorizer/server/utils"
"github.com/stretchr/testify/assert"
)
func TestEnvs(t *testing.T) {
envstore.EnvInMemoryStoreObj.UpdateEnvVariable(constants.EnvKeyEnvPath, "../../.env.sample")
env.InitEnv()
store := envstore.EnvInMemoryStoreObj.GetEnvStoreClone()
func configTests(t *testing.T, s TestSetup) {
t.Helper()
t.Run(`should get config`, func(t *testing.T) {
req, ctx := createContext(s)
_, err := resolvers.EnvResolver(ctx)
log.Println("error:", err)
assert.NotNil(t, err)
assert.Equal(t, store[constants.EnvKeyAdminSecret].(string), "admin")
assert.Equal(t, store[constants.EnvKeyEnv].(string), "production")
assert.False(t, store[constants.EnvKeyDisableEmailVerification].(bool))
assert.False(t, store[constants.EnvKeyDisableMagicLinkLogin].(bool))
assert.False(t, store[constants.EnvKeyDisableBasicAuthentication].(bool))
assert.Equal(t, store[constants.EnvKeyJwtType].(string), "HS256")
assert.Equal(t, store[constants.EnvKeyJwtSecret].(string), "random_string")
assert.Equal(t, store[constants.EnvKeyJwtRoleClaim].(string), "role")
assert.EqualValues(t, store[constants.EnvKeyRoles].([]string), []string{"user"})
assert.EqualValues(t, store[constants.EnvKeyDefaultRoles].([]string), []string{"user"})
assert.EqualValues(t, store[constants.EnvKeyProtectedRoles].([]string), []string{"admin"})
assert.EqualValues(t, store[constants.EnvKeyAllowedOrigins].([]string), []string{"*"})
h, err := utils.EncryptPassword(envstore.EnvInMemoryStoreObj.GetEnvVariable(constants.EnvKeyAdminSecret).(string))
assert.Nil(t, err)
req.Header.Set("Cookie", fmt.Sprintf("%s=%s", envstore.EnvInMemoryStoreObj.GetEnvVariable(constants.EnvKeyAdminCookieName).(string), h))
res, err := resolvers.EnvResolver(ctx)
assert.Nil(t, err)
assert.Equal(t, *res.AdminSecret, envstore.EnvInMemoryStoreObj.GetEnvVariable(constants.EnvKeyAdminSecret).(string))
})
}

View File

@ -19,8 +19,8 @@ func updateConfigTests(t *testing.T, s TestSetup) {
req, ctx := createContext(s)
originalAppURL := envstore.EnvInMemoryStoreObj.GetEnvVariable(constants.EnvKeyAppURL).(string)
data := model.UpdateConfigInput{}
_, err := resolvers.UpdateConfigResolver(ctx, data)
data := model.UpdateEnvInput{}
_, err := resolvers.UpdateEnvResolver(ctx, data)
log.Println("error:", err)
assert.NotNil(t, err)
@ -28,17 +28,17 @@ func updateConfigTests(t *testing.T, s TestSetup) {
assert.Nil(t, err)
req.Header.Set("Cookie", fmt.Sprintf("%s=%s", envstore.EnvInMemoryStoreObj.GetEnvVariable(constants.EnvKeyAdminCookieName).(string), h))
newURL := "https://test.com"
data = model.UpdateConfigInput{
data = model.UpdateEnvInput{
AppURL: &newURL,
}
_, err = resolvers.UpdateConfigResolver(ctx, data)
_, err = resolvers.UpdateEnvResolver(ctx, data)
log.Println("error:", err)
assert.Nil(t, err)
assert.Equal(t, envstore.EnvInMemoryStoreObj.GetEnvVariable(constants.EnvKeyAppURL).(string), newURL)
data = model.UpdateConfigInput{
data = model.UpdateEnvInput{
AppURL: &originalAppURL,
}
_, err = resolvers.UpdateConfigResolver(ctx, data)
_, err = resolvers.UpdateEnvResolver(ctx, data)
assert.Nil(t, err)
})
}