@@ -6,15 +6,24 @@ const isBoolean = isString.transform((value) => value === 'true');
6
6
const isNumber = isString . transform ( Number ) ;
7
7
8
8
const envSchema = z . object ( {
9
- // Node.js
10
- NODE_ENV : z . enum ( [ 'development' , 'production' , 'test' ] ) ,
11
-
12
- // Express
9
+ // General
10
+ NEXT_MANUAL_SIG_HANDLE : isBoolean ,
13
11
PROTOCOL : z . enum ( [ 'http' , 'https' ] ) ,
14
- APP_PORT : isNumber ,
15
12
HOST : isString ,
13
+ APP_PORT : isNumber ,
16
14
17
- // General
15
+ // Authentication
16
+ AUTH_COOKIE_DURATION_S : isNumber ,
17
+ GOOGLE_CLIENT_ID : isString ,
18
+ GOOGLE_CLIENT_SECRET : isString ,
19
+ GOOGLE_REDIRECT_URI : isString ,
20
+ // FACEBOOK_CLIENT_ID: isString,
21
+ // FACEBOOK_CLIENT_SECRET: isString,
22
+ // FACEBOOK_REDIRECT_URI: isString,
23
+ GITHUB_CLIENT_ID : isString ,
24
+ GITHUB_CLIENT_SECRET : isString ,
25
+
26
+ // Logging
18
27
APP_LOGGING : isBoolean ,
19
28
LOG_LEVEL : z . enum ( [
20
29
'error' ,
@@ -25,25 +34,39 @@ const envSchema = z.object({
25
34
'debug' ,
26
35
'silly' ,
27
36
] ) ,
28
- ENABLE_EMAIL : isBoolean ,
37
+
38
+ // Rate limiting
29
39
ENABLE_RATE_LIMIT : isBoolean ,
30
- ENABLE_ANALYTICS : isBoolean ,
31
- AUTH_COOKIE_DURATION_S : isNumber ,
40
+
41
+ // Captcha
42
+ NEXT_PUBLIC_ENABLE_CAPTCHA : isBoolean . optional ( ) ,
43
+ NEXT_PUBLIC_CAPTCHA_SITE_KEY : isString . optional ( ) ,
32
44
CAPTCHA_SECRET_KEY : isString . optional ( ) ,
45
+
46
+ // Email
47
+ ENABLE_EMAIL : isBoolean ,
33
48
AWS_ACCESS_KEY_ID : isString . optional ( ) ,
34
49
AWS_SECRET_ACCESS_KEY : isString . optional ( ) ,
35
50
36
51
// Analytics
52
+ ENABLE_ANALYTICS : isBoolean ,
37
53
UMAMI_SCRIPT_URL : isString . optional ( ) ,
38
54
UMAMI_ANALYTICS_ID : isString . optional ( ) ,
39
55
40
56
// Instrumentation
41
57
ENABLE_INSTRUMENTATION : isBoolean ,
58
+ OTEL_EXPORTER_OTLP_ENDPOINT : isString . optional ( ) ,
59
+ OTEL_EXPORTER_OTLP_TRACES_ENDPOINT : isString . optional ( ) ,
60
+ OTEL_EXPORTER_OTLP_TRACES_PROTOCOL : isString . optional ( ) ,
61
+ NEXT_OTEL_VERBOSE : isNumber . optional ( ) ,
62
+ OTEL_LOG_LEVEL : isString . optional ( ) ,
42
63
43
64
// Database
44
65
DATABASE_LOGGING : isBoolean ,
45
66
DATABASE_URL : isString ,
46
67
REDIS_URL : isString ,
68
+
69
+ // S3
47
70
S3_ENDPOINT : isString ,
48
71
S3_PORT : isNumber ,
49
72
S3_USE_SSL : isBoolean ,
@@ -52,16 +75,6 @@ const envSchema = z.object({
52
75
S3_BUCKET_NAME : isString ,
53
76
S3_PRESIGNED_URL_EXPIRATION_S : isNumber ,
54
77
55
- // Auth
56
- GOOGLE_CLIENT_ID : isString ,
57
- GOOGLE_CLIENT_SECRET : isString ,
58
- GOOGLE_REDIRECT_URI : isString ,
59
- // FACEBOOK_CLIENT_ID: isString,
60
- // FACEBOOK_CLIENT_SECRET: isString,
61
- // FACEBOOK_REDIRECT_URI: isString,
62
- GITHUB_CLIENT_ID : isString ,
63
- GITHUB_CLIENT_SECRET : isString ,
64
-
65
78
// Replicate
66
79
REPLICATE_API_TOKEN : isString ,
67
80
REPLICATE_WEBHOOK_SECRET : isString ,
0 commit comments