From 7eb892e1a079e340152153a552e364ef68837bb7 Mon Sep 17 00:00:00 2001
From: Shaun Struwig <41984034+Blargian@users.noreply.github.com>
Date: Wed, 9 Sep 2026 13:27:11 +0200
Subject: [PATCH 1/4] dummy change
---
clickstack/demo-days/2026/2026-04-03.mdx | 2 ++
1 file changed, 2 insertions(+)
diff --git a/clickstack/demo-days/2026/2026-04-03.mdx b/clickstack/demo-days/2026/2026-04-03.mdx
index 490caa430..5150a65d4 100644
--- a/clickstack/demo-days/2026/2026-04-03.mdx
+++ b/clickstack/demo-days/2026/2026-04-03.mdx
@@ -15,6 +15,8 @@ keywords: ['ClickStack', 'Demo days']
+Test change
+
Dashboards and saved searches have moved off the sidebar and onto dedicated listing pages. If your team has accumulated a meaningful number of dashboards, the old sidebar approach got unwieldy fast. The new pages show everything in a card view organised by tag, with name search and tag filtering built in. A denser list view is also available if you prefer it.
Favouriting is now part of the picture too. Star a dashboard or saved search and it pins to the top of the listing page and reappears in the sidebar for quick access, similar to how things worked before but without crowding the nav for everyone else. The listing page also surfaces alert status icons and "created by / updated by" metadata on each card, so you can see at a glance who owns what and whether anything is firing.
From 0ad234e76bf34ada0f1ec1d28d7f8bad6e4bc00b Mon Sep 17 00:00:00 2001
From: Shaun Struwig <41984034+Blargian@users.noreply.github.com>
Date: Wed, 9 Sep 2026 13:43:21 +0200
Subject: [PATCH 2/4] Store Vercel deployment configuration as secrets
---
.github/workflows/remote-docs-preview.yml | 16 ++++++----------
.github/workflows/site-preview.yml | 4 ++--
.github/workflows/site-production.yml | 17 ++++++-----------
reports/templates/airgap-docs-preview.yml | 4 ++--
src/README.md | 4 ++--
5 files changed, 18 insertions(+), 27 deletions(-)
diff --git a/.github/workflows/remote-docs-preview.yml b/.github/workflows/remote-docs-preview.yml
index f34799d67..a5a5b0614 100644
--- a/.github/workflows/remote-docs-preview.yml
+++ b/.github/workflows/remote-docs-preview.yml
@@ -31,14 +31,6 @@ on:
description: Repository containing the pull request
required: true
type: string
- vercel_org_id:
- description: Vercel organization ID
- required: true
- type: string
- vercel_project_id:
- description: Vercel project ID
- required: true
- type: string
secrets:
WORKFLOW_AUTH_PUBLIC_APP_ID:
required: true
@@ -46,6 +38,10 @@ on:
required: true
VERCEL_TOKEN:
required: true
+ VERCEL_ORG_ID:
+ required: true
+ VERCEL_PROJECT_ID:
+ required: true
outputs:
preview_url:
description: URL of the completed Vercel preview
@@ -166,8 +162,8 @@ jobs:
DOCS_REMOTE_SOURCE_REPOSITORY: ${{ steps.pull-request.outputs.head_repository }}
PULL_REQUEST_NUMBER: ${{ inputs.pull_request_number }}
SITE_SHA: ${{ steps.site.outputs.sha }}
- VERCEL_ORG_ID: ${{ inputs.vercel_org_id || vars.VERCEL_ORG_ID }}
- VERCEL_PROJECT_ID: ${{ inputs.vercel_project_id || vars.VERCEL_PROJECT_ID }}
+ VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }}
+ VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }}
VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }}
run: |
if ! project_response="$(
diff --git a/.github/workflows/site-preview.yml b/.github/workflows/site-preview.yml
index 1d013db98..ccb4e3990 100644
--- a/.github/workflows/site-preview.yml
+++ b/.github/workflows/site-preview.yml
@@ -151,8 +151,8 @@ jobs:
PULL_REQUEST_NUMBER: ${{ github.event.pull_request.number || inputs.pull_request_number }}
TRANSLATION_SCOPE: ${{ steps.translations.outputs.scope }}
TRUST: ${{ steps.pull-request.outputs.trust }}
- VERCEL_ORG_ID: ${{ vars.VERCEL_ORG_ID }}
- VERCEL_PROJECT_ID: ${{ vars.VERCEL_PROJECT_ID }}
+ VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }}
+ VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }}
VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }}
run: |
repository_owner="${GITHUB_REPOSITORY%%/*}"
diff --git a/.github/workflows/site-production.yml b/.github/workflows/site-production.yml
index bbd6b69ba..3e9dade35 100644
--- a/.github/workflows/site-production.yml
+++ b/.github/workflows/site-production.yml
@@ -5,18 +5,13 @@ on:
branches: [main]
workflow_dispatch:
workflow_call:
- inputs:
- vercel_org_id:
- description: Vercel organization ID
- required: true
- type: string
- vercel_project_id:
- description: Vercel project ID
- required: true
- type: string
secrets:
VERCEL_TOKEN:
required: true
+ VERCEL_ORG_ID:
+ required: true
+ VERCEL_PROJECT_ID:
+ required: true
outputs:
production_url:
description: URL of the completed Vercel production deployment
@@ -69,8 +64,8 @@ jobs:
id: deploy
env:
SITE_SHA: ${{ steps.site.outputs.sha }}
- VERCEL_ORG_ID: ${{ inputs.vercel_org_id || vars.VERCEL_ORG_ID }}
- VERCEL_PROJECT_ID: ${{ inputs.vercel_project_id || vars.VERCEL_PROJECT_ID }}
+ VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }}
+ VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }}
VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }}
run: |
if ! project_response="$(
diff --git a/reports/templates/airgap-docs-preview.yml b/reports/templates/airgap-docs-preview.yml
index b355a11fa..b0d2582cb 100644
--- a/reports/templates/airgap-docs-preview.yml
+++ b/reports/templates/airgap-docs-preview.yml
@@ -26,9 +26,9 @@ jobs:
remote_name: clickhouse-private
pull_request_number: ${{ fromJSON(inputs.pull_request_number) }}
source_repository: ${{ github.repository }}
- vercel_org_id: ${{ vars.VERCEL_ORG_ID }}
- vercel_project_id: ${{ vars.VERCEL_PROJECT_ID }}
secrets:
WORKFLOW_AUTH_PUBLIC_APP_ID: ${{ secrets.WORKFLOW_AUTH_PUBLIC_APP_ID }}
WORKFLOW_AUTH_PUBLIC_PRIVATE_KEY: ${{ secrets.WORKFLOW_AUTH_PUBLIC_PRIVATE_KEY }}
VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }}
+ VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }}
+ VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }}
diff --git a/src/README.md b/src/README.md
index e2ced7ca4..37d6a0473 100644
--- a/src/README.md
+++ b/src/README.md
@@ -116,8 +116,8 @@ Vercel must be provisioned as follows:
7. Keep standard Preview free of secrets and privileged integrations. Every
base-repository pull request builds from the primary repository's synthetic
merge ref in this environment and omits registered remotes.
-8. Add `VERCEL_ORG_ID` and `VERCEL_PROJECT_ID` as GitHub Actions variables and
- `VERCEL_TOKEN` as a GitHub Actions secret.
+8. Add `VERCEL_TOKEN`, `VERCEL_ORG_ID`, and `VERCEL_PROJECT_ID` as GitHub
+ Actions secrets.
9. Keep the Vercel build command as `pnpm run build:vercel` and the output
directory as `dist`.
From 0a7131065716f2ec907928b848eeb2b3d06078a1 Mon Sep 17 00:00:00 2001
From: Shaun Struwig <41984034+Blargian@users.noreply.github.com>
Date: Wed, 9 Sep 2026 13:46:56 +0200
Subject: [PATCH 3/4] Clarify Vercel repository secret scope
---
src/README.md | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/README.md b/src/README.md
index 37d6a0473..f01c1059c 100644
--- a/src/README.md
+++ b/src/README.md
@@ -116,8 +116,9 @@ Vercel must be provisioned as follows:
7. Keep standard Preview free of secrets and privileged integrations. Every
base-repository pull request builds from the primary repository's synthetic
merge ref in this environment and omits registered remotes.
-8. Add `VERCEL_TOKEN`, `VERCEL_ORG_ID`, and `VERCEL_PROJECT_ID` as GitHub
- Actions secrets.
+8. Add `VERCEL_TOKEN`, `VERCEL_ORG_ID`, and `VERCEL_PROJECT_ID` as repository
+ secrets under GitHub Actions. Do not store them as repository variables or
+ environment-scoped secrets.
9. Keep the Vercel build command as `pnpm run build:vercel` and the output
directory as `dist`.
From 451739e9f496172137680c871a832a45105fb0cb Mon Sep 17 00:00:00 2001
From: Shaun Struwig <41984034+Blargian@users.noreply.github.com>
Date: Wed, 9 Sep 2026 13:48:37 +0200
Subject: [PATCH 4/4] remove test change
---
clickstack/demo-days/2026/2026-04-03.mdx | 2 --
1 file changed, 2 deletions(-)
diff --git a/clickstack/demo-days/2026/2026-04-03.mdx b/clickstack/demo-days/2026/2026-04-03.mdx
index 5150a65d4..490caa430 100644
--- a/clickstack/demo-days/2026/2026-04-03.mdx
+++ b/clickstack/demo-days/2026/2026-04-03.mdx
@@ -15,8 +15,6 @@ keywords: ['ClickStack', 'Demo days']
-Test change
-
Dashboards and saved searches have moved off the sidebar and onto dedicated listing pages. If your team has accumulated a meaningful number of dashboards, the old sidebar approach got unwieldy fast. The new pages show everything in a card view organised by tag, with name search and tag filtering built in. A denser list view is also available if you prefer it.
Favouriting is now part of the picture too. Star a dashboard or saved search and it pins to the top of the listing page and reappears in the sidebar for quick access, similar to how things worked before but without crowding the nav for everyone else. The listing page also surfaces alert status icons and "created by / updated by" metadata on each card, so you can see at a glance who owns what and whether anything is firing.