{
  "version": 3,
  "pages404": true,
  "caseSensitive": false,
  "basePath": "",
  "redirects": [
    {
      "source": "/:path+/",
      "destination": "/:path+",
      "internal": true,
      "statusCode": 308,
      "regex": "^(?:/((?:[^/]+?)(?:/(?:[^/]+?))*))/$"
    },
    {
      "source": "/",
      "destination": "/incidents",
      "statusCode": 307,
      "regex": "^(?!/_next)/(?:/)?$"
    },
    {
      "source": "/workflows/:path*.yaml",
      "destination": "/raw/workflows/:path*.yaml",
      "statusCode": 307,
      "regex": "^(?!/_next)/workflows(?:/((?:[^/]+?)(?:/(?:[^/]+?))*))?\\.yaml(?:/)?$"
    }
  ],
  "headers": [
    {
      "source": "/:path*",
      "headers": [
        {
          "key": "Access-Control-Allow-Origin",
          "value": "http://localhost:8181"
        }
      ],
      "regex": "^(?:/((?:[^/]+?)(?:/(?:[^/]+?))*))?(?:/)?$"
    }
  ],
  "rewrites": {
    "beforeFiles": [
      {
        "source": "/monitoring(/?)",
        "has": [
          {
            "type": "query",
            "key": "o",
            "value": "(?<orgid>\\d*)"
          },
          {
            "type": "query",
            "key": "p",
            "value": "(?<projectid>\\d*)"
          },
          {
            "type": "query",
            "key": "r",
            "value": "(?<region>[a-z]{2})"
          }
        ],
        "destination": "https://o:orgid.ingest.:region.sentry.io/api/:projectid/envelope/?hsts=0",
        "regex": "^/monitoring(/?)(?:/)?$"
      },
      {
        "source": "/monitoring(/?)",
        "has": [
          {
            "type": "query",
            "key": "o",
            "value": "(?<orgid>\\d*)"
          },
          {
            "type": "query",
            "key": "p",
            "value": "(?<projectid>\\d*)"
          }
        ],
        "destination": "https://o:orgid.ingest.sentry.io/api/:projectid/envelope/?hsts=0",
        "regex": "^/monitoring(/?)(?:/)?$"
      },
      {
        "source": "/:path*.map",
        "destination": "/404",
        "regex": "^(?:/((?:[^/]+?)(?:/(?:[^/]+?))*))?\\.map(?:/)?$"
      }
    ],
    "afterFiles": [],
    "fallback": []
  },
  "dynamicRoutes": [
    {
      "page": "/alerts/[id]",
      "regex": "^/alerts/([^/]+?)(?:/)?$",
      "routeKeys": {
        "nxtPid": "nxtPid"
      },
      "namedRegex": "^/alerts/(?<nxtPid>[^/]+?)(?:/)?$"
    },
    {
      "page": "/api/auth/[...nextauth]",
      "regex": "^/api/auth/(.+?)(?:/)?$",
      "routeKeys": {
        "nxtPnextauth": "nxtPnextauth"
      },
      "namedRegex": "^/api/auth/(?<nxtPnextauth>.+?)(?:/)?$"
    },
    {
      "page": "/dashboard/[id]",
      "regex": "^/dashboard/([^/]+?)(?:/)?$",
      "routeKeys": {
        "nxtPid": "nxtPid"
      },
      "namedRegex": "^/dashboard/(?<nxtPid>[^/]+?)(?:/)?$"
    },
    {
      "page": "/extraction/[rule_id]/executions",
      "regex": "^/extraction/([^/]+?)/executions(?:/)?$",
      "routeKeys": {
        "nxtPrule_id": "nxtPrule_id"
      },
      "namedRegex": "^/extraction/(?<nxtPrule_id>[^/]+?)/executions(?:/)?$"
    },
    {
      "page": "/extraction/[rule_id]/executions/[execution_id]",
      "regex": "^/extraction/([^/]+?)/executions/([^/]+?)(?:/)?$",
      "routeKeys": {
        "nxtPrule_id": "nxtPrule_id",
        "nxtPexecution_id": "nxtPexecution_id"
      },
      "namedRegex": "^/extraction/(?<nxtPrule_id>[^/]+?)/executions/(?<nxtPexecution_id>[^/]+?)(?:/)?$"
    },
    {
      "page": "/incidents/[id]",
      "regex": "^/incidents/([^/]+?)(?:/)?$",
      "routeKeys": {
        "nxtPid": "nxtPid"
      },
      "namedRegex": "^/incidents/(?<nxtPid>[^/]+?)(?:/)?$"
    },
    {
      "page": "/incidents/[id]/activity",
      "regex": "^/incidents/([^/]+?)/activity(?:/)?$",
      "routeKeys": {
        "nxtPid": "nxtPid"
      },
      "namedRegex": "^/incidents/(?<nxtPid>[^/]+?)/activity(?:/)?$"
    },
    {
      "page": "/incidents/[id]/alerts",
      "regex": "^/incidents/([^/]+?)/alerts(?:/)?$",
      "routeKeys": {
        "nxtPid": "nxtPid"
      },
      "namedRegex": "^/incidents/(?<nxtPid>[^/]+?)/alerts(?:/)?$"
    },
    {
      "page": "/incidents/[id]/timeline",
      "regex": "^/incidents/([^/]+?)/timeline(?:/)?$",
      "routeKeys": {
        "nxtPid": "nxtPid"
      },
      "namedRegex": "^/incidents/(?<nxtPid>[^/]+?)/timeline(?:/)?$"
    },
    {
      "page": "/incidents/[id]/topology",
      "regex": "^/incidents/([^/]+?)/topology(?:/)?$",
      "routeKeys": {
        "nxtPid": "nxtPid"
      },
      "namedRegex": "^/incidents/(?<nxtPid>[^/]+?)/topology(?:/)?$"
    },
    {
      "page": "/incidents/[id]/workflows",
      "regex": "^/incidents/([^/]+?)/workflows(?:/)?$",
      "routeKeys": {
        "nxtPid": "nxtPid"
      },
      "namedRegex": "^/incidents/(?<nxtPid>[^/]+?)/workflows(?:/)?$"
    },
    {
      "page": "/mapping/[rule_id]/executions",
      "regex": "^/mapping/([^/]+?)/executions(?:/)?$",
      "routeKeys": {
        "nxtPrule_id": "nxtPrule_id"
      },
      "namedRegex": "^/mapping/(?<nxtPrule_id>[^/]+?)/executions(?:/)?$"
    },
    {
      "page": "/mapping/[rule_id]/executions/[execution_id]",
      "regex": "^/mapping/([^/]+?)/executions/([^/]+?)(?:/)?$",
      "routeKeys": {
        "nxtPrule_id": "nxtPrule_id",
        "nxtPexecution_id": "nxtPexecution_id"
      },
      "namedRegex": "^/mapping/(?<nxtPrule_id>[^/]+?)/executions/(?<nxtPexecution_id>[^/]+?)(?:/)?$"
    },
    {
      "page": "/providers/oauth2/[providerType]",
      "regex": "^/providers/oauth2/([^/]+?)(?:/)?$",
      "routeKeys": {
        "nxtPproviderType": "nxtPproviderType"
      },
      "namedRegex": "^/providers/oauth2/(?<nxtPproviderType>[^/]+?)(?:/)?$"
    },
    {
      "page": "/raw/workflows/[workflow_filename]",
      "regex": "^/raw/workflows/([^/]+?)(?:/)?$",
      "routeKeys": {
        "nxtPworkflow_filename": "nxtPworkflow_filename"
      },
      "namedRegex": "^/raw/workflows/(?<nxtPworkflow_filename>[^/]+?)(?:/)?$"
    },
    {
      "page": "/workflows/builder/[workflowId]",
      "regex": "^/workflows/builder/([^/]+?)(?:/)?$",
      "routeKeys": {
        "nxtPworkflowId": "nxtPworkflowId"
      },
      "namedRegex": "^/workflows/builder/(?<nxtPworkflowId>[^/]+?)(?:/)?$"
    },
    {
      "page": "/workflows/preview/[workflowId]",
      "regex": "^/workflows/preview/([^/]+?)(?:/)?$",
      "routeKeys": {
        "nxtPworkflowId": "nxtPworkflowId"
      },
      "namedRegex": "^/workflows/preview/(?<nxtPworkflowId>[^/]+?)(?:/)?$"
    },
    {
      "page": "/workflows/[workflow_id]",
      "regex": "^/workflows/([^/]+?)(?:/)?$",
      "routeKeys": {
        "nxtPworkflow_id": "nxtPworkflow_id"
      },
      "namedRegex": "^/workflows/(?<nxtPworkflow_id>[^/]+?)(?:/)?$"
    },
    {
      "page": "/workflows/[workflow_id]/runs/[workflow_execution_id]",
      "regex": "^/workflows/([^/]+?)/runs/([^/]+?)(?:/)?$",
      "routeKeys": {
        "nxtPworkflow_id": "nxtPworkflow_id",
        "nxtPworkflow_execution_id": "nxtPworkflow_execution_id"
      },
      "namedRegex": "^/workflows/(?<nxtPworkflow_id>[^/]+?)/runs/(?<nxtPworkflow_execution_id>[^/]+?)(?:/)?$"
    },
    {
      "page": "/workflows/[workflow_id]/versions/[revision]",
      "regex": "^/workflows/([^/]+?)/versions/([^/]+?)(?:/)?$",
      "routeKeys": {
        "nxtPworkflow_id": "nxtPworkflow_id",
        "nxtPrevision": "nxtPrevision"
      },
      "namedRegex": "^/workflows/(?<nxtPworkflow_id>[^/]+?)/versions/(?<nxtPrevision>[^/]+?)(?:/)?$"
    },
    {
      "page": "/[...not-found]",
      "regex": "^/(.+?)(?:/)?$",
      "routeKeys": {
        "nxtPnotfound": "nxtPnot-found"
      },
      "namedRegex": "^/(?<nxtPnotfound>.+?)(?:/)?$"
    }
  ],
  "staticRoutes": [
    {
      "page": "/",
      "regex": "^/(?:/)?$",
      "routeKeys": {},
      "namedRegex": "^/(?:/)?$"
    },
    {
      "page": "/_not-found",
      "regex": "^/_not\\-found(?:/)?$",
      "routeKeys": {},
      "namedRegex": "^/_not\\-found(?:/)?$"
    },
    {
      "page": "/ai",
      "regex": "^/ai(?:/)?$",
      "routeKeys": {},
      "namedRegex": "^/ai(?:/)?$"
    },
    {
      "page": "/deduplication",
      "regex": "^/deduplication(?:/)?$",
      "routeKeys": {},
      "namedRegex": "^/deduplication(?:/)?$"
    },
    {
      "page": "/error",
      "regex": "^/error(?:/)?$",
      "routeKeys": {},
      "namedRegex": "^/error(?:/)?$"
    },
    {
      "page": "/extraction",
      "regex": "^/extraction(?:/)?$",
      "routeKeys": {},
      "namedRegex": "^/extraction(?:/)?$"
    },
    {
      "page": "/favicon.ico",
      "regex": "^/favicon\\.ico(?:/)?$",
      "routeKeys": {},
      "namedRegex": "^/favicon\\.ico(?:/)?$"
    },
    {
      "page": "/health",
      "regex": "^/health(?:/)?$",
      "routeKeys": {},
      "namedRegex": "^/health(?:/)?$"
    },
    {
      "page": "/health/opengraph-image-1k5qaw.png",
      "regex": "^/health/opengraph\\-image\\-1k5qaw\\.png(?:/)?$",
      "routeKeys": {},
      "namedRegex": "^/health/opengraph\\-image\\-1k5qaw\\.png(?:/)?$"
    },
    {
      "page": "/incidents",
      "regex": "^/incidents(?:/)?$",
      "routeKeys": {},
      "namedRegex": "^/incidents(?:/)?$"
    },
    {
      "page": "/maintenance",
      "regex": "^/maintenance(?:/)?$",
      "routeKeys": {},
      "namedRegex": "^/maintenance(?:/)?$"
    },
    {
      "page": "/mapping",
      "regex": "^/mapping(?:/)?$",
      "routeKeys": {},
      "namedRegex": "^/mapping(?:/)?$"
    },
    {
      "page": "/mobile",
      "regex": "^/mobile(?:/)?$",
      "routeKeys": {},
      "namedRegex": "^/mobile(?:/)?$"
    },
    {
      "page": "/notifications-hub",
      "regex": "^/notifications\\-hub(?:/)?$",
      "routeKeys": {},
      "namedRegex": "^/notifications\\-hub(?:/)?$"
    },
    {
      "page": "/providers",
      "regex": "^/providers(?:/)?$",
      "routeKeys": {},
      "namedRegex": "^/providers(?:/)?$"
    },
    {
      "page": "/rules",
      "regex": "^/rules(?:/)?$",
      "routeKeys": {},
      "namedRegex": "^/rules(?:/)?$"
    },
    {
      "page": "/settings",
      "regex": "^/settings(?:/)?$",
      "routeKeys": {},
      "namedRegex": "^/settings(?:/)?$"
    },
    {
      "page": "/settings/provider-images",
      "regex": "^/settings/provider\\-images(?:/)?$",
      "routeKeys": {},
      "namedRegex": "^/settings/provider\\-images(?:/)?$"
    },
    {
      "page": "/signin",
      "regex": "^/signin(?:/)?$",
      "routeKeys": {},
      "namedRegex": "^/signin(?:/)?$"
    },
    {
      "page": "/topology",
      "regex": "^/topology(?:/)?$",
      "routeKeys": {},
      "namedRegex": "^/topology(?:/)?$"
    },
    {
      "page": "/workflows",
      "regex": "^/workflows(?:/)?$",
      "routeKeys": {},
      "namedRegex": "^/workflows(?:/)?$"
    },
    {
      "page": "/workflows/builder",
      "regex": "^/workflows/builder(?:/)?$",
      "routeKeys": {},
      "namedRegex": "^/workflows/builder(?:/)?$"
    },
    {
      "page": "/workflows/preview",
      "regex": "^/workflows/preview(?:/)?$",
      "routeKeys": {},
      "namedRegex": "^/workflows/preview(?:/)?$"
    }
  ],
  "dataRoutes": [],
  "rsc": {
    "header": "rsc",
    "varyHeader": "rsc, next-router-state-tree, next-router-prefetch, next-router-segment-prefetch",
    "prefetchHeader": "next-router-prefetch",
    "didPostponeHeader": "x-nextjs-postponed",
    "contentTypeHeader": "text/x-component",
    "suffix": ".rsc",
    "prefetchSuffix": ".prefetch.rsc",
    "prefetchSegmentHeader": "next-router-segment-prefetch",
    "prefetchSegmentSuffix": ".segment.rsc",
    "prefetchSegmentDirSuffix": ".segments"
  },
  "rewriteHeaders": {
    "pathHeader": "x-nextjs-rewritten-path",
    "queryHeader": "x-nextjs-rewritten-query"
  }
}