From 38e0e4f3a08b51110d057c5eae4bbaf3ee0a6e02 Mon Sep 17 00:00:00 2001 From: Eric P Green Date: Tue, 9 Dec 2025 22:01:16 -0500 Subject: [PATCH 1/3] feat (Status): Add table with deployment, GitHub, OLAP, and AI info --- .../github/GithubConnectionDialog.svelte | 27 +-- .../projects/status/ConfigurationRowAi.svelte | 162 ++++++++++++++++ .../status/ConfigurationRowDeployment.svelte | 81 ++++++++ .../status/ConfigurationRowGithub.svelte | 177 ++++++++++++++++++ .../status/ConfigurationRowOlap.svelte | 111 +++++++++++ .../projects/status/ProjectAiConnector.svelte | 162 ++++++++++++++++ .../status/ProjectConfiguration.svelte | 29 +++ .../status/ProjectOlapConnector.svelte | 104 ++++++++++ .../features/projects/status/display-utils.ts | 2 +- .../[project]/-/status/+page.svelte | 15 +- .../icons/connectors/OpenAIIcon.svelte | 16 ++ .../connectors/connector-icon-mapping.ts | 2 + 12 files changed, 863 insertions(+), 25 deletions(-) create mode 100644 web-admin/src/features/projects/status/ConfigurationRowAi.svelte create mode 100644 web-admin/src/features/projects/status/ConfigurationRowDeployment.svelte create mode 100644 web-admin/src/features/projects/status/ConfigurationRowGithub.svelte create mode 100644 web-admin/src/features/projects/status/ConfigurationRowOlap.svelte create mode 100644 web-admin/src/features/projects/status/ProjectAiConnector.svelte create mode 100644 web-admin/src/features/projects/status/ProjectConfiguration.svelte create mode 100644 web-admin/src/features/projects/status/ProjectOlapConnector.svelte create mode 100644 web-common/src/components/icons/connectors/OpenAIIcon.svelte diff --git a/web-admin/src/features/projects/github/GithubConnectionDialog.svelte b/web-admin/src/features/projects/github/GithubConnectionDialog.svelte index 9133bdcd5c5..e182f6177bf 100644 --- a/web-admin/src/features/projects/github/GithubConnectionDialog.svelte +++ b/web-admin/src/features/projects/github/GithubConnectionDialog.svelte @@ -25,6 +25,7 @@ export let open = false; export let organization: string; export let project: string; + export let hideTrigger = false; const FORM_ID = "github-connect-form"; @@ -159,18 +160,20 @@ } }} > - - - + {#if !hideTrigger} + + + + {/if}
diff --git a/web-admin/src/features/projects/status/ConfigurationRowAi.svelte b/web-admin/src/features/projects/status/ConfigurationRowAi.svelte new file mode 100644 index 00000000000..f54b8d0d87f --- /dev/null +++ b/web-admin/src/features/projects/status/ConfigurationRowAi.svelte @@ -0,0 +1,162 @@ + + +
+
AI
+
+ {#if isLoading} + + {:else if error} + Error loading AI connector + {:else if isUserConfigured} +
+ {#if IconComponent} + + {:else} + + {/if} + + {getDriverDisplayName(userConnectorConfig?.type)} + + {#if configDetails.length > 0} + {#each configDetails as detail, i} + + + {detail.label}: + {detail.value} + + {/each} + {/if} +
+ {:else} +
+ Rill-managed +
+ {/if} +
+
+ + diff --git a/web-admin/src/features/projects/status/ConfigurationRowDeployment.svelte b/web-admin/src/features/projects/status/ConfigurationRowDeployment.svelte new file mode 100644 index 00000000000..f7503668156 --- /dev/null +++ b/web-admin/src/features/projects/status/ConfigurationRowDeployment.svelte @@ -0,0 +1,81 @@ + + +
+
Deployment
+
+ {#if isLoading} + + {:else if error} + Error loading deployment status + {:else} +
+
+ + + {currentStatusDisplay.text} + +
+ {#if deployment?.statusMessage} + {deployment.statusMessage} + {/if} +
+ {/if} +
+
+ + diff --git a/web-admin/src/features/projects/status/ConfigurationRowGithub.svelte b/web-admin/src/features/projects/status/ConfigurationRowGithub.svelte new file mode 100644 index 00000000000..5384b35dc09 --- /dev/null +++ b/web-admin/src/features/projects/status/ConfigurationRowGithub.svelte @@ -0,0 +1,177 @@ + + +
+
GitHub
+
+ {#if isLoading} + + {:else if error} + Error loading GitHub status + {:else if isGithubConnected && !isManagedGit} +
+ + + {repoName} + + + branch: {prodBranch} + {#if subpath} + + /{subpath} + {/if} + {#if lastUpdated} + + Synced {formatSyncTime(lastUpdated)} + {/if} +
+ {:else} +
+ Not connected + +
+ {/if} +
+
+ + + + diff --git a/web-admin/src/features/projects/status/ConfigurationRowOlap.svelte b/web-admin/src/features/projects/status/ConfigurationRowOlap.svelte new file mode 100644 index 00000000000..cfe3834bd5a --- /dev/null +++ b/web-admin/src/features/projects/status/ConfigurationRowOlap.svelte @@ -0,0 +1,111 @@ + + +
+
OLAP Engine
+
+ {#if isLoading} + + {:else if error} + Error loading OLAP connector + {:else} +
+ {#if isUserConfigured} + {#if IconComponent} + + {:else} + + {/if} + {/if} + + {#if !isUserConfigured}Rill-managed + {/if}{displayName} + +
+ {/if} +
+
+ + diff --git a/web-admin/src/features/projects/status/ProjectAiConnector.svelte b/web-admin/src/features/projects/status/ProjectAiConnector.svelte new file mode 100644 index 00000000000..34f8baece01 --- /dev/null +++ b/web-admin/src/features/projects/status/ProjectAiConnector.svelte @@ -0,0 +1,162 @@ + + +
+

AI

+ {#if isLoading} +
+ +
+ {:else if error} +
+ Error loading AI connector +
+ {:else if isUserConfigured} +
+
+ + + {getDriverDisplayName(userConnectorConfig?.type)} + +
+ {#if configDetails.length > 0} +
+ {#each configDetails as detail} +
+ {detail.label}: + {detail.value} +
+ {/each} +
+ {/if} +
+ {:else} +
+
+ + + Rill AI + (default) + +
+
+ {/if} +
+ + diff --git a/web-admin/src/features/projects/status/ProjectConfiguration.svelte b/web-admin/src/features/projects/status/ProjectConfiguration.svelte new file mode 100644 index 00000000000..5f7e3d89df3 --- /dev/null +++ b/web-admin/src/features/projects/status/ProjectConfiguration.svelte @@ -0,0 +1,29 @@ + + +
+
+ + + + +
+
+ + diff --git a/web-admin/src/features/projects/status/ProjectOlapConnector.svelte b/web-admin/src/features/projects/status/ProjectOlapConnector.svelte new file mode 100644 index 00000000000..d5590d5b09c --- /dev/null +++ b/web-admin/src/features/projects/status/ProjectOlapConnector.svelte @@ -0,0 +1,104 @@ + + +
+

OLAP Engine

+ {#if isLoading} +
+ +
+ {:else if error} +
+ Error loading OLAP connector +
+ {:else} +
+ {#if IconComponent} + + {:else} + + {/if} + + {displayName} + {#if !isUserConfigured} + (default) + {/if} + +
+ {/if} +
+ + diff --git a/web-admin/src/features/projects/status/display-utils.ts b/web-admin/src/features/projects/status/display-utils.ts index d4e7a35cd8c..09cd4f1ae8f 100644 --- a/web-admin/src/features/projects/status/display-utils.ts +++ b/web-admin/src/features/projects/status/display-utils.ts @@ -92,7 +92,7 @@ export const deploymentChipDisplays: Record = [V1DeploymentStatus.DEPLOYMENT_STATUS_RUNNING]: { icon: CheckCircle, iconProps: { className: "text-primary-600 hover:text-primary-500" }, - text: "Ready", + text: "Running", textClass: "text-primary-600", wrapperClass: "bg-primary-50 border-primary-300", }, diff --git a/web-admin/src/routes/[organization]/[project]/-/status/+page.svelte b/web-admin/src/routes/[organization]/[project]/-/status/+page.svelte index ba2ab04ec94..e5c6d406052 100644 --- a/web-admin/src/routes/[organization]/[project]/-/status/+page.svelte +++ b/web-admin/src/routes/[organization]/[project]/-/status/+page.svelte @@ -1,22 +1,13 @@ -
-
- - -
- +
+
diff --git a/web-common/src/components/icons/connectors/OpenAIIcon.svelte b/web-common/src/components/icons/connectors/OpenAIIcon.svelte new file mode 100644 index 00000000000..6b7f594b97b --- /dev/null +++ b/web-common/src/components/icons/connectors/OpenAIIcon.svelte @@ -0,0 +1,16 @@ + + + + + diff --git a/web-common/src/features/connectors/connector-icon-mapping.ts b/web-common/src/features/connectors/connector-icon-mapping.ts index a5e581f0395..b987cd3aa89 100644 --- a/web-common/src/features/connectors/connector-icon-mapping.ts +++ b/web-common/src/features/connectors/connector-icon-mapping.ts @@ -8,6 +8,7 @@ import AthenaIcon from "../../components/icons/connectors/AthenaIcon.svelte"; import PostgresIcon from "../../components/icons/connectors/PostgresIcon.svelte"; import MySqlIcon from "../../components/icons/connectors/MySqlIcon.svelte"; import MotherDuckIcon from "../../components/icons/connectors/MotherDuckIcon.svelte"; +import OpenAIIcon from "../../components/icons/connectors/OpenAIIcon.svelte"; import RedshiftIcon from "../../components/icons/connectors/RedshiftIcon.svelte"; import SnowflakeIcon from "../../components/icons/connectors/SnowflakeIcon.svelte"; import ClickHouseCloudIcon from "../../components/icons/connectors/ClickHouseCloudIcon.svelte"; @@ -21,6 +22,7 @@ export const connectorIconMapping = { druid: ApacheDruidIcon, duckdb: DuckDbIcon, mysql: MySqlIcon, + openai: OpenAIIcon, pinot: ApachePinotIcon, postgres: PostgresIcon, redshift: RedshiftIcon, From 5f348fc94d68ee982d057423b902a93928aaba88 Mon Sep 17 00:00:00 2001 From: Eric P Green Date: Tue, 9 Dec 2025 22:16:34 -0500 Subject: [PATCH 2/3] Code cleanup --- .../status/ConfigurationRowDeployment.svelte | 81 ------------- .../status/ProjectConfiguration.svelte | 29 ----- .../status/project-info/InfoRow.svelte | 37 ++++++ .../InfoRowAi.svelte} | 92 ++++++--------- .../project-info/InfoRowDeployment.svelte | 57 +++++++++ .../InfoRowGithub.svelte} | 110 +++++++----------- .../InfoRowOlap.svelte} | 70 ++++------- .../status/project-info/ProjectInfo.svelte | 24 ++++ .../[project]/-/status/+page.svelte | 6 +- 9 files changed, 220 insertions(+), 286 deletions(-) delete mode 100644 web-admin/src/features/projects/status/ConfigurationRowDeployment.svelte delete mode 100644 web-admin/src/features/projects/status/ProjectConfiguration.svelte create mode 100644 web-admin/src/features/projects/status/project-info/InfoRow.svelte rename web-admin/src/features/projects/status/{ConfigurationRowAi.svelte => project-info/InfoRowAi.svelte} (67%) create mode 100644 web-admin/src/features/projects/status/project-info/InfoRowDeployment.svelte rename web-admin/src/features/projects/status/{ConfigurationRowGithub.svelte => project-info/InfoRowGithub.svelte} (61%) rename web-admin/src/features/projects/status/{ConfigurationRowOlap.svelte => project-info/InfoRowOlap.svelte} (67%) create mode 100644 web-admin/src/features/projects/status/project-info/ProjectInfo.svelte diff --git a/web-admin/src/features/projects/status/ConfigurationRowDeployment.svelte b/web-admin/src/features/projects/status/ConfigurationRowDeployment.svelte deleted file mode 100644 index f7503668156..00000000000 --- a/web-admin/src/features/projects/status/ConfigurationRowDeployment.svelte +++ /dev/null @@ -1,81 +0,0 @@ - - -
-
Deployment
-
- {#if isLoading} - - {:else if error} - Error loading deployment status - {:else} -
-
- - - {currentStatusDisplay.text} - -
- {#if deployment?.statusMessage} - {deployment.statusMessage} - {/if} -
- {/if} -
-
- - diff --git a/web-admin/src/features/projects/status/ProjectConfiguration.svelte b/web-admin/src/features/projects/status/ProjectConfiguration.svelte deleted file mode 100644 index 5f7e3d89df3..00000000000 --- a/web-admin/src/features/projects/status/ProjectConfiguration.svelte +++ /dev/null @@ -1,29 +0,0 @@ - - -
-
- - - - -
-
- - diff --git a/web-admin/src/features/projects/status/project-info/InfoRow.svelte b/web-admin/src/features/projects/status/project-info/InfoRow.svelte new file mode 100644 index 00000000000..4abd186afb7 --- /dev/null +++ b/web-admin/src/features/projects/status/project-info/InfoRow.svelte @@ -0,0 +1,37 @@ + + +
+
{label}
+
+ +
+
+ + diff --git a/web-admin/src/features/projects/status/ConfigurationRowAi.svelte b/web-admin/src/features/projects/status/project-info/InfoRowAi.svelte similarity index 67% rename from web-admin/src/features/projects/status/ConfigurationRowAi.svelte rename to web-admin/src/features/projects/status/project-info/InfoRowAi.svelte index f54b8d0d87f..52fd3bb17d5 100644 --- a/web-admin/src/features/projects/status/ConfigurationRowAi.svelte +++ b/web-admin/src/features/projects/status/project-info/InfoRowAi.svelte @@ -1,10 +1,11 @@ -
-
AI
-
- {#if isLoading} - - {:else if error} - Error loading AI connector - {:else if isUserConfigured} -
- {#if IconComponent} - - {:else} - - {/if} - - {getDriverDisplayName(userConnectorConfig?.type)} - - {#if configDetails.length > 0} - {#each configDetails as detail, i} - - - {detail.label}: - {detail.value} - - {/each} - {/if} -
- {:else} -
- Rill-managed -
- {/if} -
-
+ + {#if isLoading} + + {:else if error} + Error loading AI connector + {:else if isUserConfigured} +
+ {#if IconComponent} + + {:else} + + {/if} + + {getDriverDisplayName(userConnectorConfig?.type)} + + {#if configDetails.length > 0} + {#each configDetails as detail} + + + {detail.label}: + {detail.value} + + {/each} + {/if} +
+ {:else} +
+ Rill-managed +
+ {/if} +
diff --git a/web-admin/src/features/projects/status/ConfigurationRowGithub.svelte b/web-admin/src/features/projects/status/project-info/InfoRowGithub.svelte similarity index 61% rename from web-admin/src/features/projects/status/ConfigurationRowGithub.svelte rename to web-admin/src/features/projects/status/project-info/InfoRowGithub.svelte index 5384b35dc09..f6392ec5ea5 100644 --- a/web-admin/src/features/projects/status/ConfigurationRowGithub.svelte +++ b/web-admin/src/features/projects/status/project-info/InfoRowGithub.svelte @@ -12,6 +12,7 @@ getRepoNameFromGitRemote, } from "@rilldata/web-common/features/project/deploy/github-utils"; import { runtime } from "@rilldata/web-common/runtime-client/runtime-store"; + import InfoRow from "./InfoRow.svelte"; export let organization: string; export let project: string; @@ -52,51 +53,48 @@ } -
-
GitHub
-
- {#if isLoading} - - {:else if error} - Error loading GitHub status - {:else if isGithubConnected && !isManagedGit} -
- - - {repoName} - + + {#if isLoading} + + {:else if error} + Error loading GitHub status + {:else if isGithubConnected && !isManagedGit} +
+ + + {repoName} + + + branch: {prodBranch} + {#if subpath} - branch: {prodBranch} - {#if subpath} - - /{subpath} - {/if} - {#if lastUpdated} - - Synced {formatSyncTime(lastUpdated)} - {/if} -
- {:else} -
- Not connected - -
- {/if} -
-
+ /{subpath} + {/if} + {#if lastUpdated} + + Synced {formatSyncTime(lastUpdated)} + {/if} +
+ {:else} +
+ Not connected + +
+ {/if} + diff --git a/web-admin/src/routes/[organization]/[project]/-/status/+page.svelte b/web-admin/src/routes/[organization]/[project]/-/status/+page.svelte index e5c6d406052..05a4bfe0a1f 100644 --- a/web-admin/src/routes/[organization]/[project]/-/status/+page.svelte +++ b/web-admin/src/routes/[organization]/[project]/-/status/+page.svelte @@ -1,13 +1,13 @@ -
- +
+
From 242823dc4d53eea3d043c5e3942b4e5f8b714ed9 Mon Sep 17 00:00:00 2001 From: Eric P Green Date: Fri, 12 Dec 2025 13:22:55 -0500 Subject: [PATCH 3/3] Tweak GitHub row --- .../github/GithubConnectionDialog.svelte | 10 ++++- ...InfoRowGithub.svelte => InfoRowGit.svelte} | 37 ++++++------------- .../status/project-info/ProjectInfo.svelte | 4 +- 3 files changed, 22 insertions(+), 29 deletions(-) rename web-admin/src/features/projects/status/project-info/{InfoRowGithub.svelte => InfoRowGit.svelte} (84%) diff --git a/web-admin/src/features/projects/github/GithubConnectionDialog.svelte b/web-admin/src/features/projects/github/GithubConnectionDialog.svelte index e182f6177bf..2e1e1b42d83 100644 --- a/web-admin/src/features/projects/github/GithubConnectionDialog.svelte +++ b/web-admin/src/features/projects/github/GithubConnectionDialog.svelte @@ -181,7 +181,15 @@
Connect to GitHub - Connect this project to a new repo. + Enable version control and collaboration for your project. + + Learn more +
diff --git a/web-admin/src/features/projects/status/project-info/InfoRowGithub.svelte b/web-admin/src/features/projects/status/project-info/InfoRowGit.svelte similarity index 84% rename from web-admin/src/features/projects/status/project-info/InfoRowGithub.svelte rename to web-admin/src/features/projects/status/project-info/InfoRowGit.svelte index f6392ec5ea5..7b85e610486 100644 --- a/web-admin/src/features/projects/status/project-info/InfoRowGithub.svelte +++ b/web-admin/src/features/projects/status/project-info/InfoRowGit.svelte @@ -1,7 +1,6 @@ - + {#if isLoading} {:else if error} @@ -81,18 +78,14 @@ {/if}
{:else} -
- Not connected - -
+ {/if} @@ -130,19 +123,11 @@ @apply text-gray-500 text-xs; } - .not-connected-content { - @apply flex items-center gap-x-2; - } - - .not-connected-text { - @apply text-gray-600; - } - .connect-link { - @apply text-primary-600; - @apply cursor-pointer; @apply bg-transparent border-none p-0; @apply text-sm font-medium; + @apply text-primary-600; + @apply cursor-pointer; } .connect-link:hover { diff --git a/web-admin/src/features/projects/status/project-info/ProjectInfo.svelte b/web-admin/src/features/projects/status/project-info/ProjectInfo.svelte index ece72cc5826..f355eb5ae09 100644 --- a/web-admin/src/features/projects/status/project-info/ProjectInfo.svelte +++ b/web-admin/src/features/projects/status/project-info/ProjectInfo.svelte @@ -2,7 +2,7 @@ import { page } from "$app/stores"; import InfoRowAi from "./InfoRowAi.svelte"; import InfoRowDeployment from "./InfoRowDeployment.svelte"; - import InfoRowGithub from "./InfoRowGithub.svelte"; + import InfoRowGit from "./InfoRowGit.svelte"; import InfoRowOlap from "./InfoRowOlap.svelte"; $: organization = $page.params.organization; @@ -11,7 +11,7 @@
- +