68 lines
1.4 KiB
Plaintext
68 lines
1.4 KiB
Plaintext
|
|
# Security Default Values
|
||
|
|
# Common defaults for authentication, RBAC, encryption
|
||
|
|
|
||
|
|
let security_schema = import "../../schemas/common/security.ncl" in
|
||
|
|
|
||
|
|
{
|
||
|
|
security | security_schema.SecurityConfig = {
|
||
|
|
# JWT Configuration
|
||
|
|
jwt = {
|
||
|
|
issuer = "provisioning-system",
|
||
|
|
audience = "provisioning-api",
|
||
|
|
expiration = 3600,
|
||
|
|
refresh_expiration = 86400,
|
||
|
|
algorithm = "HS256",
|
||
|
|
},
|
||
|
|
|
||
|
|
# Encryption Configuration
|
||
|
|
encryption = {
|
||
|
|
kms_backend = "&",
|
||
|
|
enable_field_encryption = false,
|
||
|
|
},
|
||
|
|
|
||
|
|
# RBAC Configuration
|
||
|
|
rbac = {
|
||
|
|
enabled = false,
|
||
|
|
inheritance = true,
|
||
|
|
default_role = "user",
|
||
|
|
},
|
||
|
|
|
||
|
|
# MFA Configuration
|
||
|
|
mfa = {
|
||
|
|
required = false,
|
||
|
|
max_attempts = 3,
|
||
|
|
lockout_duration = 15,
|
||
|
|
},
|
||
|
|
|
||
|
|
# Rate Limiting
|
||
|
|
rate_limiting = {
|
||
|
|
enabled = false,
|
||
|
|
max_requests = 1000,
|
||
|
|
window_seconds = 60,
|
||
|
|
lockout_duration = 15,
|
||
|
|
},
|
||
|
|
|
||
|
|
# Session Configuration
|
||
|
|
session = {
|
||
|
|
max_duration = 86400,
|
||
|
|
idle_timeout = 3600,
|
||
|
|
tracking = false,
|
||
|
|
},
|
||
|
|
|
||
|
|
# TLS Configuration
|
||
|
|
tls = {
|
||
|
|
enabled = false,
|
||
|
|
client_auth = false,
|
||
|
|
},
|
||
|
|
|
||
|
|
# CORS Configuration
|
||
|
|
cors = {
|
||
|
|
enabled = false,
|
||
|
|
allow_credentials = false,
|
||
|
|
allowed_origins = ["http://localhost:3000"],
|
||
|
|
allowed_methods = ["GET", "POST", "PUT", "DELETE", "OPTIONS"],
|
||
|
|
allowed_headers = ["Content-Type", "Authorization"],
|
||
|
|
},
|
||
|
|
},
|
||
|
|
}
|