Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
83 commits
Select commit Hold shift + click to select a range
19f6897
feat: add RuntimeClient, RuntimeProvider, and ConnectRPC proto gen (P…
ericpgreen2 Feb 24, 2026
ba367e8
feat: add TanStack Query hook code generator (Phase 2)
ericpgreen2 Feb 24, 2026
8cdc22d
feat: update invalidation and query matching for dual key formats (Ph…
ericpgreen2 Feb 24, 2026
3aaa80d
fix: resolve type errors in generated query hooks
ericpgreen2 Feb 24, 2026
366c809
fix: prevent reactive loop in runtime store bridge
ericpgreen2 Feb 24, 2026
13adf06
feat: add JSON bridge to v2 code generator (Phase 4)
ericpgreen2 Feb 24, 2026
243dd49
feat: add generic TData support to v2 query hooks for select transforms
ericpgreen2 Feb 24, 2026
a77cf00
fix: strip undefined values before proto fromJson in JSON bridge
ericpgreen2 Feb 24, 2026
369e0b5
fix: emit default values in proto toJson to match gRPC-Gateway output
ericpgreen2 Feb 24, 2026
301244f
fix: deep-strip undefined values in `stripUndefined` for nested reque…
ericpgreen2 Feb 24, 2026
840e757
feat: port request queue to ConnectRPC transport interceptor
ericpgreen2 Feb 25, 2026
ae800e0
refactor: migrate connectors and column-profile to v2 RuntimeClient
ericpgreen2 Feb 24, 2026
d760301
refactor: migrate more connectors components to v2 RuntimeClient
ericpgreen2 Feb 24, 2026
133a411
refactor: migrate column-profile, canvas, and remaining connectors to…
ericpgreen2 Feb 24, 2026
fafeda1
fix: restore select transforms now that v2 hooks support generic TData
ericpgreen2 Feb 24, 2026
46ae340
refactor: migrate chart providers and canvas leaf components to v2 Ru…
ericpgreen2 Feb 24, 2026
25a80d1
refactor: add runtimeClient to dashboard StateManagers and migrate co…
ericpgreen2 Feb 24, 2026
8392af2
refactor: migrate dashboard time-series and selector modules to v2 Ru…
ericpgreen2 Feb 24, 2026
b65d646
refactor: migrate dashboard Svelte components from runtime store to u…
ericpgreen2 Feb 24, 2026
e7bc93b
fix: update test infrastructure for v2 ConnectRPC hooks
ericpgreen2 Feb 24, 2026
2267e4d
refactor: migrate export and pivot-query modules from runtime store t…
ericpgreen2 Feb 24, 2026
d4e0b17
refactor: migrate time controls and time ranges from runtime store to…
ericpgreen2 Feb 24, 2026
bfe9b4b
refactor: migrate canvas, explores, and state-managers from runtime s…
ericpgreen2 Feb 24, 2026
5947503
refactor: thread `RuntimeClient` through `.ts` query factories and re…
ericpgreen2 Feb 24, 2026
fb10785
refactor: migrate web-common features from `runtime` store to `Runtim…
ericpgreen2 Feb 25, 2026
fe3b390
fix: update conversation tests to use mock `RuntimeClient`
ericpgreen2 Feb 25, 2026
2102ddd
refactor: migrate remaining `.ts` modules from runtime store to Runti…
ericpgreen2 Feb 25, 2026
8061a16
refactor: cleanup — migrate embed to v2 RuntimeProvider, delete old p…
ericpgreen2 Feb 25, 2026
2b11911
refactor: delete unused `StreamingQueryBatch` and fix `createDownload…
ericpgreen2 Feb 25, 2026
b777e09
refactor: migrate remaining legacy consumers + delete Orval gen and h…
ericpgreen2 Feb 25, 2026
63c62ba
fix: three UXQA bugs — empty GetFile path, missing TableCardinality p…
ericpgreen2 Feb 26, 2026
b1dd0f6
fix: resolve TypeScript and svelte-check errors from v2 migration
ericpgreen2 Feb 26, 2026
4ddc1d5
fix: provide RuntimeClient to TopNavigationBar via global store
ericpgreen2 Feb 26, 2026
def18ff
fix: prevent infinite SSE reconnection loop when server closes immedi…
ericpgreen2 Feb 26, 2026
3ade689
fix: pass JWT to SSE log connection and forward options to fetch client
ericpgreen2 Feb 26, 2026
4338016
fix: retarget barrel to v2/gen and fix remaining legacy imports
ericpgreen2 Feb 26, 2026
2192094
refactor: migrate all remaining consumers to v2 RuntimeClient signatures
ericpgreen2 Feb 26, 2026
6fa0bcb
fix: resolve all svelte-check and unit test errors from v2 migration
ericpgreen2 Feb 26, 2026
826b3dd
merge: resolve conflicts from main, migrate generateCanvas.ts to v2 R…
ericpgreen2 Feb 26, 2026
9c65c7b
fix: resolve remaining v2 RuntimeClient migration errors blocking build
ericpgreen2 Feb 26, 2026
9e022c6
fix: remove dead `instanceId` vars and fix remaining v2 call signatures
ericpgreen2 Feb 26, 2026
5213771
fix: remove unused `runtimeClient` in `NavFile`, fix `$lib` alias in …
ericpgreen2 Feb 26, 2026
a1ca2fd
fix: allow empty-string host in RuntimeProvider, fix `client` arg in …
ericpgreen2 Feb 26, 2026
3f2591f
fix: set `FileArtifacts` client synchronously to prevent undefined ac…
ericpgreen2 Feb 26, 2026
ca80172
fix: validate `RuntimeClient` constructor args, remove redundant temp…
ericpgreen2 Feb 26, 2026
5a3a103
fix: replace manual REST `fetch()` calls with v2 RPC, remove dead que…
ericpgreen2 Feb 27, 2026
7fa13bd
fix: update web-local for v2 RPC compatibility
ericpgreen2 Feb 27, 2026
0a02a6a
fix: handle ConnectRPC errors in REST-style error checks
ericpgreen2 Feb 27, 2026
12fec35
fix: replace REST-style error handling with ConnectRPC-compatible uti…
ericpgreen2 Feb 27, 2026
fc5e973
fix: update timeseries e2e test to match ConnectRPC URL pattern
ericpgreen2 Feb 27, 2026
23459c0
fix: guard `RuntimeProvider` mount until runtime connection props res…
ericpgreen2 Feb 27, 2026
cb82774
fix: use `runtimeClientStore` in `ProjectGlobalStatusIndicator` and e…
ericpgreen2 Feb 27, 2026
fe517ce
merge main, resolve conflict in `DeploymentSection.svelte`
ericpgreen2 Feb 27, 2026
a5ff1dc
fix: `Heap.delete` must try `moveUp` before `moveDown`
ericpgreen2 Mar 2, 2026
c244546
fix: `removeByName` must reject pending promises before deleting
ericpgreen2 Mar 2, 2026
d703a07
refactor: use `async/await` in generated base functions
ericpgreen2 Mar 2, 2026
3f2c517
fix: guard `runtimeClientStore` clear against stale identity
ericpgreen2 Mar 2, 2026
ef2e38f
chore: remove `frontend.md` from this branch
ericpgreen2 Mar 2, 2026
5a71e78
chore: restore `generate:runtime-client` script name, document Orval …
ericpgreen2 Mar 2, 2026
e8ef7ca
fix: add 60s timeout to `waitForFreshJwt`
ericpgreen2 Mar 2, 2026
e3d528c
fix: add `RequestQueue.clear()` and use it in `dispose()`
ericpgreen2 Mar 2, 2026
e7d4ac8
fix: tear down `featureFlags` subscription on RuntimeProvider unmount
ericpgreen2 Mar 2, 2026
da3fcd5
fix: remove unused `prioritiseColumn` from `RequestQueue`
ericpgreen2 Mar 2, 2026
a9b85ed
fix: skip generating hooks for instance-management methods
ericpgreen2 Mar 2, 2026
4974e52
chore: move query hooks generator into `runtime-client/v2/`
ericpgreen2 Mar 2, 2026
04fccc4
refactor: adopt `ConnectError` as the TanStack Query error type
ericpgreen2 Mar 2, 2026
b1f0e97
fix: update `smartRefetchIntervalFunc` and `useCanvas` to use `Connec…
ericpgreen2 Mar 2, 2026
ff41139
chore: standardize import paths to use runtime-client barrel
ericpgreen2 Mar 2, 2026
674d583
fix: use extractErrorMessage in RenameAssetModal
ericpgreen2 Mar 2, 2026
fc5c049
test: add tests for query hooks code generator
ericpgreen2 Mar 2, 2026
2411e80
merge main, resolve conflicts from MeasureChart refactor (#8752)
ericpgreen2 Mar 3, 2026
c380c52
fix: convert Luxon DateTimes to UTC before `.toISO()` for proto Times…
ericpgreen2 Mar 3, 2026
765c697
fix: detect empty time range from access controls with ConnectRPC
ericpgreen2 Mar 3, 2026
3598037
fix: unit test failures in DashboardStateManager
ericpgreen2 Mar 3, 2026
300b6a9
merge main, resolve conflicts from generateCanvas feature flag removal
ericpgreen2 Mar 4, 2026
15583f7
refactor: unify runtime client access with cached `getRuntimeClient()…
ericpgreen2 Mar 4, 2026
289fb55
refactor: add infinite query codegen, reorganize into `codegen/` fold…
ericpgreen2 Mar 5, 2026
f8e0c0f
fix: silently return from `waitForFreshJwt` on dispose instead of thr…
ericpgreen2 Mar 5, 2026
4bd65d8
merge main, resolve conflicts in AddData form and code-utils
ericpgreen2 Mar 5, 2026
23dfbd3
fix: remove unused `serviceName` variable in `generateInfiniteQueryMe…
ericpgreen2 Mar 5, 2026
58b0021
Potential fix for code scanning alert no. 52: Shell command built fro…
ericpgreen2 Mar 5, 2026
eea3712
fix: use `execFileSync` instead of `execSync` to avoid shell injectio…
ericpgreen2 Mar 5, 2026
9ca869d
fix: tighten `waitForFreshJwt` warning window and throw AbortError on…
ericpgreen2 Mar 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ proto.generate:
cd proto && buf generate --exclude-path rill/ui
cd proto && buf generate --template buf.gen.openapi-admin.yaml --path rill/admin
cd proto && buf generate --template buf.gen.openapi-runtime.yaml --path rill/runtime
cd proto && buf generate --template buf.gen.runtime.yaml --path rill/runtime
cd proto && buf generate --template buf.gen.local.yaml --path rill/local
cd proto && buf generate --template buf.gen.ui.yaml
go run -ldflags="-X main.Version=$(shell git describe --tags $(shell git rev-list --tags --max-count=1))" \
Expand Down
1 change: 0 additions & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

16 changes: 16 additions & 0 deletions proto/buf.gen.runtime.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
version: v2
managed:
enabled: true
override:
- file_option: go_package_prefix
value: github.com/rilldata/rill/proto/gen
disable:
- module: buf.build/googleapis/googleapis
file_option: go_package_prefix
- module: buf.build/envoyproxy/protoc-gen-validate
file_option: go_package_prefix
plugins:
- remote: buf.build/connectrpc/es:v1.4.0
out: ../web-common/src/proto/gen
opt:
- target=ts
6 changes: 3 additions & 3 deletions web-admin/src/features/alerts/CreateAlert.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
import AlertForm from "@rilldata/web-common/features/alerts/AlertForm.svelte";
import { useMetricsViewValidSpec } from "@rilldata/web-common/features/dashboards/selectors";
import { getStateManagers } from "@rilldata/web-common/features/dashboards/state-managers/state-managers";
import { runtime } from "@rilldata/web-common/runtime-client/runtime-store";
import { useRuntimeClient } from "@rilldata/web-common/runtime-client/v2";
import { BellPlusIcon } from "lucide-svelte";

const {
Expand All @@ -22,9 +22,9 @@
dashboardStore,
} = getStateManagers();

$: ({ instanceId } = $runtime);
const runtimeClient = useRuntimeClient();

$: metricsView = useMetricsViewValidSpec(instanceId, $metricsViewName);
$: metricsView = useMetricsViewValidSpec(runtimeClient, $metricsViewName);
$: hasTimeDimension = !!$metricsView?.data?.timeDimension;

let open = false;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@
import { useAlert } from "@rilldata/web-admin/features/alerts/selectors";
import ResourceList from "@rilldata/web-admin/features/resources/ResourceList.svelte";
import type { V1AlertExecution } from "@rilldata/web-common/runtime-client/gen/index.schemas";
import { runtime } from "@rilldata/web-common/runtime-client/runtime-store";
import { useRuntimeClient } from "@rilldata/web-common/runtime-client/v2";
import type { ColumnDef } from "@tanstack/svelte-table";
import { flexRender } from "@tanstack/svelte-table";

export let alert: string;

$: ({ instanceId } = $runtime);
const runtimeClient = useRuntimeClient();

$: alertQuery = useAlert(instanceId, alert);
$: alertQuery = useAlert(runtimeClient, alert);

/**
* Table column definitions.
Expand Down
6 changes: 3 additions & 3 deletions web-admin/src/features/alerts/metadata/AlertFilters.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
V1Expression,
V1TimeRange,
} from "@rilldata/web-common/runtime-client";
import { runtime } from "@rilldata/web-common/runtime-client/runtime-store";
import { useRuntimeClient } from "@rilldata/web-common/runtime-client/v2";
import { flip } from "svelte/animate";
import { fly } from "svelte/transition";

Expand All @@ -36,9 +36,9 @@
whereFilter = dimensionFilters;
havingFilter = dimensionThresholdFilters;
}
$: ({ instanceId } = $runtime);
const runtimeClient = useRuntimeClient();

$: metricsView = useMetricsView(instanceId, metricsViewName);
$: metricsView = useMetricsView(runtimeClient, metricsViewName);
$: dimensionIdMap = getMapFromArray(
$metricsView.data?.metricsView?.state?.validSpec?.dimensions ?? [],
(dimension) => dimension.name,
Expand Down
26 changes: 15 additions & 11 deletions web-admin/src/features/alerts/metadata/AlertMetadata.svelte
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
<script lang="ts">
import { goto } from "$app/navigation";
import { isNotFoundError } from "@rilldata/web-common/lib/errors";
import { createAdminServiceDeleteAlert } from "@rilldata/web-admin/client";
import EditAlert from "@rilldata/web-admin/features/alerts/EditAlert.svelte";
import AlertFilterCriteria from "@rilldata/web-admin/features/alerts/metadata/AlertFilterCriteria.svelte";
Expand Down Expand Up @@ -31,28 +32,29 @@
getRuntimeServiceListResourcesQueryKey,
type V1MetricsViewAggregationRequest,
} from "@rilldata/web-common/runtime-client";
import { runtime } from "@rilldata/web-common/runtime-client/runtime-store";
import { useRuntimeClient } from "@rilldata/web-common/runtime-client/v2";
import { useQueryClient } from "@tanstack/svelte-query";

export let organization: string;
export let project: string;
export let alert: string;

$: ({ instanceId } = $runtime);
const runtimeClient = useRuntimeClient();

$: alertQuery = useAlert(instanceId, alert);
$: isAlertCreatedByCode = useIsAlertCreatedByCode(instanceId, alert);
$: alertQuery = useAlert(runtimeClient, alert);
$: isAlertCreatedByCode = useIsAlertCreatedByCode(runtimeClient, alert);

// Get dashboard
$: exploreName = useAlertDashboardName(instanceId, alert);
$: validSpecResp = useExploreValidSpec(instanceId, $exploreName.data);
$: exploreName = useAlertDashboardName(runtimeClient, alert);
$: validSpecResp = useExploreValidSpec(runtimeClient, $exploreName.data);
$: exploreSpec = $validSpecResp.data?.explore;
$: metricsViewName = exploreSpec?.metricsView;
$: dashboardTitle = exploreSpec?.displayName || $exploreName.data;
$: dashboardDoesNotExist = $validSpecResp.error?.response?.status === 404;
$: dashboardDoesNotExist =
$validSpecResp.isError && isNotFoundError($validSpecResp.error);

$: exploreIsValid = hasValidMetricsViewTimeRange(
instanceId,
runtimeClient,
$exploreName.data,
);

Expand All @@ -74,7 +76,7 @@
queryArgsJson,
) as V1MetricsViewAggregationRequest;

$: dashboardState = useAlertDashboardState(instanceId, alertSpec);
$: dashboardState = useAlertDashboardState(runtimeClient, alertSpec);

$: snoozeLabel = humaniseAlertSnoozeOption(alertSpec);

Expand All @@ -91,7 +93,7 @@
exploreProtoState: alertSpec?.annotations?.web_open_state,
},
{
instanceId,
client: runtimeClient,
organization,
project,
},
Expand All @@ -108,7 +110,9 @@
name: $alertQuery.data.resource.meta.name.name,
});
await queryClient.invalidateQueries({
queryKey: getRuntimeServiceListResourcesQueryKey(instanceId),
queryKey: getRuntimeServiceListResourcesQueryKey(
runtimeClient.instanceId,
),
});
// goto only after invalidate is complete
goto(`/${organization}/${project}/-/alerts`);
Expand Down
39 changes: 20 additions & 19 deletions web-admin/src/features/alerts/selectors.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,39 +8,41 @@ import {
createRuntimeServiceGetResource,
createRuntimeServiceListResources,
} from "@rilldata/web-common/runtime-client";
import type { V1AlertSpec } from "@rilldata/web-common/runtime-client/gen/index.schemas";
import type {
V1AlertSpec,
V1ExploreSpec,
} from "@rilldata/web-common/runtime-client/gen/index.schemas";
import type { RuntimeClient } from "@rilldata/web-common/runtime-client/v2";
import { smartRefetchIntervalFunc } from "@rilldata/web-admin/lib/refetch-interval-store";
import { derived, type Readable, readable } from "svelte/store";

export function useAlerts(instanceId: string, enabled = true) {
export function useAlerts(client: RuntimeClient, enabled = true) {
return createRuntimeServiceListResources(
instanceId,
client,
{
kind: ResourceKind.Alert,
},
{
query: {
enabled: enabled && !!instanceId,
enabled: enabled && !!client.instanceId,
refetchOnMount: true,
refetchInterval: smartRefetchIntervalFunc,
},
},
);
}

export function useAlert(instanceId: string, name: string) {
return createRuntimeServiceGetResource(instanceId, {
"name.name": name,
"name.kind": ResourceKind.Alert,
export function useAlert(client: RuntimeClient, name: string) {
return createRuntimeServiceGetResource(client, {
name: { name, kind: ResourceKind.Alert },
});
}

export function useAlertDashboardName(instanceId: string, name: string) {
export function useAlertDashboardName(client: RuntimeClient, name: string) {
return createRuntimeServiceGetResource(
instanceId,
client,
{
"name.name": name,
"name.kind": ResourceKind.Alert,
name: { name, kind: ResourceKind.Alert },
},
{
query: {
Expand Down Expand Up @@ -93,12 +95,11 @@ export function useAlertOwnerName(
);
}

export function useIsAlertCreatedByCode(instanceId: string, name: string) {
export function useIsAlertCreatedByCode(client: RuntimeClient, name: string) {
return createRuntimeServiceGetResource(
instanceId,
client,
{
"name.name": name,
"name.kind": ResourceKind.Alert,
name: { name, kind: ResourceKind.Alert },
},
{
query: {
Expand All @@ -110,7 +111,7 @@ export function useIsAlertCreatedByCode(instanceId: string, name: string) {
}

export function useAlertDashboardState(
instanceId: string,
client: RuntimeClient,
alertSpec: V1AlertSpec | undefined,
) {
if (!alertSpec) {
Expand All @@ -130,15 +131,15 @@ export function useAlertDashboardState(
}

return createRuntimeServiceGetExplore(
instanceId,
client,
{ name: exploreName },
{
query: {
select: (data) =>
getDashboardStateFromUrl(
webState,
data.metricsView?.metricsView?.state?.validSpec ?? {},
data.explore?.explore?.state?.validSpec,
data.explore?.explore?.state?.validSpec as V1ExploreSpec,
),
},
},
Expand Down
6 changes: 2 additions & 4 deletions web-admin/src/features/billing/plans/selectors.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ import {
} from "@rilldata/web-admin/client";
import { isTeamPlan } from "@rilldata/web-admin/features/billing/plans/utils";
import { queryClient } from "@rilldata/web-common/lib/svelte-query/globalQueryClient";
import { fetchWrapper } from "@rilldata/web-common/runtime-client/fetchWrapper";
import type { Page } from "@sveltejs/kit";
import type { CreateQueryResult } from "@tanstack/svelte-query";
import { DateTime } from "luxon";
Expand Down Expand Up @@ -91,14 +90,13 @@ function usageMetrics(
): Promise<UsageMetricsResponse> {
const url = new URL(runtimeHost);
url.pathname = `/v1/instances/${instanceId}/api/usage-meter`;
return fetchWrapper({
url: url.toString(),
return fetch(url.toString(), {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${accessToken}`,
},
});
}).then((r) => r.json());
}
export function getUsageMetrics(
runtimeHost: string,
Expand Down
15 changes: 10 additions & 5 deletions web-admin/src/features/bookmarks/BookmarksFormDialog.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
} from "@rilldata/web-common/runtime-client";
import { InfoIcon } from "lucide-svelte";
import type { Interval } from "luxon";
import { runtime } from "@rilldata/web-common/runtime-client/runtime-store";
import { useRuntimeClient } from "@rilldata/web-common/runtime-client/v2";
import { getCanvasStore } from "@rilldata/web-common/features/canvas/state-managers/state-managers";
import CanvasFilterChipsReadOnly from "@rilldata/web-common/features/dashboards/filters/CanvasFilterChipsReadOnly.svelte";
import { defaults, superForm } from "sveltekit-superforms";
Expand All @@ -51,11 +51,11 @@
export let metricsViewNames: string[];
export let onClose = () => {};

