-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathvercel.json
More file actions
53 lines (53 loc) · 1.84 KB
/
vercel.json
File metadata and controls
53 lines (53 loc) · 1.84 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
{
"framework": "nextjs",
"buildCommand": "npx prisma generate && next build",
"outputDirectory": ".next",
"regions": ["fra1"],
"env": {
"DATABASE_URL": "@database-url",
"STRIPE_SECRET_KEY": "@stripe-secret-key",
"STRIPE_WEBHOOK_SECRET": "@stripe-webhook-secret",
"NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY": "@stripe-publishable-key",
"RESEND_API_KEY": "@resend-api-key",
"CRON_SECRET": "@cron-secret",
"SENTRY_DSN": "@sentry-dsn"
},
"headers": [
{
"source": "/api/health",
"headers": [
{ "key": "Cache-Control", "value": "no-store, max-age=0" }
]
},
{
"source": "/(.*)",
"headers": [
{ "key": "X-Content-Type-Options", "value": "nosniff" },
{ "key": "X-Frame-Options", "value": "DENY" },
{ "key": "X-XSS-Protection", "value": "1; mode=block" },
{ "key": "Referrer-Policy", "value": "strict-origin-when-cross-origin" },
{ "key": "Strict-Transport-Security", "value": "max-age=31536000; includeSubDomains" },
{ "key": "Permissions-Policy", "value": "camera=(), microphone=(), geolocation=()" },
{ "key": "Content-Security-Policy", "value": "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://js.stripe.com; style-src 'self' 'unsafe-inline'; img-src 'self' data: https: blob:; font-src 'self' https://fonts.gstatic.com; connect-src 'self' https://api.stripe.com https://*.sentry.io; frame-src https://js.stripe.com https://hooks.stripe.com" }
]
}
],
"crons": [
{
"path": "/api/cron/analytics",
"schedule": "0 2 * * *"
},
{
"path": "/api/cron/pricing-scan",
"schedule": "0 */6 * * *"
},
{
"path": "/api/cron/surplus-scan",
"schedule": "0 8 * * *"
},
{
"path": "/api/cron/notification-digest",
"schedule": "0 9 * * 1"
}
]
}