* chore(ci): upgrade link-checker to v1.3.1 and improve reporting
- Update workflow to use link-checker v1.3.1
- Fix heredoc bug that prevented template variable evaluation
- Improve broken link reporting with:
- Severity indicators (error vs warning)
- Table format for better readability
- Content file path mapping for easier fixing
- Collapsible troubleshooting tips
- Add fallback parsing for different JSON output structures
- Update config file comments to reference v1.3.1
https://claude.ai/code/session_015JNkhFiwJnoAxJLBP7AiyZ
* fix(ci): fix sync-link-checker-binary workflow
- Add missing checkout step (gh release requires a git repo)
- Use DOCS_TOOLING_TOKEN secret for cross-repo private access
- Use GitHub API to fetch release info instead of direct URL
- Add binary size validation to catch failed downloads
- Handle optional checksums.txt gracefully
* fix(ci): align workflow JSON parsing with link-checker v1.3.1 output
Tested link-checker v1.3.1 locally and discovered the actual JSON
structure differs from what the workflow assumed:
- summary.error_count (not broken_count)
- errors[]/warnings[]/info[] arrays (not files[] or broken_links[])
- Each entry: {url, status, error, file, line, severity}
Changes:
- Fix summary field names to match v1.3.1 JSON schema
- Parse .errors[] and .warnings[] arrays correctly
- Show warnings in collapsible section (don't fail CI)
- Map public/ paths to content/ paths for GitHub annotations
- Handle missing line numbers gracefully
- Cap warnings display at 20 with note about artifacts
* fix: broken links from issues #6682, #6461
- Fix wrong path /influxdb/v2/upgrade/v2-beta-to-v2/ →
/influxdb/v2/install/upgrade/v2-beta-to-v2/ (#6682)
- Fix fragment mismatch: #disable-the-internal-database →
#disable-the-_internal-database (Hugo renders backtick `_internal`
with underscore in anchor) (#6461)
- Fix dead links to /flux/v0/stdlib/universe/from →
/flux/v0/stdlib/influxdata/influxdb/from/ (from() moved from
universe to influxdata/influxdb package) (#6682)
closes#6682, closes#6461
* Update content/influxdb/v1/flux/get-started/_index.md
Force error to test workflow
* fix(ci): reclassify file-not-found warnings as errors in link checker
link-checker v1.3.1 classifies missing local files as warnings because
they have no HTTP status code and don't match error_codes=[404,410].
This meant broken internal links (like /flux/v0/stdlib/influxdata/influxdbfrom/)
were reported as warnings but didn't fail CI.
Fix by post-processing link-check-results.json to move "Cannot find file"
entries from warnings to errors before evaluating the check result.
Also reverts the intentional test bug in influxdb/v1/flux/get-started/_index.md.
* test(ci): intentionally broken fragment to test link-checker detection
Introduces broken heading anchor #tools-for-working-with-fluxxx (extra x)
to verify whether link-checker/lychee validates fragment anchors on local
files. Also documents the known gap: lychee doesn't validate fragments on
local file URLs (it checks file existence but doesn't open index.html to
verify heading anchors exist).
This commit should be reverted after testing.
* fix(ci): revert test fragment, document fragment checking limitation
Reverts the intentional broken fragment test. Workflow confirmed that
lychee does not validate heading anchors on local file URLs — it checks
file/directory existence but doesn't open index.html to verify fragments.
The ^file://.*# exclusion must remain to prevent false positives from
Hugo pretty URL resolution (lychee resolves /page#frag as file:///page
instead of file:///page/index.html).
Updated config comments to document this known gap clearly.
* chore(ci): update link-checker to v1.4.0
* Update link-checker to v1.5.0 in PR workflow
* fix(platform): broken link
---------
Co-authored-by: Claude <noreply@anthropic.com>
* fix(version-detector): use centralized getGrafanaLink for all Grafana URLs
Refactor handleAuthorizationHelp to use getGrafanaLink() instead of
hardcoded URLs, ensuring all Grafana links come from a single source.
Also fix incorrect URLs in getGrafanaLink mapping:
- InfluxDB OSS 2.x: /visualize-data/ → /tools/
- InfluxDB Enterprise: /influxdb/enterprise/ → /enterprise_influxdb/v1/
- InfluxDB Cloud (TSM): /visualize-data/ → /tools/
- InfluxDB Cloud v1: now links to Enterprise v1 docs (Cloud v1 is
Enterprise under the hood)
* refactor(version-detector): DRY up localhost:8086 references
Extract HOST_EXAMPLES to a class-level constant and add DEFAULT_HOST
and DEFAULT_HOST_PORT constants to eliminate duplicate localhost:8086
strings throughout the code.
- Move hostExamples from local variable to class constant
- Use DEFAULT_HOST for URL placeholder and comparison checks
- Use DEFAULT_HOST_PORT for docker curl command examples
* feat(ask-ai): Support source group IDs in Ask AI trigger links
* feat(version-detector): Present context-aware links
- Add ai_source_group_ids fields to ProductConfig interface
- Improve SCSS for doc and Ask AI links
- Update Grafana docs to add aliases and context param for detector
- Update modal partial to include AI source group IDs in config
- Remove custom Cypress commands for version detector
- Update E2E tests to use direct Cypress commands
* Revise release notes for InfluxDB 3 catalog path structure
Updated release notes to reflect operational and security improvements, including changes to catalog path structure and log verbosity.
* Clarify file vs directory distinction in catalog v2 path structure (#6740)
* Initial plan
* Clarify that snapshot is a file and logs is a directory
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 <198982749+Copilot@users.noreply.github.com>
* test(influxdb3): Improve InfluxDB 3 Core and Enterprise Docker services
Improve Docker Compose services and initialization script for testing InfluxDB 3 Core and Enterprise endpoints.
compose.yaml changes:
- Add influxdb3-core service with per-worktree data isolation
- Add influxdb3-core-noauth service for endpoint testing without auth
- Add influxdb3-enterprise service with trial license configuration
- Fix env_file handling (use optional path, remove variable override)
- Add detailed usage comments for each service
New files:
- test/scripts/init-influxdb3.sh: Helper script to initialize services,
create directories, and validate configuration
- Enterprise configuration uses shared data at ~/influxdata-docs/.influxdb3/
to persist license and data across worktrees.
- .claude/skills/influxdb3-test-setup/SKILL.md. It covers:
1. Architecture overview - Shows the directory structure for shared vs per-worktree data
2. Quick reference - Common commands table
3. Setup workflows - Core only, Enterprise only, or both
4. Worktree-specific databases - How to create isolated databases named after the worktree
5. Test environment configuration - Setting up .env.test files for code block tests
6. Troubleshooting - Common issues (license, auth, ports)
7. Service comparison - Core vs Enterprise differences
The skill references the init script but keeps database creation as a separate workflow step, allowing flexibility for different testing scenarios.
* docs(copilot): Document influxdb3-test-setup skill in Copilot instructions (#6751)
* Initial plan
* docs(copilot): Add influxdb3-test-setup skill documentation to instructions
- Add InfluxDB 3 Test Setup subsection under Testing section with quick reference commands
- Add Skills section under Specialized Instructions with all available skills
- Document influxdb3-test-setup skill alongside existing skills (cypress-e2e-testing, docs-cli-workflow, hugo-template-dev)
- Include links to skill files and brief descriptions for discoverability
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>
* chore(ci): Refactor InfluxDB 3 token handling to use JSON secrets
- Store Core and Enterprise tokens as JSON files with metadata
- Update SKILL.md instructions for jq-based token extraction
- Use Docker secrets for secure token mounting in compose.yaml
- Update init-influxdb3.sh to generate JSON token files
- Refactor compose.yaml to mount token files as secrets, not binds
- Standardize API examples and environment setup for new token format
* docs(influxdb3): Update token documentation for Docker Compose and CI/CD (#6756)
- Add 'description' field to offline admin token schema alongside 'expiry_millis'
- Add new section for Docker Compose with preconfigured admin tokens
- Document Docker secrets for secure token management
- Add CI/CD setup instructions using environment variables
- Standardize on INFLUXDB3_AUTH_TOKEN environment variable
Both 'description' and 'expiry_millis' are optional fields supported
by the InfluxDB 3 server when reading preconfigured token files.
* Revert "docs(influxdb3): Update token documentation for Docker Compose and CI…" (#6757)
This reverts commit 5c786ac2fd.
---------
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
- Updates identify-version guide and Core/Ent3 API specs
- Use GET. HEAD `/ping` responds with `404`
- Specify default auth requirement for Enterprise
- Tested with Core and Ent v3.8.0
* Initial plan
* fix(influxdb/v2): correct Windows download link to use _amd64 suffix
Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com>
* fix(shortcode): Add prPreviewPathOffset support to latest-patch shortcode
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>
* docs(v2): Specify versions for v2 Cloud and OSS
* docs(v2): Use specific version for OSS v2, add ToC
* docs(v1): Use specific versions and names. Replace Enterprise v1 with 3
Ent.
* docs(v1): More detailed description for OSS v1 release notes. Repetition
fixes.
* docs(v1): Update Download instructions. Add version specificity
* docs(v1): OSS v1 specificity, fix config commands, cleanup lists
* docs(cloud1): Shared note shortcode to guide Cloud 1 users to Enterprise
documentation, Cloud 1 support, and v3 migration
* Provide Cloud 1.x in version detector and product selector menu,
simplify InfluxDB 1.x section
- Simplify InfluxDB 1.x section on platform page to product links and
migration guidance
- Remove detailed TICK stack and Enterprise feature descriptions
- Update all Cloud 1 links to point to /platform/#influxdb-cloud-1
- Keep Cloud 1 infrastructure intact:
- products.yml configuration
- Product selector entry (links to platform page section)
- Version detector for *.influxcloud.net service URLs
- Ask AI integration
Files changed:
- content/platform/_index.md (simplified, updated links)
- content/shared/identify-version.md (updated links)
- layouts/shortcodes/influxdb-cloud1-note.html (updated links)
- assets/js/utils/product-mappings.ts
- assets/js/influxdb-version-detector.ts
Closes /influxdata/dar/issues/563
* Delete content/influxcloud/v1/_index.md
* Update content/enterprise_influxdb/v1/_index.md
* Update content/influxdb/v1/introduction/install.md
* Fix PR Preview skipping when layout changes include wildcard URL patterns (#6725)
* Initial plan
* Fix: Strip wildcards from URL paths in PR Preview detection
- Update normalizeUrlPath() to remove asterisk wildcards
- Collapse multiple consecutive slashes after wildcard removal
- Add backtick as valid URL delimiter for code-wrapped URLs
- Add comprehensive test cases for wildcard handling
- Update backtick test to reflect safer truncation behavior
Fixes issue where PR descriptions with wildcard patterns like
`/influxdb3/enterprise/*` were not properly extracted, causing
PR Preview to skip even when URLs were provided.
Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com>
* docs: Clarify backtick handling in URL validation
Add comment explaining that backticks act as delimiters in regex
extraction, preventing them from appearing in extracted paths even
though they're in the rejection pattern.
Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com>
* docs: Improve comments explaining normalization and regex logic
- Clarify why wildcards are removed before slash collapsing
- Document the defense-in-depth backtick handling
- Add examples of the normalization process
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>
* Update content/platform/_index.md
Co-authored-by: Scott Anderson <sanderson@users.noreply.github.com>
* refactor: organize cloud1-note shortcode into influxdb directory (#6734)
Move the Cloud 1 note shortcode from influxdb-cloud1-note.html
to influxdb/cloud1-note.html to follow the existing organizational
pattern in layouts/shortcodes/influxdb/.
This change also applies the Cloud 1 content updates from PR #6729
using the new organized shortcode path: {{< influxdb/cloud1-note >}}
closesinfluxdata/docs-v2#6729
Co-authored-by: Claude <noreply@anthropic.com>
---------
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Scott Anderson <sanderson@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
- Update latest_patch version in products.yml from 1.4.0 to 1.6.2
- Create release notes page for Explorer
- v1.6.2 includes important fixes and improvements for Ask AI
closesinfluxdata/docs-v2#6737
Co-authored-by: Claude <noreply@anthropic.com>
* fix(influxdb3): source comments
* docs(influxdb3): fix plugin path handling and improve Get Started clarity
Fixes issues with plugin filename resolution and improves progressive
disclosure in the processing engine Get Started guide.
- Update `--plugin` flag to `--path` (current CLI syntax)
- Clarify plugin filename must be provided without relative/absolute paths
- Add note explaining path resolution relative to `--plugin-dir`
- Document single-file vs multi-file plugin path requirements
- Link to detailed multi-file plugin structure documentation
- Add "Before you begin" section listing required setup steps
- Add prerequisites to table of contents
- Improve progressive disclosure by front-loading essentials
- Update trigger type from "Data write" to "WAL rows" (consistent with `influxdb3 create trigger --help`) with WAL link
- Replace `--plugin` with `--path` in trigger creation example
- Fix syntax error in enable trigger example (missing backslash)
- Clarify plugin example as "data write (WAL) plugin"
- Update code comments for clarity and remove outdated notes
- Specify "wal_rows trigger specification" terminology
- Specify testing "process_writes (WAL) plugin" for clarity
- Reference multiple test commands, not just wal_plugin
- Add link to schedule_plugin test command
- Clarify that PLUGIN_FILENAME should be filename only
- Prevents path resolution errors users encountered
- Aligns documentation with current CLI behavior
- Improves Get Started guide readability and flow
- Reduces confusion about plugin file handling
Closes#588
* docs(influxdb3): Docker Compose optional plugin directory
- Added inline comments to Docker Compose examples: `# Optional: only
needed for processing engine plugins`
- Appears for both `--plugin-dir` flag and volume mount
- Helps users understand they can skip this if not using plugins
- Better progressive disclosure - users see it's optional without
needing separate explanation
* docs(influxdb3): Replace --plugin-filename with --path
- Uses `--path` for plugins, replacing deprecated `--plugin-filename`
- Replaces "Data write" with "WAL rows" to be consistent with CLI help
docs
* Update content/shared/influxdb3-get-started/processing-engine.md
* fix(deps): add missing yarn.lock updates for puppeteer
The puppeteer dependency was added to package.json in commit 784956a31
but yarn.lock was not updated, causing CI failures with --frozen-lockfile.
* chore(deps): upgrade puppeteer to 24.35.0
- Upgrade puppeteer from 23.11.1 to 24.35.0
- Fix deprecated page.waitForTimeout() - replaced with Promise/setTimeout
- Fix deprecated headless: 'new' - now just uses headless boolean
The 'new' headless mode is now the default in Puppeteer 24.
Add Puppeteer utilities and scripts to enable AI agents to interactively
test and debug the documentation site during development.
Dependencies: puppeteer, pixelmatch, pngjs
Scripts: debug:browser, debug:screenshot, debug:inspect
Tools: 20+ helper functions, example scripts, comprehensive documentation
Enables AI agents to visually debug pages, test components, monitor
performance, and detect issues during development.
Co-authored-by: Claude <noreply@anthropic.com>
* REAL-WORLD TESTING ────────────────── BEFORE FIX: ─────────── ❌ Agent
runs: docs edit <url> ❌ Editor spawns and blocks ❌ Agent hangs for 30+
seconds ❌ Workflow times out or fails ❌ Manual intervention required
AFTER FIX: ────────── ✅ Agent runs: docs edit <url> ✅ Editor spawns
detached ✅ CLI exits in <1 second ✅ Agent continues processing ✅
Workflow completes successfully ✅ No manual intervention needed
ISSUE #21: ✅ RESOLVED ───────────────────────
The docs edit command now: • Works perfectly in automated workflows •
Doesn't hang AI agents or scripts • Exits immediately by default •
Supports blocking mode via --wait flag • Handles both URL formats •
Provides clear feedback • Has comprehensive documentation
DEPLOYMENT STATUS: ✅ READY ────────────────────────────
All tests pass: ✓ Unit tests (7/7) ✓ CLI tests ✓ Real-world agent
workflow ✓ Coverage Gap issue processing ✓ URL format support ✓
Non-blocking verification ✓ Blocking mode verification
Scenario: AI agent processes GitHub Coverage Gap issues Issues: #6702,
Results: • Fetched issues from GitHub ✅ • Used docs edit to locate files
✅ • Identified missing docs (Coverage Gaps) ✅ • Found existing docs ✅ •
No hangs, no timeouts ✅ • Total time: 2 seconds for 3 issues ✅
* refactor(cli): move docs CLI to dedicated scripts/docs-cli directory
- Organize all CLI tools and tests in scripts/docs-cli/
- Update package.json bin and script paths
- Update setup-local-bin.js to point to new location
- Fix import paths in docs-edit.js and docs-create.js
- Update SKILL.md with new features (--wait, --editor, path support)
- Update ISSUE-21-FIX-README.md with new structure
- Add comprehensive README.md for docs-cli directory
- All tests passing, non-blocking behavior verified
Closes#21
* feat(cli): add non-blocking editor support to docs create
- Add --open flag to open created files in editor
- Add --wait flag for blocking mode (use with --open)
- Add --editor flag for explicit editor selection
- Uses same editor resolution and process management as docs edit
- Non-blocking by default to prevent agent hanging
- Update all documentation with new examples
- Maintains backwards compatibility (--open is optional)
This completes the non-blocking implementation across both
docs edit and docs create commands.
* docs: update Copilot instructions with complete CLI tool reference
- Add docs create --open to Quick Reference table
- Document both create and edit commands comprehensively
- Add editor configuration section (shared between commands)
- Update content.instructions.md with CLI workflow examples
- Add NON-BLOCKING-IMPLEMENTATION-COMPLETE.md summary document
- Clarify non-blocking behavior for AI agents
* chore: remove ephemeral documentation files
Remove temporary documentation files used during development:
- CLAUDE-docs-tooling-issue21.md
- IMPLEMENTATION-SUMMARY.md
- ISSUE-21-FIX-README.md
- NON-BLOCKING-IMPLEMENTATION-COMPLETE.md
- TEST-RESULTS.md
All relevant documentation has been integrated into:
- README.md
- scripts/docs-cli/README.md
- .github/copilot-instructions.md
- .github/instructions/content.instructions.md
- .claude/skills/docs-cli-workflow/SKILL.md
* Fix url-parser.js broken import by moving to shared library location (#6727)
* Initial plan
* refactor: move url-parser.js to shared library location and fix imports
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>
* Update scripts/docs-cli/__tests__/process-manager.test.js
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update scripts/docs-cli/__tests__/editor-resolver.test.js
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Closes influxdata/dar/issues/587
- Wrong flag name corrected
- Added `--aws-default-region` flag with explanatory note
- Added `--plugin-dir` requirement documentation for process
- Add new cypress-e2e-testing skill with:
- Hugo server management guidance (port 1315, auto-start)
- Test execution patterns and quick reference
- API reference test prerequisites
- Failure analysis and debugging strategies
- Error pattern categorization
- Update docs-cli-workflow skill with related skills section
- Streamline hugo-template-dev skill content