docs: sync docs directory from docs branch to master (docs-only)#2179
docs: sync docs directory from docs branch to master (docs-only)#2179devin-ai-integration[bot] wants to merge 3 commits intomasterfrom
Conversation
Co-Authored-By: Yosef Arbiv <yosef.arbiv@gmail.com>
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
|
👋 @devin-ai-integration[bot] |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
📝 WalkthroughWalkthroughLarge documentation overhaul: migrated many MDX snippet includes to explicit component imports, added extensive Elementary Cloud content (AI agents, MCP, features, integrations, Python SDK), new site config/homepage/assets (docs.json, home.mdx, kapa-widget.js), updated Docker base image, and removed several composed snippet files. No runtime code exports changed. Changes
*Many additional MDX files were updated; cohorts group similar changes to reduce rows. Sequence Diagram(s)mermaid Estimated code review effort🎯 4 (Complex) | ⏱️ ~60 minutes Possibly related PRs
Poem
✨ Finishing Touches🧪 Generate unit tests (beta)
|
There was a problem hiding this comment.
Actionable comments posted: 2
Note
Due to the large number of review comments, Critical severity comments were prioritized as inline comments.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (3)
docs/data-tests/anomaly-detection-configuration/exclude_prefix.mdx (1)
13-27:⚠️ Potential issue | 🟡 MinorFix test name inconsistency: parameter applies to
column_anomaliesorall_columns_anomalies?The description states this parameter is "for the
all_columns_anomaliestest only" (line 13), but the YAML example useselementary.column_anomalies(line 25). These are two different tests. Either update the description to match the example, or update the example to use the test mentioned in the description.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/data-tests/anomaly-detection-configuration/exclude_prefix.mdx` around lines 13 - 27, The doc text is inconsistent: it claims the parameter applies to all_columns_anomalies but the YAML example uses elementary.column_anomalies; update one to match the other. Either change the description line to say "Param for the column_anomalies test only" (referencing column_anomalies / elementary.column_anomalies) or change the YAML example to use all_columns_anomalies instead of elementary.column_anomalies so the example and the description both reference the same test (all_columns_anomalies).docs/cloud/integrations/alerts/ms-teams.mdx (1)
34-58:⚠️ Potential issue | 🟡 MinorClean up ordered-list numbering in setup steps.
The list has duplicate
3.items in the same sequence, which makes the flow harder to follow.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/cloud/integrations/alerts/ms-teams.mdx` around lines 34 - 58, The ordered list in the MS Teams setup sequence contains duplicate "3." entries (the paragraph starting "For each MS Teams channel you connect..." and the subsequent "3. Click on `Edit` connectors.") which breaks the sequence; update the numbering so the steps read sequentially (e.g., 3, 4, 5) across the blocks that include the Frame components and the "Click on `Edit` connectors." and "Search for `Incoming webhook`..." lines, ensuring the MDX ordered-list items are consistently numbered and reflect the correct step order.docs/cloud/integrations/code-repo/github.mdx (1)
31-31:⚠️ Potential issue | 🟡 MinorRewrite step text for clarity and inclusive language.
This sentence is hard to parse (“Read more in For more information…”) and uses “ask him”. Please simplify and use neutral phrasing (“ask them”).
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/cloud/integrations/code-repo/github.mdx` at line 31, Rewrite the sentence in the step so it reads clearly and uses inclusive language: replace "If it is missing, you need to contact the resource owner administrator and ask him to approve fine-grained personal access tokens. Read more in For more information, see [\"Setting a personal access token policy for your organization\"](https://docs.github.com/en/organizations/managing-programmatic-access-to-your-organization/setting-a-personal-access-token-policy-for-your-organization)." with a concise version that uses neutral pronouns (e.g., "ask them") and removes the duplicated "Read more/For more information" phrasing—e.g., "If the owner is missing, contact the repository administrator and ask them to approve fine‑grained personal access tokens; see the GitHub docs linked for details." Ensure the updated sentence appears in the step text where the original snippet is shown.
🟠 Major comments (41)
docs/changelog.mdx-445-460 (1)
445-460:⚠️ Potential issue | 🟠 MajorDuplicate/incorrect content: "Elementary + Atlan" section has wrong body text
The section header mentions "Atlan" integration, but the body text describes the "test overview side panel" feature, which is duplicated verbatim in the following "A better way to triage test and model failures" section (lines 462-477). Both sections also use the same screenshot.
This appears to be a copy-paste error. The "Elementary + Atlan" section should contain content describing the Atlan integration, not the test overview panel.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/changelog.mdx` around lines 445 - 460, The "## Elementary + Atlan: See your Elementary data quality insights in Atlan!" section currently contains duplicated content about the test overview side panel (copied from the "A better way to triage test and model failures" section); replace the body under the header "Elementary + Atlan: See your Elementary data quality insights in Atlan!" with accurate copy about the Atlan integration (what it does, how to access Elementary insights in Atlan, any key benefits or setup notes), update or replace the screenshot so it reflects Atlan integration instead of the test overview panel, and keep the existing Tags component (date and tags) intact; ensure the original test-overview content remains only in the "A better way to triage test and model failures" section to remove the duplication.docs/cloud/integrations/alerts/linear.mdx-7-7 (1)
7-7:⚠️ Potential issue | 🟠 MajorAdd
alttext to all<img>tags on this page for accessibility.The following image tags are missing
altattributes: Line 7, Lines 16–19, Line 27, and Line 31. Each should include descriptive alt text.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/cloud/integrations/alerts/linear.mdx` at line 7, Several <img> tags in the document are missing alt attributes; locate each <img> element (e.g., the one with src "linear_create_ticket_sinqxy.png" and the other image tags referenced on the page) and add a descriptive alt attribute to each (alt="...") that succinctly describes the image content for screen readers—do not leave alt empty unless the image is purely decorative, and ensure the text is brief and informative.docs/cloud/integrations/alerts/servicenow.mdx-9-12 (1)
9-12:⚠️ Potential issue | 🟠 MajorAdd descriptive
altattributes to all 13 screenshots.Every
<img>tag in this file lacks analtattribute, which is an accessibility gap. Users relying on screen readers cannot understand what the screenshots depict. Add meaningful alt text to lines: 9-12, 21-24, 31-34, 44-47, 60-63, 70-73, 84-87, 99-102, 108-111, 121-124, 132-135, 142-145, and 163-166.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/cloud/integrations/alerts/servicenow.mdx` around lines 9 - 12, Each <img> element in the Servicenow docs is missing an alt attribute; update all 13 <img> tags to include meaningful, concise alt text describing what each screenshot shows (e.g., for the image with src "servicenow_create_ticket_ztpeaw.png" add alt="ServiceNow: Create incident ticket form with priority and description fields"), and do the same for the other image src values so screen readers can convey the content; ensure alt text is brief, specific, and reflects the visible UI/state in each screenshot.docs/cloud/integrations/alerts/jira.mdx-7-7 (1)
7-7:⚠️ Potential issue | 🟠 MajorAdd
alttext to images for accessibility.The images at lines 7, 18, 19, 20, 21, 32, and 34 lack
altattributes, affecting screen-reader usability and WCAG compliance.Suggested fix pattern
-<img src="https://res.cloudinary.com/dvmtceykh/image/upload/v1739794592/create_ticket_rxdrx4.png" /> +<img src="https://res.cloudinary.com/dvmtceykh/image/upload/v1739794592/create_ticket_rxdrx4.png" alt="Create Jira ticket button on an incident page" />🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/cloud/integrations/alerts/jira.mdx` at line 7, Several <img> tags in this document are missing alt attributes, harming accessibility; update each <img> element (for example the one with src "create_ticket_rxdrx4.png" and the other images noted in the review) to include concise, descriptive alt text that conveys the image purpose (or use alt="" for purely decorative images), ensuring the alt strings describe the screenshot content and its role in the Jira alert integration docs; modify the img tags directly in the JSX/MDX where the src attributes appear (e.g., the <img src="...create_ticket_rxdrx4.png" /> tag) to add appropriate alt="..." values.docs/cloud/features/gpg-signed-commits.mdx-95-95 (1)
95-95:⚠️ Potential issue | 🟠 MajorUpdate the GPG key expiration recommendation.
The recommendation to set expiration dates to "90 days" is significantly shorter than industry best practices. Standard guidance recommends 1–2 years for GPG commit-signing keys, with periodic renewal rather than long-lived non-expiring keys. Either update the recommendation to align with these standards or provide context explaining why a 90-day expiration is required for Elementary's use case.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/cloud/features/gpg-signed-commits.mdx` at line 95, Update the recommendation text "Set expiration dates (90 days recommended)" to align with industry practice by either changing it to "Set expiration dates (1–2 years recommended)" or keep the 90-day value but add a brief justification explaining why Elementary requires a 90-day expiration; edit the string in the GPG commit-signing guidance (the text "Set expiration dates (90 days recommended)") so the page reflects the chosen approach.docs/Dockerfile-1-1 (1)
1-1:⚠️ Potential issue | 🟠 MajorUpgrade to latest Node 20 LTS version — Node 20.3.0 contains critical security vulnerabilities.
Node 20.3.0 (released June 2023) was patched just 12 days later due to multiple high-severity vulnerabilities, including:
- CVE-2023-30581: Policy mechanism bypass allowing unauthorized requires
- CVE-2023-30584: Path traversal in the experimental permission model
- CVE-2023-30587: Permission model bypass via the Node.js inspector
The latest Node 20 LTS is v20.20.2. Use
node:20-alpineor update to the latest LTS version.Suggested fix
-FROM node:20.3.0 +FROM node:20-alpineOr pin to the latest Node 20 LTS:
node:20.20.2🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/Dockerfile` at line 1, Update the Dockerfile base image to a secure Node 20 LTS by replacing the current FROM node:20.3.0 with a modern LTS tag (for example FROM node:20-alpine or FROM node:20.20.2); edit the Dockerfile's FROM line so the image uses the latest Node 20 LTS instead of the vulnerable node:20.3.0.docs/data-tests/schema-tests/schema-changes-from-baseline.mdx-105-108 (1)
105-108:⚠️ Potential issue | 🟠 MajorFix invalid YAML in the
Sources exampletest config.The current YAML fails to parse with error "mapping values are not allowed here" because
config:is indented as a sibling to the scalar list itemelementary.schema_changes_from_baseline. Users copying this example will get a parsing error. Convert the test name to a mapping key by adding a colon:🛠️ YAML fix
data_tests: - - elementary.schema_changes_from_baseline - config: - tags: ["elementary"] + - elementary.schema_changes_from_baseline: + config: + tags: ["elementary"]🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/data-tests/schema-tests/schema-changes-from-baseline.mdx` around lines 105 - 108, The YAML example under data_tests is invalid because `elementary.schema_changes_from_baseline` is written as a scalar list item while `config:` is indented as if it were a mapping for that item; change the test entry to a mapping key by adding a colon so the test name becomes a key (e.g., `elementary.schema_changes_from_baseline:`) and then indent `config:` and its children under that key so `config` is nested correctly under the `elementary.schema_changes_from_baseline` mapping.docs/cloud/features/performance-monitoring/performance-monitoring.mdx-21-29 (1)
21-29:⚠️ Potential issue | 🟠 MajorAdd
titleto iframe for accessibility.Line [28] uses
alton<iframe>, but iframe accessibility relies on a descriptivetitle.Proposed fix
<iframe width="700" height="400" src="https://res.cloudinary.com/diuctyblm/video/upload/v1719746949/9_-_Performance_-_white_wurwra.mp4" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen -alt="Elementary Models Duration tab" +title="Elementary Models Duration tab walkthrough video" > </iframe>🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/cloud/features/performance-monitoring/performance-monitoring.mdx` around lines 21 - 29, The iframe element currently uses an invalid alt attribute for accessibility; replace or supplement it by adding a descriptive title attribute on the <iframe> (e.g., title="Elementary Models Duration tab") so screen readers can identify the embedded content; update the iframe tag in performance-monitoring.mdx to include the title attribute alongside existing attributes and remove or keep alt if desired (alt is ignored for iframes) to satisfy accessibility requirements.docs/cloud/features/multi-env.mdx-16-18 (1)
16-18:⚠️ Potential issue | 🟠 MajorAdd
alttext to screenshots for accessibility.Both images are missing
alt, which makes this content inaccessible to screen-reader users.Suggested edit
<img src="https://res.cloudinary.com/do5hrgokq/image/upload/v1763375225/Screenshot_2025-11-17_at_12.24.03_yrt9co.png" + alt="Create environment flow in Elementary UI" /> ... <img src="https://res.cloudinary.com/dvmtceykh/image/upload/v1768320449/eb197aa5-f814-4e64-8a98-223f283192ec.png" + alt="Environment content settings showing multiple dbt projects" />Also applies to: 67-69
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/cloud/features/multi-env.mdx` around lines 16 - 18, Add descriptive alt text to the image elements (the <img> tags with src "https://res.cloudinary.com/do5hrgokq/image/upload/v1763375225/Screenshot_2025-11-17_at_12.24.03_yrt9co.png" and the other image around lines 67-69) so screen readers can convey the content; update each <img> to include an appropriate alt attribute (brief, descriptive text of the screenshot) and ensure it accurately reflects the visual content.docs/cloud/best-practices/governance-for-observability.mdx-51-54 (1)
51-54:⚠️ Potential issue | 🟠 MajorRemove the extra colon in
ownerfields—owner: :"..."is invalid YAML syntax.Lines 51 and 117 both contain
owner: :"@..."which has an extraneous:before the quoted string. This syntax is invalid and will cause YAML parsing errors.Suggested fixes
- owner: :"@analytics.engineer" + owner: "@analytics.engineer"- owner: :"@data.engineer" + owner: "@data.engineer"🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/cloud/best-practices/governance-for-observability.mdx` around lines 51 - 54, The owner fields contain an extra colon before the quoted handle (e.g., `owner: :"@analytics.engineer"`); locate the owner entries in the document (both occurrences noted) and remove the stray colon so the YAML uses valid syntax like `owner: "@analytics.engineer"` (ensure all `owner: :"...` instances are changed to `owner: "..."`).docs/cloud/best-practices/governance-for-observability.mdx-20-27 (1)
20-27:⚠️ Potential issue | 🟠 MajorYAML example uses invalid mixed tab and space indentation.
The snippet fails YAML validation because it mixes tabs and spaces. YAML strictly forbids tab characters for indentation. This will cause parse errors when copied.
Suggested edit
models: - analytics: - marketing: - +tags: marketing - public: - +tags: marketing-public + analytics: + marketing: + +tags: marketing + public: + +tags: marketing-public🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/cloud/best-practices/governance-for-observability.mdx` around lines 20 - 27, The YAML snippet under the models -> analytics -> marketing -> public block uses tab characters for indentation (mixing tabs and spaces) which YAML forbids; fix it by replacing all tab characters with consistent spaces (choose 2 or 4 spaces) and ensure the nested keys marketing and public and their tag entries (+tags: marketing, +tags: marketing-public) are indented uniformly so the hierarchy is clear and valid YAML; verify there are no stray diff markers (leading '+' characters) left in the final YAML.docs/data-tests/volume-threshold.mdx-38-41 (1)
38-41:⚠️ Potential issue | 🟠 MajorConfig snippet uses incorrect YAML list marker (
--instead of-).This example uses double dashes which is invalid YAML syntax. Users copying this into their
schema.ymlwill encounter errors. Other data-tests documentation in the repository uses the correct single-dash syntax.Suggested edit
data_tests: - -- elementary.volume_threshold: + - elementary.volume_threshold: arguments:🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/data-tests/volume-threshold.mdx` around lines 38 - 41, The YAML snippet under data_tests is using an invalid list marker ("--") for the test key; update the example so the test name uses a single dash (e.g., change "— elementary.volume_threshold:" to "- elementary.volume_threshold:") and ensure the nested arguments entry with timestamp_column remains correctly indented; reference the data_tests block and the elementary.volume_threshold example and adjust the list marker accordingly so the example is valid YAML.docs/data-tests/anomaly-detection-configuration/update_timestamp_column.mdx-30-35 (1)
30-35:⚠️ Potential issue | 🟠 MajorTest name in example is incorrect.
The documentation describes this as configuration for the
event_freshness_anomaliestest (lines 13 and 22), but the YAML example useselementary.event_timestamp_columnas the test name. The correct test name iselementary.event_freshness_anomalies, as shown in the main test documentation.Suggested fix
models: - name: this_is_a_model data_tests: - - elementary.event_timestamp_column: + - elementary.event_freshness_anomalies: arguments: event_timestamp_column: "event_timestamp" update_timestamp_column: "created_at"🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/data-tests/anomaly-detection-configuration/update_timestamp_column.mdx` around lines 30 - 35, The YAML example uses the wrong test name; update the test key from "elementary.event_timestamp_column" to "elementary.event_freshness_anomalies" in the example so it matches the surrounding documentation and the main test docs; locate the example block and replace the test identifier while keeping the existing arguments (event_timestamp_column and update_timestamp_column) unchanged.docs/cloud/integrations/alerts/opsgenie.mdx-7-7 (1)
7-7:⚠️ Potential issue | 🟠 MajorFix typo and use absolute internal links for consistency.
Line 7 has a typo: "Opsgenei" should be "Opsgenie". Additionally, use
/cloud/...(with leading slash) instead ofcloud/...for internal links to match the documentation's routing convention used elsewhere.Lines 7 and 69 require corrections:
Proposed fix
-It is recommended to create [alert rules](cloud/features/alerts-and-incidents/alert-rules) to filter and select the alerts that will create incidents in Opsgenei. +It is recommended to create [alert rules](/cloud/features/alerts-and-incidents/alert-rules) to filter and select the alerts that will create incidents in Opsgenie. -4. `Opsgenie` will now be available as a destination on the [`alert rules`](cloud/features/alerts-and-incidents/alert-rules) page. You can add rules to create Opsgenie incidents out of alerts who match your rule. +4. `Opsgenie` will now be available as a destination on the [`alert rules`](/cloud/features/alerts-and-incidents/alert-rules) page. You can add rules to create Opsgenie incidents out of alerts who match your rule.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/cloud/integrations/alerts/opsgenie.mdx` at line 7, Fix the typo "Opsgenei" -> "Opsgenie" in the sentence "It is recommended to create [alert rules](cloud/features/alerts-and-incidents/alert-rules) to filter and select the alerts that will create incidents in Opsgenei." and update the internal link target to use an absolute path by changing "cloud/features/alerts-and-incidents/alert-rules" to "/cloud/features/alerts-and-incidents/alert-rules"; apply the same absolute-path link change for the other internal link referenced at line 69 (replace any leading "cloud/..." with "/cloud/...") so all internal docs links use the leading slash and the product name is spelled correctly.docs/cloud/integrations/alerts/slack.mdx-8-8 (1)
8-8:⚠️ Potential issue | 🟠 MajorFix internal route links to be absolute (
/cloud/...).Lines 8 and 50 use relative
cloud/features/...paths instead of absolute paths. This deviates from the documentation's convention of using/cloud/...for all internal links and may cause routing issues in nested documentation pages.Proposed fix
-You can also create [alert rules](cloud/features/alerts-and-incidents/alert-rules) to distribute alerts to different channels and destinations. +You can also create [alert rules](/cloud/features/alerts-and-incidents/alert-rules) to distribute alerts to different channels and destinations. -The default channel you select will automatically add a default [alert rule](cloud/features/alerts-and-incidents/alert-rules) +The default channel you select will automatically add a default [alert rule](/cloud/features/alerts-and-incidents/alert-rules)🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/cloud/integrations/alerts/slack.mdx` at line 8, The link "cloud/features/alerts-and-incidents/alert-rules" (and the other relative link on line 50) uses a relative path; update these internal route links to be absolute by prefixing them with "/cloud/" (e.g., change "cloud/features/alerts-and-incidents/alert-rules" to "/cloud/features/alerts-and-incidents/alert-rules") so all internal documentation links follow the "/cloud/..." convention and avoid routing issues in nested pages.docs/key-features.mdx-12-12 (1)
12-12:⚠️ Potential issue | 🟠 MajorUse absolute internal routes for all
Cardlinks in this file.The 7
hrefattributes in docs/key-features.mdx lack leading slashes, creating relative URLs that can resolve incorrectly depending on current page depth. All other Card components across the docs consistently use absolute paths.Suggested fix
- href="cloud/features/data-tests" + href="/cloud/features/data-tests"Apply the same pattern to lines 28, 36, 45, 52, 60, and 70.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/key-features.mdx` at line 12, Several Card components in docs/key-features.mdx use relative href values (e.g., href="cloud/features/data-tests") which can produce incorrect links; update each Card's href attribute (all occurrences of href in that file) to use absolute internal routes by prefixing with a leading slash (e.g., href="/cloud/features/data-tests") so they match the other Card components and resolve correctly.docs/cloud/integrations/alerts/pagerduty.mdx-7-7 (1)
7-7:⚠️ Potential issue | 🟠 MajorFix relative links to follow the documentation convention—use absolute paths with leading
/.Both
alert ruleslinks on lines 7 and 53 usecloud/...without a leading/, inconsistent with the established pattern throughout the codebase which uses/cloud/.... This pattern also appears in other alert integration files (slack.mdx, ms-teams.mdx, opsgenie.mdx). Update both instances to use absolute paths.Suggested fix
-It is recommended to create [alert rules](cloud/features/alerts-and-incidents/alert-rules) to filter and select the alerts that will create incidents in PagerDuty. +It is recommended to create [alert rules](/cloud/features/alerts-and-incidents/alert-rules) to filter and select the alerts that will create incidents in PagerDuty.-4. `PagerDuty` will now be available as a destination on the [`alert rules`](cloud/features/alerts-and-incidents/alert-rules) page. You can add rules to create PagerDuty incidents out of alerts who match your rule. +4. `PagerDuty` will now be available as a destination on the [`alert rules`](/cloud/features/alerts-and-incidents/alert-rules) page. You can add rules to create PagerDuty incidents out of alerts who match your rule.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/cloud/integrations/alerts/pagerduty.mdx` at line 7, In docs/cloud/integrations/alerts/pagerduty.mdx there are two relative links with the anchor text "alert rules" pointing to cloud/features/alerts-and-incidents/alert-rules; update both occurrences to use the absolute path /cloud/features/alerts-and-incidents/alert-rules so they follow the repository convention (also mirror the same change pattern used in slack.mdx, ms-teams.mdx, and opsgenie.mdx if needed).docs/data-tests/anomaly-detection-configuration/exclude_regexp.mdx-24-27 (1)
24-27:⚠️ Potential issue | 🟠 MajorUse the documented test name in the YAML example.
Line [25] uses
elementary.column_anomalies, but this page documentsexclude_regexpforall_columns_anomalies. This example currently points readers to the wrong test config.Proposed fix
models: - name: this_is_a_model data_tests: - - elementary.column_anomalies: + - elementary.all_columns_anomalies: arguments: exclude_regexp: ".*SDC$"🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/data-tests/anomaly-detection-configuration/exclude_regexp.mdx` around lines 24 - 27, The YAML example uses the wrong test name; replace the test key "elementary.column_anomalies" with the documented "elementary.all_columns_anomalies" so the example config matches the page and the documented "exclude_regexp" argument applies to the correct test (update the block containing the "exclude_regexp" field to use "elementary.all_columns_anomalies").docs/data-tests/anomaly-detection-configuration/event_timestamp_column.mdx-30-34 (1)
30-34:⚠️ Potential issue | 🟠 MajorUse the correct test identifier in the example.
Line [31] currently uses
elementary.event_timestamp_column, but the page describes configuringevent_freshness_anomalies. This can mislead users into invalid test YAML.Proposed fix
models: - name: this_is_a_model data_tests: - - elementary.event_timestamp_column: + - elementary.event_freshness_anomalies: arguments: event_timestamp_column: "event_timestamp" update_timestamp_column: "created_at"🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/data-tests/anomaly-detection-configuration/event_timestamp_column.mdx` around lines 30 - 34, The example uses the wrong test identifier: replace the data_tests entry key "elementary.event_timestamp_column" with the correct test identifier "elementary.event_freshness_anomalies" so the YAML reflects the page content; keep the surrounding structure (data_tests -> arguments -> event_timestamp_column and update_timestamp_column) unchanged so the arguments (event_timestamp_column: "event_timestamp", update_timestamp_column: "created_at") are passed to elementary.event_freshness_anomalies.docs/cloud/features/data-tests/schema-validation-test.mdx-8-29 (1)
8-29:⚠️ Potential issue | 🟠 MajorFix Card href paths to use absolute paths.
The Card components use relative hrefs like
data-tests/schema-tests/schema-changes, which are inconsistent with the documentation pattern. Similar Card components throughout the docs consistently use absolute paths (e.g.,/cloud/features/data-tests/dbt-tests). From the current file location, these relative paths would resolve incorrectly to/cloud/features/data-tests/data-tests/schema-tests/...instead of the intended/data-tests/schema-tests/....Update all four Card hrefs to use absolute paths:
Suggested diffs
-<Card title="Schema changes" href="data-tests/schema-tests/schema-changes"> +<Card title="Schema changes" href="/data-tests/schema-tests/schema-changes">-href="data-tests/schema-tests/schema-changes-from-baseline" +href="/data-tests/schema-tests/schema-changes-from-baseline"-<Card title="JSON schema" href="data-tests/schema-tests/json-schema"> +<Card title="JSON schema" href="/data-tests/schema-tests/json-schema">-<Card title="Exposure schema" href="data-tests/schema-tests/exposure-tests"> +<Card title="Exposure schema" href="/data-tests/schema-tests/exposure-tests">🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/cloud/features/data-tests/schema-validation-test.mdx` around lines 8 - 29, Update the Card hrefs to use absolute paths by prepending a leading slash to each href string so they resolve correctly; specifically change the href values in the Card elements with titles "Schema changes", "Schema changes from baseline", "JSON schema", and "Exposure schema" from "data-tests/schema-tests/..." (and "data-tests/schema-tests/schema-changes-from-baseline") to "/data-tests/schema-tests/..." (and "/data-tests/schema-tests/schema-changes-from-baseline") respectively.docs/data-tests/anomaly-detection-tests/event-freshness-anomalies.mdx-34-37 (1)
34-37:⚠️ Potential issue | 🟠 MajorFix invalid YAML bullet in rendered config example.
Line 35 currently renders
-- elementary.event_freshness_anomalies:; this should be a single list marker (-). As-is, users copying the snippet can end up with invalid YAML.🐛 Suggested fix
- data_tests: - -- elementary.event_freshness_anomalies: + data_tests: + - elementary.event_freshness_anomalies:🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/data-tests/anomaly-detection-tests/event-freshness-anomalies.mdx` around lines 34 - 37, The YAML example contains an invalid bullet marker using two hyphens; replace the incorrect list marker `-- elementary.event_freshness_anomalies:` with a single-dash list marker `- elementary.event_freshness_anomalies:` so the rendered snippet becomes valid YAML and can be copied without error.docs/data-tests/add-elementary-tests.mdx-164-167 (1)
164-167:⚠️ Potential issue | 🟠 MajorCorrect invalid YAML/dbt syntax in
data_testsexample.Lines 164-167 are missing the list marker and mapping colon, so the snippet is not valid YAML and won’t run as shown.
Suggested fix
- data_tests: - elementary.volume_anomalies - config: - tags: ['elementary'] + data_tests: + - elementary.volume_anomalies: + config: + tags: ['elementary']🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/data-tests/add-elementary-tests.mdx` around lines 164 - 167, The YAML snippet under data_tests is invalid because the entry for elementary.volume_anomalies is missing the list item marker and mapping colon; update the block so that data_tests contains a list entry for elementary.volume_anomalies (use a leading dash) and make elementary.volume_anomalies a mapping (add the trailing colon) so that its nested config -> tags mapping is valid; locate the snippet with the symbols data_tests, elementary.volume_anomalies, config, and tags and adjust those lines accordingly.docs/data-tests/ai-data-tests/ai_data_validations.mdx-120-128 (1)
120-128:⚠️ Potential issue | 🟠 MajorRevise example to single-column validation—
ai_data_validationcannot access other columns.The expectation prompt references
suspension_reason(another column), butelementary.ai_data_validationis scoped to the single column it's attached to and receives only that column's values. The test cannot reference or validate against other columns in the row.Either revise the example to show a valid single-column validation, or document that cross-column validations require creating a derived column (e.g., concatenating fields) and running the test on that instead.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/data-tests/ai-data-tests/ai_data_validations.mdx` around lines 120 - 128, The example uses elementary.ai_data_validation on account_status but the expectation_prompt references another column (suspension_reason), which is invalid because ai_data_validation is scoped to the single column; update the example so the expectation_prompt only refers to the account_status values (e.g., assert allowed values and format) or explain the alternative of creating a derived column (e.g., concatenating account_status and suspension_reason) and running elementary.ai_data_validation against that derived column instead; modify the block containing ai_data_validation, expectation_prompt, account_status and any documentation text to reflect the single-column constraint and remove direct references to suspension_reason.docs/cloud/guides/set-up-elementary-checklist.md-18-73 (1)
18-73:⚠️ Potential issue | 🟠 MajorChecklist items are not in Markdown task-list syntax.
Most entries won’t render as actual checkboxes because they use
[ ]in plain text instead of- [ ]list items.Suggested pattern fix
-* **Code as the source of truth** [ ] Elementary keeps your code as the system of record. +- [ ] **Code as the source of truth** Elementary keeps your code as the system of record. -[ ] [Create Elementary cloud account](/cloud/quickstart) (quick-start guide) +- [ ] [Create Elementary cloud account](/cloud/quickstart) (quick-start guide)Apply this pattern consistently across the checklist sections.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/cloud/guides/set-up-elementary-checklist.md` around lines 18 - 73, The checklist items use plain "[ ]" and "*" leading markers so they won't render as Markdown task lists; update each checklist entry under headings like "Technical Setup", "Alerts & Incidents", "AI Agents", "Advanced Setup", and "Security and permissions" by converting lines such as "* **Code as the source of truth** [ ] ..." and standalone "[ ] Connect messaging app..." into proper Markdown task-list items (prefix with "- " before the "[ ]" checkbox and keep the existing text/links/formatting intact) so they render as interactive checkboxes consistently across the document.docs/cloud/ai-agents/catalog-agent.mdx-20-24 (1)
20-24: 🛠️ Refactor suggestion | 🟠 MajorUse JSX-compatible iframe attribute casing per Mintlify React-based rendering.
This project uses Mintlify, which renders MDX as React/JSX. React DOM attributes must use camelCase (
frameBorder,allowFullScreen) rather than lowercase HTML (frameborder,allowfullscreen). This pattern affects 30+ files across the codebase and should be systematically corrected.Suggested fix
- frameborder="0" + frameBorder="0" webkitAllowFullScreen mozAllowFullScreen - allowfullscreen + allowFullScreen🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/cloud/ai-agents/catalog-agent.mdx` around lines 20 - 24, The iframe uses HTML attribute casing that breaks React/JSX rendering (frameborder, allowfullscreen); update the JSX attributes in this MDX (and other affected files) to React camelCase equivalents—replace frameborder with frameBorder and allowfullscreen with allowFullScreen (leave or ensure vendor-prefixed attributes like webkitAllowFullScreen and mozAllowFullScreen remain camelCase) in the iframe element and apply the same systematic replacement across the 30+ files.docs/cloud/integrations/alerts/ms-teams.mdx-8-8 (1)
8-8:⚠️ Potential issue | 🟠 MajorFix internal link paths to be absolute.
[alert rules](cloud/features/...)is a relative path and is likely to break from this page location. Use/cloud/...links.Suggested fix
-The alerts include rich context, and you can create [alert rules](cloud/features/alerts-and-incidents/alert-rules) to distribute alerts to different channels and destinations. +The alerts include rich context, and you can create [alert rules](/cloud/features/alerts-and-incidents/alert-rules) to distribute alerts to different channels and destinations. ... - rule](cloud/features/alerts-and-incidents/alert-rules) to sends all failures to + rule](/cloud/features/alerts-and-incidents/alert-rules) to send all failures toAlso applies to: 111-112
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/cloud/integrations/alerts/ms-teams.mdx` at line 8, Update the relative markdown links that point to "cloud/features/alerts-and-incidents/alert-rules" so they use absolute paths (prepend a leading slash) — replace instances like [alert rules](cloud/features/alerts-and-incidents/alert-rules) with [alert rules](/cloud/features/alerts-and-incidents/alert-rules) in the ms-teams.mdx content (also fix the same pattern found around the other occurrences referenced on lines 111-112).docs/data-tests/dbt/singular-tests.mdx-31-36 (1)
31-36:⚠️ Potential issue | 🟠 MajorUse explicit JOIN conditions in both SQL examples.
Both snippets show
joinwithouton/using, which is misleading and may fail for users copying these examples.Suggested fix pattern
select * from {{ ref('orders') }} -join {{ ref('payments') }} -where status is null +join {{ ref('payments') }} on {{ ref('orders') }}.order_id = {{ ref('payments') }}.order_id +where {{ ref('orders') }}.status is nullAlso applies to: 56-60
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/data-tests/dbt/singular-tests.mdx` around lines 31 - 36, The examples use "join" without an explicit join condition which is misleading; update both SQL snippets that reference ref('orders') and ref('payments') to use explicit join conditions by adding table aliases (e.g., orders AS o, payments AS p) and a clear ON clause (for example ON o.id = p.order_id) or a USING(...) clause if appropriate; ensure the ref(...) calls are aliased consistently in the SELECT and join condition so the examples are valid and copy-paste runnable.docs/cloud/integrations/log-streaming/splunk.mdx-53-54 (1)
53-54:⚠️ Potential issue | 🟠 MajorAdd
alttext to screenshots for accessibility.Both images are missing
alt, which reduces accessibility and documentation quality.Suggested fix
<img src="https://res.cloudinary.com/dvmtceykh/image/upload/v1768306580/image_30_rtpr1b.png" + alt="Splunk log streaming configuration modal in Elementary Cloud" /> ... <img height ="400" width="400" src="https://res.cloudinary.com/dvmtceykh/image/upload/v1768313492/image_33_vdtuz1.png" + alt="Splunk integration logs view in Elementary Cloud" />Also applies to: 129-133
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/cloud/integrations/log-streaming/splunk.mdx` around lines 53 - 54, The screenshots are missing alt text; update the <img> tags that reference the images (e.g., the tag with src="https://res.cloudinary.com/dvmtceykh/image/upload/v1768306580/image_30_rtpr1b.png" and the other image at lines ~129-133) to include meaningful alt attributes describing the screenshot content (e.g., alt="Splunk log streaming configuration screenshot" or similar concise descriptions) so both images are accessible and informative for screen readers.docs/cloud/cloud-vs-oss.mdx-24-37 (1)
24-37:⚠️ Potential issue | 🟠 MajorAdd an accessible title to the embedded iframe.
The video iframe is missing a
title, which hurts screen-reader usability.Suggested fix
<iframe + title="Elementary OSS vs Cloud overview video" src="https://www.loom.com/embed/01c6e1ae1ec045f2a594aa05ac56600f" frameborder="0" webkitAllowFullScreen mozAllowFullScreen allowfullscreen🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/cloud/cloud-vs-oss.mdx` around lines 24 - 37, The embedded iframe is missing an accessible title; update the iframe element (the <iframe> in the diff) to include a descriptive title attribute (e.g., title="Loom: Cloud vs OSS overview" or similar) so screen readers can identify the content; ensure the title is meaningful and not empty, or alternatively add an appropriate aria-label if a title cannot be used.docs/cloud/features/alerts-and-incidents/alert-rules.mdx-9-9 (1)
9-9:⚠️ Potential issue | 🟠 MajorFix internal docs link path to avoid relative-route breakage.
Line 9 uses
cloud/...(no leading slash), which may resolve to the wrong URL from nested pages.🔗 Proposed fix
-... For all [supported tools](cloud/features/alerts-and-incidents/alerts-and-incidents-overview#supported-alert-integrations), ... +... For all [supported tools](/cloud/features/alerts-and-incidents/alerts-and-incidents-overview#supported-alert-integrations), ...🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/cloud/features/alerts-and-incidents/alert-rules.mdx` at line 9, The internal docs link in the sentence referencing supported tools uses a relative path "cloud/features/alerts-and-incidents/alerts-and-incidents-overview#supported-alert-integrations" which can break from nested pages; update the link target in docs/cloud/features/alerts-and-incidents/alert-rules.mdx (the [supported tools] link) to use an absolute site path by adding a leading slash so it becomes "/cloud/features/alerts-and-incidents/alerts-and-incidents-overview#supported-alert-integrations".docs/oss/quickstart/quickstart-report.mdx-12-12 (1)
12-12:⚠️ Potential issue | 🟠 MajorFix internal link to use absolute docs path.
Line 12 uses
cloud/...without a leading slash, which can break routing.🔗 Proposed fix
-**Elementary [data observability report](cloud/features/collaboration-and-communication/data-observability-dashboard) ... +**Elementary [data observability report](/cloud/features/collaboration-and-communication/data-observability-dashboard) ...🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/oss/quickstart/quickstart-report.mdx` at line 12, The internal markdown link target "cloud/features/collaboration-and-communication/data-observability-dashboard" used in the "data observability report" sentence is missing a leading slash and can break routing; update that link to use an absolute docs path by prefixing it with "/" (i.e. change "cloud/..." to "/cloud/...") so the link reliably resolves across the site.docs/cloud/features/data-governance/manage-metadata.mdx-64-64 (1)
64-64:⚠️ Potential issue | 🟠 MajorAdd
alttext to images for accessibility.Both images are missing
altattributes. Please add meaningful alt text so screen-reader users can understand the visuals.Also applies to: 70-70
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/cloud/features/data-governance/manage-metadata.mdx` at line 64, The two image elements using <img src="https://res.cloudinary.com/do5hrgokq/image/upload/v1751562224/Upstream_Metadata_ubuvjb.gif"/> (and the other image referenced on the same page) are missing alt attributes; update both <img> tags in manage-metadata.mdx to include meaningful alt text (e.g., alt="Upstream metadata flow animation" or an appropriate descriptive phrase for each image) to improve accessibility for screen-reader users.docs/cloud/features/data-tests/test-coverage-screen.mdx-13-13 (1)
13-13:⚠️ Potential issue | 🟠 MajorFix image alt text quality and completeness.
Line 13 alt text appears unrelated to the screenshot, and the second image has no alt text. Please provide accurate alt text for both images.
Also applies to: 66-67
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/cloud/features/data-tests/test-coverage-screen.mdx` at line 13, Update the two image alt attributes to accurately describe their respective screenshots: replace the unrelated alt="Slack alert format" with a concise, descriptive phrase matching the first screenshot (e.g., "Slack alert showing failed data test notification with channel, message, and details"), and add a meaningful alt attribute to the second image (e.g., "Test coverage screen displaying coverage percentage, file list, and uncovered lines") so both <img> tags have clear, relevant alt text; edit the alt attributes directly in the image elements in this document.docs/data-tests/data-freshness-sla.mdx-39-41 (1)
39-41:⚠️ Potential issue | 🟠 MajorCorrect YAML list syntax in documentation examples (
--→-).The config snippet uses
-- elementary.data_freshness_sla:which is invalid YAML list syntax. List items must start with a single dash-, not--. This issue is systematic across multiple data-tests documentation files; users copying these examples would encounter syntax errors.Suggested fix
- -- elementary.data_freshness_sla: + - elementary.data_freshness_sla:Apply the same fix to: volume-threshold.mdx, execution-sla.mdx, and all anomaly detection test documentation files.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/data-tests/data-freshness-sla.mdx` around lines 39 - 41, Replace the invalid YAML list marker `--` with a single dash `-` in the documentation examples so list items are valid YAML; specifically update occurrences like `-- elementary.data_freshness_sla:` to `- elementary.data_freshness_sla:` in docs/data-tests/data-freshness-sla.mdx and apply the same change to the other affected docs (volume-threshold.mdx, execution-sla.mdx and the anomaly detection test files) to ensure all example YAML snippets use `-` as the list prefix.docs/cloud/guides/start-using-elementary-checklist.md-11-14 (1)
11-14:⚠️ Potential issue | 🟠 MajorFix checklist syntax to use Markdown task list format for proper rendering in Mint.
All checklist items throughout this file use bare
[ ]without list markers. Mint requires the standard Markdown task list format- [ ]for checkboxes to render correctly. Update all instances (lines 11-14, 20-23, 29-32, 37-40, 45-47, 52-53, 59-62, 69-71, 77-79) to include the dash prefix.Suggested fix pattern
-[ ] In the [Catalog](/cloud/features/collaboration-and-communication/catalog), identify and mark three [critical assets](/cloud/features/data-governance/critical_assets) +- [ ] In the [Catalog](/cloud/features/collaboration-and-communication/catalog), identify and mark three [critical assets](/cloud/features/data-governance/critical_assets)🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/cloud/guides/start-using-elementary-checklist.md` around lines 11 - 14, The checklist items use bare "[ ]" tokens which Mint won't render as task lists; update every checklist line (e.g., the four items shown referencing Catalog, descriptions/tags/owners, Governance AI agent, and column-level lineage) to the Markdown task-list format by prefixing each with a dash so "[ ]" becomes "- [ ]" (and similarly "[x]" -> "- [x]" if present); apply this change across all indicated checklist regions in the document so every checkbox line in the file uses the "- [ ]" prefix.docs/cloud/features/anomaly-detection/monitors-configuration.mdx-39-47 (1)
39-47:⚠️ Potential issue | 🟠 MajorFix iframe accessibility attributes.
Both embedded iframes are missing a
title(required for assistive tech), andaltoniframeis not the right accessibility mechanism.Suggested edit
<iframe +title="Edit anomaly monitor settings" width="700" height="400" src="https://res.cloudinary.com/dvmtceykh/video/upload/v1740599803/edit_volume_anomalies_gz7vc4.mp4" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen -alt="Anomaly settings simulator" ></iframe> ... <iframe +title="Delete anomaly test from UI" width="600" height="400" src="https://res.cloudinary.com/dvmtceykh/video/upload/v1740599911/delete_test_zrbk94.mp4" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen -alt="Disable test" ></iframe>Also applies to: 77-85
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/cloud/features/anomaly-detection/monitors-configuration.mdx` around lines 39 - 47, The embedded <iframe> elements in the anomaly-detection docs lack the required accessible title and incorrectly use an alt attribute; update both iframe instances (the <iframe> tags shown around the video embeds) by removing the non-standard alt attribute and adding a descriptive title attribute (or aria-label if a longer description is needed) that explains the embedded content (e.g., "Anomaly settings simulator video"); ensure the title text is concise and meaningful for assistive technology.docs/cloud/what-is-elementary.mdx-34-36 (1)
34-36:⚠️ Potential issue | 🟠 MajorRemove the empty heading marker.
Line 34 has a standalone
###with no title, which produces a malformed heading node.Suggested edit
-### - Elementary CLI help teams adopt foundational data observability within dbt. It centralizes metadata and test results to a self-hosted report, and provides a starting point for alerts and monitoring. It’s a great way to introduce reliability into engineering workflows.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/cloud/what-is-elementary.mdx` around lines 34 - 36, Remove the stray empty heading marker "###" at the start of the paragraph in docs/cloud/what-is-elementary.mdx (the standalone heading on line 34) so the content begins directly with the paragraph about the Elementary CLI; ensure no other orphan heading markers remain in that section to prevent malformed heading nodes.docs/cloud/features/data-tests/data-tests-overview.mdx-38-45 (1)
38-45:⚠️ Potential issue | 🟠 MajorAdd an accessible title to the embedded video iframe.
The iframe on Line 38 has no
title, which hurts screen-reader navigation.Suggested edit
<iframe +title="Create new tests from the UI" width="700" height="400" src="https://res.cloudinary.com/dvmtceykh/video/upload/v1739805266/create_test_bxfssr.mp4" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen ></iframe>🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/cloud/features/data-tests/data-tests-overview.mdx` around lines 38 - 45, The embedded iframe element lacks an accessible title attribute; update the <iframe> in the data-tests-overview.mdx to include a descriptive title (e.g., "Demo video: Creating a data test" or similar) by adding a title="..." attribute on the iframe tag so screen readers can identify the content.docs/data-tests/anomaly-detection-tests/column-anomalies.mdx-111-114 (1)
111-114:⚠️ Potential issue | 🟠 MajorFix the
usersexample YAML.This block is invalid YAML:
elementary.volume_anomaliesis missing both the list dash and the trailing colon, so users copying it intoschema.ymlwill get a parse error.Suggested fix
## if no timestamp is configured, elementary will monitor without time filtering data_tests: - elementary.volume_anomalies - config: - tags: ['elementary'] + - elementary.volume_anomalies: + config: + tags: ['elementary']🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/data-tests/anomaly-detection-tests/column-anomalies.mdx` around lines 111 - 114, The example YAML under data_tests is invalid because "elementary.volume_anomalies" is missing the list dash and trailing colon; update the users example so the test entry is a proper YAML mapping (e.g., make "elementary.volume_anomalies" a list item and add a colon) and keep the nested config and tags keys (look for the data_tests block and the element "elementary.volume_anomalies" and adjust it to be "- elementary.volume_anomalies:" with the existing "config:" and "tags:" nested beneath it).docs/oss/quickstart/stay-updated.mdx-21-41 (1)
21-41:⚠️ Potential issue | 🟠 MajorMirror the safer response parsing from
docs/kapa-widget.js.This form only checks
res.ok, butdocs/kapa-widget.jsalready accounts for HubSpot returning200 OKwith anerrorsarray in the response body. Without parsing the body, blocked or invalid submissions can still show a success state to the user.Suggested fix
const res = await fetch( `https://api.hsforms.com/submissions/v3/integration/submit/${HUBSPOT_PORTAL_ID}/${HUBSPOT_FORM_ID}`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ fields: [{ name: 'email', value: email }], context: { pageUri: typeof window !== 'undefined' ? window.location.href : '', pageName: 'Elementary Docs - Stay Updated', }, }), } ); - if (res.ok) { + const text = await res.text(); + let body = null; + try { + body = text ? JSON.parse(text) : null; + } catch (e) {} + + if (res.ok && !(body && Array.isArray(body.errors) && body.errors.length)) { setStatus('success'); setEmail(''); } else { setStatus('error'); }🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/oss/quickstart/stay-updated.mdx` around lines 21 - 41, The current submission code only checks res.ok and may treat HubSpot responses with a 200 and an errors array as success; modify the submit logic that calls fetch (the block that sets setStatus('success') / setStatus('error') and resets setEmail) to await res.json() when res.ok and inspect the parsed body for an errors array or other error indicators (mirror the pattern from docs/kapa-widget.js), and only call setStatus('success') and clear setEmail when the parsed response has no errors; otherwise call setStatus('error') and handle/log the returned error details.docs/kapa-widget.js-109-112 (1)
109-112:⚠️ Potential issue | 🟠 MajorSanitize the docs URL before sending to HubSpot.
window.location.hrefincludes query strings and fragments, which can expose invite tokens, email parameters, and UTM tracking data to a third-party endpoint. Usewindow.location.origin + window.location.pathnameinstead.This pattern appears in two places:
docs/kapa-widget.js(lines 114-117)docs/snippets/kapa-support.jsx(lines 115-116)Both need the same fix.
Suggested fix
context: { - pageUri: window.location.href, + pageUri: window.location.origin + window.location.pathname, pageName: 'Elementary Docs - Ask Elementary AI', },🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/kapa-widget.js` around lines 109 - 112, The pageUri property is using window.location.href which leaks query strings and fragments; update the assignment where context.pageUri is set (and the equivalent occurrence in the kapa-support snippet) to construct a sanitized URL using window.location.origin + window.location.pathname instead of window.location.href so queries/fragments (UTM, tokens) are not sent to HubSpot.
| disable_dbt_artifacts_autoupload: true | ||
| ``` | ||
|
|
||
| 2. Make sure to run `dbt run --select edr.dbt_artifacts` upon merging PRs. |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Verify all documented dbt_artifacts selector variants and unify them.
rg -n "dbt run --select .*dbt_artifacts|disable_dbt_artifacts_autoupload" docs/data-tests/dbtRepository: elementary-data/elementary
Length of output: 602
🏁 Script executed:
sed -n '100,110p' docs/data-tests/dbt/on-run-end_hooks.mdxRepository: elementary-data/elementary
Length of output: 367
🏁 Script executed:
rg -n "edr.dbt_artifacts|elementary.edr.dbt_artifacts" --type mdx --type yml --type yaml docs/Repository: elementary-data/elementary
Length of output: 97
🏁 Script executed:
find . -name "*.yml" -o -name "*.yaml" | xargs rg -l "dbt_artifacts" 2>/dev/null | head -10Repository: elementary-data/elementary
Length of output: 109
🏁 Script executed:
rg -n "dbt_artifacts" tests/e2e_dbt_project/dbt_project.yml -A 3 -B 3Repository: elementary-data/elementary
Length of output: 332
🏁 Script executed:
rg -n "elementary" docs/data-tests/dbt/on-run-end_hooks.mdx | head -20Repository: elementary-data/elementary
Length of output: 251
🏁 Script executed:
fd -t f "dbt_project.yml" -exec rg -l "selectors" {} \;Repository: elementary-data/elementary
Length of output: 312
🏁 Script executed:
rg -n "edr.*dbt_artifacts" --type-list | head -5Repository: elementary-data/elementary
Length of output: 459
🏁 Script executed:
find . -path ./node_modules -prune -o -name "*.yml" -print | xargs grep -l "edr:" 2>/dev/null | head -10Repository: elementary-data/elementary
Length of output: 52
🏁 Script executed:
find . -name "selectors.yml" -o -name "selectors.yaml"Repository: elementary-data/elementary
Length of output: 117
🏁 Script executed:
rg -n "package:" dbt_project.yml | head -5Repository: elementary-data/elementary
Length of output: 125
🏁 Script executed:
rg -n "models:" dbt_project.yml | head -20Repository: elementary-data/elementary
Length of output: 125
🏁 Script executed:
fd "dbt_project.yml" -x cat {} \; | head -100Repository: elementary-data/elementary
Length of output: 2862
🏁 Script executed:
cat ./tests/tests_with_db/dbt_project/selectors.ymlRepository: elementary-data/elementary
Length of output: 150
🏁 Script executed:
rg -n "dbt_artifacts" ./tests/tests_with_db/dbt_project/selectors.yml -A 2 -B 2Repository: elementary-data/elementary
Length of output: 52
🏁 Script executed:
rg -n "\.edr\.|elementary\.edr\." docs/ --type txt | head -20Repository: elementary-data/elementary
Length of output: 52
🏁 Script executed:
find . -name "manifest.json" -o -name "catalog.json" 2>/dev/nullRepository: elementary-data/elementary
Length of output: 52
🏁 Script executed:
rg -n "package:" . -A 5 --max-count 5 | head -50Repository: elementary-data/elementary
Length of output: 4013
🏁 Script executed:
rg -n "edr" elementary/ --type yml --type yaml | head -20Repository: elementary-data/elementary
Length of output: 97
🏁 Script executed:
cat elementary/monitor/dbt_project/dbt_project.yml | head -100Repository: elementary-data/elementary
Length of output: 1605
🏁 Script executed:
find elementary -name "dbt_project.yml" -exec cat {} \; | grep -A 10 "models:"Repository: elementary-data/elementary
Length of output: 397
🏁 Script executed:
find elementary -type f \( -name "*.sql" -o -name "*.yaml" \) | xargs grep -l "dbt_artifacts" 2>/dev/null | head -10Repository: elementary-data/elementary
Length of output: 427
🏁 Script executed:
rg -n "dbt_artifacts" elementary/ | head -20Repository: elementary-data/elementary
Length of output: 1795
🏁 Script executed:
rg -n "name: dbt_artifacts|alias: dbt_artifacts" .Repository: elementary-data/elementary
Length of output: 52
🏁 Script executed:
find . -path ./node_modules -prune -o -type f -name "*.sql" -print | xargs grep -l "^-- config:" 2>/dev/null | xargs grep -l "dbt_artifacts" | head -10Repository: elementary-data/elementary
Length of output: 52
🏁 Script executed:
find elementary -type f -name "*dbt_artifacts*"Repository: elementary-data/elementary
Length of output: 52
🏁 Script executed:
rg -n "create.*dbt_artifacts|select.*dbt_artifacts" elementary/ --type sql | head -20Repository: elementary-data/elementary
Length of output: 594
🏁 Script executed:
find . -type d -name "elementary" -o -name "edr" | head -10Repository: elementary-data/elementary
Length of output: 82
🏁 Script executed:
find elementary -type d -name "models" -o -type d -name "edr"Repository: elementary-data/elementary
Length of output: 172
🏁 Script executed:
ls -la elementary/models/Repository: elementary-data/elementary
Length of output: 135
🏁 Script executed:
find elementary/models -type f -name "*.sql" | xargs grep -l "dbt_artifacts" 2>/dev/null | head -10Repository: elementary-data/elementary
Length of output: 122
🏁 Script executed:
find elementary/monitor/dbt_project/models -type f -name "*.sql" | head -30Repository: elementary-data/elementary
Length of output: 670
🏁 Script executed:
find elementary/monitor/dbt_project/models -type f -name "*dbt_artifact*"Repository: elementary-data/elementary
Length of output: 52
🏁 Script executed:
ls -la elementary/monitor/dbt_project/models/Repository: elementary-data/elementary
Length of output: 567
🏁 Script executed:
rg -n "edr\.dbt_artifacts|elementary\.edr\.dbt_artifacts" docs/Repository: elementary-data/elementary
Length of output: 630
🏁 Script executed:
rg -n "dbt run --select" docs/ | head -30Repository: elementary-data/elementary
Length of output: 3336
🏁 Script executed:
cat docs/data-tests/dbt/on-run-end_hooks.mdx | head -120Repository: elementary-data/elementary
Length of output: 4823
🏁 Script executed:
cat docs/snippets/guides/reduce-on-run-end-time.mdx | grep -A 5 -B 5 "elementary.edr.dbt_artifacts"Repository: elementary-data/elementary
Length of output: 526
🏁 Script executed:
rg -n "edr\.dbt_artifacts" docs/ -c | sort | uniq -cRepository: elementary-data/elementary
Length of output: 218
Unify dbt_artifacts selector syntax to use full package namespace.
An inconsistency exists: Line 73 uses dbt run --select edr.dbt_artifacts while lines 103–105 use dbt run --select elementary.edr.dbt_artifacts. The guide documentation (reduce-on-run-end-time.mdx) consistently uses the full form elementary.edr.dbt_artifacts, which appears to be the canonical selector. Line 73 should be updated to match.
Also fix the grammar error at line 104: "your run" should be "you run".
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@docs/data-tests/dbt/on-run-end_hooks.mdx` at line 73, Update the selector on
the mentioned line to use the canonical full package namespace by replacing "dbt
run --select edr.dbt_artifacts" with "dbt run --select
elementary.edr.dbt_artifacts" so it matches the rest of the doc, and correct the
grammar at the later occurrence by changing "your run" to "you run" to fix the
sentence in the same section; search for the strings "edr.dbt_artifacts" and
"elementary.edr.dbt_artifacts" to locate the occurrences and update them
accordingly.
| ```python | ||
| import elementary_python_sdk | ||
| print(elementary_python_sdk.__version__) | ||
| ``` |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Check if elementary-python-sdk exists on PyPI
curl -s "https://pypi.org/pypi/elementary-python-sdk/json" | jq '.info.name, .info.version' 2>/dev/null || echo "Package not found on PyPI"Repository: elementary-data/elementary
Length of output: 79
🏁 Script executed:
# Get the full PyPI API response to see the actual structure
curl -s "https://pypi.org/pypi/elementary-python-sdk/json" | head -100Repository: elementary-data/elementary
Length of output: 94
🏁 Script executed:
# Check repository root for package definition files
git ls-files | grep -E "(setup\.py|pyproject\.toml|__init__\.py|setup\.cfg)" | head -20Repository: elementary-data/elementary
Length of output: 802
🏁 Script executed:
# Search for elementary_python_sdk package definition in repository
fd -t f "setup.py|pyproject.toml"Repository: elementary-data/elementary
Length of output: 84
🏁 Script executed:
# Read pyproject.toml to find actual package name and version
cat pyproject.toml | head -50Repository: elementary-data/elementary
Length of output: 1725
🏁 Script executed:
# Check if __version__ is defined in elementary/__init__.py
cat -n elementary/__init__.pyRepository: elementary-data/elementary
Length of output: 52
🏁 Script executed:
# Check if elementary-data exists on PyPI and get its version
curl -s "https://pypi.org/pypi/elementary-data/json" | jq '.info.name, .info.version'Repository: elementary-data/elementary
Length of output: 96
🏁 Script executed:
# Read elementary/__init__.py with explicit output
cat elementary/__init__.pyRepository: elementary-data/elementary
Length of output: 52
🏁 Script executed:
# Check if __version__ exists anywhere in the elementary package
rg "__version__" elementary/Repository: elementary-data/elementary
Length of output: 161
🏁 Script executed:
# Check if there's a version module or __version__ definition in elementary package
find elementary -type f -name "*.py" | xargs grep -l "^__version__"Repository: elementary-data/elementary
Length of output: 54
🏁 Script executed:
# Check the directory structure to understand the actual import
ls -la elementary/ | head -20Repository: elementary-data/elementary
Length of output: 878
Fix the package import and remove the non-existent version check.
The documentation references a non-existent package elementary_python_sdk. The actual package on PyPI is elementary-data, imported as elementary. Additionally, the elementary package does not export a __version__ attribute.
Update the code snippet to either import elementary directly or use an alternative method to display version information (e.g., using importlib.metadata).
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@docs/python-sdk/installation.mdx` around lines 29 - 32, Replace the incorrect
import of elementray_python_sdk and the nonexistent __version__ access: import
the real PyPI package as "elementary" (i.e., use import elementary) and, if you
need to show the package version, use importlib.metadata (e.g.,
importlib.metadata.version("elementary")) instead of accessing
elementary.__version__; update the code snippet accordingly to import elementary
and retrieve the version via importlib.metadata.version("elementary") or simply
show importing elementary only.
Co-Authored-By: Yosef Arbiv <yosef.arbiv@gmail.com>
|
Thanks for the thorough review. Important context: this PR is a sync of the existing I've fixed the |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@docs/oss/general/troubleshooting.mdx`:
- Line 54: Fix the typo in the troubleshooting heading sentence: change the text
"reach our to the elementary team" to "reach out to the elementary team" in the
string "**5. Still not working? Collect the following logs and reach our to the
elementary team at [`#community-support`](https://elementary-data.com/community)
on Slack**" so the sentence reads correctly.
- Around line 179-191: Fix the inconsistent indentation and fencing for the two
code blocks showing dbt materializations: replace the mismatched fences and
indentation with properly aligned fenced code blocks (use ```sql) around each
materialization block for Snowflake and default, ensuring the opening tag,
content lines, and the `{% endmaterialization %}` lines are vertically aligned;
update the blocks that call elementary.materialization_test_snowflake() and
elementary.materialization_test_default() so they appear inside their respective
```sql fences with consistent two-space indentation for the template lines.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 59978624-85b8-480c-a588-f41b569daed0
📒 Files selected for processing (1)
docs/oss/general/troubleshooting.mdx
Co-Authored-By: Yosef Arbiv <yosef.arbiv@gmail.com>
Summary
Brings the
docs/directory onmasterin sync with the currentdocsbranch. Onlydocs/files are included — no code, config, or dependency changes outside the docs directory.Key changes:
<Snippet file="..." />to ESM imports (import X from '/snippets/...'; <X />). The_snippets/directory is deleted and replaced bysnippets/.mint.json→docs.json: Navigation config restructured with new tabs (Python SDK), new sections (MCP Server, Performance & Cost, AI Agents), and updated redirects.kapa-widget.js.mintlify installstep./cloud/prefix, typos, updated screenshots, dbttests:→data_tests:syntax in tutorials.Review & Testing Checklist for Human
<Snippet file="..." />will silently break. Search thedocs/tree for any remaining<Snippetreferences that weren't converted._snippets/removal: Verify no file indocs/still references_snippets/paths. The directory is fully deleted in this PR.docs.jsonnavigation integrity: Confirm every page path listed indocs.jsoncorresponds to an actual.mdxfile. Missing files will cause Mintlify build errors. Pay special attention to new sections (MCP, Python SDK, Performance)./cloud/prefix. Manually test a few old URLs (e.g.,/features/lineage→/cloud/features/data-lineage/lineage) on the preview deployment to confirm they resolve.mint.jsonvsdocs.json: Both files exist after this PR. Verify Mintlify usesdocs.json(v4) and thatmint.jsonis inert or should be removed.Recommended test plan: Deploy the Mintlify preview and click through the sidebar navigation for each top-level section. Verify the Kapa AI widget loads. Check that at least one page per new section (Lightdash, MCP, Python SDK, Vertica) renders content without import errors.
Notes
typospre-commit hook flags false positives on Vertica SVG gradient IDs containing_ot_(e.g.,vertica_page_ot_gradient). This commit was made withSKIP=typosto work around this. These will continue to trigger for future contributors editing those files.how-does-elementary-workfile was renamed to.mdxand a typo fixed ("Could" → "Cloud"), but it does not appear indocs.jsonnavigation — it may be an orphaned page.Link to Devin session: https://app.devin.ai/sessions/e56abb358db34b84956c5b78d163f348
Requested by: @arbiv
Summary by CodeRabbit