Skip to content

feat: support data source and connection variables in the external API and MCP #16665

feat: support data source and connection variables in the external API and MCP

feat: support data source and connection variables in the external API and MCP #16665

Triggered via pull request November 13, 2026 20:02
Status Success
Total duration 9m 21s
Artifacts 8

main.yml

on: pull_request
Matrix: e2e-tests / e2e-tests
Matrix: integration-shards
End-to-End Tests
11s
End-to-End Tests
integration
2s
integration
Fit to window
Zoom out
Zoom in

Annotations

4 errors, 5 warnings, and 4 notices
[chromium] › tests/e2e/features/dashboard.spec.ts:312:7 › Dashboard › should warn when closing tile editor with unsaved changes @dashboard: packages/app/tests/e2e/features/dashboard.spec.ts#L317
1) [chromium] › tests/e2e/features/dashboard.spec.ts:312:7 › Dashboard › should warn when closing tile editor with unsaved changes @dashboard Error: expect(locator).toBeAttached() failed Locator: getByRole('dialog').filter({ has: getByTestId('confirm-confirm-button') }) Expected: attached Timeout: 5000ms Error: element(s) not found Call log: - Expect "toBeAttached" with timeout 5000ms - waiting for getByRole('dialog').filter({ has: getByTestId('confirm-confirm-button') }) 315 | 316 | await dashboardPage.page.keyboard.press('Escape'); > 317 | await expect(dashboardPage.unsavedChangesConfirmModal).toBeAttached({ | ^ 318 | timeout: 5000, 319 | }); 320 | at /home/runner/work/ClickStack/ClickStack/packages/app/tests/e2e/features/dashboard.spec.ts:317:60
[chromium] › tests/e2e/features/search/relative-time.spec.ts:169:9 › Relative Time Picker › Live Mode Integration › should resume live tail with selected interval @relative-time: packages/app/tests/e2e/components/TimePickerComponent.ts#L175
1) [chromium] › tests/e2e/features/search/relative-time.spec.ts:169:9 › Relative Time Picker › Live Mode Integration › should resume live tail with selected interval @relative-time › Pause live tail by selecting absolute time TimeoutError: locator.waitFor: Timeout 5000ms exceeded. Call log: - waiting for getByTestId('time-picker-relative-switch') at components/TimePickerComponent.ts:175 173 | */ 174 | async isRelativeTimeEnabled(): Promise<boolean> { > 175 | await this.relativeTimeSwitch.waitFor({ state: 'attached', timeout: 5000 }); | ^ 176 | return await this.relativeTimeSwitch.isChecked(); 177 | } 178 | at TimePickerComponent.isRelativeTimeEnabled (/home/runner/work/ClickStack/ClickStack/packages/app/tests/e2e/components/TimePickerComponent.ts:175:35) at TimePickerComponent.disableRelativeTime (/home/runner/work/ClickStack/ClickStack/packages/app/tests/e2e/components/TimePickerComponent.ts:193:34) at /home/runner/work/ClickStack/ClickStack/packages/app/tests/e2e/features/search/relative-time.spec.ts:178:37 at /home/runner/work/ClickStack/ClickStack/packages/app/tests/e2e/features/search/relative-time.spec.ts:176:7
[chromium] › tests/e2e/features/dashboard-adhoc-click-filters.spec.ts:49:9 › Ad hoc dashboard filters: click to filter › search tile cells update every ad hoc filter on the source @dashboard @full-stack: packages/app/tests/e2e/utils/filters-param.ts#L43
2) [chromium] › tests/e2e/features/dashboard-adhoc-click-filters.spec.ts:49:9 › Ad hoc dashboard filters: click to filter › search tile cells update every ad hoc filter on the source @dashboard @full-stack › Including a value twice toggles it off Error: expect(received).toEqual(expected) // deep equality - Expected - 2 + Received + 2 @@ -7,11 +7,11 @@ "value": "accounting", }, Object { "key": "ServiceName", "operator": "=", - "value": "frontend", + "value": "k8s-events", }, ], "name": "Conditions", "type": "adhoc", }, @@ -23,11 +23,11 @@ "value": "accounting", }, Object { "key": "ServiceName", "operator": "=", - "value": "frontend", + "value": "k8s-events", }, ], "name": "More", "type": "adhoc", }, Call Log: - Timeout 10000ms exceeded while waiting on the predicate at utils/filters-param.ts:43 41 | await expect(async () => { 42 | expect(filtersParam(page)).toEqual(expected); > 43 | }).toPass({ timeout: 10000 }); | ^ 44 | }; 45 | 46 | /** Navigate to a dashboard with a hand-written `filters=` param. */ at expectFiltersParam (/home/runner/work/ClickStack/ClickStack/packages/app/tests/e2e/utils/filters-param.ts:43:6) at /home/runner/work/ClickStack/ClickStack/packages/app/tests/e2e/features/dashboard-adhoc-click-filters.spec.ts:108:33 at /home/runner/work/ClickStack/ClickStack/packages/app/tests/e2e/features/dashboard-adhoc-click-filters.spec.ts:106:7
[chromium] › tests/e2e/features/alerts.spec.ts:631:7 › Alert Creation › should create a between-threshold alert from a dashboard tile and verify on the alerts page @alerts @full-stack @full-stack: packages/app/tests/e2e/components/ChartEditorComponent.ts#L932
1) [chromium] › tests/e2e/features/alerts.spec.ts:631:7 › Alert Creation › should create a between-threshold alert from a dashboard tile and verify on the alerts page @alerts @full-stack @full-stack › Save the tile with the alert configured TimeoutError: locator.waitFor: Timeout 10000ms exceeded. Call log: - waiting for getByTestId('chart-save-button') to be hidden 25 × locator resolved to visible <button type="button" data-variant="primary" data-testid="chart-save-button" class="mantine-focus-auto mantine-active m_77c9d27d mantine-Button-root m_87cf2631 mantine-UnstyledButton-root">…</button> at components/ChartEditorComponent.ts:932 930 | await this.saveButton.click(); 931 | // The modal closes once the dashboard mutation resolves. > 932 | await this.saveButton.waitFor({ state: 'hidden', timeout: 10000 }); | ^ 933 | } 934 | 935 | /** at ChartEditorComponent.save (/home/runner/work/ClickStack/ClickStack/packages/app/tests/e2e/components/ChartEditorComponent.ts:932:27) at /home/runner/work/ClickStack/ClickStack/packages/app/tests/e2e/features/alerts.spec.ts:683:9 at /home/runner/work/ClickStack/ClickStack/packages/app/tests/e2e/features/alerts.spec.ts:682:7
lint
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache/restore@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
e2e-tests / E2E Tests - Shard 4
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
e2e-tests / E2E Tests - Shard 2
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
e2e-tests / E2E Tests - Shard 3
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
e2e-tests / E2E Tests - Shard 1
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/cache@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
🎭 Playwright Run Summary
1 skipped 116 passed (3.9m)
🎭 Playwright Run Summary
1 flaky [chromium] › tests/e2e/features/dashboard.spec.ts:312:7 › Dashboard › should warn when closing tile editor with unsaved changes @dashboard 116 passed (5.1m)
🎭 Playwright Run Summary
1 flaky [chromium] › tests/e2e/features/search/relative-time.spec.ts:169:9 › Relative Time Picker › Live Mode Integration › should resume live tail with selected interval @relative-time 116 passed (5.2m)
🎭 Playwright Run Summary
2 flaky [chromium] › tests/e2e/features/alerts.spec.ts:631:7 › Alert Creation › should create a between-threshold alert from a dashboard tile and verify on the alerts page @alerts @full-stack @full-stack [chromium] › tests/e2e/features/dashboard-adhoc-click-filters.spec.ts:49:9 › Ad hoc dashboard filters: click to filter › search tile cells update every ad hoc filter on the source @dashboard @full-stack 116 passed (5.2m)

Artifacts

Produced during runtime
Name Size Digest
playwright-report-1
21.5 MB
sha256:43406b58706664b5b5ae2e14e1debd5b6b997709c5e4fb24470b12820e08b71b
playwright-report-2
4.09 MB
sha256:cf69044fe6ad4e7f5447ea64d1740ff237e56b054e4b81e2d8ffdad5d2f1ffd7
playwright-report-3
19.1 MB
sha256:6992e4cf10de21e67e01a235de13242961907ef28ca0876d0ee590fc8bf8fbe7
playwright-report-4
382 KB
sha256:edc182b6570f3d47f3d3672eae1ac22dde4c7aa6c405c006a29d0163ee71d34b
test-results-1
20.6 MB
sha256:759c69a1410eb0461f5c7fe130f53cae1cd1135438d235caf25bbe396961ef8b
test-results-2
3.23 MB
sha256:c4e603d7b059ed92f6d37929513b6afa3c2c8b8232420474fe26552b18ba874e
test-results-3
18.3 MB
sha256:707c231a28b672f1f0d8a8e1e86f5f6745f9c861719470df86c7cd0c2b2e6745
test-results-4
47 KB
sha256:f4972e021a814859e4cfa071f7f4be3bbd961c779730891d4a076a372ee00e5c