mirror of
https://github.com/supabase/supabase.git
synced 2026-10-13 21:29:08 +03:00
https://linear.app/supabase/issue/FE-2226/fix-incorrect-baseline-and-max-iopsthroughput-values - Centralized compute/disk limits in packages/shared-data/compute-disk-limits.ts (MB/s, baseline+max IOPS/throughput) and re-exported from shared-data. - Hooked Docs compute/disk table into shared data, converted docs text/table to MB/s baseline/max. - Removed duplicated compute IOPS/throughput constants from Studio, Studio now imports shared data. - Updated Studio disk schema: compute-aware MAX IOPS/throughput validation (MB/s), defaults computeSize to ci_micro, and gp3/io2 checks use compute caps. - Clarified disk update mutation to send throughput as MB/s despite backend throughput_mbps field name. - Added tests for compute-size mappings and IOPS helper logic. - Added Infra ownership for shared compute/disk data in CODEOWNERS. - Locked zod version via catalog and added zod dep to shared-data. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added a reusable Compute Disk Limits table and centralized compute disk limits dataset for dynamic display. * **Documentation** * Replaced static per-size tables with a component-driven MB/s view; clarified baseline vs. burst behavior and updated guides and troubleshooting. * **Bug Fixes** * Validation and UI guidance now honor compute-size limits for IOPS and throughput. * **Tests** * Expanded unit tests for sizing, mappings, and edge cases. * **Chores** * Published shared-data exports, added a validation schema, pinned a dependency, and added ownership entries. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
102 lines
3.4 KiB
TypeScript
102 lines
3.4 KiB
TypeScript
import { ArrowDown, Check, X } from 'lucide-react'
|
|
import Link from 'next/link'
|
|
import { Badge, Button, Image } from 'ui'
|
|
import { Admonition, type AdmonitionProps } from 'ui-patterns/admonition'
|
|
import { GlassPanel } from 'ui-patterns/GlassPanel'
|
|
import { IconPanel } from 'ui-patterns/IconPanel'
|
|
import SqlToRest from 'ui-patterns/SqlToRest'
|
|
import { Heading } from 'ui/src/components/CustomHTMLElements'
|
|
import { AiPromptsIndex } from '~/app/guides/getting-started/ai-prompts/[slug]/AiPromptsIndex'
|
|
import { AppleSecretGenerator } from '~/components/AppleSecretGenerator'
|
|
import AuthProviders from '~/components/AuthProviders'
|
|
import { AuthSmsProviderConfig } from '~/components/AuthSmsProviderConfig'
|
|
import { CostWarning } from '~/components/AuthSmsProviderConfig/AuthSmsProviderConfig.Warnings'
|
|
import ButtonCard from '~/components/ButtonCard'
|
|
import { Extensions } from '~/components/Extensions'
|
|
import { JwtGenerator, JwtGeneratorSimple } from '~/components/JwtGenerator'
|
|
import { MetricsStackCards } from '~/components/MetricsStackCards'
|
|
import { NavData } from '~/components/NavData'
|
|
import { Price } from '~/components/Price'
|
|
import { ProjectConfigVariables } from '~/components/ProjectConfigVariables'
|
|
import { RealtimeLimitsEstimator } from '~/components/RealtimeLimitsEstimator'
|
|
import { ComputeDiskLimitsTable } from '~/components/ComputeDiskLimitsTable'
|
|
import { RegionsList, SmartRegionsList } from '~/components/RegionsList'
|
|
import { SharedData } from '~/components/SharedData'
|
|
import StepHikeCompact from '~/components/StepHikeCompact'
|
|
import { CodeSampleDummy, CodeSampleWrapper } from '~/features/directives/CodeSample.client'
|
|
import { NamedCodeBlock } from '~/features/directives/CodeTabs.components'
|
|
import { Accordion, AccordionItem } from '~/features/ui/Accordion'
|
|
import { CodeBlock } from '~/features/ui/CodeBlock/CodeBlock'
|
|
import InfoTooltip from '~/features/ui/InfoTooltip'
|
|
import { ShowUntil } from '~/features/ui/ShowUntil'
|
|
import { TabPanel, Tabs } from '~/features/ui/Tabs'
|
|
import { ErrorCodes } from '../ui/ErrorCodes'
|
|
import { McpConfigPanel } from '../ui/McpConfigPanel'
|
|
|
|
// Wrap Admonition for Docs-specific styling (within MDX prose, requires a margin-bottom)
|
|
const AdmonitionWithMargin = (props: AdmonitionProps) => {
|
|
return <Admonition {...props} className="mb-8" />
|
|
}
|
|
|
|
const components = {
|
|
Accordion,
|
|
AccordionItem,
|
|
Admonition: AdmonitionWithMargin,
|
|
AiPromptsIndex,
|
|
AuthSmsProviderConfig,
|
|
AppleSecretGenerator,
|
|
AuthProviders,
|
|
Badge,
|
|
Button,
|
|
ButtonCard,
|
|
CodeSampleDummy,
|
|
CodeSampleWrapper,
|
|
ComputeDiskLimitsTable,
|
|
CostWarning,
|
|
ErrorCodes,
|
|
Extensions,
|
|
GlassPanel,
|
|
IconArrowDown: ArrowDown,
|
|
IconCheck: Check,
|
|
IconPanel,
|
|
IconX: X,
|
|
Image: (props: any) => <Image fill alt="" className="object-contain" {...props} />,
|
|
JwtGenerator,
|
|
JwtGeneratorSimple,
|
|
Link,
|
|
McpConfigPanel,
|
|
MetricsStackCards,
|
|
NamedCodeBlock,
|
|
NavData,
|
|
ProjectConfigVariables,
|
|
RealtimeLimitsEstimator,
|
|
RegionsList,
|
|
SmartRegionsList,
|
|
SharedData,
|
|
ShowUntil,
|
|
SqlToRest,
|
|
StepHikeCompact,
|
|
Tabs,
|
|
TabPanel,
|
|
InfoTooltip,
|
|
h2: (props: any) => (
|
|
<Heading tag="h2" {...props}>
|
|
{props.children}
|
|
</Heading>
|
|
),
|
|
h3: (props: any) => (
|
|
<Heading tag="h3" {...props}>
|
|
{props.children}
|
|
</Heading>
|
|
),
|
|
h4: (props: any) => (
|
|
<Heading tag="h4" {...props}>
|
|
{props.children}
|
|
</Heading>
|
|
),
|
|
pre: CodeBlock,
|
|
Price,
|
|
}
|
|
|
|
export { components }
|