Major improvements to docs:create UX for both Claude Code and external tool integration:
**New `docs` CLI command:**
- Add scripts/docs-cli.js - main CLI with subcommand routing
- Add bin field to package.json for `docs` command
- Usage: `docs create` and `docs edit` (cleaner than yarn commands)
**Smart piping detection:**
- Auto-detect when stdout is piped (\!process.stdout.isTTY)
- When piping: automatically output prompt text (no flag needed)
- When interactive: output prompt file path
- --print-prompt flag now optional (auto-enabled when piping)
**Updated help text:**
- Show `docs create` syntax first, yarn as alternative
- Simplify examples with new CLI
- Document smart piping behavior
- Focus on two main workflows: Claude Code vs external agents
**Usage examples:**
# Inside Claude Code - automatic execution
docs create drafts/new-feature.md
# Pipe to external AI - prompt auto-detected
docs create FILE --products X | claude -p
docs create FILE --products X | copilot -p
# Pipe from stdin
echo 'content' | docs create --products X | claude -p
Benefits:
- Cleaner syntax (no yarn --silent needed)
- No manual --print-prompt flag when piping
- Consistent with industry tools (git, npm, etc.)
- Backward compatible with yarn commands
Change log() function to use console.error instead of console.log.
This ensures that when stdout is piped (e.g., to 'code -'), only
the prompt file path is sent through the pipe, while progress
messages remain visible on the terminal via stderr.
Usage:
echo 'content' | yarn --silent docs:create --products X | code -
When running outside Claude Code, script now outputs prompt file path
to stdout by default (or prompt text with --print-prompt flag).
This enables integration with external AI tools without requiring flags.
Inside Claude Code, script continues to run Task() agent automatically.
Changes:
- Add isClaudeCode() detection function
- Add outputPromptForExternalUse() helper
- Add PROMPT_FILE constant for .tmp/scaffold-prompt.txt
- Update both URL-based and draft-based workflows
- Update help text with environment-aware behavior examples
Allows piping prompt to other AI tools or saving to file:
yarn docs:create --print-prompt draft.md > prompt.txt
yarn docs:create --print-prompt draft.md | llm -m gpt-4
The flag:
- Prepares context and selects products
- Generates the full AI prompt
- Outputs to stdout and exits
- Works with both URL-based and draft-based workflows
- stdin now requires --products flag with product keys
- removed early return in promptUser() that prevented interactive prompts
- updated help text with stdin + --products examples
- prevents 'No products selected' error when running interactively
Resolved conflicts by keeping enhancements:
- stdin support for draft content
- link extraction and following (local files + external URLs)
- alphabetical product sorting with detected products first
- --from-draft and --follow-external flags
* chore: update notifications for InfluxDB 3.6 release
Updated the notifications for InfluxDB version 3.6, including changes to the title, slug, and message content.
* Update data/notifications.yaml
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* feat(ci): improve linting configuration for instruction files
- Add GitHub-flavored Markdown support with remark-gfm
- Create generic Vale config (.vale-instructions.ini) for instruction files
- Use pattern-based file inclusion instead of explicit file lists
- Mount repository to /workdir in remark-lint container to preserve node_modules
Changes:
- Add remark-gfm to .ci/remark-lint/package.json
- Create .remarkrc.yaml at repository root for instruction files
- Update content/.remarkrc.yaml to include remark-gfm
- Create .vale-instructions.ini for generic writing rules
- Update compose.yaml: mount repo to /workdir (preserves /app/node_modules)
- Update lefthook.yml: use glob patterns for uppercase .md files and .github/**/*.md
- Update DOCS-CONTRIBUTING.md: remove empty CONTRIBUTING.md directory reference
Benefits:
- Automatic inclusion of new instruction files without config updates
- Pattern matching for uppercase .md files (DOCS-*.md, CLAUDE.md, etc.)
- Coverage for .github/, .claude/, api-docs/ directories
- GFM features: tables, task lists, strikethrough, autolinks, footnotes
- Separate linting rules for instruction files vs product documentation
feat(lint): separate remark-lint auto-fix for instructions vs report-only for content
- Split lint-markdown into two hooks:
- lint-markdown-instructions: Auto-fixes README, DOCS-*.md, .github/**, .claude/**
- lint-markdown-content: Reports issues in content/**, api-docs/** without modifying
- Changed remark-lint volume mount from read_only: true to read_only: false
- Instruction files now behave like Prettier (auto-fix + stage)
- Content files report errors and block commits until manually fixed
* chore(instructions): Add content/shared details, husky/lefthook updates
* feat(influxdb3): Core/Enterprise: Upgrade instance or cluster:- Addresses recent internal requests for upgrade steps- Provide examples for Core or Enterprise single node (instance)- Provide steps recommended by Engineering and examples- Link from related pages
* Apply suggestion from @sanderson
Co-authored-by: Scott Anderson <sanderson@users.noreply.github.com>
* Apply suggestion from @sanderson
Co-authored-by: Scott Anderson <sanderson@users.noreply.github.com>
* Apply suggestion from @sanderson
Co-authored-by: Scott Anderson <sanderson@users.noreply.github.com>
* Apply suggestion from @sanderson
Co-authored-by: Scott Anderson <sanderson@users.noreply.github.com>
* Apply suggestion from @sanderson
Co-authored-by: Scott Anderson <sanderson@users.noreply.github.com>
* docs(enterprise): clarify catalog version constraints for v3.3.x to v3.4.x upgrade
- Specify that catalog modification constraint applies when upgrading from v3.3.x (or earlier) to v3.4.x
- Add troubleshooting section noting that different version transitions may have different constraints
- Direct users to check release notes for version-specific upgrade requirements
Resolves review comment from hiltontj about catalog version boundaries.
---------
Co-authored-by: Scott Anderson <sanderson@users.noreply.github.com>
* chore(enterprise_influxdb): specify Enterprise v1 and remove new signup notes:
- Removes instructions for new signups at portal.influxdata (at Marketing's request)
- Uses Enterprise v1 in titles and descriptions
- Updates title metadata template to use InfluxDB Enterprise v1
- Updates products.yml to use InfluxDB Enterprise v1
- Removes unused enterprise-name/-link shortcodes
I chose InfluxDB Enterprise v1 over InfluxDB v1 Enterprise due to recent usage patterns and because it's compatible with uses like "InfluxDB Enterprise 1.11.x" without being redundant.
* Apply suggestion from @jstirnaman
* Apply suggestion from @jstirnaman
* Apply suggestion from @jstirnaman
* docs(influxdb3): update write endpoint recommendations and add Telegraf guidance
- Update write endpoint recommendations for Core/Enterprise
- Add Telegraf output plugin guidance (v1.x and v2.x)
- Improve introductory content and formatting
- Change Note to Tip for write endpoint recommendations
- Add italics to v1/v2 for clarity
* docs(influxdb3): add precision parameter comparison and format details
- Add precision comparison table across v1, v2, v3 write APIs
- Document auto precision detection with exponential notation (5e9, 5e12, 5e15)
- Add tabbed code examples for different precision values
- Update OpenAPI specs with long-form precision values only (auto, nanosecond, microsecond, millisecond, second)
- Add timestamp conversion details for internal storage
- Use long-form precision values in all examples
Note: Currently /api/v3/write_lp only supports long forms despite source code indicating short form support.
Related to #6472 - precision parameter behavior may have bugs
* feat(influxdb3): Core and Ent performance tuning guide:Add an admin/performance-tuning/ page with specific workload and capacity configurations.Part of #6403.
* fix(influxdb3): product-specific link fragments for flags
* fix(influxdb3): enterprise-specific link fragments
* Apply suggestion from @jstirnaman
* fix(influxdb3): duplicate licensing and resource limits sections- Rem… (#6470)
* fix(influxdb3): duplicate licensing and resource limits sections- Remove duplicate licensing section- Resolve resource limits duplicates, merging details into the Resource limits section.
* fix(influxdb3): fix broken links and enterprise-only flags in config options
- Comment out TOC links to undocumented datafusion-runtime-* dev flags
- Wrap enterprise-only section references (#licensing, #resource-limits) in conditionals
- Fix num-datafusion-threads incorrectly marked as enterprise-only
- Move Resource Limits section heading outside enterprise wrapper
Resolves broken fragment links for both Core and Enterprise builds.
* feat(enterprise): add cluster management documentation (#6431)
Add comprehensive guide for managing InfluxDB 3 Enterprise clusters including:
- Node configuration and deployment
- Cluster initialization and scaling
- Node removal and replacement procedures
- Best practices for production deployments
* Fixes multiple influxdb3 config option issues:
- Fixed option placement (global vs serve options) in performance-tuning.md
- Fixed --datafusion-num-threads option name (was --num-datafusion-threads)
- Fixed --parquet-mem-cache-size option name and defaults for Core
- Commented out unreleased --compaction-row-limit option
- Added v3.0.0 breaking changes to release notes
- Updated config-options.md with correct defaults and value formats
All changes verified against InfluxDB v3.5.0 release binaries and git history.
* fix(influxdb3): config options in clustering.md
- Correctly place server options
- Comment out unreleased options
* feat(plugins): add automated plugin documentation sync workflow
- Add GitHub Actions workflow for syncing plugin docs from influxdb3_plugins
- Create issue template for triggering sync requests
- Add Node.js transformation script (port_to_docs.js) with ES modules
- Add mapping configuration (docs_mapping.yaml) for all official plugins
- Add npm scripts for plugin sync operations
- Include comprehensive documentation in helper-scripts/influxdb3-plugins/README.md
The workflow provides:
- Issue-triggered automation with no cross-repo secrets required
- Validation of source READMEs against template requirements
- Content transformation with Hugo shortcodes and GitHub URLs
- Screenshot generation for visual validation
- Automatic PR creation with detailed change summaries
* Updated source paths in docs_mapping.yaml to use ./influxdb3_plugins/ instead of ../influxdb3_plugins/ to match what the
GitHub Actions workflow expects when it clones the
repository:
1. GitHub Actions workflow clones to ./influxdb3_plugins/
2. docs_mapping.yaml references
./influxdb3_plugins/influxdata/[plugin]/README.md
3. Local development can manually clone the repo to the same
location for testing
Tupdated all the source paths in
docs_mapping.yaml to use ./influxdb3_plugins/ instead of
../influxdb3_plugins/. This now matches exactly what the
GitHub Actions workflow expects when it clones the
repository.
The paths are now consistent:
1. GitHub Actions workflow clones to ./influxdb3_plugins/
2. docs_mapping.yaml references
./influxdb3_plugins/influxdata/[plugin]/README.md
3. Local development can manually clone the repo to the same
location for testing
This resolves the inconsistency and makes the automation
more reliable. For local development, developers would
just need to run:
git clone
https://github.com/influxdata/influxdb3_plugins.git
From the docs-v2 root directory, and then they can use the
same paths that the automation uses.
* Updated source paths in docs_mapping.yaml to use ./influxdb3_plugins/ instead of ../influxdb3_plugins/ to match what the
GitHub Actions workflow expects when it clones the
repository:
1. GitHub Actions workflow clones to ./influxdb3_plugins/
2. docs_mapping.yaml references
./influxdb3_plugins/influxdata/[plugin]/README.md
3. Local development can manually clone the repo to the same
location for testing
Tupdated all the source paths in
docs_mapping.yaml to use ./influxdb3_plugins/ instead of
../influxdb3_plugins/. This now matches exactly what the
GitHub Actions workflow expects when it clones the
repository.
The paths are now consistent:
1. GitHub Actions workflow clones to ./influxdb3_plugins/
2. docs_mapping.yaml references
./influxdb3_plugins/influxdata/[plugin]/README.md
3. Local development can manually clone the repo to the same
location for testing
This resolves the inconsistency and makes the automation
more reliable. For local development, developers would
just need to run:
git clone
https://github.com/influxdata/influxdb3_plugins.git
From the docs-v2 root directory, and then they can use the
same paths that the automation uses.
* Jmercer/plugin sync test (#6468)
* fix: update workflow branch references from master to main
* fix: update issue template branch references from master to main
- Update sync-plugin-docs.yml description (line 40)
- Update placeholder from 'master' to 'main' (line 41)
- Update default value from 'master' to 'main' (line 42)
- Add influxdb3_plugins/ to .gitignore
- Ensures template matches influxdb3_plugins default branch
* Update .gitignore
---------
Co-authored-by: Jason Stirnaman <stirnamanj@gmail.com>
* Update docs_mapping.yaml
* Apply suggestion from @Copilot
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Apply suggestion from @jstirnaman
* Apply suggestion from @jstirnaman
* Apply suggestion from @jstirnaman
* Apply suggestion from @jstirnaman
* Use <docs-root>/.ext/influxdb3_plugins for the source path
---------
Co-authored-by: Jameelah Mercer <36314199+MeelahMe@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Addresses DAR #470 by documenting:
- Expected kubectl warning that can be safely ignored
- Troubleshooting steps for 'no license found' errors after renewal
- Service restart workaround when validation doesn't auto-detect new license
- License validation timing information
closesinfluxdata/DAR#470
* docs(cli): fix global vs serve-specific flag documentation
- Remove --verbose from global flags (it's serve-specific)
- Document --num-io-threads as global-only flag
- Add clear examples showing correct flag positioning
- Update serve.md files with global flag usage notes
- Fix config-options.md to separate Core/Enterprise examples
Resolves incorrect CLI usage patterns that would cause errors.
Global flags must go before 'serve', serve-specific flags go after.
* docs(cli): remove Tokio runtime options from CLI index pages
- Remove detailed Tokio runtime options tables from CLI index pages
- Replace with simplified global options and link to config-options
- Add examples showing correct global flag positioning
- Fix --verbose usage to be serve-specific (after serve command)
- Add --num-io-threads example as global flag (before serve command)
These detailed options are now documented in config-options.md with
proper global vs serve-specific categorization.