* Initial plan
* fix(docs): remove > prompt from runnable code blocks
Remove leading `>` CLI prompt characters from code blocks that are meant
to be executed by users. Only keep `>` in code blocks that demonstrate
console output (showing both the command at the prompt AND the result output).
Changes affect 34 files across InfluxDB v1, Enterprise InfluxDB, shared
influxql-v3 reference, and Telegraf content:
- InfluxQL queries and management commands (sql/bash/no-lang blocks)
- Flux REPL examples (js blocks)
- MongoDB shell commands (shell blocks)
Preserved (unchanged):
- Console session blocks showing command + output (Type B: mixed > and non-> lines)
- Telegraf metric output blocks (text language with > measurement,tags format)
- diff blocks with < and > diff markers
Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com>
* Apply suggestions from code review
* Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* Apply suggestions from code review
* Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* Update content/enterprise_influxdb/v1/query_language/continuous_queries.md
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com>
Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* fix(influxdb3): backfill missing product URLs in localStorage
Returning visitors with stale localStorage (created before core/enterprise
products were added) had undefined URL values for new products. The
updateUrls() function then replaced Hugo-rendered hostnames like
localhost:8181 with the string "undefined" in api-endpoint blocks.
Fix by merging DEFAULT_STORAGE_URLS as fallbacks when reading from
localStorage, so new product keys are always present.
closes#6960https://claude.ai/code/session_01GJZ2yMR5DBk1feqTD5LeHW
* test(influxdb3): add Cypress tests for localStorage URL backfill
Adds 2 E2E tests for the fix in #6960:
1. Stale localStorage (missing `core` key) should not cause "undefined"
to appear in api-endpoint or code blocks on the plugins page.
2. Fresh localStorage should be initialized with all expected product
URL keys (oss, cloud, core, enterprise, serverless, dedicated, clustered).
Run with:
node cypress/support/run-e2e-specs.js --spec "cypress/e2e/influxdb-url.cy.js" --no-mapping
https://claude.ai/code/session_01GJZ2yMR5DBk1feqTD5LeHW
---------
Co-authored-by: Claude <noreply@anthropic.com>
- Fix Power BI links in visualization-tools.md for cloud-dedicated,
cloud-serverless, and clustered to use new visualize-data/ path
instead of old process-data/visualize/ path
- Fix influxctl cluster list link in cloud-dedicated/admin/clusters/list.md
to include missing cluster/ path segment
https://claude.ai/code/session_01SV14CdHN4GGVuATt9n7STn
Co-authored-by: Claude <noreply@anthropic.com>
* feat(ui): add Ask AI to code block controls menu
Add an "Ask AI" option to the code controls dropdown menu on all code
blocks. Uses data-ask-ai-query attribute if provided by the template,
otherwise builds a query from the code content. Delegates to the
existing Kapa widget integration via the ask-ai-open click handler.
* fix(ui): fix Ask AI code control and add e2e tests
## Summary
- Add "Ask AI" option to the code controls dropdown (three-dot menu) on all code blocks
- Uses `data-ask-ai-query` attribute from the template if available, otherwise builds a query from the code content
- Delegates to the existing Kapa widget via the `ask-ai-open` click handler contract
- Reorder menu items: Copy → Ask AI → Fill window
## Bug fix
Fix Ask AI button not opening the Kapa widget. jQuery `.trigger('click')`
doesn't dispatch native DOM events, so the native
`document.addEventListener` in ask-ai-trigger.js never received the click.
Switch to native `.click()` and remove `href="#"` to prevent scroll-to-top.
## Tests
Add Cypress e2e test suite (`code-controls.cy.js`) with 16 tests covering:
- Initialization: code blocks wrapped, controls appended, menu item order
- Toggle: open/close on click, close on outside click, independent menus
- Copy to clipboard: success lifecycle, revert after timeout
- Fullscreen: modal open/close, body scroll lock, placeholder restore
- Ask AI: Kapa modal opens, query built with code content (MutationObserver)
* fix(ui): apply icon spacing to all code control menu items
Move .cf-icon margin-right rule from .copy-code and .fullscreen-toggle
to the shared li level so it applies to all menu items including Ask AI.
* Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* fix(ui): add keyboard accessibility to code controls menu
Replace clickable <span> and <li> elements with proper <button> elements
and ARIA roles for keyboard and assistive-technology access:
- Toggle: <span> → <button> with aria-label and aria-expanded
- Menu items: <li> → <li role="none"><button role="menuitem">
- Menu: <ul> gets role="menu"
- SCSS: add :focus-visible styles, reset button defaults
- JS: toggle handler updates aria-expanded on open/close
Also fix tests to match actual behavior:
- Remove bogus "close other menus" test that manually closed first menu
before opening second (tested nothing)
- Remove duplicate "close on re-click" test (same as outside-click)
- Add "keep menu open when copy is clicked" (stopPropagation behavior)
- Add accessibility markup validation test
---------
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
The InfluxDB documentation MCP server (hosted by Kapa) now supports
authentication via both Google and GitHub accounts. Update all
references to reflect both providers and document GitHub's scope
behavior (no scopes requested, public profile only).
https://claude.ai/code/session_01X29cSTjYM6CQrxRJT62tG6
Co-authored-by: Claude <noreply@anthropic.com>
* Revert "InfluxDB 1.12.3 release (#6872)"
This reverts commit 14e021aa26.
* fix(v1): split v1.12.3 release — publish OSS, defer Enterprise pending GA
Revert the combined InfluxDB 1.12.3 release commit and re-add only
OSS v1.12.3 documentation. Enterprise v1.12.3 docs will be published
in a separate PR once the release artifact is GA in the portal.
Also adds FUTURE/PAST LIMIT ordering caution for users on versions
prior to v1.12.3 (from copilot/restore-ordering-warning-influxql).
* chore: document separate OSS/Enterprise PR workflow for v1 releases
Update the influxdb1-tech-writer agent, v1 release PR template, and
prepare-release-notes command to enforce the practice of always creating
separate PRs for OSS v1 and Enterprise v1 releases. Enterprise must wait
for GA in the portal before merging.
* fix(enterprise): restore FUTURE/PAST LIMIT grammar productions in InfluxQL spec
The revert of the combined v1.12.3 commit removed grammar production
definitions (retention_future_limit, retention_past_limit) that document
existing InfluxQL syntax, not v1.12.3-specific features. Restore them
so the grammar is complete.
* Revert "fix(enterprise): restore FUTURE/PAST LIMIT grammar productions in InfluxQL spec"
This reverts commit c497f136a1.
* fix(v1): remove incorrect FUTURE/PAST LIMIT ordering caution from OSS spec
The caution stated that prior to v1.12.3, PAST LIMIT must appear before
FUTURE LIMIT. This is incorrect — the correct syntax has always been
FUTURE LIMIT before PAST LIMIT. The v1.12.3 fix addresses Enterprise
meta-node recording of limits, not parser syntax order.
The packages-audit pre-push hook now detects the current branch and only
blocks pushes on the default branch. On feature branches, vulnerabilities
are reported as warnings with a link to create a GitHub issue.
* feat: [meta] https-insecure-certificate configuration (#6850)
Add documentation for meta node's `[meta] https-insecure-certificate` configuration.
This configuration is available in >= 1.12.3.
* feat: https-insecure-certificate configuration (#6847)
Add documentation for `https-insecure-certificate` configuration in `[cluster]` and `[http]` sections.
* feat: [tls] advanced-expiration configuration (#6849)
Add `[tls] advanced-expiration` setting for data nodes.
* feat: add compression options to influxd-ctl backup (#6717)
* feat: add compression options to influxd-ctl backup
Added new flags for backup compression and performance tuning.
* feat: Update backup.md
Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com>
* Update content/enterprise_influxdb/v1/tools/influxd-ctl/backup.md
Co-authored-by: Scott Anderson <sanderson@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: Scott Anderson <sanderson@users.noreply.github.com>
---------
Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com>
Co-authored-by: Scott Anderson <sanderson@users.noreply.github.com>
* fix(enterprise): correct typos and inconsistencies in v1.12.3 release docs
Fix grammar, formatting, and accuracy issues across the new v1.12.3
configuration and backup compression documentation.
* fix(influxdb-v1): correct FUTURE LIMIT and PAST LIMIT clause order and add to ALTER RETENTION POLICY (#6591)
* fix(influxdb-v1): correct FUTURE LIMIT and PAST LIMIT clause order and add to ALTER RETENTION POLICY
- Fix clause order: FUTURE LIMIT must appear before PAST LIMIT (parser requirement)
- Add FUTURE LIMIT and PAST LIMIT clauses to ALTER RETENTION POLICY syntax
- Add grammar definitions for retention_future_limit and retention_past_limit
- Add explicit note clarifying the required clause order
- Fix "There are" style issue in spec.md
closes#6590
* style(influxdb-v1): clean up InfluxQL spec formatting
influxdb/v1:
- Simplify introduction and use relative anchor links
- Convert notes to GitHub-style callout syntax
- Fix heading hierarchy (Letters/digits, Identifiers, Keywords, Literals as h3)
- Standardize Duration units table heading
- Fix "keywords" typo
- Reword "See FAQ" to "For more information, see"
- Simplify KILL QUERY section
- Fix SHOW MEASUREMENT CARDINALITY heading level
- Replace "There are" with active voice
enterprise_influxdb/v1:
- Add related links to frontmatter
- Simplify introduction and use relative anchor links
- Convert notes to GitHub-style callout syntax
- Add Characters and Letters/digits to TOC
- Standardize Duration units table heading
- Fix "keywords" typo
- Reword "See FAQ" to "For more information, see"
- Simplify KILL QUERY section for Enterprise clusters
- Update SHOW TAG KEYS grammar to include with_key_clause
- Remove backticks from SHOW STATS headings
* fix(influxdb-v1): address review issues in InfluxQL spec pages (#6931)
* fix(influxdb-v1): address review issues in InfluxQL spec pages
- Fix Enterprise KILL QUERY: restore proper EBNF grammar with optional
ON clause and include both local and cluster examples
- Fix duplicate "Durations" heading in both spec files
- Fix list item spacing in Enterprise spec
- Revert OSS heading level changes to maintain consistency with Enterprise
- Restore Comments section to original location under Other in OSS spec
* fix(influxdb-v1): move Comments section outside Other in OSS spec
Match Enterprise spec structure: Comments is a top-level section
before Other, not nested inside it.
* fix(influxdb-v1): restore Comments link in OSS spec TOC
* fix(influxdb-v1): rewrite KILL QUERY with clear Syntax and Examples sections
Use text-typed code block for syntax notation and Syntax heading.
Keep both local and cluster examples in sql-typed block.
* feat(enterprise,v1): add v1.12.3 release notes and missing OSS config options
Add release notes for InfluxDB v1.12.3 (OSS and Enterprise) with links
to documented features. Add missing https-insecure-certificate and
advanced-expiration config options to OSS docs. Fix backup example
gzipBlockSize typo (10048576 → 10485760) and document the default.
* fix(enterprise,v1): fix broken links in release notes and spec pages
Fix 30+ broken links across v1 release notes and InfluxQL spec pages:
- Correct config paths (configuration/ → configure/)
- Fix fragment anchors (remove default values from anchors)
- Update relocated pages (cluster-commands → tools/influxd-ctl)
- Fix cross-product links (Enterprise → OSS for shared content)
- Remove dead links (flux/v0.36, whats_new)
* Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* fix(enterprise,v1): move FUTURE/PAST LIMIT fix from Features to Bug fixes
The clause order correction is a bug fix, not a new feature.
* fix(v1): correct spec typos and KILL QUERY placeholder in v1.12.3 docs (#6932)
* Initial plan
* fix(v1): correct typos, grammar references, and example inconsistencies in spec and backup docs
Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com>
* revert(enterprise/v1): restore gzipBlockSize and gzipBlockCount in backup example
Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com>
* revert(v1): restore with_key_clause in spec grammar for show_tag_keys, show_tag_values_cardinality, and exact_cardinality statements
Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com>
* fix(influxdb-v1): fix broken cross-references in meta-nodes config and OSS config
- Fix meta-internal-shared-secret links in config-meta-nodes.md to point
to config-data-nodes where the heading exists
- Update MDN security headers URL to current location
* chore(influxdb-v1): bump OSS and Enterprise latest patch to 1.12.3
* docs: tag v1.12.3-only config and backup updates (#6936)
* Initial plan
* docs(metadata): mark v1.12.3 additions
Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com>
---------
Co-authored-by: Geoffrey Wossum <gwossum@influxdata.com>
Co-authored-by: WeblWabl <devandbenz@gmail.com>
Co-authored-by: Scott Anderson <sanderson@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
* Initial plan
* fix: include docs home page in PR preview and Copilot visual review when layouts/index.html changes
Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com>
* fix: improve detect-preview-pages to avoid false needs-author-input when home page auto-detected
Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com>
Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com>
- Upgrade glob from ^10.3.10 to ^13.0.6 to resolve dependency
vulnerability warnings. API is unchanged, no code changes needed.
- Add dompurify >=3.3.2 to resolutions to prevent regression.
The prior lockfile-only fix (8dd60bf) regressed when yarn add
regenerated the lockfile.
* chore: add hosted influxdb-docs MCP server to .mcp.json
Add the hosted InfluxDB documentation search MCP server
(influxdb-docs.mcp.kapa.ai) as the primary MCP server using SSE transport.
Keep the local server with a note that it uses deprecated endpoints.
https://claude.ai/code/session_01SURpmrJ2sxzBtp4euiAxpc
* chore: add API key auth option for hosted influxdb-docs MCP server
Make the API key-authenticated server the primary entry (influxdb-docs)
using Bearer token from DOCS_KAPA_API_KEY env var. Keep the OAuth
fallback as influxdb-docs-oauth for users without an API key.
https://claude.ai/code/session_01SURpmrJ2sxzBtp4euiAxpc
* chore: rename env vars to INFLUXDATA_DOCS_ namespace
Rename DOCS_KAPA_API_KEY, DOCS_API_KEY_FILE, DOCS_MODE, and
MCP_LOG_LEVEL to use the INFLUXDATA_DOCS_ prefix for consistency.
https://claude.ai/code/session_01SURpmrJ2sxzBtp4euiAxpc
* docs: add MCP server setup docs for contributors and AI agents
Update CLAUDE.md, AGENTS.md, and content-editing SKILL.md with
concise documentation for the hosted influxdb-docs MCP server,
covering both API key and OAuth authentication options.
https://claude.ai/code/session_01SURpmrJ2sxzBtp4euiAxpc
* fix: remove cross-agent references from .claude files and AGENTS.md
Keep .claude/ files focused on Claude Code. Link AGENTS.md to the
published MCP server docs page instead of mentioning tool-specific setup.
https://claude.ai/code/session_01SURpmrJ2sxzBtp4euiAxpc
---------
Co-authored-by: Claude <noreply@anthropic.com>
* Initial plan
* fix(vale): add missing Google.Units=NO to product-specific .vale.ini files
Duration literals like 7d, 24h, 30d were being flagged as errors when
running Vale with product-specific configs because those configs were
missing Google.Units = NO. Also adds Vale.Terms = NO,
write-good.TooWordy = NO, and TokenIgnores to match the root .vale.ini.
Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com>
Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com>
* Initial plan
* fix: use correct API to request Copilot code review in doc-review workflow
Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com>
Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com>
* feat: add doc review pipeline implementation plan
Detailed plan for two interconnected systems:
1. Label system overhaul (22 automation-driven labels replacing 30+ inconsistent ones)
2. Doc review workflow (Claude visual review + Copilot structural review with screenshots)
This is a plan document only — no implementation changes.
https://claude.ai/code/session_01D5rLaHdQv9iBL55UEsdQFt
* fix: split product:v3 into v3-monolith and v3-distributed labels
- product:v3-monolith: Core, Enterprise (single-node / clusterable)
- product:v3-distributed: Cloud Serverless, Cloud Dedicated, Clustered
- Updated auto-label path mappings to match content directory structure
- Updated migration mapping and label count (22 → 23)
https://claude.ai/code/session_01D5rLaHdQv9iBL55UEsdQFt
* feat: define agent instruction file architecture in Phase 3
- One CLAUDE.md (pointer) → role-specific files in .claude/agents/
- doc-triage-agent.md: label taxonomy, path mapping, priority rules
- doc-review-agent.md: review scope, severity classification, output format
- Prompt file (.github/prompts/) references agent file, stays workflow-specific
- Updated file summary and implementation order
https://claude.ai/code/session_01D5rLaHdQv9iBL55UEsdQFt
* feat: move visual/screenshot review from Claude to Copilot
Claude now handles diff-only Markdown review (frontmatter, shortcodes,
style, terminology). Copilot handles visual review by analyzing
screenshots posted as images in PR comments.
Key changes:
- Job 3 (Claude) runs in parallel with Jobs 1→2→4 (diff-only, no screenshots)
- Job 4 (Copilot) analyzes screenshots via @copilot PR comment mentions
- Two prompt files: doc-review.md (Claude), copilot-visual-review.md (Copilot)
- doc-review-agent.md scoped to diff-only (no screenshot analysis)
- Q1 resolved: screenshots delivered to Copilot via PR comment images
- Reduced Claude API cost (no image processing)
- Added Copilot failure handling (fallback to human review of artifacts)
https://claude.ai/code/session_01D5rLaHdQv9iBL55UEsdQFt
* chore: resolve all open questions in doc review pipeline plan
Convert Q2–Q5 from open recommendations to resolved decisions:
- Q2: Advisory only (no required status checks) until false-positive rate confirmed
- Q3: Playwright for CI screenshots, Puppeteer for local debugging
- Q4: Poll preview URL with 15s interval and 10-min timeout
- Q5: Cost acceptable with existing mitigations (path filters, skip-review, concurrency)
Rename section from "Open Questions" to "Decisions (Resolved)".
https://claude.ai/code/session_01D5rLaHdQv9iBL55UEsdQFt
* Apply suggestions from code review
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Fix label naming inconsistency and document workflow migration requirements (#6893)
* Initial plan
* fix: resolve label naming inconsistency and document workflow updates
- Rename review:approved to approval:codeowner to avoid confusion with review/* labels
- Add note explaining the distinct prefix to prevent implementor confusion
- Document required workflow updates for sync-plugin-docs label migration
- Specify exact files and line numbers that need updating
Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com>
* feat(ci): add doc review pipeline and deduplicate instruction files
Add Phase 2-3 pipeline components: doc-review workflow (3-job
architecture), Claude/Copilot review prompts, URL resolver script,
triage and review agents, and label guide.
Deduplicate AGENTS.md (254→96 lines) by removing content available
in referenced docs. Remove duplicate sections from
copilot-instructions.md (264→221 lines). AGENTS.md now contains
only high-signal guidelines loaded every session: commands,
constraints, style rules, product paths, and reference pointers.
* task: updated PR pipeline plan
* task: remove old cli plan
* task: products file now contains content path mappings and (GitHub) label groups for each product. Product group labels will be used to assign reviewers and help with content checks.
* feat(ci): add auto-label workflow for PR product detection
Add auto-label workflow that applies product and source labels to
PRs based on changed file paths, using data/products.yml as the
source of truth. Add workflow-utils.js shared helper for product
path matching.
* refactor(ci): extract shared label and review format definitions
Consolidate duplicated label definitions and review comment format
into shared source-of-truth files to prevent context drift.
New files:
- data/labels.yml: source, waiting, workflow, review, and
product:shared label definitions (names, colors, descriptions)
- .github/templates/review-comment.md: severity levels, comment
structure, result rules, and result-to-label mapping
Updated consumers to reference shared files instead of inline copies:
- .claude/agents/doc-review-agent.md
- .claude/agents/doc-triage-agent.md
- .github/prompts/copilot-visual-review.md
- .github/LABEL_GUIDE.md
Workflow fixes:
- Pin all GitHub Actions to SHA hashes
- Fix fromJson() for url-count comparison in doc-review.yml
- Fix fallback handler to remove all review:* labels before re-adding
* refactor(ci): replace Claude review with Copilot native code review
- Remove claude-code-action job, use `copilot-reviews` reviewer instead
- Extract review criteria to .github/instructions/content-review.instructions.md
- Simplify copilot-instructions.md by removing duplicated content
- Harden auto-label workflow (scoped permissions, pagination, concurrency)
- Upsert visual review comments instead of creating duplicates
- Delete unused .github/prompts/doc-review.md
* Update .github/workflows/doc-review.yml
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update .github/DOC-REVIEW-PIPELINE-PLAN.md
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* task: update review pipeline plan
* task: add label-migration scripts. These are one-use scripts that we'll remove after the label migration
* Update .github/workflows/doc-review.yml
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update .github/workflows/doc-review.yml
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update .github/workflows/auto-label.yml
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* style: remove unnecessary escape in regex character class
* feat(ci): add workflow_dispatch to auto-label and doc-review workflows
- Add workflow_dispatch with pr_number input to both workflows for
manual testing and on-demand re-runs
- Migrate sync-plugin-docs label references to source:sync
- Add area:agents, area:ci, area:links, release:*, good-first-issue,
source:feedback, waiting:pr to labels.yml
- Update products.yml: influxdb_cloud label_group v2 -> v2-cloud
- Track label renames and deletions in LABEL_GUIDE.md
* fix(ci): replace npm ci with targeted js-yaml install in auto-label
npm ci fails in sparse checkout because package-lock.json is not
included. The workflow only needs js-yaml for YAML parsing.
* fix(ci): add --legacy-peer-deps to auto-label npm install
* task: updated labels for migration
* docs: update pipeline plan with test results and completion status
* test: reapply reverted serve.md changes for e2e pipeline test
Reverse the revert from 2f8efd6 to provide content changes that
exercise the auto-label and doc-review workflows end-to-end.
* fix(ci): fix preview URL polling in doc-review visual review
curl --head outputs response headers before the status code from -w,
so STATUS contained "HTTP/2 200 ...200" instead of just "200".
Drop --head and add -o /dev/null to capture only the status code.
* fix: correct broken fragment links in InfluxDB 3 serve.md files (#6910)
* Initial plan
* fix: correct broken links in serve.md files for enterprise config-options
Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com>
* Update content/influxdb3/enterprise/reference/cli/influxdb3/serve.md
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com>
Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com>
---------
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Rename Core and Enterprise OpenAPI spec files from ref.yml to
descriptive names (influxdb3-core-openapi.yaml, influxdb3-enterprise-openapi.yaml).
Copy specs to static/openapi/ and add download links in the API description.
* Initial plan
* Remove line separation between influxdb3 and CLI in write-data page
Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com>
* Release Chronograf v1.11.0
* fix: warning format
Co-authored-by: Scott Anderson <sanderson@users.noreply.github.com>
* Initial plan
* Fix 6 broken links in Chronograf release notes
Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com>
* Fix all 6 broken links in Chronograf release notes with correct fragment IDs
Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com>
---------
Co-authored-by: Jakub Bednář <jakub.bednar@gmail.com>
Co-authored-by: Scott Anderson <sanderson@users.noreply.github.com>
Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com>
* chore(spell-check): improve Vale spell checking for code comments
- Enable spell checking in code blocks by removing ~code exclusion from InfluxDataDocs Spelling rule
- Add comprehensive filters to avoid false positives from:
- camelCase and snake_case identifiers
- hexadecimal values and version numbers
- URL paths and URLs
- shortcode attributes
- code punctuation and symbols
- Fix spelling errors in code comments:
- "includimng" → "including" in 3 files
- "continously" → "continuously" in 5 files
This allows Vale to catch typos and spelling mistakes in code comments and documentation strings while avoiding false positives on actual code syntax and identifiers.
https://claude.ai/code/session_01TYWR7wb5MUkzjVsK4mtNjA
* chore(spell-check): add codespell configuration
- Add .codespellrc with 'clear' builtin dictionary to catch unambiguous spelling errors
- Add .codespellignore for technical terms and product names
- Configuration prevents false positives while enabling comprehensive spell checking for code comments
This enables codespell for automated spell checking via CI/CD, complementing the Vale configuration.
https://claude.ai/code/session_01TYWR7wb5MUkzjVsK4mtNjA
* fix(reference): correct 6 spelling errors across reference pages
Fixes identified through codespell analysis of reference documentation:
- influxdb/v2/config-options: useable → usable
- influxdb3/clustered/release-notes: provid → provide, certficate → certificate, memeory → memory, Geting → Getting
- kapacitor/v1/release-notes: auotmatically → automatically
Note: "invokable" is excluded as a branding term; "fpr" in GPG code is a legitimate field name.
https://claude.ai/code/session_01TYWR7wb5MUkzjVsK4mtNjA
* docs(spell-check): improve validation rules and documentation
Core improvements to spell-checking rules:
CODESPELL CONFIGURATION (.codespellrc):
- Use only 'clear' dictionary (removes 'rare', 'code' for fewer false positives)
- Add 'api-docs' to skip list (avoids false positives in generated specs)
- Add 'invokable' to ignore list (product branding term)
- Remove unclear 'tage' term
- Add documentation explaining each setting
VALE CONFIGURATION (Spelling.yml):
- Expand scope documentation explaining why code blocks are included
- Add comprehensive comments for each filter pattern
- Include examples for each regex pattern
- Document limitations and edge cases
- Organize filters by category (branding, URLs, code, literals)
NEW DOCUMENTATION (SPELL-CHECK.md):
- Tool comparison and use cases
- Detailed explanation of each filter pattern
- Troubleshooting guide
- Running instructions for both tools
- Contribution guidelines
- References and related files
These changes ensure:
✅ Minimal false positives (8.5-9/10)
✅ Strong true positive detection (8.5-9.5/10)
✅ Clear, maintainable rules
✅ Easy to extend and modify
✅ Well-documented for team use
https://claude.ai/code/session_01TYWR7wb5MUkzjVsK4mtNjA
* refactor(spell-check): consolidate ignore words to single source
Consolidate duplicate ignored words configuration:
BEFORE:
- .codespellignore: AKS, aks, invokable, tagE
- .codespellrc: inline ignore-words-list = aks,invokable
- Problem: Maintenance duplication and confusion
AFTER:
- .codespellignore: authoritative list (aks, AKS, invokable with docs)
- .codespellrc: references .codespellignore via 'ignore-words' config
- Benefit: Single source of truth, cleaner configuration
Also removed:
- 'tagE' from ignore list (unclear, possibly a typo)
- Inline word list from .codespellrc (now external)
This follows codespell best practices and reduces maintenance burden.
https://claude.ai/code/session_01TYWR7wb5MUkzjVsK4mtNjA
* docs(spell-check): correct version number regex documentation
Fix incorrect limitation note in SPELL-CHECK.md:
The regex pattern \d+\.\d+(?:\.\d+)* actually DOES match
4-part versions like 1.2.3.4 (and any number of parts).
The (?:\.\d+)* part is a repeating group that matches
zero or more additional dot-separated version components.
Updated documentation to clarify that the pattern handles
any number of version parts, not just 2-3 part versions.
https://claude.ai/code/session_01TYWR7wb5MUkzjVsK4mtNjA
* Update SPELL-CHECK.md
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* fix(spell-check): tighten camelCase regex to prevent false negatives
The original camelCase regex pattern was too permissive and would match
any word starting with lowercase (e.g., 'provide', 'database', 'variable'),
causing Vale to skip spell-checking normal prose words.
Improved pattern now requires:
- camelCase: at least one uppercase letter (myVariable ✓, provide ✗)
- snake_case: at least one underscore (my_variable ✓, variable ✗)
This prevents common prose words from being silently excluded from
spell-checking while still properly handling code identifiers.
Combined pattern: (?:_*[a-z]+(?:[A-Z][a-z0-9]*)+(?:[A-Z][a-zA-Z0-9]*)*|[a-z_][a-z0-9]*_[a-z0-9_]*)
Updated files:
- SPELL-CHECK.md: Added detailed explanation and test cases
- .ci/vale/styles/InfluxDataDocs/Spelling.yml: Updated filter pattern
https://claude.ai/code/session_01TYWR7wb5MUkzjVsK4mtNjA
* fix(spell-check): expand URL scheme pattern to match documentation comment
The comment said the URL filter ignores 'http, https, ftp, etc.' but the
regex only matched http and https. Expanded the pattern to match:
- http/https (as before)
- ftp/ftps (file transfer protocols)
- ssh (secure shell)
- file (local file URLs)
Updated pattern: (?:https?|ftp|ftps|ssh|file)://[^\s\)\]>"]+
This ensures the filter matches the documented behavior.
https://claude.ai/code/session_01TYWR7wb5MUkzjVsK4mtNjA
---------
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* feat(ci): add ShellCheck linter to Lefthook pre-commit hooks
Add shell script linting via ShellCheck to catch common bugs (unquoted
variables, missing error handling, POSIX portability issues) before commit.
- Create `.shellcheckrc` with project-wide defaults (disable SC1091, SC2154)
- Create `.ci/shellcheck/shellcheck.sh` wrapper (local binary → Docker fallback)
- Add `shellcheck` pre-commit hook in `lefthook.yml` with glob/exclude patterns
Lints 23 infrastructure scripts (test, CI, deploy, helpers) while excluding
36 documentation example scripts in `shared/text/` and `layouts/shortcodes/`.
https://claude.ai/code/session_01X2gknrNvC5GGNExHU93FG6
* Update .shellcheckrc
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* fix(ci): derive shellcheck minimum version from pinned version
Single source of truth — the minimum local version is now parsed from
SHELLCHECK_VERSION instead of being maintained as separate constants.
This prevents drift between the Docker image version and the local
binary requirement.
https://claude.ai/code/session_01X2gknrNvC5GGNExHU93FG6
* fix(ci): remove unused external-sources from .shellcheckrc
external-sources=true only takes effect with the -x flag, which the
wrapper doesn't pass. Source-following isn't needed for pre-commit
linting of individual files, and SC1091 is already disabled.
https://claude.ai/code/session_01X2gknrNvC5GGNExHU93FG6
---------
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* fix: link resource terms
* chore(aagents): Allow use of yq and htmlq for parsing.
* chore(deps): yarn upgrade
* chore(deps): remove unused @vvago/vale npm package
Vale linting uses Docker (jdkato/vale:latest) via .ci/vale/vale.sh,
not the npm package. Update VS Code setup docs to use system Vale.
* docs(skill): update content-editing skill for hosted MCP server
Replace local InfluxData MCP server references with the hosted kapa.ai
documentation MCP server (https://influxdb-docs.mcp.kapa.ai).
Changes:
- Update MCP configuration from local stdio server to hosted URL
- Replace kapa_query() examples with natural language prompts
- Add rate limit info (40/hour, 200/day per Google OAuth user)
- Standardize Hugo commands to use yarn (yarn hugo --quiet)
- Fix E2E test command (node cypress/support/run-e2e-specs.js)
- Use .ci/vale/vale.sh consistently for Vale linting
- Remove VS Code-specific instructions for agent focus
- Move TODOs to GitHub issue #6853
* chore(deps): yarn upgrade
* Apply suggestions from code review
* Update .claude/skills/content-editing/SKILL.md
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update .claude/skills/content-editing/SKILL.md
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* fix(ci): fix Vale linting setup and add dependency update checks
The vale Compose service was removed in 922e4818 but docs still
referenced `docker compose run -T vale`, which fails.
Vale linting now works as follows:
- If vale is installed locally (v3+), .ci/vale/vale.sh uses it directly.
Contributors can install via `brew install vale` for faster linting
without Docker.
- Otherwise, the script falls back to Docker with a pinned image tag
(jdkato/vale:v3.13.1) instead of :latest.
- If the local version is incompatible (pre-v3), the script warns and
falls back to Docker.
Docker is no longer required for pre-commit hooks that only run Vale.
Also adds a weekly GitHub Actions workflow (check-pinned-deps.yml) that
compares pinned dependency versions against upstream releases and opens
a PR when updates are available.
* Update .ci/vale/vale.sh
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update .github/workflows/check-pinned-deps.yml
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* fix: resolve code review findings for PR #6885
- vale.sh: make version-detection grep non-fatal so Docker fallback works
- check-pinned-deps: add set -euo pipefail, auth header, and null guards
- DOCS-CONTRIBUTING: fix broken links to DOCS-TESTING.md
- DOCS-TESTING: rename VS Code section heading per review suggestion
* Apply suggestions from code review
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* chore: add .worktrees to gitignore
* refactor: replace URL-parsing in shortcodes with cascade product data
Replace duplicated URL-parsing logic across 28 shortcodes with Hugo's
cascade frontmatter. Each product section's _index.md now cascades
`product` (data key) and `version` (URL segment) to all descendants.
Key changes:
- Add cascade frontmatter to 15 product _index.md files
- Create layouts/partials/product/get-data.html shared partial
- Refactor 28 shortcodes to use the partial instead of parsing URLs
- Add version_label, limits, and distributed_architecture metadata
to data/products.yml to eliminate hardcoded dicts in shortcodes
- Fix lefthook lint-markdown-instructions glob format (YAML array)
- Fix pre-existing Vale exclamation point errors in cloud and v2
* fix: prevent remark-lint from escaping Hugo template syntax in shortcodes
Lefthook's glob option only triggers whether a command runs — it does
not filter {staged_files}. This caused remark-lint to process .md
shortcode files in layouts/, escaping underscores, brackets, and
parentheses that are valid Hugo template syntax.
Add layouts/ exclusion to the existing content/ filter in the
lint-markdown-instructions run command. Also fix the 3 shortcode files
that were damaged by remark-lint in the previous commit.
* test: add E2E tests for cascade product shortcodes
Add Cypress tests validating all refactored shortcodes across 14
product/version combos (82 tests). Test expectations are derived
from products.yml at runtime via cy.task('getData').
Fix the product links test to iterate actual home page links
instead of all products.yml entries.
Create _test/shortcodes.md pages in each product section
exercising product-name, product-key, current-version,
influxdb/host, and InfluxDB3-specific shortcodes.
* test: expand E2E coverage to 27 of 28 cascade shortcodes
Add shortcode invocations to all 14 test pages and corresponding
Cypress assertions for version lookups, namespace URLs, product
name text, placeholder_host, version visibility, CTA links, and
site-level data.
Add shortcodes-real-pages.cy.js for 6 shortcodes that require real
page context (cli/mapped, children, flux/list-all-functions,
telegraf/plugins, html-diagram/sso-auth-flow, cli/influxd-flags).
Suppress Vale on test pages — they contain only shortcode syntax,
not prose.
163 tests total, all passing.
* refactor(test): rename _test dirs to __tests__ and add noindex
Rename test page directories from _test to __tests__ to align with
JS testing conventions. Add noindex: true to all 14 test page
frontmatter to prevent search engine indexing in production.
Update Cypress URL pattern to match new paths.
* chore: add release notes for InfluxDB 3.8.3
Added release notes for version 3.8.3, including a bug fix for the WAL Buffer.
* Apply suggestion from @sanderson
Co-authored-by: Scott Anderson <sanderson@users.noreply.github.com>
* chore: add release notes for InfluxDB 3.8.3 (#6879)
* Initial plan
* chore: bump core and enterprise to 3.8.3 in products.yml
Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com>
---------
Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com>
Co-authored-by: Scott Anderson <sanderson@users.noreply.github.com>
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com>
* docs(influxdb3): document how to disable Processing Engine
Add documentation for disabling the Processing Engine in Docker and
systemd deployments. Key points:
- Processing Engine is enabled by default in Docker images and DEB/RPM
- Empty string does not disable — must unset or remove config
- Enterprise: use INFLUXDB3_UNSET_VARS feature
- Core Docker: requires custom entrypoint workaround
- systemd: comment out or remove plugin-dir from TOML config
closesinfluxdata/DAR#590
* docs(influxdb3): add cross-references for Processing Engine defaults
Add notes and cross-references explaining that the Processing Engine
is enabled by default in Docker and DEB/RPM installations:
- plugins/_index.md: Add deployment behavior table and link to disable docs
- get-started/processing-engine.md: Add note with cross-reference
* docs(influxdb3): clarify Processing Engine vs process mode distinction
Add notes explaining that --plugin-dir (Processing Engine activation) and
--mode=process (cluster node specialization) are independent configurations.
* docs(influxdb3): document --plugin-dir auto-enables process mode
- Update clustering, get-started, plugins, and reference pages
- Add example for enabling Processing Engine without --mode=process
- Clarify --mode=process is only needed for dedicated process-only nodes
- Synthesize notes into inline content for better flow in guides
* Update content/shared/influxdb3-reference/influxdb3-processing-engine.md
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update content/shared/influxdb3-cli/config-options.md
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* fix(influxdb3): update to v3.8.2, add --tls-no-verify and release notes
- Update latest_patch to 3.8.2 for Core and Enterprise in products.yml
(3.8.1 was internal-only)
- Add --tls-no-verify and INFLUXDB3_TLS_NO_VERIFY env var to all
remaining CLI pages (query, write, show, enable, disable, update,
test, stop, create/delete cache and file_index commands)
- Add safety disclaimer: "Not recommended in production" per review
- Standardize --tls-ca description across all CLI pages
- Add v3.8.2 release notes for Core and Enterprise
Addresses review feedback from hiltontj and jstirnaman on PR #6774.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* chore(influxdb3): remove PachaTree references from documentation
Remove all PachaTree-related content that is not yet ready for
public documentation:
- Remove --use-pacha-tree from Enterprise serve CLI reference
- Replace influxdb3_pacha_tree log filter example with influxdb3_enterprise
- Remove influxdb3_pacha_tree from component names table
- Remove PachaTree storage engine entry from v3.7.0 release notes
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* Update content/shared/v3-core-enterprise-release-notes/_index.md
* Apply suggestions from code review
---------
Co-authored-by: peterbarnett03 <peter.barnett03@gmail.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Scott Anderson <sanderson@users.noreply.github.com>
* Release Chronograf v1.11.0
* fix: warning format
Co-authored-by: Scott Anderson <sanderson@users.noreply.github.com>
---------
Co-authored-by: Scott Anderson <sanderson@users.noreply.github.com>
Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com>
- Add FLOAT and REAL to numeric types table
- Document precision differences (~7 vs ~15 significant digits)
- Add warning about precision loss when casting to FLOAT
- Note PostgreSQL behavior difference
Note: DAR-584 referenced Cloud Dedicated, but this behavior is shared
across all InfluxDB 3 products via DataFusion SQL engine.
Closes DAR-584
* fix(ent3): Add link target and experimental caution for PachaTree option.
* feat(ent3): add experimental badge for --use-pacha-tree
Document the experimental PachaTree storage engine option with a
styled badge and caution callout. Add reusable .badge.experimental
class using the existing caution color palette for light/dark modes.
- Add experimental badge to serve options table and config-options
- Add badge theme variables referencing $article-caution-* colors
- Use custom heading ID to preserve #use-pacha-tree anchor
* Initial plan
* feat: add Documentation MCP server pages to chronograf, kapacitor, flux, and explorer
Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com>
* fix: update MCP page descriptions to include product names
Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com>
* fix: resolve product-name shortcode for v1/v0 versioned products
The shortcode previously only checked the second URL path segment to
identify products, which works for InfluxDB 3 (/influxdb3/core/) but
fails for older products where the second segment is a version number
(/chronograf/v1/, /flux/v0/).
Add namespace extraction (first path segment) and conditional logic to
look up products by namespace when the version is v1 or v0. This fixes
empty product names in meta descriptions for Chronograf, Telegraf,
Kapacitor, Flux, and InfluxDB Enterprise v1.
* feat: relocate v2/cloud MCP pages and add alt_links for cross-product navigation
- Move MCP server pages from reference/ to tools/ for InfluxDB v2 and Cloud
- Add alt_links frontmatter to all MCP pages for cross-product navigation
- Use product-name shortcode in descriptions for consistency
- Convert code-placeholders shortcode to fenced code block attributes
- Update shared content to use version-agnostic URLs
* Add multi-assistant installation instructions for documentation MCP server (#6836)
* Initial plan
* feat(mcp): add installation instructions for multiple AI assistants
Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com>
* refactor(mcp): replace Cline and Windsurf with GitHub Copilot and OpenCode
Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com>
Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com>
* chore(deps): update yarn dependencies
Run yarn to update lockfile with latest compatible versions.
* fix(influxdb3): correct Quix Streams guide for Cloud Dedicated
Extract downsample-quix content to shared file and fix product-specific
terminology, links, and prerequisites for Cloud Dedicated and Clustered.
- Use "database" terminology for Cloud Dedicated/Clustered
- Remove Docker from prerequisites (not used in guide)
- Add alt_links for cross-product navigation
- Fix broken TOC anchor links
- Add links to admin pages for tokens and databases
- Remove incorrect /reference/regions link for Cloud Dedicated
- Add lint rules for deprecated code-placeholders and py fence
Closes#6825
* Apply suggestions from code review
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* fix(influxdb3): fix broken code blocks in Quix Streams guide
Code blocks inside show-in shortcodes were missing closing fences,
causing the markdown to render incorrectly. Added proper fence
boundaries and placeholder key documentation for each code section.
Also adds TODO to content-editing skill about improving automation
for code-placeholder-key workflow.
* Docs v2 docs v2 pr6828 (#6829)
* fix(influxdb): Rename to match other pages. Remove alt_links
* chore(deps): bump ESLint to 10.0.0
* Update content/shared/v3-process-data/downsample/quix.md
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>