Log in
vercel.json 102 lines · 4.2 KB · json Blame
1
{
2
  "$schema": "https://openapi.vercel.sh/vercel.json",
3
  "buildCommand": "corepack pnpm build",
4
  "outputDirectory": "apps/dashboard/dist",
5
  "functions": {
6
    "api/index.ts": {
7
      "maxDuration": 60,
8
      "includeFiles": "{.openclasp-build/agent-card-fonts/**,node_modules/.pnpm/[email protected]/node_modules/harfbuzzjs/hb.wasm}"
9
    },
10
    "api/mcp.ts": { "maxDuration": 60 },
11
    "api/cron-feedback.ts": { "maxDuration": 60 }
12
  },
13
  "crons": [{ "path": "/api/cron-feedback", "schedule": "0 0 * * *" }],
14
  "headers": [
15
    {
16
      "source": "/(.*)",
17
      "headers": [
18
        { "key": "X-Content-Type-Options", "value": "nosniff" },
19
        { "key": "X-Frame-Options", "value": "DENY" },
20
        { "key": "Referrer-Policy", "value": "no-referrer" },
21
        {
22
          "key": "Permissions-Policy",
23
          "value": "camera=(), microphone=(), geolocation=(), payment=()"
24
        },
25
        {
26
          "key": "Strict-Transport-Security",
27
          "value": "max-age=31536000; includeSubDomains"
28
        },
29
        {
30
          "key": "Content-Security-Policy",
31
          "value": "default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; connect-src 'self' https://*.auth0.com; frame-ancestors 'none'; base-uri 'self'; form-action 'self' https://*.auth0.com"
32
        }
33
      ]
34
    }
35
  ],
36
  "rewrites": [
37
    { "source": "/health", "destination": "/api/index?path=/health" },
38
    { "source": "/ready", "destination": "/api/index?path=/ready" },
39
    { "source": "/openapi.json", "destination": "/api/index?path=/openapi.json" },
40
    { "source": "/extensions/trust/v0.1", "destination": "/api/index?path=/extensions/trust/v0.1" },
41
    { "source": "/sessions/:id/events", "destination": "/api/index?path=/sessions/:id/events" },
42
    {
43
      "source": "/sessions/:id/completion-reports",
44
      "destination": "/api/index?path=/sessions/:id/completion-reports"
45
    },
46
    {
47
      "source": "/sessions/:id/feedback",
48
      "destination": "/api/index?path=/sessions/:id/feedback"
49
    },
50
    {
51
      "source": "/sessions/:id/assurance-responses",
52
      "destination": "/api/index?path=/sessions/:id/assurance-responses"
53
    },
54
    { "source": "/agents/:id/card.json", "destination": "/api/index?path=/agents/:id/card.json" },
55
    {
56
      "source": "/agents/:id/a2a-agent-card.json",
57
      "destination": "/api/index?path=/agents/:id/a2a-agent-card.json"
58
    },
59
    {
60
      "source": "/agents/:id/og.png",
61
      "destination": "/api/index?path=/agents/:id/og.png"
62
    },
63
    {
64
      "source": "/agents/:id/.well-known/openclasp-agent.json",
65
      "destination": "/api/index?path=/agents/:id/.well-known/openclasp-agent.json"
66
    },
67
    { "source": "/directory/resolve", "destination": "/api/index?path=/directory/resolve" },
68
    { "source": "/directory/search", "destination": "/api/index?path=/directory/search" },
69
    { "source": "/a/:reference", "destination": "/api/index?path=/a/:reference" },
70
    { "source": "/v0.1/:path*", "destination": "/api/index?path=/v0.1/:path*" },
71
    { "source": "/mcp", "destination": "/api/mcp" },
72
    {
73
      "source": "/.well-known/oauth-protected-resource",
74
      "destination": "/api/oauth-protected-resource"
75
    },
76
    {
77
      "source": "/.well-known/oauth-protected-resource/mcp",
78
      "destination": "/api/oauth-protected-resource"
79
    },
80
    {
81
      "source": "/.well-known/oauth-authorization-server",
82
      "destination": "/api/oauth-authorization-server"
83
    },
84
    { "source": "/oauth/register", "destination": "/api/oauth-register" },
85
    { "source": "/oauth/authorize", "destination": "/api/oauth-authorize" },
86
    { "source": "/oauth/token", "destination": "/api/oauth-token" },
87
    {
88
      "source": "/.well-known/openclasp-session-key",
89
      "destination": "/api/index?path=/.well-known/openclasp-session-key"
90
    },
91
    { "source": "/login", "destination": "/" },
92
    { "source": "/sso-callback", "destination": "/" },
93
    { "source": "/dashboard", "destination": "/" },
94
    { "source": "/history", "destination": "/" },
95
    { "source": "/agents", "destination": "/" },
96
    { "source": "/insights", "destination": "/" },
97
    { "source": "/shield", "destination": "/" },
98
    { "source": "/connect", "destination": "/" },
99
    { "source": "/marketplace", "destination": "/" },
100
    { "source": "/settings", "destination": "/" }
101
  ]
102
}