You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Document Enterprise navbar/favicon branding on the Appearance page (+17 more) - #1643
Docs changes Cloudy's docs writer made from support threads on Monday 2 November 2026. One commit per change, described below in order; review by commit and comment on any to drop or change. Every commit builds on current main, so merge whenever it is green, including midday for an urgent fix: later changes that day start a new PR.
New Restrict MCP to specific projects section under 'Turn MCP access on or off'
Explains 'All projects' vs 'Only selected projects', the 'No projects allowed' warning
Links Pin a project header section to the admin-enforced alternative, and back
Why
Admins could not find how to restrict which projects MCP clients can reach, since the docs only covered the org-wide MCP on/off switch and the user-chosen X-Lightdash-Project header.
Network requirements: allowlist needs POST/GET/DELETE on /api/v1/mcp, POST on the OAuth token/register endpoints
New Outbound egress for OAuth client ID metadata documents section, with the fix version (2.589.4)
Troubleshooting: rows for a stuck Continue connecting and a 400 on Authorize
Why
Admins allowlisting a self-hosted instance for Claude connectors only had a GET-based, no-egress picture of the required traffic, so their connections hung or failed with a 400 with no matching row to explain it.
New Combining models from multiple sources section under Project layout
Explains native YAML has no dbt-deps/package equivalent, with the CI copy-into-models/ workaround
Notes the project-wide unique model name requirement applies once sources are merged
Why
Readers splitting semantic models across multiple source repos had no documented way to combine them into one native Lightdash YAML project, since the page only documented combining dbt sources, not native ones.
Amazon Bedrock credentials: geography keeps requests in Japan (Tokyo/Osaka) or US/EU, separate from region
Explains the first credential becomes the org default unless you clear Set as organization default
New sentence pointing Terraform/IaC users at the /api/v1/ai/provider-credentials API
Why
The Bedrock credentials section didn't explain that inference geography (not region) controls data residency, how the organization default gets set on first credential creation, or that credentials can be managed via the API.
New Supporting many embedded end users section under Permission modes
Explains the service-account-per-permission-profile pattern, so new end users need no new Lightdash user or code change
Covers the writeActions.userUuid alternative for end users who are Lightdash users
Notes JWTs are signed per session/request with a short expiry, and user.externalId still works for tracking
Why
Readers configuring role-based embed permissions for many end users could only see single-actor examples and had no guidance on reusing a small set of service accounts per permission profile instead of provisioning a Lightdash user per end user.
Getting better results: explains apps load query results 500 rows at a time, so large result sets render slowly
Recommends aggregating, filtering, or lowering the row limit, or loading detail rows on demand
Why
Readers debugging a slow-loading data app could only find warehouse query time and caching as explanations, not that large result sets are paginated 500 rows at a time and that pagination itself is the bottleneck.
From Caching, "- Scheduled Deliveries generate and use cached results for the saved chart … (+1 line)": Scheduled deliveries and Google Sheets syncs always set invalidateCache: true in SchedulerTask, so they never read from the cache
What changes
Chart and dashboard results caching: deliveries & Sheets syncs moved to the “DO NOT use caching” list
Why
The caching page said deliveries and Sheets syncs use and serve cached results, but the scheduler always sets invalidateCache: true (and the headless dashboard render defaults to it too), so they always run a fresh warehouse query.
New Clearing cached results for a project section under Cache expiry and invalidation
Documents the Clear cache button and Clear on a schedule form in Project settings → Results caching
Lists the three invalidation endpoints (project, dashboard, saved chart), their PAT auth and project admin requirement
Why
The caching page had no way to find out how to force a cache refresh for a whole project, dashboard, or chart, even though the UI and API both support it.
Review UI edits to Git-backed content: how to turn sync off (unset/false + re-upload), and that it's project-wide
Same section: explains lightdash upload releases content whose file was removed, dismissing its drafts
Why
The page explained turning sync on but never said how to turn it off or that uploads can silently release content from Git management, leaving readers unable to find either behaviour.
Run metric query bullet: states the 5,000-row cap, silent clamping, and the lack of an export tool
Links readers to exploreUrl + All results download, or a scheduled CSV/Excel delivery, for full extracts
Self-host MCP page: notes run_metric_query's cap is AI_COPILOT_MAX_QUERY_LIMIT, instance-wide
AI_COPILOT_MAX_QUERY_LIMIT row now says it also governs the MCP run_metric_query tool
Why
The MCP docs described run_sql's row cap but said nothing about run_metric_query's limit, its silent clamping, or that MCP has no export tool, leaving readers with no way to get a full extract.
New row in Query limits and behavior for LIGHTDASH_DASHBOARD_MAX_CONCURRENT_TILE_QUERIES
Notes that filter-triggered refetches queue like any other tile query
Why
The environment variables reference had no entry for this self-hosted setting that caps concurrent dashboard tile queries, so admins couldn't find it to control warehouse load.
Prerequisites now links build-microvm-image.sh as the recommended way to produce the two image ARNs
Lists the script's pipeline: local build, ECR push, thin Dockerfile staged to S3, create/update image, poll, print ARN
Notes ECR is required since Lambda MicroVM registration only builds from an ECR-hosted base
States the backend only calls RunMicrovm with the ARN — it never builds or touches ECR/S3 itself
Why
Readers had to reverse-engineer the AWS API sequence for registering Lambda MicroVM images from prose alone, even though the repo ships a working reference script for the entire pipeline.
New Audit log events section under self-host env vars' Logging section
Explains the actor/action/resource/status event shape, links to impersonation mechanics
Lists what's covered: group membership (incl. SCIM), org/project role-set changes, direct access
Notes legacy actions surface only as permission-check events; Cloud audit logs aren't exportable yet
Why
Readers could see the AUDIT log-level env var but had no page describing what an audit event contains, which actions are covered, or how audit logging works on Lightdash Cloud.
New paragraph before Prerequisites: registering an image only needs create-microvm-image + an S3 codeArtifact zip
States the backend only needs the resulting image ARN and calls RunMicrovm, never touching ECR or S3 at runtime
New Tip: the bundled build script's ECR push is its own shortcut, not an AWS or Lightdash requirement
New sequence diagram separating the build-time registration path (optional ECR) from the runtime RunMicrovm call
Why
The page read as if ECR was required to register a Lambda MicroVM image, when it's only the bundled build script's shortcut, and readers couldn't tell what Lightdash's backend actually needs at runtime.
Brand appearance now explains Enterprise brand name/logo rebrand the navbar, favicon, and browser tab title
Corrects the stale claim that the brand doesn't restyle the navigation bar
Editing your brand logo and name fields now say direct upload/URL works, and Brandfetch is optional
Notes brand colors still only generate chart palettes — the navbar stays dark
Why
The Brand appearance section said the brand never restyles the navigation bar and that logo upload wasn't exposed in the UI, both now wrong after the Enterprise white-label release that lets admins set a navbar logo, favicon, and tab title.
lightdash-bot
changed the title
Document the MCP project access settings card
Document MCP allowlist methods and OAuth client ID metadata egress (+1 more)
Nov 2, 2026
lightdash-bot
changed the title
Document MCP allowlist methods and OAuth client ID metadata egress (+1 more)
Document the CI workaround for combining multiple sources into one Lightdash YAML project (+2 more)
Nov 2, 2026
lightdash-bot
changed the title
Document the CI workaround for combining multiple sources into one Lightdash YAML project (+2 more)
Document Bedrock inference geography, default-credential and API behavior (+3 more)
Nov 2, 2026
lightdash-bot
changed the title
Document Bedrock inference geography, default-credential and API behavior (+3 more)
Document scaling the embed actor across many end users (+4 more)
Nov 2, 2026
lightdash-bot
changed the title
Document scaling the embed actor across many end users (+4 more)
Explain the 500-row pagination behind slow data app loads (+5 more)
Nov 2, 2026
lightdash-bot
changed the title
Explain the 500-row pagination behind slow data app loads (+5 more)
Explain why data apps load slowly with large result sets (+6 more)
Nov 2, 2026
lightdash-bot
changed the title
Explain why data apps load slowly with large result sets (+6 more)
Move Scheduled Deliveries and Google Sheets syncs to features that don't cache (+7 more)
Nov 2, 2026
lightdash-bot
changed the title
Move Scheduled Deliveries and Google Sheets syncs to features that don't cache (+7 more)
Document the results-cache invalidation endpoints and the clear-cache UI (+8 more)
Nov 2, 2026
lightdash-bot
changed the title
Document the results-cache invalidation endpoints and the clear-cache UI (+8 more)
Test edit on curate the catalog page (+9 more)
Nov 2, 2026
lightdash-bot
changed the title
Test edit on curate the catalog page (+9 more)
Document how to turn off content-as-code sync and when uploads release content (+10 more)
Nov 2, 2026
lightdash-bot
changed the title
Document how to turn off content-as-code sync and when uploads release content (+10 more)
Document run_metric_query's row cap and MCP's lack of an export tool (+11 more)
Nov 2, 2026
lightdash-bot
changed the title
Document run_metric_query's row cap and MCP's lack of an export tool (+11 more)
Document LIGHTDASH_DASHBOARD_MAX_CONCURRENT_TILE_QUERIES (+12 more)
Nov 2, 2026
lightdash-bot
changed the title
Document LIGHTDASH_DASHBOARD_MAX_CONCURRENT_TILE_QUERIES (+12 more)
Link the Lambda MicroVM build script from the sandboxes prerequisites (+13 more)
Nov 2, 2026
lightdash-bot
changed the title
Link the Lambda MicroVM build script from the sandboxes prerequisites (+13 more)
Document audit log event contents and access-change coverage (+14 more)
Nov 2, 2026
lightdash-bot
changed the title
Document audit log event coverage and Lightdash Cloud behavior (+15 more)
Clarify Lambda MicroVMs don't require ECR, just the image ARN (+16 more)
Nov 2, 2026
lightdash-bot
changed the title
Clarify Lambda MicroVMs don't require ECR, just the image ARN (+16 more)
Document Enterprise navbar/favicon branding on the Appearance page (+17 more)
Nov 2, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Docs changes Cloudy's docs writer made from support threads on Monday 2 November 2026. One commit per change, described below in order; review by commit and comment on any to drop or change. Every commit builds on current main, so merge whenever it is green, including midday for an urgent fix: later changes that day start a new PR.
Document the MCP project access settings card
Pages
What changes
Why
Admins could not find how to restrict which projects MCP clients can reach, since the docs only covered the org-wide MCP on/off switch and the user-chosen X-Lightdash-Project header.
Checked against
packages/frontend/src/ee/features/aiCopilot/components/Admin/settings/McpProjectAccessSettingsCard.tsxpackages/backend/src/ee/services/McpService/McpService.tspackages/backend/src/ee/services/McpService/mcpProjectAccess.tsCloudy found this docs gap while working a support thread. Started from this internal Slack thread (Lightdash workspace only).
Document MCP allowlist methods and OAuth client ID metadata egress
Pages
What changes
/api/v1/mcp, POST on the OAuth token/register endpointsWhy
Admins allowlisting a self-hosted instance for Claude connectors only had a GET-based, no-egress picture of the required traffic, so their connections hung or failed with a 400 with no matching row to explain it.
Checked against
packages/backend/src/routers/mcpRouter.tspackages/backend/src/routers/oauthRouter.tspackages/backend/src/services/OAuthService/clientIdMetadataDocument.tsCHANGELOG.mdCloudy found this docs gap while working a support thread. Started from this internal Slack thread (Lightdash workspace only).
Document the CI workaround for combining multiple sources into one Lightdash YAML project
Pages
What changes
Why
Readers splitting semantic models across multiple source repos had no documented way to combine them into one native Lightdash YAML project, since the page only documented combining dbt sources, not native ones.
Checked against
packages/common/src/lightdash/loader.tsdocs/native-git-projects.mdA teammate answered a support question that the docs should have covered. Started from this internal Slack thread (Lightdash workspace only).
Document Bedrock inference geography, default-credential and API behavior
Pages
What changes
/api/v1/ai/provider-credentialsAPIWhy
The Bedrock credentials section didn't explain that inference geography (not region) controls data residency, how the organization default gets set on first credential creation, or that credentials can be managed via the API.
Checked against
packages/frontend/src/ee/features/aiCopilot/components/Admin/settings/BedrockCredentialModal.tsxpackages/frontend/src/ee/features/aiCopilot/components/Admin/settings/AiProviderCredentialsCard.tsxpackages/common/src/ee/AiAgent/adminTypes.tspackages/backend/src/ee/models/AiOrganizationProviderCredentialModel.tspackages/backend/src/ee/controllers/AiProviderCredentialController.tsCloudy found this docs gap while working a support thread. Started from this internal Slack thread (Lightdash workspace only).
Document scaling the embed actor across many end users
Pages
What changes
writeActions.userUuidalternative for end users who are Lightdash usersuser.externalIdstill works for trackingWhy
Readers configuring role-based embed permissions for many end users could only see single-actor examples and had no guidance on reusing a small set of service accounts per permission profile instead of provisioning a Lightdash user per end user.
Checked against
packages/backend/src/ee/services/EmbedService/EmbedService.tspackages/backend/src/auth/lightdashJwt.tsCloudy found this docs gap while working a support thread. Started from this internal Slack thread (Lightdash workspace only).
Explain the 500-row pagination behind slow data app loads
Pages
What changes
Why
Readers debugging a slow-loading data app could only find warehouse query time and caching as explanations, not that large result sets are paginated 500 rows at a time and that pagination itself is the bottleneck.
Checked against
packages/query-sdk/src/apiTransport.tsA teammate answered a support question that the docs should have covered. Started from this internal Slack thread (Lightdash workspace only).
Explain why data apps load slowly with large result sets
Pages
What changes
Why
Readers had no explanation for why an app with a fast warehouse query could still take minutes to load, or how to fix it.
Checked against
packages/query-sdk/src/apiTransport.tsCloudy found this docs gap while working a support thread. Started from this internal Slack thread (Lightdash workspace only).
Move Scheduled Deliveries and Google Sheets syncs to features that don't cache
Pages
Removed
What changes
Why
The caching page said deliveries and Sheets syncs use and serve cached results, but the scheduler always sets invalidateCache: true (and the headless dashboard render defaults to it too), so they always run a fresh warehouse query.
Checked against
packages/backend/src/scheduler/SchedulerTask.tspackages/frontend/src/pages/MinimalDashboard.tsxpackages/frontend/src/providers/Dashboard/DashboardProvider.tsxCloudy found this docs gap while working a support thread. Started from this internal Slack thread (Lightdash workspace only).
Document the results-cache invalidation endpoints and the clear-cache UI
Pages
What changes
Why
The caching page had no way to find out how to force a cache refresh for a whole project, dashboard, or chart, even though the UI and API both support it.
Checked against
packages/backend/src/controllers/projectController.tspackages/backend/src/controllers/v2/DashboardController.tspackages/backend/src/controllers/v2/SavedChartController.tspackages/frontend/src/components/ProjectResultsCache/index.tsxpackages/frontend/src/components/ProjectResultsCache/ResultsCacheClearScheduleForm.tsxCloudy found this docs gap while working a support thread. Started from this internal Slack thread (Lightdash workspace only).
Test edit on curate the catalog page
Pages
What changes
Why
Diagnosing a tool error, not a real doc change.
Checked against
packages/backend/src/controllers/catalogController.tsReview closely
This is a larger change than usual:
Cloudy found this docs gap while working a support thread. Started from this internal Slack thread (Lightdash workspace only).
Document how to turn off content-as-code sync and when uploads release content
Pages
What changes
false+ re-upload), and that it's project-widelightdash uploadreleases content whose file was removed, dismissing its draftsWhy
The page explained turning sync on but never said how to turn it off or that uploads can silently release content from Git management, leaving readers unable to find either behaviour.
Checked against
packages/backend/src/services/CoderService/CoderService.tspackages/cli/src/handlers/download.tspackages/backend/src/services/DashboardService/DashboardService.tspackages/backend/src/services/ContentAsCodeWritebackService/ContentAsCodeWritebackService.tspackages/backend/src/models/ContentAsCodeSnapshotModel.tsCloudy found this docs gap while working a support thread. Started from this internal Slack thread (Lightdash workspace only).
Document run_metric_query's row cap and MCP's lack of an export tool
Pages
What changes
exploreUrl+ All results download, or a scheduled CSV/Excel delivery, for full extractsrun_metric_query's cap isAI_COPILOT_MAX_QUERY_LIMIT, instance-wideAI_COPILOT_MAX_QUERY_LIMITrow now says it also governs the MCPrun_metric_querytoolWhy
The MCP docs described run_sql's row cap but said nothing about run_metric_query's limit, its silent clamping, or that MCP has no export tool, leaving readers with no way to get a full extract.
Checked against
packages/backend/src/ee/services/McpService/McpService.tspackages/common/src/ee/AiAgent/validators.tspackages/backend/src/config/parseConfig.tspackages/common/src/ee/AiAgent/constants.tsCloudy found this docs gap while working a support thread. Started from this internal Slack thread (Lightdash workspace only).
Document LIGHTDASH_DASHBOARD_MAX_CONCURRENT_TILE_QUERIES
Pages
What changes
LIGHTDASH_DASHBOARD_MAX_CONCURRENT_TILE_QUERIESWhy
The environment variables reference had no entry for this self-hosted setting that caps concurrent dashboard tile queries, so admins couldn't find it to control warehouse load.
Checked against
packages/backend/src/config/parseConfig.tspackages/backend/src/config/parseConfig.test.tspackages/frontend/src/features/dashboard/tileQueryQueue/TileQueryQueue.tspackages/frontend/src/features/dashboard/tileQueryQueue/TileQueryQueueProvider.tsxA teammate answered a support question that the docs should have covered. Started from this internal Slack thread (Lightdash workspace only).
Link the Lambda MicroVM build script from the sandboxes prerequisites
Pages
What changes
build-microvm-image.shas the recommended way to produce the two image ARNsRunMicrovmwith the ARN — it never builds or touches ECR/S3 itselfWhy
Readers had to reverse-engineer the AWS API sequence for registering Lambda MicroVM images from prose alone, even though the repo ships a working reference script for the entire pipeline.
Checked against
sandboxes/microvm-agent/build-microvm-image.shsandboxes/data-apps/build-local-image.shsandboxes/ai-writeback/build-local-image.shsandboxes/data-apps/pack-query-sdk.shpackages/backend/src/ee/services/SandboxRuntime/LambdaMicroVmSandboxProvider.tsCloudy found this docs gap while working a support thread. Started from this internal Slack thread (Lightdash workspace only).
Document audit log event contents and access-change coverage
Pages
What changes
Why
Readers could not find what an audit log entry contains or which access changes are fully covered versus only logged as a permission check.
Checked against
packages/backend/src/logging/auditLog.tspackages/backend/src/services/groupMembershipAudit.tspackages/backend/src/services/DirectAccess/directAccessAudit.tspackages/backend/src/services/RolesService/RolesService.tspackages/backend/src/services/UserService.tsCloudy found this docs gap while working a support thread. Started from this internal Slack thread (Lightdash workspace only).
Document audit log event coverage and Lightdash Cloud behavior
Pages
What changes
Why
Readers could see the AUDIT log-level env var but had no page describing what an audit event contains, which actions are covered, or how audit logging works on Lightdash Cloud.
Checked against
packages/backend/src/logging/auditLog.tspackages/backend/src/logging/caslAuditWrapper.tspackages/backend/src/services/RolesService/RolesService.tspackages/backend/src/services/groupMembershipAudit.tspackages/backend/src/services/DirectAccess/directAccessAudit.tsA teammate answered a support question that the docs should have covered. Started from this internal Slack thread (Lightdash workspace only).
Clarify Lambda MicroVMs don't require ECR, just the image ARN
Pages
What changes
create-microvm-image+ an S3codeArtifactzipRunMicrovm, never touching ECR or S3 at runtimeRunMicrovmcallWhy
The page read as if ECR was required to register a Lambda MicroVM image, when it's only the bundled build script's shortcut, and readers couldn't tell what Lightdash's backend actually needs at runtime.
Checked against
sandboxes/microvm-agent/build-microvm-image.shpackages/backend/src/ee/services/SandboxRuntime/LambdaMicroVmSandboxProvider.tsCloudy found this docs gap while working a support thread. Started from this internal Slack thread (Lightdash workspace only).
Document Enterprise navbar/favicon branding on the Appearance page
Pages
What changes
Why
The Brand appearance section said the brand never restyles the navigation bar and that logo upload wasn't exposed in the UI, both now wrong after the Enterprise white-label release that lets admins set a navbar logo, favicon, and tab title.
Checked against
packages/frontend/src/components/NavBar/NavBarLogo.tsxpackages/frontend/src/components/common/BrandedFaviconSync.tsxpackages/frontend/src/components/common/DocumentTitle.tsxpackages/frontend/src/components/UserSettings/AppearanceSettingsPanel/BrandAppearanceSettings.tsxpackages/frontend/src/hooks/organization/useWhiteLabelBrand.tsCloudy found this docs gap while working a support thread. Started from this internal Slack thread (Lightdash workspace only).