Openstatus www.openstatus.dev

feat: force page theme (#1296)

* feat: force page theme

* refactor: layout

authored by

Maximilian Kaske and committed by
GitHub
02248bcd 2bdf3540

+2465 -22
apps/web/src/app/(content)/(landing)/[slug]/page.tsx apps/web/src/app/(pages)/(content)/(landing)/[slug]/page.tsx
apps/web/src/app/(content)/_components/pagination.tsx apps/web/src/app/(pages)/(content)/_components/pagination.tsx
apps/web/src/app/(content)/blog/[slug]/page.tsx apps/web/src/app/(pages)/(content)/blog/[slug]/page.tsx
apps/web/src/app/(content)/blog/feed.xml/route.ts apps/web/src/app/(pages)/(content)/blog/feed.xml/route.ts
apps/web/src/app/(content)/blog/page.tsx apps/web/src/app/(pages)/(content)/blog/page.tsx
apps/web/src/app/(content)/blog/search-params.ts apps/web/src/app/(pages)/(content)/blog/search-params.ts
apps/web/src/app/(content)/changelog/[slug]/page.tsx apps/web/src/app/(pages)/(content)/changelog/[slug]/page.tsx
apps/web/src/app/(content)/changelog/feed.xml/route.ts apps/web/src/app/(pages)/(content)/changelog/feed.xml/route.ts
apps/web/src/app/(content)/changelog/page.tsx apps/web/src/app/(pages)/(content)/changelog/page.tsx
apps/web/src/app/(content)/changelog/search-params.ts apps/web/src/app/(pages)/(content)/changelog/search-params.ts
apps/web/src/app/(content)/compare/[slug]/page.tsx apps/web/src/app/(pages)/(content)/compare/[slug]/page.tsx
apps/web/src/app/(content)/compare/_components/comparison-table.tsx apps/web/src/app/(pages)/(content)/compare/_components/comparison-table.tsx
apps/web/src/app/(content)/compare/page.tsx apps/web/src/app/(pages)/(content)/compare/page.tsx
apps/web/src/app/(content)/layout.tsx apps/web/src/app/(pages)/(content)/layout.tsx
apps/web/src/app/(content)/oss-friends/page.tsx apps/web/src/app/(pages)/(content)/oss-friends/page.tsx
apps/web/src/app/(content)/page.tsx apps/web/src/app/(pages)/(content)/page.tsx
apps/web/src/app/(content)/play/checker/[id]/page.tsx apps/web/src/app/(pages)/(content)/play/checker/[id]/page.tsx
apps/web/src/app/(content)/play/checker/[id]/search-params.ts apps/web/src/app/(pages)/(content)/play/checker/[id]/search-params.ts
apps/web/src/app/(content)/play/checker/_components/checker-form.tsx apps/web/src/app/(pages)/(content)/play/checker/_components/checker-form.tsx
apps/web/src/app/(content)/play/checker/_components/checker-play.tsx apps/web/src/app/(pages)/(content)/play/checker/_components/checker-play.tsx
apps/web/src/app/(content)/play/checker/_components/floating-action.tsx apps/web/src/app/(pages)/(content)/play/checker/_components/floating-action.tsx
apps/web/src/app/(content)/play/checker/_components/global-monitoring.tsx apps/web/src/app/(pages)/(content)/play/checker/_components/global-monitoring.tsx
apps/web/src/app/(content)/play/checker/_components/testimonial.tsx apps/web/src/app/(pages)/(content)/play/checker/_components/testimonial.tsx
apps/web/src/app/(content)/play/checker/api/mock.ts apps/web/src/app/(pages)/(content)/play/checker/api/mock.ts
apps/web/src/app/(content)/play/checker/api/route.ts apps/web/src/app/(pages)/(content)/play/checker/api/route.ts
apps/web/src/app/(content)/play/checker/layout.tsx apps/web/src/app/(pages)/(content)/play/checker/layout.tsx
apps/web/src/app/(content)/play/checker/page.tsx apps/web/src/app/(pages)/(content)/play/checker/page.tsx
apps/web/src/app/(content)/play/checker/search-params.ts apps/web/src/app/(pages)/(content)/play/checker/search-params.ts
apps/web/src/app/(content)/play/curl/_components/curl-form.tsx apps/web/src/app/(pages)/(content)/play/curl/_components/curl-form.tsx
apps/web/src/app/(content)/play/curl/layout.tsx apps/web/src/app/(pages)/(content)/play/curl/layout.tsx
apps/web/src/app/(content)/play/curl/page.tsx apps/web/src/app/(pages)/(content)/play/curl/page.tsx
apps/web/src/app/(content)/play/curl/search-params.ts apps/web/src/app/(pages)/(content)/play/curl/search-params.ts
apps/web/src/app/(content)/play/default.tsx apps/web/src/app/(pages)/(content)/play/default.tsx
+1 -1
apps/web/src/app/(content)/play/page.tsx apps/web/src/app/(pages)/(content)/play/page.tsx
··· 17 17 defaultMetadata, 18 18 ogMetadata, 19 19 twitterMetadata, 20 - } from "../../shared-metadata"; 20 + } from "../../../shared-metadata"; 21 21 22 22 export const metadata: Metadata = { 23 23 ...defaultMetadata,
apps/web/src/app/(content)/play/status/_components/status-play.tsx apps/web/src/app/(pages)/(content)/play/status/_components/status-play.tsx
apps/web/src/app/(content)/play/status/layout.tsx apps/web/src/app/(pages)/(content)/play/status/layout.tsx
apps/web/src/app/(content)/play/status/page.tsx apps/web/src/app/(pages)/(content)/play/status/page.tsx
apps/web/src/app/(content)/pricing/page.tsx apps/web/src/app/(pages)/(content)/pricing/page.tsx
+18
apps/web/src/app/(pages)/layout.tsx
··· 1 + import { TailwindIndicator } from "@/components/tailwind-indicator"; 2 + import { ThemeProvider } from "@/components/theme-provider"; 3 + import { Toaster } from "@/components/ui/sonner"; 4 + import Background from "../_components/background"; 5 + 6 + export default function PagesLayout({ 7 + children, 8 + }: { 9 + children: React.ReactNode; 10 + }) { 11 + return ( 12 + <ThemeProvider attribute="class" defaultTheme="light" enableSystem> 13 + <Background>{children}</Background> 14 + <Toaster richColors closeButton /> 15 + <TailwindIndicator /> 16 + </ThemeProvider> 17 + ); 18 + }
apps/web/src/app/(redirect)/cal/page.tsx apps/web/src/app/(pages)/(redirect)/cal/page.tsx
apps/web/src/app/(redirect)/discord/page.tsx apps/web/src/app/(pages)/(redirect)/discord/page.tsx
apps/web/src/app/(redirect)/docs/page.tsx apps/web/src/app/(pages)/(redirect)/docs/page.tsx
apps/web/src/app/(redirect)/github/page.tsx apps/web/src/app/(pages)/(redirect)/github/page.tsx
apps/web/src/app/(redirect)/linkedin/page.tsx apps/web/src/app/(pages)/(redirect)/linkedin/page.tsx
apps/web/src/app/(redirect)/schema.json/page.tsx apps/web/src/app/(pages)/(redirect)/schema.json/page.tsx
apps/web/src/app/(redirect)/twitter/page.tsx apps/web/src/app/(pages)/(redirect)/twitter/page.tsx
apps/web/src/app/(redirect)/youtube/page.tsx apps/web/src/app/(pages)/(redirect)/youtube/page.tsx
apps/web/src/app/about/_components/member.tsx apps/web/src/app/(pages)/about/_components/member.tsx
apps/web/src/app/about/page.tsx apps/web/src/app/(pages)/about/page.tsx
apps/web/src/app/app/(auth)/login/_components/actions.ts apps/web/src/app/(pages)/app/(auth)/login/_components/actions.ts
apps/web/src/app/app/(auth)/login/layout.tsx apps/web/src/app/(pages)/app/(auth)/login/layout.tsx
apps/web/src/app/app/(auth)/login/page.tsx apps/web/src/app/(pages)/app/(auth)/login/page.tsx
apps/web/src/app/app/(auth)/login/search-params.ts apps/web/src/app/(pages)/app/(auth)/login/search-params.ts
apps/web/src/app/app/(auth)/sign-in/page.tsx apps/web/src/app/(pages)/app/(auth)/sign-in/page.tsx
apps/web/src/app/app/(auth)/sign-up/page.tsx apps/web/src/app/(pages)/app/(auth)/sign-up/page.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/incidents/(overview)/layout.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/incidents/(overview)/layout.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/incidents/(overview)/loading.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/incidents/(overview)/loading.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/incidents/(overview)/page.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/incidents/(overview)/page.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/incidents/(overview)/report-info-banner.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/incidents/(overview)/report-info-banner.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/incidents/[id]/layout.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/incidents/[id]/layout.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/incidents/[id]/overview/_components/event.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/incidents/[id]/overview/_components/event.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/incidents/[id]/overview/page.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/incidents/[id]/overview/page.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/incidents/[id]/page.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/incidents/[id]/page.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/layout.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/layout.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/monitors/(overview)/layout.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/monitors/(overview)/layout.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/monitors/(overview)/loading.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/monitors/(overview)/loading.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/monitors/(overview)/page.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/monitors/(overview)/page.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/monitors/(overview)/search-params.ts apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/monitors/(overview)/search-params.ts
apps/web/src/app/app/[workspaceSlug]/(dashboard)/monitors/[id]/data/_components/data-table-wrapper.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/monitors/[id]/data/_components/data-table-wrapper.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/monitors/[id]/data/_components/download-csv-button.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/monitors/[id]/data/_components/download-csv-button.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/monitors/[id]/data/loading.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/monitors/[id]/data/loading.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/monitors/[id]/data/page.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/monitors/[id]/data/page.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/monitors/[id]/data/search-params.ts apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/monitors/[id]/data/search-params.ts
apps/web/src/app/app/[workspaceSlug]/(dashboard)/monitors/[id]/details/page.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/monitors/[id]/details/page.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/monitors/[id]/details/search-params.ts apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/monitors/[id]/details/search-params.ts
apps/web/src/app/app/[workspaceSlug]/(dashboard)/monitors/[id]/edit/loading.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/monitors/[id]/edit/loading.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/monitors/[id]/edit/page.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/monitors/[id]/edit/page.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/monitors/[id]/edit/search-params.ts apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/monitors/[id]/edit/search-params.ts
apps/web/src/app/app/[workspaceSlug]/(dashboard)/monitors/[id]/layout.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/monitors/[id]/layout.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/monitors/[id]/overview/loading.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/monitors/[id]/overview/loading.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/monitors/[id]/overview/page.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/monitors/[id]/overview/page.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/monitors/[id]/overview/search-params.ts apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/monitors/[id]/overview/search-params.ts
apps/web/src/app/app/[workspaceSlug]/(dashboard)/monitors/[id]/page.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/monitors/[id]/page.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/monitors/new/layout.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/monitors/new/layout.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/monitors/new/loading.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/monitors/new/loading.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/monitors/new/page.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/monitors/new/page.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/monitors/new/search-params.ts apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/monitors/new/search-params.ts
apps/web/src/app/app/[workspaceSlug]/(dashboard)/notifications/(overview)/_components/channel-table.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/notifications/(overview)/_components/channel-table.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/notifications/(overview)/layout.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/notifications/(overview)/layout.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/notifications/(overview)/loading.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/notifications/(overview)/loading.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/notifications/(overview)/page.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/notifications/(overview)/page.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/notifications/[id]/edit/loading.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/notifications/[id]/edit/loading.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/notifications/[id]/edit/page.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/notifications/[id]/edit/page.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/notifications/[id]/layout.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/notifications/[id]/layout.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/notifications/[id]/page.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/notifications/[id]/page.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/notifications/new/[channel]/page.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/notifications/new/[channel]/page.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/notifications/new/layout.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/notifications/new/layout.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/notifications/new/loading.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/notifications/new/loading.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/notifications/new/pagerduty/page.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/notifications/new/pagerduty/page.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/notifications/new/pagerduty/search-params.ts apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/notifications/new/pagerduty/search-params.ts
apps/web/src/app/app/[workspaceSlug]/(dashboard)/page.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/page.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/api-token/_components/actions.ts apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/settings/api-token/_components/actions.ts
apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/api-token/_components/card.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/settings/api-token/_components/card.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/api-token/_components/create-form.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/settings/api-token/_components/create-form.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/api-token/_components/revoke-button.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/settings/api-token/_components/revoke-button.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/api-token/_components/submit-button.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/settings/api-token/_components/submit-button.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/api-token/layout.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/settings/api-token/layout.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/api-token/loading.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/settings/api-token/loading.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/api-token/page.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/settings/api-token/page.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/appearance/layout.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/settings/appearance/layout.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/appearance/loading.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/settings/appearance/loading.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/appearance/page.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/settings/appearance/page.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/billing/_components/change-plan-button.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/settings/billing/_components/change-plan-button.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/billing/_components/customer-portal-button.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/settings/billing/_components/customer-portal-button.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/billing/_components/plan.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/settings/billing/_components/plan.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/billing/layout.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/settings/billing/layout.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/billing/loading.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/settings/billing/loading.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/billing/page.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/settings/billing/page.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/general/_components/copy-to-clipboard-button.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/settings/general/_components/copy-to-clipboard-button.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/general/layout.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/settings/general/layout.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/general/loading.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/settings/general/loading.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/general/page.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/settings/general/page.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/layout.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/settings/layout.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/page.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/settings/page.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/team/_components/info-banner.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/settings/team/_components/info-banner.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/team/_components/invite-button.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/settings/team/_components/invite-button.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/team/layout.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/settings/team/layout.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/team/loading.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/settings/team/loading.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/team/page.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/settings/team/page.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/user/layout.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/settings/user/layout.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/user/loading.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/settings/user/loading.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/settings/user/page.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/settings/user/page.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/status-pages/(overview)/_components/status-report-button.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/status-pages/(overview)/_components/status-report-button.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/status-pages/(overview)/layout.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/status-pages/(overview)/layout.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/status-pages/(overview)/loading.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/status-pages/(overview)/loading.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/status-pages/(overview)/page.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/status-pages/(overview)/page.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/status-pages/[id]/domain/loading.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/status-pages/[id]/domain/loading.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/status-pages/[id]/domain/page.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/status-pages/[id]/domain/page.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/status-pages/[id]/edit/loading.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/status-pages/[id]/edit/loading.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/status-pages/[id]/edit/page.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/status-pages/[id]/edit/page.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/status-pages/[id]/edit/search-params.ts apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/status-pages/[id]/edit/search-params.ts
apps/web/src/app/app/[workspaceSlug]/(dashboard)/status-pages/[id]/layout.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/status-pages/[id]/layout.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/status-pages/[id]/maintenances/(overview)/page.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/status-pages/[id]/maintenances/(overview)/page.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/status-pages/[id]/maintenances/[maintenanceId]/edit/page.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/status-pages/[id]/maintenances/[maintenanceId]/edit/page.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/status-pages/[id]/maintenances/new/page.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/status-pages/[id]/maintenances/new/page.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/status-pages/[id]/page.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/status-pages/[id]/page.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/status-pages/[id]/reports/(overview)/loading.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/status-pages/[id]/reports/(overview)/loading.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/status-pages/[id]/reports/(overview)/page.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/status-pages/[id]/reports/(overview)/page.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/status-pages/[id]/reports/[reportId]/_components/status-update-button.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/status-pages/[id]/reports/[reportId]/_components/status-update-button.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/status-pages/[id]/reports/[reportId]/edit/loading.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/status-pages/[id]/reports/[reportId]/edit/loading.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/status-pages/[id]/reports/[reportId]/edit/page.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/status-pages/[id]/reports/[reportId]/edit/page.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/status-pages/[id]/reports/[reportId]/overview/_components/header.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/status-pages/[id]/reports/[reportId]/overview/_components/header.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/status-pages/[id]/reports/[reportId]/overview/loading.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/status-pages/[id]/reports/[reportId]/overview/loading.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/status-pages/[id]/reports/[reportId]/overview/page.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/status-pages/[id]/reports/[reportId]/overview/page.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/status-pages/[id]/reports/[reportId]/page.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/status-pages/[id]/reports/[reportId]/page.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/status-pages/[id]/reports/new/loading.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/status-pages/[id]/reports/new/loading.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/status-pages/[id]/reports/new/page.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/status-pages/[id]/reports/new/page.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/status-pages/[id]/subscribers/loading.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/status-pages/[id]/subscribers/loading.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/status-pages/[id]/subscribers/page.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/status-pages/[id]/subscribers/page.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/status-pages/new/layout.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/status-pages/new/layout.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/status-pages/new/loading.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/status-pages/new/loading.tsx
apps/web/src/app/app/[workspaceSlug]/(dashboard)/status-pages/new/page.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/(dashboard)/status-pages/new/page.tsx
apps/web/src/app/app/[workspaceSlug]/onboarding/_components/description.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/onboarding/_components/description.tsx
apps/web/src/app/app/[workspaceSlug]/onboarding/layout.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/onboarding/layout.tsx
apps/web/src/app/app/[workspaceSlug]/onboarding/page.tsx apps/web/src/app/(pages)/app/[workspaceSlug]/onboarding/page.tsx
apps/web/src/app/app/[workspaceSlug]/worskpace-client-cookie.ts apps/web/src/app/(pages)/app/[workspaceSlug]/worskpace-client-cookie.ts
apps/web/src/app/app/invite/layout.tsx apps/web/src/app/(pages)/app/invite/layout.tsx
apps/web/src/app/app/invite/page.tsx apps/web/src/app/(pages)/app/invite/page.tsx
apps/web/src/app/app/invite/search-params.ts apps/web/src/app/(pages)/app/invite/search-params.ts
apps/web/src/app/app/layout.tsx apps/web/src/app/(pages)/app/layout.tsx
apps/web/src/app/app/onboarding/page.tsx apps/web/src/app/(pages)/app/onboarding/page.tsx
apps/web/src/app/app/page.tsx apps/web/src/app/(pages)/app/page.tsx
+1 -11
apps/web/src/app/layout.tsx
··· 1 1 import "@/styles/globals.css"; 2 2 3 - import { Toaster } from "@/components/ui/sonner"; 4 3 import { OpenPanelComponent } from "@openpanel/nextjs"; 5 4 import type { Metadata } from "next"; 6 5 import { Inter } from "next/font/google"; ··· 11 10 ogMetadata, 12 11 twitterMetadata, 13 12 } from "@/app/shared-metadata"; 14 - import { TailwindIndicator } from "@/components/tailwind-indicator"; 15 - import { ThemeProvider } from "@/components/theme-provider"; 16 13 import { env } from "@/env"; 17 14 import { TRPCReactQueryProvider } from "@/trpc/rq-client"; 18 15 import { NuqsAdapter } from "nuqs/adapters/next/app"; 19 - import Background from "./_components/background"; 20 16 21 17 const inter = Inter({ subsets: ["latin"] }); 22 18 ··· 49 45 } ${calSans.variable}`} 50 46 > 51 47 <NuqsAdapter> 52 - <ThemeProvider attribute="class" defaultTheme="light" enableSystem> 53 - <TRPCReactQueryProvider> 54 - <Background>{children}</Background> 55 - <Toaster richColors closeButton /> 56 - <TailwindIndicator /> 57 - </TRPCReactQueryProvider> 58 - </ThemeProvider> 48 + <TRPCReactQueryProvider>{children}</TRPCReactQueryProvider> 59 49 </NuqsAdapter> 60 50 {env.NEXT_PUBLIC_OPENPANEL_CLIENT_ID && ( 61 51 <OpenPanelComponent
apps/web/src/app/legal/[slug]/layout.tsx apps/web/src/app/(pages)/legal/[slug]/layout.tsx
apps/web/src/app/legal/[slug]/page.tsx apps/web/src/app/(pages)/legal/[slug]/page.tsx
apps/web/src/app/public/layout.tsx apps/web/src/app/(pages)/public/layout.tsx
apps/web/src/app/public/monitors/[id]/loading.tsx apps/web/src/app/(pages)/public/monitors/[id]/loading.tsx
apps/web/src/app/public/monitors/[id]/page.tsx apps/web/src/app/(pages)/public/monitors/[id]/page.tsx
apps/web/src/app/public/monitors/[id]/search-params.ts apps/web/src/app/(pages)/public/monitors/[id]/search-params.ts
+23 -9
apps/web/src/app/status-page/[domain]/layout.tsx
··· 2 2 import { cookies } from "next/headers"; 3 3 import { notFound } from "next/navigation"; 4 4 5 + import Background from "@/app/_components/background"; 5 6 import { 6 7 defaultMetadata, 7 8 ogMetadata, 8 9 twitterMetadata, 9 10 } from "@/app/shared-metadata"; 10 11 import { Shell } from "@/components/dashboard/shell"; 12 + import { TailwindIndicator } from "@/components/tailwind-indicator"; 13 + import { ThemeProvider } from "@/components/theme-provider"; 14 + import { Toaster } from "@/components/ui/sonner"; 11 15 import { getRequestHeaderTimezone } from "@/lib/timezone"; 12 16 import { api } from "@/trpc/server"; 13 17 import { Footer } from "./_components/footer"; ··· 62 66 } 63 67 64 68 return ( 65 - <div className="relative mx-auto flex min-h-screen w-full max-w-4xl flex-col space-y-6 p-4 md:p-8"> 66 - <Header navigation={navigation} plan={plan} page={page} /> 67 - <main className="flex h-full w-full flex-1 flex-col"> 68 - <Shell className="mx-auto h-full flex-1 rounded-2xl px-4 py-4 md:p-8"> 69 - {children} 70 - </Shell> 71 - </main> 72 - <Footer plan={plan} timeZone={timeZone} /> 73 - </div> 69 + <ThemeProvider 70 + attribute="class" 71 + defaultTheme={page.forceTheme ?? "light"} 72 + enableSystem 73 + > 74 + <Background> 75 + <div className="relative mx-auto flex min-h-screen w-full max-w-4xl flex-col space-y-6 p-4 md:p-8"> 76 + <Header navigation={navigation} plan={plan} page={page} /> 77 + <main className="flex h-full w-full flex-1 flex-col"> 78 + <Shell className="mx-auto h-full flex-1 rounded-2xl px-4 py-4 md:p-8"> 79 + {children} 80 + </Shell> 81 + </main> 82 + <Footer plan={plan} timeZone={timeZone} /> 83 + </div> 84 + </Background> 85 + <Toaster richColors closeButton /> 86 + <TailwindIndicator /> 87 + </ThemeProvider> 74 88 ); 75 89 } 76 90
+1 -1
apps/web/src/app/status/page.tsx apps/web/src/app/(pages)/status/page.tsx
··· 10 10 defaultMetadata, 11 11 ogMetadata, 12 12 twitterMetadata, 13 - } from "../shared-metadata"; 13 + } from "../../shared-metadata"; 14 14 import { externalStatusArray, getClassname } from "./utils"; 15 15 16 16 export const revalidate = 600; // revalidate every 10 min
apps/web/src/app/status/utils.ts apps/web/src/app/(pages)/status/utils.ts
+1
packages/db/drizzle/0044_illegal_turbo.sql
··· 1 + ALTER TABLE `page` ADD `force_theme` text DEFAULT 'system' NOT NULL;
+2409
packages/db/drizzle/meta/0044_snapshot.json
··· 1 + { 2 + "version": "6", 3 + "dialect": "sqlite", 4 + "id": "731c8921-4489-4e79-965c-e3d292b164dd", 5 + "prevId": "5ab3a069-5948-479e-8763-b5546564c0cc", 6 + "tables": { 7 + "workspace": { 8 + "name": "workspace", 9 + "columns": { 10 + "id": { 11 + "name": "id", 12 + "type": "integer", 13 + "primaryKey": true, 14 + "notNull": true, 15 + "autoincrement": false 16 + }, 17 + "slug": { 18 + "name": "slug", 19 + "type": "text", 20 + "primaryKey": false, 21 + "notNull": true, 22 + "autoincrement": false 23 + }, 24 + "name": { 25 + "name": "name", 26 + "type": "text", 27 + "primaryKey": false, 28 + "notNull": false, 29 + "autoincrement": false 30 + }, 31 + "stripe_id": { 32 + "name": "stripe_id", 33 + "type": "text(256)", 34 + "primaryKey": false, 35 + "notNull": false, 36 + "autoincrement": false 37 + }, 38 + "subscription_id": { 39 + "name": "subscription_id", 40 + "type": "text", 41 + "primaryKey": false, 42 + "notNull": false, 43 + "autoincrement": false 44 + }, 45 + "plan": { 46 + "name": "plan", 47 + "type": "text", 48 + "primaryKey": false, 49 + "notNull": false, 50 + "autoincrement": false 51 + }, 52 + "ends_at": { 53 + "name": "ends_at", 54 + "type": "integer", 55 + "primaryKey": false, 56 + "notNull": false, 57 + "autoincrement": false 58 + }, 59 + "paid_until": { 60 + "name": "paid_until", 61 + "type": "integer", 62 + "primaryKey": false, 63 + "notNull": false, 64 + "autoincrement": false 65 + }, 66 + "limits": { 67 + "name": "limits", 68 + "type": "text", 69 + "primaryKey": false, 70 + "notNull": true, 71 + "autoincrement": false, 72 + "default": "'{}'" 73 + }, 74 + "created_at": { 75 + "name": "created_at", 76 + "type": "integer", 77 + "primaryKey": false, 78 + "notNull": false, 79 + "autoincrement": false, 80 + "default": "(strftime('%s', 'now'))" 81 + }, 82 + "updated_at": { 83 + "name": "updated_at", 84 + "type": "integer", 85 + "primaryKey": false, 86 + "notNull": false, 87 + "autoincrement": false, 88 + "default": "(strftime('%s', 'now'))" 89 + }, 90 + "dsn": { 91 + "name": "dsn", 92 + "type": "text", 93 + "primaryKey": false, 94 + "notNull": false, 95 + "autoincrement": false 96 + } 97 + }, 98 + "indexes": { 99 + "workspace_slug_unique": { 100 + "name": "workspace_slug_unique", 101 + "columns": [ 102 + "slug" 103 + ], 104 + "isUnique": true 105 + }, 106 + "workspace_stripe_id_unique": { 107 + "name": "workspace_stripe_id_unique", 108 + "columns": [ 109 + "stripe_id" 110 + ], 111 + "isUnique": true 112 + }, 113 + "workspace_id_dsn_unique": { 114 + "name": "workspace_id_dsn_unique", 115 + "columns": [ 116 + "id", 117 + "dsn" 118 + ], 119 + "isUnique": true 120 + } 121 + }, 122 + "foreignKeys": {}, 123 + "compositePrimaryKeys": {}, 124 + "uniqueConstraints": {}, 125 + "checkConstraints": {} 126 + }, 127 + "account": { 128 + "name": "account", 129 + "columns": { 130 + "user_id": { 131 + "name": "user_id", 132 + "type": "integer", 133 + "primaryKey": false, 134 + "notNull": true, 135 + "autoincrement": false 136 + }, 137 + "type": { 138 + "name": "type", 139 + "type": "text", 140 + "primaryKey": false, 141 + "notNull": true, 142 + "autoincrement": false 143 + }, 144 + "provider": { 145 + "name": "provider", 146 + "type": "text", 147 + "primaryKey": false, 148 + "notNull": true, 149 + "autoincrement": false 150 + }, 151 + "provider_account_id": { 152 + "name": "provider_account_id", 153 + "type": "text", 154 + "primaryKey": false, 155 + "notNull": true, 156 + "autoincrement": false 157 + }, 158 + "refresh_token": { 159 + "name": "refresh_token", 160 + "type": "text", 161 + "primaryKey": false, 162 + "notNull": false, 163 + "autoincrement": false 164 + }, 165 + "access_token": { 166 + "name": "access_token", 167 + "type": "text", 168 + "primaryKey": false, 169 + "notNull": false, 170 + "autoincrement": false 171 + }, 172 + "expires_at": { 173 + "name": "expires_at", 174 + "type": "integer", 175 + "primaryKey": false, 176 + "notNull": false, 177 + "autoincrement": false 178 + }, 179 + "token_type": { 180 + "name": "token_type", 181 + "type": "text", 182 + "primaryKey": false, 183 + "notNull": false, 184 + "autoincrement": false 185 + }, 186 + "scope": { 187 + "name": "scope", 188 + "type": "text", 189 + "primaryKey": false, 190 + "notNull": false, 191 + "autoincrement": false 192 + }, 193 + "id_token": { 194 + "name": "id_token", 195 + "type": "text", 196 + "primaryKey": false, 197 + "notNull": false, 198 + "autoincrement": false 199 + }, 200 + "session_state": { 201 + "name": "session_state", 202 + "type": "text", 203 + "primaryKey": false, 204 + "notNull": false, 205 + "autoincrement": false 206 + } 207 + }, 208 + "indexes": {}, 209 + "foreignKeys": { 210 + "account_user_id_user_id_fk": { 211 + "name": "account_user_id_user_id_fk", 212 + "tableFrom": "account", 213 + "tableTo": "user", 214 + "columnsFrom": [ 215 + "user_id" 216 + ], 217 + "columnsTo": [ 218 + "id" 219 + ], 220 + "onDelete": "cascade", 221 + "onUpdate": "no action" 222 + } 223 + }, 224 + "compositePrimaryKeys": { 225 + "account_provider_provider_account_id_pk": { 226 + "columns": [ 227 + "provider", 228 + "provider_account_id" 229 + ], 230 + "name": "account_provider_provider_account_id_pk" 231 + } 232 + }, 233 + "uniqueConstraints": {}, 234 + "checkConstraints": {} 235 + }, 236 + "session": { 237 + "name": "session", 238 + "columns": { 239 + "session_token": { 240 + "name": "session_token", 241 + "type": "text", 242 + "primaryKey": true, 243 + "notNull": true, 244 + "autoincrement": false 245 + }, 246 + "user_id": { 247 + "name": "user_id", 248 + "type": "integer", 249 + "primaryKey": false, 250 + "notNull": true, 251 + "autoincrement": false 252 + }, 253 + "expires": { 254 + "name": "expires", 255 + "type": "integer", 256 + "primaryKey": false, 257 + "notNull": true, 258 + "autoincrement": false 259 + } 260 + }, 261 + "indexes": {}, 262 + "foreignKeys": { 263 + "session_user_id_user_id_fk": { 264 + "name": "session_user_id_user_id_fk", 265 + "tableFrom": "session", 266 + "tableTo": "user", 267 + "columnsFrom": [ 268 + "user_id" 269 + ], 270 + "columnsTo": [ 271 + "id" 272 + ], 273 + "onDelete": "cascade", 274 + "onUpdate": "no action" 275 + } 276 + }, 277 + "compositePrimaryKeys": {}, 278 + "uniqueConstraints": {}, 279 + "checkConstraints": {} 280 + }, 281 + "user": { 282 + "name": "user", 283 + "columns": { 284 + "id": { 285 + "name": "id", 286 + "type": "integer", 287 + "primaryKey": true, 288 + "notNull": true, 289 + "autoincrement": false 290 + }, 291 + "tenant_id": { 292 + "name": "tenant_id", 293 + "type": "text(256)", 294 + "primaryKey": false, 295 + "notNull": false, 296 + "autoincrement": false 297 + }, 298 + "first_name": { 299 + "name": "first_name", 300 + "type": "text", 301 + "primaryKey": false, 302 + "notNull": false, 303 + "autoincrement": false, 304 + "default": "''" 305 + }, 306 + "last_name": { 307 + "name": "last_name", 308 + "type": "text", 309 + "primaryKey": false, 310 + "notNull": false, 311 + "autoincrement": false, 312 + "default": "''" 313 + }, 314 + "photo_url": { 315 + "name": "photo_url", 316 + "type": "text", 317 + "primaryKey": false, 318 + "notNull": false, 319 + "autoincrement": false, 320 + "default": "''" 321 + }, 322 + "name": { 323 + "name": "name", 324 + "type": "text", 325 + "primaryKey": false, 326 + "notNull": false, 327 + "autoincrement": false 328 + }, 329 + "email": { 330 + "name": "email", 331 + "type": "text", 332 + "primaryKey": false, 333 + "notNull": false, 334 + "autoincrement": false, 335 + "default": "''" 336 + }, 337 + "emailVerified": { 338 + "name": "emailVerified", 339 + "type": "integer", 340 + "primaryKey": false, 341 + "notNull": false, 342 + "autoincrement": false 343 + }, 344 + "created_at": { 345 + "name": "created_at", 346 + "type": "integer", 347 + "primaryKey": false, 348 + "notNull": false, 349 + "autoincrement": false, 350 + "default": "(strftime('%s', 'now'))" 351 + }, 352 + "updated_at": { 353 + "name": "updated_at", 354 + "type": "integer", 355 + "primaryKey": false, 356 + "notNull": false, 357 + "autoincrement": false, 358 + "default": "(strftime('%s', 'now'))" 359 + } 360 + }, 361 + "indexes": { 362 + "user_tenant_id_unique": { 363 + "name": "user_tenant_id_unique", 364 + "columns": [ 365 + "tenant_id" 366 + ], 367 + "isUnique": true 368 + } 369 + }, 370 + "foreignKeys": {}, 371 + "compositePrimaryKeys": {}, 372 + "uniqueConstraints": {}, 373 + "checkConstraints": {} 374 + }, 375 + "users_to_workspaces": { 376 + "name": "users_to_workspaces", 377 + "columns": { 378 + "user_id": { 379 + "name": "user_id", 380 + "type": "integer", 381 + "primaryKey": false, 382 + "notNull": true, 383 + "autoincrement": false 384 + }, 385 + "workspace_id": { 386 + "name": "workspace_id", 387 + "type": "integer", 388 + "primaryKey": false, 389 + "notNull": true, 390 + "autoincrement": false 391 + }, 392 + "role": { 393 + "name": "role", 394 + "type": "text", 395 + "primaryKey": false, 396 + "notNull": true, 397 + "autoincrement": false, 398 + "default": "'member'" 399 + }, 400 + "created_at": { 401 + "name": "created_at", 402 + "type": "integer", 403 + "primaryKey": false, 404 + "notNull": false, 405 + "autoincrement": false, 406 + "default": "(strftime('%s', 'now'))" 407 + } 408 + }, 409 + "indexes": {}, 410 + "foreignKeys": { 411 + "users_to_workspaces_user_id_user_id_fk": { 412 + "name": "users_to_workspaces_user_id_user_id_fk", 413 + "tableFrom": "users_to_workspaces", 414 + "tableTo": "user", 415 + "columnsFrom": [ 416 + "user_id" 417 + ], 418 + "columnsTo": [ 419 + "id" 420 + ], 421 + "onDelete": "no action", 422 + "onUpdate": "no action" 423 + }, 424 + "users_to_workspaces_workspace_id_workspace_id_fk": { 425 + "name": "users_to_workspaces_workspace_id_workspace_id_fk", 426 + "tableFrom": "users_to_workspaces", 427 + "tableTo": "workspace", 428 + "columnsFrom": [ 429 + "workspace_id" 430 + ], 431 + "columnsTo": [ 432 + "id" 433 + ], 434 + "onDelete": "no action", 435 + "onUpdate": "no action" 436 + } 437 + }, 438 + "compositePrimaryKeys": { 439 + "users_to_workspaces_user_id_workspace_id_pk": { 440 + "columns": [ 441 + "user_id", 442 + "workspace_id" 443 + ], 444 + "name": "users_to_workspaces_user_id_workspace_id_pk" 445 + } 446 + }, 447 + "uniqueConstraints": {}, 448 + "checkConstraints": {} 449 + }, 450 + "verification_token": { 451 + "name": "verification_token", 452 + "columns": { 453 + "identifier": { 454 + "name": "identifier", 455 + "type": "text", 456 + "primaryKey": false, 457 + "notNull": true, 458 + "autoincrement": false 459 + }, 460 + "token": { 461 + "name": "token", 462 + "type": "text", 463 + "primaryKey": false, 464 + "notNull": true, 465 + "autoincrement": false 466 + }, 467 + "expires": { 468 + "name": "expires", 469 + "type": "integer", 470 + "primaryKey": false, 471 + "notNull": true, 472 + "autoincrement": false 473 + } 474 + }, 475 + "indexes": {}, 476 + "foreignKeys": {}, 477 + "compositePrimaryKeys": { 478 + "verification_token_identifier_token_pk": { 479 + "columns": [ 480 + "identifier", 481 + "token" 482 + ], 483 + "name": "verification_token_identifier_token_pk" 484 + } 485 + }, 486 + "uniqueConstraints": {}, 487 + "checkConstraints": {} 488 + }, 489 + "status_report_to_monitors": { 490 + "name": "status_report_to_monitors", 491 + "columns": { 492 + "monitor_id": { 493 + "name": "monitor_id", 494 + "type": "integer", 495 + "primaryKey": false, 496 + "notNull": true, 497 + "autoincrement": false 498 + }, 499 + "status_report_id": { 500 + "name": "status_report_id", 501 + "type": "integer", 502 + "primaryKey": false, 503 + "notNull": true, 504 + "autoincrement": false 505 + }, 506 + "created_at": { 507 + "name": "created_at", 508 + "type": "integer", 509 + "primaryKey": false, 510 + "notNull": false, 511 + "autoincrement": false, 512 + "default": "(strftime('%s', 'now'))" 513 + } 514 + }, 515 + "indexes": {}, 516 + "foreignKeys": { 517 + "status_report_to_monitors_monitor_id_monitor_id_fk": { 518 + "name": "status_report_to_monitors_monitor_id_monitor_id_fk", 519 + "tableFrom": "status_report_to_monitors", 520 + "tableTo": "monitor", 521 + "columnsFrom": [ 522 + "monitor_id" 523 + ], 524 + "columnsTo": [ 525 + "id" 526 + ], 527 + "onDelete": "cascade", 528 + "onUpdate": "no action" 529 + }, 530 + "status_report_to_monitors_status_report_id_status_report_id_fk": { 531 + "name": "status_report_to_monitors_status_report_id_status_report_id_fk", 532 + "tableFrom": "status_report_to_monitors", 533 + "tableTo": "status_report", 534 + "columnsFrom": [ 535 + "status_report_id" 536 + ], 537 + "columnsTo": [ 538 + "id" 539 + ], 540 + "onDelete": "cascade", 541 + "onUpdate": "no action" 542 + } 543 + }, 544 + "compositePrimaryKeys": { 545 + "status_report_to_monitors_monitor_id_status_report_id_pk": { 546 + "columns": [ 547 + "monitor_id", 548 + "status_report_id" 549 + ], 550 + "name": "status_report_to_monitors_monitor_id_status_report_id_pk" 551 + } 552 + }, 553 + "uniqueConstraints": {}, 554 + "checkConstraints": {} 555 + }, 556 + "status_report": { 557 + "name": "status_report", 558 + "columns": { 559 + "id": { 560 + "name": "id", 561 + "type": "integer", 562 + "primaryKey": true, 563 + "notNull": true, 564 + "autoincrement": false 565 + }, 566 + "status": { 567 + "name": "status", 568 + "type": "text", 569 + "primaryKey": false, 570 + "notNull": true, 571 + "autoincrement": false 572 + }, 573 + "title": { 574 + "name": "title", 575 + "type": "text(256)", 576 + "primaryKey": false, 577 + "notNull": true, 578 + "autoincrement": false 579 + }, 580 + "workspace_id": { 581 + "name": "workspace_id", 582 + "type": "integer", 583 + "primaryKey": false, 584 + "notNull": false, 585 + "autoincrement": false 586 + }, 587 + "page_id": { 588 + "name": "page_id", 589 + "type": "integer", 590 + "primaryKey": false, 591 + "notNull": false, 592 + "autoincrement": false 593 + }, 594 + "created_at": { 595 + "name": "created_at", 596 + "type": "integer", 597 + "primaryKey": false, 598 + "notNull": false, 599 + "autoincrement": false, 600 + "default": "(strftime('%s', 'now'))" 601 + }, 602 + "updated_at": { 603 + "name": "updated_at", 604 + "type": "integer", 605 + "primaryKey": false, 606 + "notNull": false, 607 + "autoincrement": false, 608 + "default": "(strftime('%s', 'now'))" 609 + } 610 + }, 611 + "indexes": {}, 612 + "foreignKeys": { 613 + "status_report_workspace_id_workspace_id_fk": { 614 + "name": "status_report_workspace_id_workspace_id_fk", 615 + "tableFrom": "status_report", 616 + "tableTo": "workspace", 617 + "columnsFrom": [ 618 + "workspace_id" 619 + ], 620 + "columnsTo": [ 621 + "id" 622 + ], 623 + "onDelete": "no action", 624 + "onUpdate": "no action" 625 + }, 626 + "status_report_page_id_page_id_fk": { 627 + "name": "status_report_page_id_page_id_fk", 628 + "tableFrom": "status_report", 629 + "tableTo": "page", 630 + "columnsFrom": [ 631 + "page_id" 632 + ], 633 + "columnsTo": [ 634 + "id" 635 + ], 636 + "onDelete": "cascade", 637 + "onUpdate": "no action" 638 + } 639 + }, 640 + "compositePrimaryKeys": {}, 641 + "uniqueConstraints": {}, 642 + "checkConstraints": {} 643 + }, 644 + "status_report_update": { 645 + "name": "status_report_update", 646 + "columns": { 647 + "id": { 648 + "name": "id", 649 + "type": "integer", 650 + "primaryKey": true, 651 + "notNull": true, 652 + "autoincrement": false 653 + }, 654 + "status": { 655 + "name": "status", 656 + "type": "text", 657 + "primaryKey": false, 658 + "notNull": true, 659 + "autoincrement": false 660 + }, 661 + "date": { 662 + "name": "date", 663 + "type": "integer", 664 + "primaryKey": false, 665 + "notNull": true, 666 + "autoincrement": false 667 + }, 668 + "message": { 669 + "name": "message", 670 + "type": "text", 671 + "primaryKey": false, 672 + "notNull": true, 673 + "autoincrement": false 674 + }, 675 + "status_report_id": { 676 + "name": "status_report_id", 677 + "type": "integer", 678 + "primaryKey": false, 679 + "notNull": true, 680 + "autoincrement": false 681 + }, 682 + "created_at": { 683 + "name": "created_at", 684 + "type": "integer", 685 + "primaryKey": false, 686 + "notNull": false, 687 + "autoincrement": false, 688 + "default": "(strftime('%s', 'now'))" 689 + }, 690 + "updated_at": { 691 + "name": "updated_at", 692 + "type": "integer", 693 + "primaryKey": false, 694 + "notNull": false, 695 + "autoincrement": false, 696 + "default": "(strftime('%s', 'now'))" 697 + } 698 + }, 699 + "indexes": {}, 700 + "foreignKeys": { 701 + "status_report_update_status_report_id_status_report_id_fk": { 702 + "name": "status_report_update_status_report_id_status_report_id_fk", 703 + "tableFrom": "status_report_update", 704 + "tableTo": "status_report", 705 + "columnsFrom": [ 706 + "status_report_id" 707 + ], 708 + "columnsTo": [ 709 + "id" 710 + ], 711 + "onDelete": "cascade", 712 + "onUpdate": "no action" 713 + } 714 + }, 715 + "compositePrimaryKeys": {}, 716 + "uniqueConstraints": {}, 717 + "checkConstraints": {} 718 + }, 719 + "integration": { 720 + "name": "integration", 721 + "columns": { 722 + "id": { 723 + "name": "id", 724 + "type": "integer", 725 + "primaryKey": true, 726 + "notNull": true, 727 + "autoincrement": false 728 + }, 729 + "name": { 730 + "name": "name", 731 + "type": "text(256)", 732 + "primaryKey": false, 733 + "notNull": true, 734 + "autoincrement": false 735 + }, 736 + "workspace_id": { 737 + "name": "workspace_id", 738 + "type": "integer", 739 + "primaryKey": false, 740 + "notNull": false, 741 + "autoincrement": false 742 + }, 743 + "credential": { 744 + "name": "credential", 745 + "type": "text", 746 + "primaryKey": false, 747 + "notNull": false, 748 + "autoincrement": false 749 + }, 750 + "external_id": { 751 + "name": "external_id", 752 + "type": "text", 753 + "primaryKey": false, 754 + "notNull": true, 755 + "autoincrement": false 756 + }, 757 + "created_at": { 758 + "name": "created_at", 759 + "type": "integer", 760 + "primaryKey": false, 761 + "notNull": false, 762 + "autoincrement": false, 763 + "default": "(strftime('%s', 'now'))" 764 + }, 765 + "updated_at": { 766 + "name": "updated_at", 767 + "type": "integer", 768 + "primaryKey": false, 769 + "notNull": false, 770 + "autoincrement": false, 771 + "default": "(strftime('%s', 'now'))" 772 + }, 773 + "data": { 774 + "name": "data", 775 + "type": "text", 776 + "primaryKey": false, 777 + "notNull": true, 778 + "autoincrement": false 779 + } 780 + }, 781 + "indexes": {}, 782 + "foreignKeys": { 783 + "integration_workspace_id_workspace_id_fk": { 784 + "name": "integration_workspace_id_workspace_id_fk", 785 + "tableFrom": "integration", 786 + "tableTo": "workspace", 787 + "columnsFrom": [ 788 + "workspace_id" 789 + ], 790 + "columnsTo": [ 791 + "id" 792 + ], 793 + "onDelete": "no action", 794 + "onUpdate": "no action" 795 + } 796 + }, 797 + "compositePrimaryKeys": {}, 798 + "uniqueConstraints": {}, 799 + "checkConstraints": {} 800 + }, 801 + "page": { 802 + "name": "page", 803 + "columns": { 804 + "id": { 805 + "name": "id", 806 + "type": "integer", 807 + "primaryKey": true, 808 + "notNull": true, 809 + "autoincrement": false 810 + }, 811 + "workspace_id": { 812 + "name": "workspace_id", 813 + "type": "integer", 814 + "primaryKey": false, 815 + "notNull": true, 816 + "autoincrement": false 817 + }, 818 + "title": { 819 + "name": "title", 820 + "type": "text", 821 + "primaryKey": false, 822 + "notNull": true, 823 + "autoincrement": false 824 + }, 825 + "description": { 826 + "name": "description", 827 + "type": "text", 828 + "primaryKey": false, 829 + "notNull": true, 830 + "autoincrement": false 831 + }, 832 + "icon": { 833 + "name": "icon", 834 + "type": "text(256)", 835 + "primaryKey": false, 836 + "notNull": false, 837 + "autoincrement": false, 838 + "default": "''" 839 + }, 840 + "slug": { 841 + "name": "slug", 842 + "type": "text(256)", 843 + "primaryKey": false, 844 + "notNull": true, 845 + "autoincrement": false 846 + }, 847 + "custom_domain": { 848 + "name": "custom_domain", 849 + "type": "text(256)", 850 + "primaryKey": false, 851 + "notNull": true, 852 + "autoincrement": false 853 + }, 854 + "published": { 855 + "name": "published", 856 + "type": "integer", 857 + "primaryKey": false, 858 + "notNull": false, 859 + "autoincrement": false, 860 + "default": false 861 + }, 862 + "force_theme": { 863 + "name": "force_theme", 864 + "type": "text", 865 + "primaryKey": false, 866 + "notNull": true, 867 + "autoincrement": false, 868 + "default": "'system'" 869 + }, 870 + "password": { 871 + "name": "password", 872 + "type": "text(256)", 873 + "primaryKey": false, 874 + "notNull": false, 875 + "autoincrement": false 876 + }, 877 + "password_protected": { 878 + "name": "password_protected", 879 + "type": "integer", 880 + "primaryKey": false, 881 + "notNull": false, 882 + "autoincrement": false, 883 + "default": false 884 + }, 885 + "show_monitor_values": { 886 + "name": "show_monitor_values", 887 + "type": "integer", 888 + "primaryKey": false, 889 + "notNull": false, 890 + "autoincrement": false, 891 + "default": true 892 + }, 893 + "created_at": { 894 + "name": "created_at", 895 + "type": "integer", 896 + "primaryKey": false, 897 + "notNull": false, 898 + "autoincrement": false, 899 + "default": "(strftime('%s', 'now'))" 900 + }, 901 + "updated_at": { 902 + "name": "updated_at", 903 + "type": "integer", 904 + "primaryKey": false, 905 + "notNull": false, 906 + "autoincrement": false, 907 + "default": "(strftime('%s', 'now'))" 908 + } 909 + }, 910 + "indexes": { 911 + "page_slug_unique": { 912 + "name": "page_slug_unique", 913 + "columns": [ 914 + "slug" 915 + ], 916 + "isUnique": true 917 + } 918 + }, 919 + "foreignKeys": { 920 + "page_workspace_id_workspace_id_fk": { 921 + "name": "page_workspace_id_workspace_id_fk", 922 + "tableFrom": "page", 923 + "tableTo": "workspace", 924 + "columnsFrom": [ 925 + "workspace_id" 926 + ], 927 + "columnsTo": [ 928 + "id" 929 + ], 930 + "onDelete": "cascade", 931 + "onUpdate": "no action" 932 + } 933 + }, 934 + "compositePrimaryKeys": {}, 935 + "uniqueConstraints": {}, 936 + "checkConstraints": {} 937 + }, 938 + "monitor": { 939 + "name": "monitor", 940 + "columns": { 941 + "id": { 942 + "name": "id", 943 + "type": "integer", 944 + "primaryKey": true, 945 + "notNull": true, 946 + "autoincrement": false 947 + }, 948 + "job_type": { 949 + "name": "job_type", 950 + "type": "text", 951 + "primaryKey": false, 952 + "notNull": true, 953 + "autoincrement": false, 954 + "default": "'http'" 955 + }, 956 + "periodicity": { 957 + "name": "periodicity", 958 + "type": "text", 959 + "primaryKey": false, 960 + "notNull": true, 961 + "autoincrement": false, 962 + "default": "'other'" 963 + }, 964 + "status": { 965 + "name": "status", 966 + "type": "text", 967 + "primaryKey": false, 968 + "notNull": true, 969 + "autoincrement": false, 970 + "default": "'active'" 971 + }, 972 + "active": { 973 + "name": "active", 974 + "type": "integer", 975 + "primaryKey": false, 976 + "notNull": false, 977 + "autoincrement": false, 978 + "default": false 979 + }, 980 + "regions": { 981 + "name": "regions", 982 + "type": "text", 983 + "primaryKey": false, 984 + "notNull": true, 985 + "autoincrement": false, 986 + "default": "''" 987 + }, 988 + "url": { 989 + "name": "url", 990 + "type": "text(2048)", 991 + "primaryKey": false, 992 + "notNull": true, 993 + "autoincrement": false 994 + }, 995 + "name": { 996 + "name": "name", 997 + "type": "text(256)", 998 + "primaryKey": false, 999 + "notNull": true, 1000 + "autoincrement": false, 1001 + "default": "''" 1002 + }, 1003 + "description": { 1004 + "name": "description", 1005 + "type": "text", 1006 + "primaryKey": false, 1007 + "notNull": true, 1008 + "autoincrement": false, 1009 + "default": "''" 1010 + }, 1011 + "headers": { 1012 + "name": "headers", 1013 + "type": "text", 1014 + "primaryKey": false, 1015 + "notNull": false, 1016 + "autoincrement": false, 1017 + "default": "''" 1018 + }, 1019 + "body": { 1020 + "name": "body", 1021 + "type": "text", 1022 + "primaryKey": false, 1023 + "notNull": false, 1024 + "autoincrement": false, 1025 + "default": "''" 1026 + }, 1027 + "method": { 1028 + "name": "method", 1029 + "type": "text", 1030 + "primaryKey": false, 1031 + "notNull": false, 1032 + "autoincrement": false, 1033 + "default": "'GET'" 1034 + }, 1035 + "workspace_id": { 1036 + "name": "workspace_id", 1037 + "type": "integer", 1038 + "primaryKey": false, 1039 + "notNull": false, 1040 + "autoincrement": false 1041 + }, 1042 + "timeout": { 1043 + "name": "timeout", 1044 + "type": "integer", 1045 + "primaryKey": false, 1046 + "notNull": true, 1047 + "autoincrement": false, 1048 + "default": 45000 1049 + }, 1050 + "degraded_after": { 1051 + "name": "degraded_after", 1052 + "type": "integer", 1053 + "primaryKey": false, 1054 + "notNull": false, 1055 + "autoincrement": false 1056 + }, 1057 + "assertions": { 1058 + "name": "assertions", 1059 + "type": "text", 1060 + "primaryKey": false, 1061 + "notNull": false, 1062 + "autoincrement": false 1063 + }, 1064 + "otel_endpoint": { 1065 + "name": "otel_endpoint", 1066 + "type": "text", 1067 + "primaryKey": false, 1068 + "notNull": false, 1069 + "autoincrement": false 1070 + }, 1071 + "otel_headers": { 1072 + "name": "otel_headers", 1073 + "type": "text", 1074 + "primaryKey": false, 1075 + "notNull": false, 1076 + "autoincrement": false 1077 + }, 1078 + "public": { 1079 + "name": "public", 1080 + "type": "integer", 1081 + "primaryKey": false, 1082 + "notNull": false, 1083 + "autoincrement": false, 1084 + "default": false 1085 + }, 1086 + "retry": { 1087 + "name": "retry", 1088 + "type": "integer", 1089 + "primaryKey": false, 1090 + "notNull": false, 1091 + "autoincrement": false, 1092 + "default": 3 1093 + }, 1094 + "created_at": { 1095 + "name": "created_at", 1096 + "type": "integer", 1097 + "primaryKey": false, 1098 + "notNull": false, 1099 + "autoincrement": false, 1100 + "default": "(strftime('%s', 'now'))" 1101 + }, 1102 + "updated_at": { 1103 + "name": "updated_at", 1104 + "type": "integer", 1105 + "primaryKey": false, 1106 + "notNull": false, 1107 + "autoincrement": false, 1108 + "default": "(strftime('%s', 'now'))" 1109 + }, 1110 + "deleted_at": { 1111 + "name": "deleted_at", 1112 + "type": "integer", 1113 + "primaryKey": false, 1114 + "notNull": false, 1115 + "autoincrement": false 1116 + } 1117 + }, 1118 + "indexes": {}, 1119 + "foreignKeys": { 1120 + "monitor_workspace_id_workspace_id_fk": { 1121 + "name": "monitor_workspace_id_workspace_id_fk", 1122 + "tableFrom": "monitor", 1123 + "tableTo": "workspace", 1124 + "columnsFrom": [ 1125 + "workspace_id" 1126 + ], 1127 + "columnsTo": [ 1128 + "id" 1129 + ], 1130 + "onDelete": "no action", 1131 + "onUpdate": "no action" 1132 + } 1133 + }, 1134 + "compositePrimaryKeys": {}, 1135 + "uniqueConstraints": {}, 1136 + "checkConstraints": {} 1137 + }, 1138 + "monitors_to_pages": { 1139 + "name": "monitors_to_pages", 1140 + "columns": { 1141 + "monitor_id": { 1142 + "name": "monitor_id", 1143 + "type": "integer", 1144 + "primaryKey": false, 1145 + "notNull": true, 1146 + "autoincrement": false 1147 + }, 1148 + "page_id": { 1149 + "name": "page_id", 1150 + "type": "integer", 1151 + "primaryKey": false, 1152 + "notNull": true, 1153 + "autoincrement": false 1154 + }, 1155 + "created_at": { 1156 + "name": "created_at", 1157 + "type": "integer", 1158 + "primaryKey": false, 1159 + "notNull": false, 1160 + "autoincrement": false, 1161 + "default": "(strftime('%s', 'now'))" 1162 + }, 1163 + "order": { 1164 + "name": "order", 1165 + "type": "integer", 1166 + "primaryKey": false, 1167 + "notNull": false, 1168 + "autoincrement": false, 1169 + "default": 0 1170 + } 1171 + }, 1172 + "indexes": {}, 1173 + "foreignKeys": { 1174 + "monitors_to_pages_monitor_id_monitor_id_fk": { 1175 + "name": "monitors_to_pages_monitor_id_monitor_id_fk", 1176 + "tableFrom": "monitors_to_pages", 1177 + "tableTo": "monitor", 1178 + "columnsFrom": [ 1179 + "monitor_id" 1180 + ], 1181 + "columnsTo": [ 1182 + "id" 1183 + ], 1184 + "onDelete": "cascade", 1185 + "onUpdate": "no action" 1186 + }, 1187 + "monitors_to_pages_page_id_page_id_fk": { 1188 + "name": "monitors_to_pages_page_id_page_id_fk", 1189 + "tableFrom": "monitors_to_pages", 1190 + "tableTo": "page", 1191 + "columnsFrom": [ 1192 + "page_id" 1193 + ], 1194 + "columnsTo": [ 1195 + "id" 1196 + ], 1197 + "onDelete": "cascade", 1198 + "onUpdate": "no action" 1199 + } 1200 + }, 1201 + "compositePrimaryKeys": { 1202 + "monitors_to_pages_monitor_id_page_id_pk": { 1203 + "columns": [ 1204 + "monitor_id", 1205 + "page_id" 1206 + ], 1207 + "name": "monitors_to_pages_monitor_id_page_id_pk" 1208 + } 1209 + }, 1210 + "uniqueConstraints": {}, 1211 + "checkConstraints": {} 1212 + }, 1213 + "page_subscriber": { 1214 + "name": "page_subscriber", 1215 + "columns": { 1216 + "id": { 1217 + "name": "id", 1218 + "type": "integer", 1219 + "primaryKey": true, 1220 + "notNull": true, 1221 + "autoincrement": false 1222 + }, 1223 + "email": { 1224 + "name": "email", 1225 + "type": "text", 1226 + "primaryKey": false, 1227 + "notNull": true, 1228 + "autoincrement": false 1229 + }, 1230 + "page_id": { 1231 + "name": "page_id", 1232 + "type": "integer", 1233 + "primaryKey": false, 1234 + "notNull": true, 1235 + "autoincrement": false 1236 + }, 1237 + "token": { 1238 + "name": "token", 1239 + "type": "text", 1240 + "primaryKey": false, 1241 + "notNull": false, 1242 + "autoincrement": false 1243 + }, 1244 + "accepted_at": { 1245 + "name": "accepted_at", 1246 + "type": "integer", 1247 + "primaryKey": false, 1248 + "notNull": false, 1249 + "autoincrement": false 1250 + }, 1251 + "expires_at": { 1252 + "name": "expires_at", 1253 + "type": "integer", 1254 + "primaryKey": false, 1255 + "notNull": false, 1256 + "autoincrement": false 1257 + }, 1258 + "created_at": { 1259 + "name": "created_at", 1260 + "type": "integer", 1261 + "primaryKey": false, 1262 + "notNull": false, 1263 + "autoincrement": false, 1264 + "default": "(strftime('%s', 'now'))" 1265 + }, 1266 + "updated_at": { 1267 + "name": "updated_at", 1268 + "type": "integer", 1269 + "primaryKey": false, 1270 + "notNull": false, 1271 + "autoincrement": false, 1272 + "default": "(strftime('%s', 'now'))" 1273 + } 1274 + }, 1275 + "indexes": {}, 1276 + "foreignKeys": { 1277 + "page_subscriber_page_id_page_id_fk": { 1278 + "name": "page_subscriber_page_id_page_id_fk", 1279 + "tableFrom": "page_subscriber", 1280 + "tableTo": "page", 1281 + "columnsFrom": [ 1282 + "page_id" 1283 + ], 1284 + "columnsTo": [ 1285 + "id" 1286 + ], 1287 + "onDelete": "cascade", 1288 + "onUpdate": "no action" 1289 + } 1290 + }, 1291 + "compositePrimaryKeys": {}, 1292 + "uniqueConstraints": {}, 1293 + "checkConstraints": {} 1294 + }, 1295 + "notification": { 1296 + "name": "notification", 1297 + "columns": { 1298 + "id": { 1299 + "name": "id", 1300 + "type": "integer", 1301 + "primaryKey": true, 1302 + "notNull": true, 1303 + "autoincrement": false 1304 + }, 1305 + "name": { 1306 + "name": "name", 1307 + "type": "text", 1308 + "primaryKey": false, 1309 + "notNull": true, 1310 + "autoincrement": false 1311 + }, 1312 + "provider": { 1313 + "name": "provider", 1314 + "type": "text", 1315 + "primaryKey": false, 1316 + "notNull": true, 1317 + "autoincrement": false 1318 + }, 1319 + "data": { 1320 + "name": "data", 1321 + "type": "text", 1322 + "primaryKey": false, 1323 + "notNull": false, 1324 + "autoincrement": false, 1325 + "default": "'{}'" 1326 + }, 1327 + "workspace_id": { 1328 + "name": "workspace_id", 1329 + "type": "integer", 1330 + "primaryKey": false, 1331 + "notNull": false, 1332 + "autoincrement": false 1333 + }, 1334 + "created_at": { 1335 + "name": "created_at", 1336 + "type": "integer", 1337 + "primaryKey": false, 1338 + "notNull": false, 1339 + "autoincrement": false, 1340 + "default": "(strftime('%s', 'now'))" 1341 + }, 1342 + "updated_at": { 1343 + "name": "updated_at", 1344 + "type": "integer", 1345 + "primaryKey": false, 1346 + "notNull": false, 1347 + "autoincrement": false, 1348 + "default": "(strftime('%s', 'now'))" 1349 + } 1350 + }, 1351 + "indexes": {}, 1352 + "foreignKeys": { 1353 + "notification_workspace_id_workspace_id_fk": { 1354 + "name": "notification_workspace_id_workspace_id_fk", 1355 + "tableFrom": "notification", 1356 + "tableTo": "workspace", 1357 + "columnsFrom": [ 1358 + "workspace_id" 1359 + ], 1360 + "columnsTo": [ 1361 + "id" 1362 + ], 1363 + "onDelete": "no action", 1364 + "onUpdate": "no action" 1365 + } 1366 + }, 1367 + "compositePrimaryKeys": {}, 1368 + "uniqueConstraints": {}, 1369 + "checkConstraints": {} 1370 + }, 1371 + "notification_trigger": { 1372 + "name": "notification_trigger", 1373 + "columns": { 1374 + "id": { 1375 + "name": "id", 1376 + "type": "integer", 1377 + "primaryKey": true, 1378 + "notNull": true, 1379 + "autoincrement": false 1380 + }, 1381 + "monitor_id": { 1382 + "name": "monitor_id", 1383 + "type": "integer", 1384 + "primaryKey": false, 1385 + "notNull": false, 1386 + "autoincrement": false 1387 + }, 1388 + "notification_id": { 1389 + "name": "notification_id", 1390 + "type": "integer", 1391 + "primaryKey": false, 1392 + "notNull": false, 1393 + "autoincrement": false 1394 + }, 1395 + "cron_timestamp": { 1396 + "name": "cron_timestamp", 1397 + "type": "integer", 1398 + "primaryKey": false, 1399 + "notNull": true, 1400 + "autoincrement": false 1401 + } 1402 + }, 1403 + "indexes": { 1404 + "notification_id_monitor_id_crontimestampe": { 1405 + "name": "notification_id_monitor_id_crontimestampe", 1406 + "columns": [ 1407 + "notification_id", 1408 + "monitor_id", 1409 + "cron_timestamp" 1410 + ], 1411 + "isUnique": true 1412 + } 1413 + }, 1414 + "foreignKeys": { 1415 + "notification_trigger_monitor_id_monitor_id_fk": { 1416 + "name": "notification_trigger_monitor_id_monitor_id_fk", 1417 + "tableFrom": "notification_trigger", 1418 + "tableTo": "monitor", 1419 + "columnsFrom": [ 1420 + "monitor_id" 1421 + ], 1422 + "columnsTo": [ 1423 + "id" 1424 + ], 1425 + "onDelete": "cascade", 1426 + "onUpdate": "no action" 1427 + }, 1428 + "notification_trigger_notification_id_notification_id_fk": { 1429 + "name": "notification_trigger_notification_id_notification_id_fk", 1430 + "tableFrom": "notification_trigger", 1431 + "tableTo": "notification", 1432 + "columnsFrom": [ 1433 + "notification_id" 1434 + ], 1435 + "columnsTo": [ 1436 + "id" 1437 + ], 1438 + "onDelete": "cascade", 1439 + "onUpdate": "no action" 1440 + } 1441 + }, 1442 + "compositePrimaryKeys": {}, 1443 + "uniqueConstraints": {}, 1444 + "checkConstraints": {} 1445 + }, 1446 + "notifications_to_monitors": { 1447 + "name": "notifications_to_monitors", 1448 + "columns": { 1449 + "monitor_id": { 1450 + "name": "monitor_id", 1451 + "type": "integer", 1452 + "primaryKey": false, 1453 + "notNull": true, 1454 + "autoincrement": false 1455 + }, 1456 + "notification_id": { 1457 + "name": "notification_id", 1458 + "type": "integer", 1459 + "primaryKey": false, 1460 + "notNull": true, 1461 + "autoincrement": false 1462 + }, 1463 + "created_at": { 1464 + "name": "created_at", 1465 + "type": "integer", 1466 + "primaryKey": false, 1467 + "notNull": false, 1468 + "autoincrement": false, 1469 + "default": "(strftime('%s', 'now'))" 1470 + } 1471 + }, 1472 + "indexes": {}, 1473 + "foreignKeys": { 1474 + "notifications_to_monitors_monitor_id_monitor_id_fk": { 1475 + "name": "notifications_to_monitors_monitor_id_monitor_id_fk", 1476 + "tableFrom": "notifications_to_monitors", 1477 + "tableTo": "monitor", 1478 + "columnsFrom": [ 1479 + "monitor_id" 1480 + ], 1481 + "columnsTo": [ 1482 + "id" 1483 + ], 1484 + "onDelete": "cascade", 1485 + "onUpdate": "no action" 1486 + }, 1487 + "notifications_to_monitors_notification_id_notification_id_fk": { 1488 + "name": "notifications_to_monitors_notification_id_notification_id_fk", 1489 + "tableFrom": "notifications_to_monitors", 1490 + "tableTo": "notification", 1491 + "columnsFrom": [ 1492 + "notification_id" 1493 + ], 1494 + "columnsTo": [ 1495 + "id" 1496 + ], 1497 + "onDelete": "cascade", 1498 + "onUpdate": "no action" 1499 + } 1500 + }, 1501 + "compositePrimaryKeys": { 1502 + "notifications_to_monitors_monitor_id_notification_id_pk": { 1503 + "columns": [ 1504 + "monitor_id", 1505 + "notification_id" 1506 + ], 1507 + "name": "notifications_to_monitors_monitor_id_notification_id_pk" 1508 + } 1509 + }, 1510 + "uniqueConstraints": {}, 1511 + "checkConstraints": {} 1512 + }, 1513 + "monitor_status": { 1514 + "name": "monitor_status", 1515 + "columns": { 1516 + "monitor_id": { 1517 + "name": "monitor_id", 1518 + "type": "integer", 1519 + "primaryKey": false, 1520 + "notNull": true, 1521 + "autoincrement": false 1522 + }, 1523 + "region": { 1524 + "name": "region", 1525 + "type": "text", 1526 + "primaryKey": false, 1527 + "notNull": true, 1528 + "autoincrement": false, 1529 + "default": "''" 1530 + }, 1531 + "status": { 1532 + "name": "status", 1533 + "type": "text", 1534 + "primaryKey": false, 1535 + "notNull": true, 1536 + "autoincrement": false, 1537 + "default": "'active'" 1538 + }, 1539 + "created_at": { 1540 + "name": "created_at", 1541 + "type": "integer", 1542 + "primaryKey": false, 1543 + "notNull": false, 1544 + "autoincrement": false, 1545 + "default": "(strftime('%s', 'now'))" 1546 + }, 1547 + "updated_at": { 1548 + "name": "updated_at", 1549 + "type": "integer", 1550 + "primaryKey": false, 1551 + "notNull": false, 1552 + "autoincrement": false, 1553 + "default": "(strftime('%s', 'now'))" 1554 + } 1555 + }, 1556 + "indexes": { 1557 + "monitor_status_idx": { 1558 + "name": "monitor_status_idx", 1559 + "columns": [ 1560 + "monitor_id", 1561 + "region" 1562 + ], 1563 + "isUnique": false 1564 + } 1565 + }, 1566 + "foreignKeys": { 1567 + "monitor_status_monitor_id_monitor_id_fk": { 1568 + "name": "monitor_status_monitor_id_monitor_id_fk", 1569 + "tableFrom": "monitor_status", 1570 + "tableTo": "monitor", 1571 + "columnsFrom": [ 1572 + "monitor_id" 1573 + ], 1574 + "columnsTo": [ 1575 + "id" 1576 + ], 1577 + "onDelete": "cascade", 1578 + "onUpdate": "no action" 1579 + } 1580 + }, 1581 + "compositePrimaryKeys": { 1582 + "monitor_status_monitor_id_region_pk": { 1583 + "columns": [ 1584 + "monitor_id", 1585 + "region" 1586 + ], 1587 + "name": "monitor_status_monitor_id_region_pk" 1588 + } 1589 + }, 1590 + "uniqueConstraints": {}, 1591 + "checkConstraints": {} 1592 + }, 1593 + "invitation": { 1594 + "name": "invitation", 1595 + "columns": { 1596 + "id": { 1597 + "name": "id", 1598 + "type": "integer", 1599 + "primaryKey": true, 1600 + "notNull": true, 1601 + "autoincrement": false 1602 + }, 1603 + "email": { 1604 + "name": "email", 1605 + "type": "text", 1606 + "primaryKey": false, 1607 + "notNull": true, 1608 + "autoincrement": false 1609 + }, 1610 + "role": { 1611 + "name": "role", 1612 + "type": "text", 1613 + "primaryKey": false, 1614 + "notNull": true, 1615 + "autoincrement": false, 1616 + "default": "'member'" 1617 + }, 1618 + "workspace_id": { 1619 + "name": "workspace_id", 1620 + "type": "integer", 1621 + "primaryKey": false, 1622 + "notNull": true, 1623 + "autoincrement": false 1624 + }, 1625 + "token": { 1626 + "name": "token", 1627 + "type": "text", 1628 + "primaryKey": false, 1629 + "notNull": true, 1630 + "autoincrement": false 1631 + }, 1632 + "expires_at": { 1633 + "name": "expires_at", 1634 + "type": "integer", 1635 + "primaryKey": false, 1636 + "notNull": true, 1637 + "autoincrement": false 1638 + }, 1639 + "created_at": { 1640 + "name": "created_at", 1641 + "type": "integer", 1642 + "primaryKey": false, 1643 + "notNull": false, 1644 + "autoincrement": false, 1645 + "default": "(strftime('%s', 'now'))" 1646 + }, 1647 + "accepted_at": { 1648 + "name": "accepted_at", 1649 + "type": "integer", 1650 + "primaryKey": false, 1651 + "notNull": false, 1652 + "autoincrement": false 1653 + } 1654 + }, 1655 + "indexes": {}, 1656 + "foreignKeys": {}, 1657 + "compositePrimaryKeys": {}, 1658 + "uniqueConstraints": {}, 1659 + "checkConstraints": {} 1660 + }, 1661 + "incident": { 1662 + "name": "incident", 1663 + "columns": { 1664 + "id": { 1665 + "name": "id", 1666 + "type": "integer", 1667 + "primaryKey": true, 1668 + "notNull": true, 1669 + "autoincrement": false 1670 + }, 1671 + "title": { 1672 + "name": "title", 1673 + "type": "text", 1674 + "primaryKey": false, 1675 + "notNull": true, 1676 + "autoincrement": false, 1677 + "default": "''" 1678 + }, 1679 + "summary": { 1680 + "name": "summary", 1681 + "type": "text", 1682 + "primaryKey": false, 1683 + "notNull": true, 1684 + "autoincrement": false, 1685 + "default": "''" 1686 + }, 1687 + "status": { 1688 + "name": "status", 1689 + "type": "text", 1690 + "primaryKey": false, 1691 + "notNull": true, 1692 + "autoincrement": false, 1693 + "default": "'triage'" 1694 + }, 1695 + "monitor_id": { 1696 + "name": "monitor_id", 1697 + "type": "integer", 1698 + "primaryKey": false, 1699 + "notNull": false, 1700 + "autoincrement": false 1701 + }, 1702 + "workspace_id": { 1703 + "name": "workspace_id", 1704 + "type": "integer", 1705 + "primaryKey": false, 1706 + "notNull": false, 1707 + "autoincrement": false 1708 + }, 1709 + "started_at": { 1710 + "name": "started_at", 1711 + "type": "integer", 1712 + "primaryKey": false, 1713 + "notNull": true, 1714 + "autoincrement": false, 1715 + "default": "(strftime('%s', 'now'))" 1716 + }, 1717 + "acknowledged_at": { 1718 + "name": "acknowledged_at", 1719 + "type": "integer", 1720 + "primaryKey": false, 1721 + "notNull": false, 1722 + "autoincrement": false 1723 + }, 1724 + "acknowledged_by": { 1725 + "name": "acknowledged_by", 1726 + "type": "integer", 1727 + "primaryKey": false, 1728 + "notNull": false, 1729 + "autoincrement": false 1730 + }, 1731 + "resolved_at": { 1732 + "name": "resolved_at", 1733 + "type": "integer", 1734 + "primaryKey": false, 1735 + "notNull": false, 1736 + "autoincrement": false 1737 + }, 1738 + "resolved_by": { 1739 + "name": "resolved_by", 1740 + "type": "integer", 1741 + "primaryKey": false, 1742 + "notNull": false, 1743 + "autoincrement": false 1744 + }, 1745 + "incident_screenshot_url": { 1746 + "name": "incident_screenshot_url", 1747 + "type": "text", 1748 + "primaryKey": false, 1749 + "notNull": false, 1750 + "autoincrement": false 1751 + }, 1752 + "recovery_screenshot_url": { 1753 + "name": "recovery_screenshot_url", 1754 + "type": "text", 1755 + "primaryKey": false, 1756 + "notNull": false, 1757 + "autoincrement": false 1758 + }, 1759 + "auto_resolved": { 1760 + "name": "auto_resolved", 1761 + "type": "integer", 1762 + "primaryKey": false, 1763 + "notNull": false, 1764 + "autoincrement": false, 1765 + "default": false 1766 + }, 1767 + "created_at": { 1768 + "name": "created_at", 1769 + "type": "integer", 1770 + "primaryKey": false, 1771 + "notNull": false, 1772 + "autoincrement": false, 1773 + "default": "(strftime('%s', 'now'))" 1774 + }, 1775 + "updated_at": { 1776 + "name": "updated_at", 1777 + "type": "integer", 1778 + "primaryKey": false, 1779 + "notNull": false, 1780 + "autoincrement": false, 1781 + "default": "(strftime('%s', 'now'))" 1782 + } 1783 + }, 1784 + "indexes": { 1785 + "incident_monitor_id_started_at_unique": { 1786 + "name": "incident_monitor_id_started_at_unique", 1787 + "columns": [ 1788 + "monitor_id", 1789 + "started_at" 1790 + ], 1791 + "isUnique": true 1792 + } 1793 + }, 1794 + "foreignKeys": { 1795 + "incident_monitor_id_monitor_id_fk": { 1796 + "name": "incident_monitor_id_monitor_id_fk", 1797 + "tableFrom": "incident", 1798 + "tableTo": "monitor", 1799 + "columnsFrom": [ 1800 + "monitor_id" 1801 + ], 1802 + "columnsTo": [ 1803 + "id" 1804 + ], 1805 + "onDelete": "set default", 1806 + "onUpdate": "no action" 1807 + }, 1808 + "incident_workspace_id_workspace_id_fk": { 1809 + "name": "incident_workspace_id_workspace_id_fk", 1810 + "tableFrom": "incident", 1811 + "tableTo": "workspace", 1812 + "columnsFrom": [ 1813 + "workspace_id" 1814 + ], 1815 + "columnsTo": [ 1816 + "id" 1817 + ], 1818 + "onDelete": "no action", 1819 + "onUpdate": "no action" 1820 + }, 1821 + "incident_acknowledged_by_user_id_fk": { 1822 + "name": "incident_acknowledged_by_user_id_fk", 1823 + "tableFrom": "incident", 1824 + "tableTo": "user", 1825 + "columnsFrom": [ 1826 + "acknowledged_by" 1827 + ], 1828 + "columnsTo": [ 1829 + "id" 1830 + ], 1831 + "onDelete": "no action", 1832 + "onUpdate": "no action" 1833 + }, 1834 + "incident_resolved_by_user_id_fk": { 1835 + "name": "incident_resolved_by_user_id_fk", 1836 + "tableFrom": "incident", 1837 + "tableTo": "user", 1838 + "columnsFrom": [ 1839 + "resolved_by" 1840 + ], 1841 + "columnsTo": [ 1842 + "id" 1843 + ], 1844 + "onDelete": "no action", 1845 + "onUpdate": "no action" 1846 + } 1847 + }, 1848 + "compositePrimaryKeys": {}, 1849 + "uniqueConstraints": {}, 1850 + "checkConstraints": {} 1851 + }, 1852 + "monitor_tag": { 1853 + "name": "monitor_tag", 1854 + "columns": { 1855 + "id": { 1856 + "name": "id", 1857 + "type": "integer", 1858 + "primaryKey": true, 1859 + "notNull": true, 1860 + "autoincrement": false 1861 + }, 1862 + "workspace_id": { 1863 + "name": "workspace_id", 1864 + "type": "integer", 1865 + "primaryKey": false, 1866 + "notNull": true, 1867 + "autoincrement": false 1868 + }, 1869 + "name": { 1870 + "name": "name", 1871 + "type": "text", 1872 + "primaryKey": false, 1873 + "notNull": true, 1874 + "autoincrement": false 1875 + }, 1876 + "color": { 1877 + "name": "color", 1878 + "type": "text", 1879 + "primaryKey": false, 1880 + "notNull": true, 1881 + "autoincrement": false 1882 + }, 1883 + "created_at": { 1884 + "name": "created_at", 1885 + "type": "integer", 1886 + "primaryKey": false, 1887 + "notNull": false, 1888 + "autoincrement": false, 1889 + "default": "(strftime('%s', 'now'))" 1890 + }, 1891 + "updated_at": { 1892 + "name": "updated_at", 1893 + "type": "integer", 1894 + "primaryKey": false, 1895 + "notNull": false, 1896 + "autoincrement": false, 1897 + "default": "(strftime('%s', 'now'))" 1898 + } 1899 + }, 1900 + "indexes": {}, 1901 + "foreignKeys": { 1902 + "monitor_tag_workspace_id_workspace_id_fk": { 1903 + "name": "monitor_tag_workspace_id_workspace_id_fk", 1904 + "tableFrom": "monitor_tag", 1905 + "tableTo": "workspace", 1906 + "columnsFrom": [ 1907 + "workspace_id" 1908 + ], 1909 + "columnsTo": [ 1910 + "id" 1911 + ], 1912 + "onDelete": "cascade", 1913 + "onUpdate": "no action" 1914 + } 1915 + }, 1916 + "compositePrimaryKeys": {}, 1917 + "uniqueConstraints": {}, 1918 + "checkConstraints": {} 1919 + }, 1920 + "monitor_tag_to_monitor": { 1921 + "name": "monitor_tag_to_monitor", 1922 + "columns": { 1923 + "monitor_id": { 1924 + "name": "monitor_id", 1925 + "type": "integer", 1926 + "primaryKey": false, 1927 + "notNull": true, 1928 + "autoincrement": false 1929 + }, 1930 + "monitor_tag_id": { 1931 + "name": "monitor_tag_id", 1932 + "type": "integer", 1933 + "primaryKey": false, 1934 + "notNull": true, 1935 + "autoincrement": false 1936 + }, 1937 + "created_at": { 1938 + "name": "created_at", 1939 + "type": "integer", 1940 + "primaryKey": false, 1941 + "notNull": false, 1942 + "autoincrement": false, 1943 + "default": "(strftime('%s', 'now'))" 1944 + } 1945 + }, 1946 + "indexes": {}, 1947 + "foreignKeys": { 1948 + "monitor_tag_to_monitor_monitor_id_monitor_id_fk": { 1949 + "name": "monitor_tag_to_monitor_monitor_id_monitor_id_fk", 1950 + "tableFrom": "monitor_tag_to_monitor", 1951 + "tableTo": "monitor", 1952 + "columnsFrom": [ 1953 + "monitor_id" 1954 + ], 1955 + "columnsTo": [ 1956 + "id" 1957 + ], 1958 + "onDelete": "cascade", 1959 + "onUpdate": "no action" 1960 + }, 1961 + "monitor_tag_to_monitor_monitor_tag_id_monitor_tag_id_fk": { 1962 + "name": "monitor_tag_to_monitor_monitor_tag_id_monitor_tag_id_fk", 1963 + "tableFrom": "monitor_tag_to_monitor", 1964 + "tableTo": "monitor_tag", 1965 + "columnsFrom": [ 1966 + "monitor_tag_id" 1967 + ], 1968 + "columnsTo": [ 1969 + "id" 1970 + ], 1971 + "onDelete": "cascade", 1972 + "onUpdate": "no action" 1973 + } 1974 + }, 1975 + "compositePrimaryKeys": { 1976 + "monitor_tag_to_monitor_monitor_id_monitor_tag_id_pk": { 1977 + "columns": [ 1978 + "monitor_id", 1979 + "monitor_tag_id" 1980 + ], 1981 + "name": "monitor_tag_to_monitor_monitor_id_monitor_tag_id_pk" 1982 + } 1983 + }, 1984 + "uniqueConstraints": {}, 1985 + "checkConstraints": {} 1986 + }, 1987 + "application": { 1988 + "name": "application", 1989 + "columns": { 1990 + "id": { 1991 + "name": "id", 1992 + "type": "integer", 1993 + "primaryKey": true, 1994 + "notNull": true, 1995 + "autoincrement": false 1996 + }, 1997 + "name": { 1998 + "name": "name", 1999 + "type": "text", 2000 + "primaryKey": false, 2001 + "notNull": false, 2002 + "autoincrement": false 2003 + }, 2004 + "dsn": { 2005 + "name": "dsn", 2006 + "type": "text", 2007 + "primaryKey": false, 2008 + "notNull": false, 2009 + "autoincrement": false 2010 + }, 2011 + "workspace_id": { 2012 + "name": "workspace_id", 2013 + "type": "integer", 2014 + "primaryKey": false, 2015 + "notNull": false, 2016 + "autoincrement": false 2017 + }, 2018 + "created_at": { 2019 + "name": "created_at", 2020 + "type": "integer", 2021 + "primaryKey": false, 2022 + "notNull": false, 2023 + "autoincrement": false, 2024 + "default": "(strftime('%s', 'now'))" 2025 + }, 2026 + "updated_at": { 2027 + "name": "updated_at", 2028 + "type": "integer", 2029 + "primaryKey": false, 2030 + "notNull": false, 2031 + "autoincrement": false, 2032 + "default": "(strftime('%s', 'now'))" 2033 + } 2034 + }, 2035 + "indexes": { 2036 + "application_dsn_unique": { 2037 + "name": "application_dsn_unique", 2038 + "columns": [ 2039 + "dsn" 2040 + ], 2041 + "isUnique": true 2042 + } 2043 + }, 2044 + "foreignKeys": { 2045 + "application_workspace_id_workspace_id_fk": { 2046 + "name": "application_workspace_id_workspace_id_fk", 2047 + "tableFrom": "application", 2048 + "tableTo": "workspace", 2049 + "columnsFrom": [ 2050 + "workspace_id" 2051 + ], 2052 + "columnsTo": [ 2053 + "id" 2054 + ], 2055 + "onDelete": "no action", 2056 + "onUpdate": "no action" 2057 + } 2058 + }, 2059 + "compositePrimaryKeys": {}, 2060 + "uniqueConstraints": {}, 2061 + "checkConstraints": {} 2062 + }, 2063 + "maintenance": { 2064 + "name": "maintenance", 2065 + "columns": { 2066 + "id": { 2067 + "name": "id", 2068 + "type": "integer", 2069 + "primaryKey": true, 2070 + "notNull": true, 2071 + "autoincrement": false 2072 + }, 2073 + "title": { 2074 + "name": "title", 2075 + "type": "text(256)", 2076 + "primaryKey": false, 2077 + "notNull": true, 2078 + "autoincrement": false 2079 + }, 2080 + "message": { 2081 + "name": "message", 2082 + "type": "text", 2083 + "primaryKey": false, 2084 + "notNull": true, 2085 + "autoincrement": false 2086 + }, 2087 + "from": { 2088 + "name": "from", 2089 + "type": "integer", 2090 + "primaryKey": false, 2091 + "notNull": true, 2092 + "autoincrement": false 2093 + }, 2094 + "to": { 2095 + "name": "to", 2096 + "type": "integer", 2097 + "primaryKey": false, 2098 + "notNull": true, 2099 + "autoincrement": false 2100 + }, 2101 + "workspace_id": { 2102 + "name": "workspace_id", 2103 + "type": "integer", 2104 + "primaryKey": false, 2105 + "notNull": false, 2106 + "autoincrement": false 2107 + }, 2108 + "page_id": { 2109 + "name": "page_id", 2110 + "type": "integer", 2111 + "primaryKey": false, 2112 + "notNull": false, 2113 + "autoincrement": false 2114 + }, 2115 + "created_at": { 2116 + "name": "created_at", 2117 + "type": "integer", 2118 + "primaryKey": false, 2119 + "notNull": false, 2120 + "autoincrement": false, 2121 + "default": "(strftime('%s', 'now'))" 2122 + }, 2123 + "updated_at": { 2124 + "name": "updated_at", 2125 + "type": "integer", 2126 + "primaryKey": false, 2127 + "notNull": false, 2128 + "autoincrement": false, 2129 + "default": "(strftime('%s', 'now'))" 2130 + } 2131 + }, 2132 + "indexes": {}, 2133 + "foreignKeys": { 2134 + "maintenance_workspace_id_workspace_id_fk": { 2135 + "name": "maintenance_workspace_id_workspace_id_fk", 2136 + "tableFrom": "maintenance", 2137 + "tableTo": "workspace", 2138 + "columnsFrom": [ 2139 + "workspace_id" 2140 + ], 2141 + "columnsTo": [ 2142 + "id" 2143 + ], 2144 + "onDelete": "no action", 2145 + "onUpdate": "no action" 2146 + }, 2147 + "maintenance_page_id_page_id_fk": { 2148 + "name": "maintenance_page_id_page_id_fk", 2149 + "tableFrom": "maintenance", 2150 + "tableTo": "page", 2151 + "columnsFrom": [ 2152 + "page_id" 2153 + ], 2154 + "columnsTo": [ 2155 + "id" 2156 + ], 2157 + "onDelete": "cascade", 2158 + "onUpdate": "no action" 2159 + } 2160 + }, 2161 + "compositePrimaryKeys": {}, 2162 + "uniqueConstraints": {}, 2163 + "checkConstraints": {} 2164 + }, 2165 + "maintenance_to_monitor": { 2166 + "name": "maintenance_to_monitor", 2167 + "columns": { 2168 + "maintenance_id": { 2169 + "name": "maintenance_id", 2170 + "type": "integer", 2171 + "primaryKey": false, 2172 + "notNull": true, 2173 + "autoincrement": false 2174 + }, 2175 + "monitor_id": { 2176 + "name": "monitor_id", 2177 + "type": "integer", 2178 + "primaryKey": false, 2179 + "notNull": true, 2180 + "autoincrement": false 2181 + }, 2182 + "created_at": { 2183 + "name": "created_at", 2184 + "type": "integer", 2185 + "primaryKey": false, 2186 + "notNull": false, 2187 + "autoincrement": false, 2188 + "default": "(strftime('%s', 'now'))" 2189 + } 2190 + }, 2191 + "indexes": {}, 2192 + "foreignKeys": { 2193 + "maintenance_to_monitor_maintenance_id_maintenance_id_fk": { 2194 + "name": "maintenance_to_monitor_maintenance_id_maintenance_id_fk", 2195 + "tableFrom": "maintenance_to_monitor", 2196 + "tableTo": "maintenance", 2197 + "columnsFrom": [ 2198 + "maintenance_id" 2199 + ], 2200 + "columnsTo": [ 2201 + "id" 2202 + ], 2203 + "onDelete": "cascade", 2204 + "onUpdate": "no action" 2205 + }, 2206 + "maintenance_to_monitor_monitor_id_monitor_id_fk": { 2207 + "name": "maintenance_to_monitor_monitor_id_monitor_id_fk", 2208 + "tableFrom": "maintenance_to_monitor", 2209 + "tableTo": "monitor", 2210 + "columnsFrom": [ 2211 + "monitor_id" 2212 + ], 2213 + "columnsTo": [ 2214 + "id" 2215 + ], 2216 + "onDelete": "cascade", 2217 + "onUpdate": "no action" 2218 + } 2219 + }, 2220 + "compositePrimaryKeys": { 2221 + "maintenance_to_monitor_maintenance_id_monitor_id_pk": { 2222 + "columns": [ 2223 + "maintenance_id", 2224 + "monitor_id" 2225 + ], 2226 + "name": "maintenance_to_monitor_maintenance_id_monitor_id_pk" 2227 + } 2228 + }, 2229 + "uniqueConstraints": {}, 2230 + "checkConstraints": {} 2231 + }, 2232 + "check": { 2233 + "name": "check", 2234 + "columns": { 2235 + "id": { 2236 + "name": "id", 2237 + "type": "integer", 2238 + "primaryKey": true, 2239 + "notNull": true, 2240 + "autoincrement": true 2241 + }, 2242 + "regions": { 2243 + "name": "regions", 2244 + "type": "text", 2245 + "primaryKey": false, 2246 + "notNull": true, 2247 + "autoincrement": false, 2248 + "default": "''" 2249 + }, 2250 + "url": { 2251 + "name": "url", 2252 + "type": "text(4096)", 2253 + "primaryKey": false, 2254 + "notNull": true, 2255 + "autoincrement": false 2256 + }, 2257 + "headers": { 2258 + "name": "headers", 2259 + "type": "text", 2260 + "primaryKey": false, 2261 + "notNull": false, 2262 + "autoincrement": false, 2263 + "default": "''" 2264 + }, 2265 + "body": { 2266 + "name": "body", 2267 + "type": "text", 2268 + "primaryKey": false, 2269 + "notNull": false, 2270 + "autoincrement": false, 2271 + "default": "''" 2272 + }, 2273 + "method": { 2274 + "name": "method", 2275 + "type": "text", 2276 + "primaryKey": false, 2277 + "notNull": false, 2278 + "autoincrement": false, 2279 + "default": "'GET'" 2280 + }, 2281 + "count_requests": { 2282 + "name": "count_requests", 2283 + "type": "integer", 2284 + "primaryKey": false, 2285 + "notNull": false, 2286 + "autoincrement": false, 2287 + "default": 1 2288 + }, 2289 + "workspace_id": { 2290 + "name": "workspace_id", 2291 + "type": "integer", 2292 + "primaryKey": false, 2293 + "notNull": false, 2294 + "autoincrement": false 2295 + }, 2296 + "created_at": { 2297 + "name": "created_at", 2298 + "type": "integer", 2299 + "primaryKey": false, 2300 + "notNull": false, 2301 + "autoincrement": false, 2302 + "default": "(strftime('%s', 'now'))" 2303 + } 2304 + }, 2305 + "indexes": {}, 2306 + "foreignKeys": { 2307 + "check_workspace_id_workspace_id_fk": { 2308 + "name": "check_workspace_id_workspace_id_fk", 2309 + "tableFrom": "check", 2310 + "tableTo": "workspace", 2311 + "columnsFrom": [ 2312 + "workspace_id" 2313 + ], 2314 + "columnsTo": [ 2315 + "id" 2316 + ], 2317 + "onDelete": "no action", 2318 + "onUpdate": "no action" 2319 + } 2320 + }, 2321 + "compositePrimaryKeys": {}, 2322 + "uniqueConstraints": {}, 2323 + "checkConstraints": {} 2324 + }, 2325 + "monitor_run": { 2326 + "name": "monitor_run", 2327 + "columns": { 2328 + "id": { 2329 + "name": "id", 2330 + "type": "integer", 2331 + "primaryKey": true, 2332 + "notNull": true, 2333 + "autoincrement": false 2334 + }, 2335 + "workspace_id": { 2336 + "name": "workspace_id", 2337 + "type": "integer", 2338 + "primaryKey": false, 2339 + "notNull": false, 2340 + "autoincrement": false 2341 + }, 2342 + "monitor_id": { 2343 + "name": "monitor_id", 2344 + "type": "integer", 2345 + "primaryKey": false, 2346 + "notNull": false, 2347 + "autoincrement": false 2348 + }, 2349 + "runned_at": { 2350 + "name": "runned_at", 2351 + "type": "integer", 2352 + "primaryKey": false, 2353 + "notNull": false, 2354 + "autoincrement": false 2355 + }, 2356 + "created_at": { 2357 + "name": "created_at", 2358 + "type": "integer", 2359 + "primaryKey": false, 2360 + "notNull": false, 2361 + "autoincrement": false, 2362 + "default": "(strftime('%s', 'now'))" 2363 + } 2364 + }, 2365 + "indexes": {}, 2366 + "foreignKeys": { 2367 + "monitor_run_workspace_id_workspace_id_fk": { 2368 + "name": "monitor_run_workspace_id_workspace_id_fk", 2369 + "tableFrom": "monitor_run", 2370 + "tableTo": "workspace", 2371 + "columnsFrom": [ 2372 + "workspace_id" 2373 + ], 2374 + "columnsTo": [ 2375 + "id" 2376 + ], 2377 + "onDelete": "no action", 2378 + "onUpdate": "no action" 2379 + }, 2380 + "monitor_run_monitor_id_monitor_id_fk": { 2381 + "name": "monitor_run_monitor_id_monitor_id_fk", 2382 + "tableFrom": "monitor_run", 2383 + "tableTo": "monitor", 2384 + "columnsFrom": [ 2385 + "monitor_id" 2386 + ], 2387 + "columnsTo": [ 2388 + "id" 2389 + ], 2390 + "onDelete": "no action", 2391 + "onUpdate": "no action" 2392 + } 2393 + }, 2394 + "compositePrimaryKeys": {}, 2395 + "uniqueConstraints": {}, 2396 + "checkConstraints": {} 2397 + } 2398 + }, 2399 + "views": {}, 2400 + "enums": {}, 2401 + "_meta": { 2402 + "schemas": {}, 2403 + "tables": {}, 2404 + "columns": {} 2405 + }, 2406 + "internal": { 2407 + "indexes": {} 2408 + } 2409 + }
+7
packages/db/drizzle/meta/_journal.json
··· 309 309 "when": 1747908803707, 310 310 "tag": "0043_low_lily_hollister", 311 311 "breakpoints": true 312 + }, 313 + { 314 + "idx": 44, 315 + "version": "6", 316 + "when": 1753730490635, 317 + "tag": "0044_illegal_turbo", 318 + "breakpoints": true 312 319 } 313 320 ] 314 321 }
+4
packages/db/src/schema/pages/page.ts
··· 21 21 customDomain: text("custom_domain", { length: 256 }).notNull(), 22 22 published: integer("published", { mode: "boolean" }).default(false), 23 23 24 + forceTheme: text("force_theme", { enum: ["dark", "light", "system"] }) 25 + .notNull() 26 + .default("system"), 27 + 24 28 // Password protecting the status page - no specific restriction on password 25 29 password: text("password", { length: 256 }), 26 30 passwordProtected: integer("password_protected", { mode: "boolean" }).default(