Openstatus
www.openstatus.dev
1import { createEnv } from "@t3-oss/env-nextjs";
2import { z } from "zod";
3
4import "@openstatus/analytics/env";
5import "@openstatus/db/env.mjs";
6
7export const env = createEnv({
8 server: {
9 TINY_BIRD_API_KEY: z.string().min(1),
10 RESEND_API_KEY: z.string().min(1),
11 QSTASH_CURRENT_SIGNING_KEY: z.string().min(1),
12 QSTASH_NEXT_SIGNING_KEY: z.string().min(1),
13 QSTASH_TOKEN: z.string().min(1),
14 STRIPE_WEBHOOK_SECRET_KEY: z.string(),
15 UNKEY_TOKEN: z.string(),
16 UNKEY_API_ID: z.string(),
17 GCP_PROJECT_ID: z.string(),
18 GCP_LOCATION: z.string(),
19 GCP_CLIENT_EMAIL: z.string(),
20 GCP_PRIVATE_KEY: z.string(),
21 CRON_SECRET: z.string(),
22 EXTERNAL_API_URL: z.url(),
23 CLICKHOUSE_URL: z.string(),
24 CLICKHOUSE_USERNAME: z.string(),
25 CLICKHOUSE_PASSWORD: z.string(),
26 PAGERDUTY_APP_ID: z.string().optional(),
27 SLACK_SUPPORT_WEBHOOK_URL: z.string().optional(),
28 },
29 client: {
30 NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY: z.string(),
31 NEXT_PUBLIC_URL: z.string(),
32 NEXT_PUBLIC_SENTRY_DSN: z.string(),
33 NEXT_PUBLIC_OPENPANEL_CLIENT_ID: z.string(),
34 },
35 runtimeEnv: {
36 NEXT_PUBLIC_OPENPANEL_CLIENT_ID:
37 process.env.NEXT_PUBLIC_OPENPANEL_CLIENT_ID,
38 TINY_BIRD_API_KEY: process.env.TINY_BIRD_API_KEY,
39 RESEND_API_KEY: process.env.RESEND_API_KEY,
40 QSTASH_CURRENT_SIGNING_KEY: process.env.QSTASH_CURRENT_SIGNING_KEY,
41 QSTASH_NEXT_SIGNING_KEY: process.env.QSTASH_NEXT_SIGNING_KEY,
42 QSTASH_TOKEN: process.env.QSTASH_TOKEN,
43 NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY:
44 process.env.NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY,
45 STRIPE_WEBHOOK_SECRET_KEY: process.env.STRIPE_WEBHOOK_SECRET_KEY,
46 NEXT_PUBLIC_URL: process.env.NEXT_PUBLIC_URL,
47 NEXT_PUBLIC_SENTRY_DSN: process.env.NEXT_PUBLIC_SENTRY_DSN,
48 UNKEY_TOKEN: process.env.UNKEY_TOKEN,
49 UNKEY_API_ID: process.env.UNKEY_API_ID,
50 GCP_PROJECT_ID: process.env.GCP_PROJECT_ID,
51 GCP_LOCATION: process.env.GCP_LOCATION,
52 GCP_CLIENT_EMAIL: process.env.GCP_CLIENT_EMAIL,
53 GCP_PRIVATE_KEY: process.env.GCP_PRIVATE_KEY,
54 CRON_SECRET: process.env.CRON_SECRET,
55 EXTERNAL_API_URL: process.env.EXTERNAL_API_URL,
56 CLICKHOUSE_URL: process.env.CLICKHOUSE_URL,
57 CLICKHOUSE_USERNAME: process.env.CLICKHOUSE_USERNAME,
58 CLICKHOUSE_PASSWORD: process.env.CLICKHOUSE_PASSWORD,
59 PAGERDUTY_APP_ID: process.env.PAGERDUTY_APP_ID,
60 SLACK_SUPPORT_WEBHOOK_URL: process.env.SLACK_SUPPORT_WEBHOOK_URL,
61 },
62 skipValidation: true,
63});