This commit is contained in:
JulesWritesCode committed 2026-10-02 09:58:50 +02:00
1 parent 059850cae3
commit 3848e4dd70
3 files changed
+780 -186

No files matched your search

@@ -1,7 +1,7 @@
import HCaptcha from '@hcaptcha/react-hcaptcha'
import { zodResolver } from '@hookform/resolvers/zod'
import { PermissionAction } from '@supabase/shared-types/out/constants'
import { Calendar, PartyPopper } from 'lucide-react'
import { Calendar, Info, PartyPopper } from 'lucide-react'
import Link from 'next/link'
import { useRouter } from 'next/router'
import { useEffect, useRef, useState } from 'react'
@@ -215,7 +215,7 @@ export const CreditCodeRedemption = ({
<div className="mt-2 flex items-center justify-center gap-2 text-sm text-muted-foreground bg-muted/50 py-3 px-4 rounded-lg">
<Calendar className="h-4 w-4" />
<span>
Expires on{' '}
Your credits expire on{' '}
<TimestampInfo
className="text-sm"
utcTimestamp={codeRedemptionResult.credits_expire_at}
@@ -225,6 +225,17 @@ export const CreditCodeRedemption = ({
</div>
)}
{codeRedemptionResult.already_redeemed_partner_credits && (
<div className="mt-2 flex items-center justify-center gap-2 text-sm text-muted-foreground bg-muted/50 py-3 px-4 rounded-lg">
<Info className="h-4 w-4" />
<span>
You already redeemed $
{codeRedemptionResult.already_redeemed_partner_credits / 100} of credits through
other deals
</span>
</div>
)}
{(!router.pathname.includes('/org/') || org?.plan.id === 'free') && (
<div className="mt-4 flex flex-col gap-y-4">
<Separator />
+522 -176
View File
File diff suppressed because it is too large. Load diff
+245 -8
View File
@@ -1279,6 +1279,23 @@ export interface paths {
patch?: never
trace?: never
}
'/platform/organizations/{slug}/billing/credits/burndown': {
parameters: {
query?: never
header?: never
path?: never
cookie?: never
}
/** Retrieves the burndown of prepaid credit blocks for an organization */
get: operations['OrgCreditsController_getBurndown']
put?: never
post?: never
delete?: never
options?: never
head?: never
patch?: never
trace?: never
}
'/platform/organizations/{slug}/billing/credits/preview': {
parameters: {
query?: never
@@ -5210,6 +5227,26 @@ export interface paths {
patch?: never
trace?: never
}
'/platform/warehouse/{ref}': {
parameters: {
query?: never
header?: never
path?: never
cookie?: never
}
get?: never
put?: never
post?: never
/**
* Disable Warehouse
* @description Asynchronously stop and delete Warehouse replication, remove its publication and FDW, and revoke external catalog access. Optionally delete the DuckLake catalog schema and managed Storage bucket with delete_data=true, requiring SQL and Storage admin write permissions on the configured destination. Poll setup-status for completion. Source tables are preserved.
*/
delete: operations['WarehouseController_deleteWarehouse']
options?: never
head?: never
patch?: never
trace?: never
}
'/platform/warehouse/{ref}/catalog': {
parameters: {
query?: never
@@ -5265,7 +5302,7 @@ export interface paths {
put?: never
/**
* Set up Warehouse
* @description Replace the Warehouse publication with the complete requested selection and start syncing. Optionally select another Supabase project for both the DuckLake PostgreSQL catalog and Storage using destination_project_ref; SQL and Storage admin write permissions are required on that project. The configured destination is reused on subsequent requests and cannot be changed through setup. Schema targets include the currently eligible tables in that schema. An empty targets array stops and deletes the Warehouse pipeline and publication, disables external catalog access, and uninstalls the Warehouse FDW and its dependent foreign tables. Warehouse FDW installation is opt-in, remains on the source project, and is ignored for an empty selection.
* @description Replace the Warehouse publication with the complete requested selection and start syncing. Optionally select another Supabase project for both the DuckLake PostgreSQL catalog and Storage using destination_project_ref; SQL and Storage admin write permissions are required on that project. The configured destination is reused on subsequent requests and cannot be changed through setup. Schema targets include the currently eligible tables in that schema. For backward compatibility, an empty targets array asynchronously stops and deletes the Warehouse pipeline and publication, disables external catalog access, and uninstalls the Warehouse FDW and its dependent foreign tables. Warehouse FDW installation is opt-in, remains on the source project, and is ignored for an empty selection. Prefer DELETE to disable Warehouse and optionally delete its data; poll setup-status for completion.
*/
post: operations['WarehouseController_setup']
delete?: never
@@ -5283,7 +5320,7 @@ export interface paths {
}
/**
* Get Warehouse setup status
* @description Return the async Warehouse setup status for the project. Overall completion follows the replication pipeline and table copy state; project database FDW markers are informational.
* @description Return Warehouse setup or disable status. During and after teardown, persisted lifecycle state is returned without querying ETL or inspecting the project FDW. Otherwise completion follows replication and table copy state.
*/
get: operations['WarehouseController_getSetupStatus']
put?: never
@@ -7905,6 +7942,7 @@ export interface components {
code: string
}
CreditRedemptionResponse_Output: {
already_redeemed_partner_credits: number
amount_cents: number
credits_expire_at: string | null
}
@@ -8802,6 +8840,17 @@ export interface components {
private: number
shared: number
}
GetCreditBurndownResponse_Output: {
data: {
amount_cents: number
breakdown: {
amount_cents: number
item: string
}[]
day: string
ending_balance_cents: number
}[]
}
GetGitHubConnectionConfigResponse_Output: {
/** @description JSON representation of the parsed `supabase/config.toml`. Its shape is owned by the Supabase CLI and is passed through as-is. */
config: {
@@ -16120,6 +16169,10 @@ export interface components {
/** @description Whether external catalog access is enabled */
enabled: boolean
}
WarehouseDeleteResponse_Output: {
/** @enum {string} */
status: 'accepted'
}
WarehouseSetupBody: {
/**
* @description Supabase project to use for both the DuckLake PostgreSQL catalog and Supabase Storage. Defaults to this project on first setup and to the configured destination on later requests. The destination must be active and healthy, and another project requires SQL and Storage admin write permissions. An existing destination cannot be changed through setup. Ignored when targets is empty.
@@ -16131,7 +16184,7 @@ export interface components {
* @example false
*/
install_fdw?: boolean
/** @description Complete selection of schemas and individual tables to copy, replacing the previous selection. Schema targets expand to the eligible tables present when the request is processed. An empty array disables Warehouse replication and external catalog access and uninstalls the Warehouse FDW. */
/** @description Complete selection of schemas and individual tables to copy, replacing the previous selection. Schema targets expand to the eligible tables present when the request is processed. An empty array asynchronously disables Warehouse while retaining its data. Prefer DELETE to disable Warehouse; poll setup-status for completion. */
targets: (
| {
/**
@@ -16160,7 +16213,7 @@ export interface components {
}
WarehouseSetupResponse_Output: {
/**
* @description Warehouse replication pipeline id, or null when Warehouse is disabled
* @description Warehouse replication pipeline id, or null when Warehouse disable has been requested
* @example 101
*/
pipeline_id: number | null
@@ -16206,7 +16259,11 @@ export interface components {
}[]
}
WarehouseSetupStatusResponse_Output: {
/** @description Project database FDW setup markers used to derive the Warehouse FDW phase */
/** @description Whether the current disable request deletes DuckLake data. */
delete_data?: boolean
/** @description Warehouse cleanup failure, when present. */
error?: string
/** @description Project database FDW setup markers; null during or after teardown, when setup inspection is inapplicable. */
fdw_status: {
/**
* @description Whether fdw_warehouse is available to install on the project database instance
@@ -16238,18 +16295,26 @@ export interface components {
* @example true
*/
wrapper_installed: boolean
}
} | null
/**
* @description Warehouse replication pipeline id when it exists
* @example 101
*/
pipeline_id?: number
/**
* @description Overall Warehouse setup status derived from replication state
* @description Overall Warehouse lifecycle status, using persisted state during teardown and replication state during setup
* @example copying
* @enum {string}
*/
setup_status: 'not_started' | 'setting_up' | 'copying' | 'complete' | 'error'
setup_status:
| 'not_started'
| 'setting_up'
| 'copying'
| 'complete'
| 'error'
| 'disabling'
| 'disabled'
| 'deletion_failed'
/** @description Warehouse setup phases in execution order */
steps: {
/**
@@ -17848,6 +17913,27 @@ export interface operations {
'application/json': components['schemas']['UpdateConversationCustomFieldsResponse_Output']
}
}
/** @description Unauthorized */
401: {
headers: {
[name: string]: unknown
}
content?: never
}
/** @description Forbidden action */
403: {
headers: {
[name: string]: unknown
}
content?: never
}
/** @description Rate limit exceeded */
429: {
headers: {
[name: string]: unknown
}
content?: never
}
/** @description Failed to update conversation custom fields */
500: {
headers: {
@@ -19169,6 +19255,27 @@ export interface operations {
'application/json': components['schemas']['GetOAuthAuthorizationResponse_Output']
}
}
/** @description Unauthorized */
401: {
headers: {
[name: string]: unknown
}
content?: never
}
/** @description Forbidden action */
403: {
headers: {
[name: string]: unknown
}
content?: never
}
/** @description Rate limit exceeded */
429: {
headers: {
[name: string]: unknown
}
content?: never
}
}
}
OrganizationsController_getOrganizations: {
@@ -20497,6 +20604,59 @@ export interface operations {
}
}
}
OrgCreditsController_getBurndown: {
parameters: {
query?: {
end_date?: string
start_date?: string
}
header?: never
path: {
/** @description Organization slug */
slug: string
}
cookie?: never
}
requestBody?: never
responses: {
200: {
headers: {
[name: string]: unknown
}
content: {
'application/json': components['schemas']['GetCreditBurndownResponse_Output']
}
}
/** @description Unauthorized */
401: {
headers: {
[name: string]: unknown
}
content?: never
}
/** @description Forbidden action */
403: {
headers: {
[name: string]: unknown
}
content?: never
}
/** @description Rate limit exceeded */
429: {
headers: {
[name: string]: unknown
}
content?: never
}
/** @description Failed to retrieve prepaid credit block burndown */
500: {
headers: {
[name: string]: unknown
}
content?: never
}
}
}
OrgCreditsController_previewTopUp: {
parameters: {
query?: never
@@ -35126,6 +35286,83 @@ export interface operations {
}
}
}
WarehouseController_deleteWarehouse: {
parameters: {
query?: {
/** @description Permanently delete the managed DuckLake catalog schema and Storage bucket. Defaults to false. */
delete_data?: 'true' | 'false'
}
header?: never
path: {
/** @description Project ref */
ref: string
}
cookie?: never
}
requestBody?: never
responses: {
/** @description Warehouse disable accepted. Poll setup-status for completion. */
202: {
headers: {
[name: string]: unknown
}
content: {
'application/json': components['schemas']['WarehouseDeleteResponse_Output']
}
}
/** @description Invalid deletion option or unmanaged Warehouse destination. */
400: {
headers: {
[name: string]: unknown
}
content?: never
}
/** @description Unauthorized */
401: {
headers: {
[name: string]: unknown
}
content?: never
}
/** @description This feature requires the Pro, Team, or Enterprise organization plan. */
402: {
headers: {
[name: string]: unknown
}
content: {
'application/json': components['schemas']['PlanGateErrorBody']
}
}
/** @description Forbidden action */
403: {
headers: {
[name: string]: unknown
}
content?: never
}
/** @description Another Warehouse mutation is running or the cleanup policy cannot be changed. */
409: {
headers: {
[name: string]: unknown
}
content?: never
}
/** @description Rate limit exceeded */
429: {
headers: {
[name: string]: unknown
}
content?: never
}
/** @description Failed to request Warehouse disable. */
500: {
headers: {
[name: string]: unknown
}
content?: never
}
}
}
WarehouseController_getCatalog: {
parameters: {
query?: never