Something went wrong. Try again.
[READ-ONLY] Mirror of https://github.com/openstatusHQ/openstatus. ๐ซ Status page with uptime monitoring & API monitoring as code ๐ซ openstatus.dev
bun drizzle-orm monitoring monitoring-as-code nextjs observability on-call open-source shadcn-ui status-page statuspage synthetic-monitoring tinybird turso uptime uptime-checker uptime-monitor
Something went wrong. Try again.
3.4 kB ยท 155 lines
TypeScript
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156import { allPlans } from "@openstatus/db/src/schema/plan/config";import type { Limits } from "@openstatus/db/src/schema/plan/schema";import type React from "react";
export const plans = allPlans;
export const config: Record< string, { label: string; features: { value: keyof Limits; label: string; description?: React.ReactNode; // tooltip informations badge?: string; monthly?: boolean; }[]; }> = { "status-pages": { label: "Status Pages", features: [ { value: "status-pages", label: "Number of status pages", }, { value: "page-components", label: "Number of components", }, { value: "maintenance", label: "Maintenance status", }, { value: "slack-agent", label: "Slack Agent", }, { value: "monitor-values-visibility", label: "Toggle numbers visibility", }, // { // value: "uptime-history", // label: "Uptime history (24 months)", // }, { value: "status-subscribers", label: "Subscribers", }, { value: "custom-domain", label: "Custom domain", }, { value: "white-label", label: "White Label", }, { value: "custom-theme", label: "Custom Theme", }, ], }, "status-page-audience": { label: "Status Page Audience", features: [ { value: "password-protection", label: "Password Protection (Basic)", }, { value: "email-domain-protection", label: "Magic Link (Auth)", }, { value: "ip-restriction", label: "IP Restriction", }, ], }, monitors: { label: "Monitors", features: [ { value: "periodicity", label: "Frequency", }, { value: "monitors", label: "Number of monitors", }, { value: "multi-region", label: "Multi-region monitoring", }, { value: "regions", label: "Total regions" }, { value: "max-regions", label: "Regions per monitor" }, { value: "data-retention", label: "Data retention" }, { value: "response-logs", label: "Response Logs" }, { value: "otel", label: "OTel Exporter" }, { value: "synthetic-checks", label: "Synthetic API Checks", monthly: true, }, ], }, notifications: { label: "Notifications", features: [ { value: "notifications", label: "Slack, Discord, Email, Webhook, ntfy.sh", }, { value: "pagerduty", label: "PagerDuty", }, { value: "opsgenie", label: "OpsGenie", }, { value: "grafana-oncall", label: "Grafana OnCall", }, { value: "whatsapp", label: "WhatsApp", }, { value: "notification-channels", label: "Number of notification channels", }, ], }, collaboration: { label: "Collaboration", features: [ { value: "members", label: "Team members", }, { value: "audit-log", label: "Audit log", }, { value: "sso", label: "SAML single sign-on", }, ], },};