From d67029ffaed87f4c3c352b8bd98b9bc923caf081 Mon Sep 17 00:00:00 2001 From: Jake Barnby Date: Wed, 25 Mar 2026 23:32:25 +1300 Subject: [PATCH] (feat): Add dedicated database overview and layout support --- .../(entity)/helpers/terminology.ts | 6 --- .../(suggestions)/empty.svelte | 3 +- .../database-[database]/+layout.svelte | 2 +- .../databases/database-[database]/+layout.ts | 2 +- .../databases/database-[database]/+page.ts | 2 +- .../database-[database]/breadcrumbs.svelte | 2 +- .../dedicatedOverview.svelte | 43 ++++++++----------- .../database-[database]/header.svelte | 3 +- .../database-[database]/subNavigation.svelte | 2 +- 9 files changed, 24 insertions(+), 41 deletions(-) diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/(entity)/helpers/terminology.ts b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/(entity)/helpers/terminology.ts index 486102e3c..96a3dae65 100644 --- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/(entity)/helpers/terminology.ts +++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/(entity)/helpers/terminology.ts @@ -13,7 +13,6 @@ export type DatabaseType = | 'tablesdb' | 'documentsdb' | 'vectordb' - | 'prisma' | 'shared' | 'dedicated'; @@ -68,11 +67,6 @@ export const baseTerminology = { record: 'document' }, vectordb: {}, - prisma: { - entity: 'table', - field: 'column', - record: 'row' - }, shared: { entity: 'table', field: 'column', diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/(suggestions)/empty.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/(suggestions)/empty.svelte index 7b06bf104..302b857c4 100644 --- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/(suggestions)/empty.svelte +++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/(suggestions)/empty.svelte @@ -17,7 +17,7 @@ import { SortButton } from '$lib/components'; import { columnsOrder, columnsWidth, reorderItems } from '../table-[table]/store'; import { preferences } from '$lib/stores/preferences'; - import { expandTabs, type Columns } from '../store'; + import { expandTabs } from '../store'; import { SpreadsheetContainer } from '$database/(entity)'; import { onDestroy, onMount, tick } from 'svelte'; import { sdk, realtime, type RealtimeResponse } from '$lib/stores/sdk'; @@ -28,7 +28,6 @@ mapSuggestedColumns, type SuggestedColumnSchema, entityColumnSuggestions, - basicColumnOptions, mockSuggestions, showIndexesSuggestions } from './store'; diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/+layout.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/+layout.svelte index edffc6fc9..dda63d799 100644 --- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/+layout.svelte +++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/+layout.svelte @@ -32,7 +32,7 @@ // Check if this is a dedicated database type $: isDedicatedType = - terminology.type === 'prisma' || terminology.type === 'dedicated' || terminology.type === 'shared'; + terminology.type === 'dedicated' || terminology.type === 'shared'; $: $registerCommands([ { diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/+layout.ts b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/+layout.ts index 064babc13..bde72a3e1 100644 --- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/+layout.ts +++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/+layout.ts @@ -12,7 +12,7 @@ type DatabaseWithType = Models.Database & { }; function isDedicatedDatabaseType(type: string | undefined): boolean { - return type === 'prisma' || type === 'dedicated' || type === 'shared'; + return type === 'dedicated' || type === 'shared'; } export const load: LayoutLoad = async ({ params, depends }) => { diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/+page.ts b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/+page.ts index e4c26b486..4762ab196 100644 --- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/+page.ts +++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/+page.ts @@ -11,7 +11,7 @@ export const load: PageLoad = async ({ params, url, route, depends, parent }) => const databaseType = database.type as DatabaseType; // For dedicated databases, we don't fetch entities (tables/collections) - const isDedicatedType = databaseType === 'prisma' || databaseType === 'dedicated'; + const isDedicatedType = databaseType === 'dedicated'; if (isDedicatedType) { return { diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/breadcrumbs.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/breadcrumbs.svelte index e5e9b1470..d7a708ceb 100644 --- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/breadcrumbs.svelte +++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/breadcrumbs.svelte @@ -8,7 +8,7 @@ const params = page.params; const project = page.data.project; const database = page.data.database; - const organization = page.data.organization as Organization; + const organization = page.data.organization as Models.Organization; return [ { diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/dedicatedOverview.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/dedicatedOverview.svelte index 8b8035c84..18a99763e 100644 --- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/dedicatedOverview.svelte +++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/dedicatedOverview.svelte @@ -19,8 +19,7 @@ Input, Skeleton, Tabs, - Divider, - Card + Divider } from '@appwrite.io/pink-svelte'; import { IconDuplicate, IconRefresh } from '@appwrite.io/pink-icons-svelte'; @@ -37,8 +36,6 @@ let isSpinningDown = $state(false); let connectionTab = $state<'direct' | 'string'>('direct'); - // Check if this is a Prisma database - const isPrisma = $derived(database.backend === 'prisma'); const isDedicated = $derived(database.type === 'dedicated'); const isShared = $derived(database.type === 'shared'); const isActive = $derived(database.status === 'ready' || database.status === 'active'); @@ -356,12 +353,12 @@ Status - + {capitalizeFirst(database.status)} - {#if database.containerStatus && !isPrisma} + {#if database.containerStatus} Container: {capitalizeFirst(database.containerStatus)} @@ -378,7 +375,7 @@ {/if} - + Created {toLocaleDateTime(database.$createdAt)} @@ -389,12 +386,12 @@ - {#if database.containerStatus === 'inactive' && !isPrisma} + {#if database.containerStatus === 'inactive'} {/if} - {#if isDedicated && isActive && !isPrisma} + {#if isDedicated && isActive} @@ -404,7 +401,7 @@ {isResuming ? 'Resuming...' : 'Resume'} {/if} - {#if isShared && isActive && containerIsRunning && !isPrisma} + {#if isShared && isActive && containerIsRunning} @@ -480,7 +477,7 @@ color="--fgcolor-neutral-tertiary"> Terminal Command - + {/if} @@ -553,7 +550,7 @@ Resources Your database configuration and allocated resources. - + Engine @@ -610,13 +607,11 @@ - - {#if !isPrisma} - + High Availability Configure replicas and failover settings for your database. - + Status @@ -652,16 +647,13 @@ - {/if} - - {#if !isPrisma} - + Network Connection limits and network configuration. - + Max Connections @@ -701,7 +693,7 @@ IP Allowlist - + {#each database.networkIPAllowlist as ip} {/each} @@ -711,7 +703,6 @@ - {/if} @@ -771,7 +762,7 @@ Storage Autoscaling Automatically expand storage when usage reaches the configured threshold. - + Status @@ -809,7 +800,7 @@ Security Encryption, key management, and audit logging configuration. - + Encryption at Rest @@ -960,7 +951,7 @@ Allowed Statements - + {#each database.sqlApiAllowedStatements as statement} {/each} diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/header.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/header.svelte index ce2a7a109..a81d7be30 100644 --- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/header.svelte +++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/header.svelte @@ -22,8 +22,7 @@ // Check if this is a dedicated database type const isDedicatedType = $derived( - (database?.type as DatabaseType) === 'prisma' || - (database?.type as DatabaseType) === 'dedicated' || + (database?.type as DatabaseType) === 'dedicated' || (database?.type as DatabaseType) === 'shared' ); diff --git a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/subNavigation.svelte b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/subNavigation.svelte index 77f1b472c..5f8ec97ba 100644 --- a/src/routes/(console)/project-[region]-[project]/databases/database-[database]/subNavigation.svelte +++ b/src/routes/(console)/project-[region]-[project]/databases/database-[database]/subNavigation.svelte @@ -49,7 +49,7 @@ // Check if this is a dedicated database type const isDedicatedType = $derived( - terminology.type === 'prisma' || terminology.type === 'dedicated' || terminology.type === 'shared' + terminology.type === 'dedicated' || terminology.type === 'shared' ); const entityTypePlural = terminology.entity.lower.plural;