fix(server): rename config -> env
This commit is contained in:
parent
e07448f670
commit
c15b65b473
|
@ -20,6 +20,7 @@ require (
|
||||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
|
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
|
||||||
github.com/modern-go/reflect2 v1.0.1 // indirect
|
github.com/modern-go/reflect2 v1.0.1 // indirect
|
||||||
github.com/robertkrimen/otto v0.0.0-20211024170158-b87d35c0b86f
|
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/ugorji/go v1.2.6 // indirect
|
||||||
github.com/vektah/gqlparser/v2 v2.2.0
|
github.com/vektah/gqlparser/v2 v2.2.0
|
||||||
go.mongodb.org/mongo-driver v1.8.1
|
go.mongodb.org/mongo-driver v1.8.1
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -17,7 +17,11 @@ type AuthResponse struct {
|
||||||
User *User `json:"user"`
|
User *User `json:"user"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type Config struct {
|
type DeleteUserInput struct {
|
||||||
|
Email string `json:"email"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type Env struct {
|
||||||
AdminSecret *string `json:"ADMIN_SECRET"`
|
AdminSecret *string `json:"ADMIN_SECRET"`
|
||||||
DatabaseType *string `json:"DATABASE_TYPE"`
|
DatabaseType *string `json:"DATABASE_TYPE"`
|
||||||
DatabaseURL *string `json:"DATABASE_URL"`
|
DatabaseURL *string `json:"DATABASE_URL"`
|
||||||
|
@ -53,10 +57,6 @@ type Config struct {
|
||||||
OrganizationLogo *string `json:"ORGANIZATION_LOGO"`
|
OrganizationLogo *string `json:"ORGANIZATION_LOGO"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type DeleteUserInput struct {
|
|
||||||
Email string `json:"email"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type Error struct {
|
type Error struct {
|
||||||
Message string `json:"message"`
|
Message string `json:"message"`
|
||||||
Reason string `json:"reason"`
|
Reason string `json:"reason"`
|
||||||
|
@ -117,8 +117,9 @@ type SignUpInput struct {
|
||||||
Roles []string `json:"roles"`
|
Roles []string `json:"roles"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type UpdateConfigInput struct {
|
type UpdateEnvInput struct {
|
||||||
AdminSecret *string `json:"ADMIN_SECRET"`
|
AdminSecret *string `json:"ADMIN_SECRET"`
|
||||||
|
ConfirmAdminSecret *string `json:"CONFIRM_ADMIN_SECRET"`
|
||||||
DatabaseType *string `json:"DATABASE_TYPE"`
|
DatabaseType *string `json:"DATABASE_TYPE"`
|
||||||
DatabaseURL *string `json:"DATABASE_URL"`
|
DatabaseURL *string `json:"DATABASE_URL"`
|
||||||
DatabaseName *string `json:"DATABASE_NAME"`
|
DatabaseName *string `json:"DATABASE_NAME"`
|
||||||
|
|
|
@ -62,7 +62,7 @@ type Response {
|
||||||
message: String!
|
message: String!
|
||||||
}
|
}
|
||||||
|
|
||||||
type Config {
|
type Env {
|
||||||
ADMIN_SECRET: String
|
ADMIN_SECRET: String
|
||||||
DATABASE_TYPE: String
|
DATABASE_TYPE: String
|
||||||
DATABASE_URL: String
|
DATABASE_URL: String
|
||||||
|
@ -98,8 +98,9 @@ type Config {
|
||||||
ORGANIZATION_LOGO: String
|
ORGANIZATION_LOGO: String
|
||||||
}
|
}
|
||||||
|
|
||||||
input UpdateConfigInput {
|
input UpdateEnvInput {
|
||||||
ADMIN_SECRET: String
|
ADMIN_SECRET: String
|
||||||
|
CONFIRM_ADMIN_SECRET: String
|
||||||
DATABASE_TYPE: String
|
DATABASE_TYPE: String
|
||||||
DATABASE_URL: String
|
DATABASE_URL: String
|
||||||
DATABASE_NAME: String
|
DATABASE_NAME: String
|
||||||
|
@ -236,7 +237,7 @@ type Mutation {
|
||||||
_admin_signup(params: AdminSignupInput!): Response!
|
_admin_signup(params: AdminSignupInput!): Response!
|
||||||
_admin_login(params: AdminLoginInput!): Response!
|
_admin_login(params: AdminLoginInput!): Response!
|
||||||
_admin_logout: Response!
|
_admin_logout: Response!
|
||||||
_update_config(params: UpdateConfigInput!): Response!
|
_update_env(params: UpdateEnvInput!): Response!
|
||||||
}
|
}
|
||||||
|
|
||||||
type Query {
|
type Query {
|
||||||
|
@ -247,5 +248,5 @@ type Query {
|
||||||
_users: [User!]!
|
_users: [User!]!
|
||||||
_verification_requests: [VerificationRequest!]!
|
_verification_requests: [VerificationRequest!]!
|
||||||
_admin_session: Response!
|
_admin_session: Response!
|
||||||
_config: Config!
|
_env: Env!
|
||||||
}
|
}
|
||||||
|
|
|
@ -67,8 +67,8 @@ func (r *mutationResolver) AdminLogout(ctx context.Context) (*model.Response, er
|
||||||
return resolvers.AdminLogoutResolver(ctx)
|
return resolvers.AdminLogoutResolver(ctx)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *mutationResolver) UpdateConfig(ctx context.Context, params model.UpdateConfigInput) (*model.Response, error) {
|
func (r *mutationResolver) UpdateEnv(ctx context.Context, params model.UpdateEnvInput) (*model.Response, error) {
|
||||||
return resolvers.UpdateConfigResolver(ctx, params)
|
return resolvers.UpdateEnvResolver(ctx, params)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *queryResolver) Meta(ctx context.Context) (*model.Meta, error) {
|
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)
|
return resolvers.AdminSessionResolver(ctx)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *queryResolver) Config(ctx context.Context) (*model.Config, error) {
|
func (r *queryResolver) Env(ctx context.Context) (*model.Env, error) {
|
||||||
return resolvers.ConfigResolver(ctx)
|
return resolvers.EnvResolver(ctx)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Mutation returns generated.MutationResolver implementation.
|
// Mutation returns generated.MutationResolver implementation.
|
||||||
|
|
|
@ -10,13 +10,11 @@ import (
|
||||||
"github.com/authorizerdev/authorizer/server/utils"
|
"github.com/authorizerdev/authorizer/server/utils"
|
||||||
)
|
)
|
||||||
|
|
||||||
// TODO rename to env_data
|
// EnvResolver is a resolver for config query
|
||||||
|
|
||||||
// ConfigResolver is a resolver for config query
|
|
||||||
// This is admin only 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)
|
gc, err := utils.GinContextFromContext(ctx)
|
||||||
var res *model.Config
|
var res *model.Env
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return res, err
|
return res, err
|
||||||
|
@ -62,7 +60,7 @@ func ConfigResolver(ctx context.Context) (*model.Config, error) {
|
||||||
organizationName := store[constants.EnvKeyOrganizationName].(string)
|
organizationName := store[constants.EnvKeyOrganizationName].(string)
|
||||||
organizationLogo := store[constants.EnvKeyOrganizationLogo].(string)
|
organizationLogo := store[constants.EnvKeyOrganizationLogo].(string)
|
||||||
|
|
||||||
res = &model.Config{
|
res = &model.Env{
|
||||||
AdminSecret: &adminSecret,
|
AdminSecret: &adminSecret,
|
||||||
DatabaseType: &databaseType,
|
DatabaseType: &databaseType,
|
||||||
DatabaseURL: &databaseURL,
|
DatabaseURL: &databaseURL,
|
|
@ -14,11 +14,9 @@ import (
|
||||||
"github.com/authorizerdev/authorizer/server/utils"
|
"github.com/authorizerdev/authorizer/server/utils"
|
||||||
)
|
)
|
||||||
|
|
||||||
// TODO rename to UpdateEnvDataResolver
|
// UpdateEnvResolver is a resolver for update config mutation
|
||||||
|
|
||||||
// UpdateConfigResolver is a resolver for update config mutation
|
|
||||||
// This is admin only 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)
|
gc, err := utils.GinContextFromContext(ctx)
|
||||||
var res *model.Response
|
var res *model.Response
|
||||||
|
|
|
@ -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))
|
|
||||||
})
|
|
||||||
}
|
|
29
server/test/env_file_test.go
Normal file
29
server/test/env_file_test.go
Normal 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{"*"})
|
||||||
|
}
|
|
@ -1,29 +1,31 @@
|
||||||
package test
|
package test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
|
"log"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/authorizerdev/authorizer/server/constants"
|
"github.com/authorizerdev/authorizer/server/constants"
|
||||||
"github.com/authorizerdev/authorizer/server/env"
|
|
||||||
"github.com/authorizerdev/authorizer/server/envstore"
|
"github.com/authorizerdev/authorizer/server/envstore"
|
||||||
|
"github.com/authorizerdev/authorizer/server/resolvers"
|
||||||
|
"github.com/authorizerdev/authorizer/server/utils"
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestEnvs(t *testing.T) {
|
func configTests(t *testing.T, s TestSetup) {
|
||||||
envstore.EnvInMemoryStoreObj.UpdateEnvVariable(constants.EnvKeyEnvPath, "../../.env.sample")
|
t.Helper()
|
||||||
env.InitEnv()
|
t.Run(`should get config`, func(t *testing.T) {
|
||||||
store := envstore.EnvInMemoryStoreObj.GetEnvStoreClone()
|
req, ctx := createContext(s)
|
||||||
|
_, err := resolvers.EnvResolver(ctx)
|
||||||
|
log.Println("error:", err)
|
||||||
|
assert.NotNil(t, err)
|
||||||
|
|
||||||
assert.Equal(t, store[constants.EnvKeyAdminSecret].(string), "admin")
|
h, err := utils.EncryptPassword(envstore.EnvInMemoryStoreObj.GetEnvVariable(constants.EnvKeyAdminSecret).(string))
|
||||||
assert.Equal(t, store[constants.EnvKeyEnv].(string), "production")
|
assert.Nil(t, err)
|
||||||
assert.False(t, store[constants.EnvKeyDisableEmailVerification].(bool))
|
req.Header.Set("Cookie", fmt.Sprintf("%s=%s", envstore.EnvInMemoryStoreObj.GetEnvVariable(constants.EnvKeyAdminCookieName).(string), h))
|
||||||
assert.False(t, store[constants.EnvKeyDisableMagicLinkLogin].(bool))
|
res, err := resolvers.EnvResolver(ctx)
|
||||||
assert.False(t, store[constants.EnvKeyDisableBasicAuthentication].(bool))
|
|
||||||
assert.Equal(t, store[constants.EnvKeyJwtType].(string), "HS256")
|
assert.Nil(t, err)
|
||||||
assert.Equal(t, store[constants.EnvKeyJwtSecret].(string), "random_string")
|
assert.Equal(t, *res.AdminSecret, envstore.EnvInMemoryStoreObj.GetEnvVariable(constants.EnvKeyAdminSecret).(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{"*"})
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,8 +19,8 @@ func updateConfigTests(t *testing.T, s TestSetup) {
|
||||||
req, ctx := createContext(s)
|
req, ctx := createContext(s)
|
||||||
originalAppURL := envstore.EnvInMemoryStoreObj.GetEnvVariable(constants.EnvKeyAppURL).(string)
|
originalAppURL := envstore.EnvInMemoryStoreObj.GetEnvVariable(constants.EnvKeyAppURL).(string)
|
||||||
|
|
||||||
data := model.UpdateConfigInput{}
|
data := model.UpdateEnvInput{}
|
||||||
_, err := resolvers.UpdateConfigResolver(ctx, data)
|
_, err := resolvers.UpdateEnvResolver(ctx, data)
|
||||||
log.Println("error:", err)
|
log.Println("error:", err)
|
||||||
assert.NotNil(t, err)
|
assert.NotNil(t, err)
|
||||||
|
|
||||||
|
@ -28,17 +28,17 @@ func updateConfigTests(t *testing.T, s TestSetup) {
|
||||||
assert.Nil(t, err)
|
assert.Nil(t, err)
|
||||||
req.Header.Set("Cookie", fmt.Sprintf("%s=%s", envstore.EnvInMemoryStoreObj.GetEnvVariable(constants.EnvKeyAdminCookieName).(string), h))
|
req.Header.Set("Cookie", fmt.Sprintf("%s=%s", envstore.EnvInMemoryStoreObj.GetEnvVariable(constants.EnvKeyAdminCookieName).(string), h))
|
||||||
newURL := "https://test.com"
|
newURL := "https://test.com"
|
||||||
data = model.UpdateConfigInput{
|
data = model.UpdateEnvInput{
|
||||||
AppURL: &newURL,
|
AppURL: &newURL,
|
||||||
}
|
}
|
||||||
_, err = resolvers.UpdateConfigResolver(ctx, data)
|
_, err = resolvers.UpdateEnvResolver(ctx, data)
|
||||||
log.Println("error:", err)
|
log.Println("error:", err)
|
||||||
assert.Nil(t, err)
|
assert.Nil(t, err)
|
||||||
assert.Equal(t, envstore.EnvInMemoryStoreObj.GetEnvVariable(constants.EnvKeyAppURL).(string), newURL)
|
assert.Equal(t, envstore.EnvInMemoryStoreObj.GetEnvVariable(constants.EnvKeyAppURL).(string), newURL)
|
||||||
data = model.UpdateConfigInput{
|
data = model.UpdateEnvInput{
|
||||||
AppURL: &originalAppURL,
|
AppURL: &originalAppURL,
|
||||||
}
|
}
|
||||||
_, err = resolvers.UpdateConfigResolver(ctx, data)
|
_, err = resolvers.UpdateEnvResolver(ctx, data)
|
||||||
assert.Nil(t, err)
|
assert.Nil(t, err)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user