const runtimeClient = useRuntimeClient();

let filterState: undefined | Awaited<ReturnType<typeof processUrl>> =
undefined;

$: ({ instanceId } = $runtime);

$: ({ name: resourceName, kind: resourceKind } = resource);

$: ({ url } = $page);
Expand Down Expand Up @@ -83,7 +83,12 @@

try {
const promises = metricsViewNames.map((mvName) =>
deriveInterval(timeRange.expression || "", mvName, timeZone),
deriveInterval(
timeRange.expression || "",
runtimeClient,
mvName,
timeZone,
),
);

const intervals = await Promise.all(promises);
Expand Down Expand Up @@ -118,7 +123,7 @@
if (resource.kind === ResourceKind.Canvas) {
const uiFilters = getCanvasStore(
resourceName,
instanceId,
runtimeClient.instanceId,
).canvasEntity.filterManager.getUIFiltersFromString(searchParams);

return {
Expand Down
6 changes: 3 additions & 3 deletions web-admin/src/features/bookmarks/CanvasBookmarks.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@
import { getCanvasCategorisedBookmarks } from "@rilldata/web-admin/features/bookmarks/selectors.ts";
import { useCanvas } from "@rilldata/web-common/features/canvas/selector";
import { ResourceKind } from "@rilldata/web-common/features/entity-management/resource-selectors.ts";
import { runtime } from "@rilldata/web-common/runtime-client/runtime-store.ts";
import { useRuntimeClient } from "@rilldata/web-common/runtime-client/v2";
import { writable } from "svelte/store";

export let organization: string;
export let project: string;
export let canvasName: string;

$: ({ instanceId } = $runtime);
const runtimeClient = useRuntimeClient();

const orgAndProjectNameStore = writable({ organization, project });
$: orgAndProjectNameStore.set({ organization, project });
Expand All @@ -23,7 +23,7 @@
canvasNameStore,
);

$: canvasResponse = useCanvas(instanceId, canvasName);
$: canvasResponse = useCanvas(runtimeClient, canvasName);

$: metricsViews = $canvasResponse.data?.metricsViews || {};

Expand Down
Loading
Loading