Commit Graph

32 Commits (b4a0eea0a34249ccb14c38fd60037efec7cf3c77)

Author SHA1 Message Date
github-actions[bot] 0c2f9e8dbc
fix(plugins): porting README details to docs (#6806)
- Handle multi-line emoji metadata ( on line 1, 🔧 on line 2)

    Content updates:
    - Remove residual emoji metadata from 5 plugins
    - Clarify HTTP request body parameters in notifier plugin
    - Update CLI examples (--plugin-filename → --path) from source
    - Preserve "InfluxDB 3 Explorer" product name
    - Fix "Pandas" → "pandas" capitalization

Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com>
2026-02-09 14:55:23 -06:00
Jason Stirnaman b204de8ffe
chore: improve docs-cli with unified flag syntax and YAML config (#6778)
* chore(instruction): Add content-editing skill documentation workflow
guide

* Phase 1: Add CLI configuration system

- Add config-loader.js with .env support and smart repo detection
- Add config/.env.example template (no real values)
- Add config/README.md with comprehensive configuration docs
- Configuration uses generic flags (DOCS_ENTERPRISE_ACCESS) not private repo names
- All .env files already gitignored via existing .gitignore pattern

Validation:
 Config loads and finds docs-v2 repo automatically
 Defaults work without .env file (hasEnterpriseAccess=false)
 .env files properly gitignored

* Phase 2: Migrate libraries with security fix and quick wins

**Shared Libraries Added:**
- content-utils.js - Shared content detection and management
- api-auditor.js - API documentation auditing (WITH SECURITY FIX)
- api-audit-reporter.js - API audit report generation
- api-parser.js - Parse API definitions from code
- api-request-parser.js - Parse API request/response specs
- api-doc-scanner.js - Scan documentation for API coverage
- telegraf-auditor.js - Telegraf plugin auditing
- telegraf-audit-reporter.js - Telegraf audit reports
- version-utils.js (NEW) - Version normalization utilities

**SECURITY FIX APPLIED:**
 Removed: hardcoded 'https://github.com/influxdata/influxdb_pro.git'
 Removed: directory name 'influxdb-pro-clone'
 Added: Uses process.env.INFLUXDB_PRO_REPO_URL from config
 Added: Clear error message if not configured
 Added: Generic directory name 'enterprise-clone'

**Quick Wins Added:**
1. Version normalization (version-utils.js)
   - Handles v3.9, 3.9, v3.9.0, 3.9.0 automatically
   - Suggests matching tags when version not found

2. Enhanced path discovery (config-loader.js)
   - Searches parent directories (up to 3 levels)
   - Finds sibling repositories automatically

3. Progress indicators (deferred to Phase 3)
   - Will add ora package with commands

Validation:
 grep shows NO 'influxdb_pro' or 'influxdb-pro' references
 api-auditor.js uses process.env.INFLUXDB_PRO_REPO_URL
 All library files import successfully

* Phase 3: Add new commands

**Commands Added:**
- audit.js - API and Telegraf documentation auditing
- release-notes.js - Generate release notes from git commits
- add-placeholders.js - Add placeholder syntax to code blocks (moved from scripts/)

**Changes:**
- Created scripts/docs-cli/commands/ directory
- Wrapped add-placeholders.js for CLI router compatibility
- Updated package.json: docs:add-placeholders script path
- Added CLI-MIGRATION-DESIGN.md documentation

**Command Structure:**
All commands export default async function for unified CLI router:
  export default async function commandName({ args, command }) { ... }

Validation:
 All three command files present in commands/
 add-placeholders.js has export wrapper
 package.json points to new location

* Phase 4: Update existing commands (create, edit)

**Commands Updated:**
- Moved docs-create.js → commands/create.js
- Moved docs-edit.js → commands/edit.js

**Changes:**
Both commands now:
- Located in commands/ directory for consistency
- Use unified CLI structure (export default async function)
- Maintain findDocsV2Root() for portability
- Can be called via router or directly

**Files Removed:**
- scripts/docs-cli/docs-create.js (moved to commands/)
- scripts/docs-cli/docs-edit.js (moved to commands/)

Validation:
 Old files removed
 New files in commands/ directory
 Git detected as rename (preserves history)
 Both have proper export wrappers for CLI router

* Phase 5: Update router with dynamic command loading

**Router Updated:**
- Replaced basic router with enhanced version from docs-tooling
- Dynamic command loading from ./commands/ directory
- Comprehensive help with all commands listed
- Better error handling with DEBUG mode support
- Version flag (--version) support

**Changes:**
- Updated help text for docs-v2 (was docs-tooling)
- Added add-placeholders command to help
- Fixed configuration path references
- Updated GitHub URL to docs-v2

**Features:**
- Handles --help, --version, unknown commands
- Shows usage on error
- DEBUG env var for stack traces
- Clean error messages for missing commands

Validation:
 docs --help shows all 5 commands
 Help text references correct paths
 Router loads commands dynamically
 Error handling works correctly

* Fix: Correct package.json path for --version flag

The router was looking in scripts/package.json instead of repo root.
Updated to go up two levels: docs-cli -> scripts -> repo root

Test: npx docs --version now works correctly

* feat: Enhance docs CLI with placeholders alias and update documentation

- Add command alias support to router (placeholders -> add-placeholders)
- Update docs-cli-workflow SKILL.md with all 5 CLI commands
- Update content-editing SKILL.md quick reference with new commands
- Create consolidated influxdb3-tech-writer agent for all v3 products
- Document tech-writer agent consolidation recommendation

* chore(claude): Consolidate tech-writer agents:

1. **influxdb3-tech-writer** (consolidated) - Handles ALL InfluxDB 3
products
   - InfluxDB 3 Core (self-hosted, open source)
   - InfluxDB 3 Enterprise (self-hosted, licensed)
   - InfluxDB 3 Cloud Dedicated (managed, dedicated)
   - InfluxDB 3 Cloud Serverless (managed, serverless)
   - InfluxDB 3 Clustered (Kubernetes)

2. **influxdb1-tech-writer** (unchanged) - Handles InfluxDB v1 legacy
products
   - InfluxDB v1 OSS
   - InfluxDB v1 Enterprise
   - Chronograf, Kapacitor

* fix: Fix CLI import paths and add npm run scripts

- Fix create.js imports: content-scaffolding, file-operations, url-parser
  now correctly reference ../../lib/ (scripts/lib/)
- Fix edit.js import: url-parser now references ../../lib/
- Fix create.js REPO_ROOT: change const to let for reassignment
- Update package.json with all docs:* npm scripts routing through unified CLI
- Improve error handling: distinguish unknown commands from runtime errors

* fix: Fix remaining dynamic import paths in create.js, add integration tests

- Fix dynamic imports in create.js (lines 487, 1286) using wrong paths
- Add cli-integration.test.js that catches import/module errors by
  actually executing commands, not just testing --help
- Tests verify commands load and run without ERR_MODULE_NOT_FOUND
- Update run-tests.sh to include integration tests

This would have caught the import path errors that broke 'docs create'.

* fix: Fix argument parsing for CLI router, improve integration tests

- create.js: Pass args from router to parseArgs() instead of re-reading
  process.argv (which includes 'create' as first positional)
- add-placeholders.js: Refactor to defer argument parsing to main()
  instead of parsing at module load time
- cli-integration.test.js: Stricter tests that check exit codes and
  error patterns, not just import errors
- Tests now verify commands actually execute successfully, catching
  runtime errors that --help tests would miss

* fix: Fix .tmp directory location and worktree detection

- findDocsV2Root(): Fix package.json name check (@influxdata/docs-site)
- findDocsV2Root(): Prioritize cwd walk-up over env var to find worktrees
- create.js: Change path constants to let for proper reassignment
- .tmp now correctly created in repo root, not scripts/docs-cli/

* chore(docs-cli): Handle piping in create command with helpful errors and
skips

* refactor(docs-cli): unify flag syntax and improve configuration

- Separate --products (product keys) from --repos (paths/URLs) in
  release-notes and audit commands
- Use consistent <positional> --flags syntax across commands
- Replace INFLUXDB_PRO with INFLUXDB_ENTERPRISE naming
- Move config from .env to YAML format (~/.influxdata-docs/docs-cli.yml)
- Output release notes to .tmp/release-notes/ (gitignored)
- Add integration tests for new flag syntax
- Update help text to reflect unified CLI usage

* chore: remove deprecated release-notes script and configs

- Remove helper-scripts/common/generate-release-notes.js (migrated to unified CLI)
- Remove orphaned config files (influxdb-v1.json, influxdb-v2.json, etc.)
- Update workflows to reference unified CLI (docs release-notes)
- Update helper-scripts READMEs to remove deprecated documentation

* feat(docs-cli): add path support to --products flag

Add a unified product-resolver module that accepts content paths
(e.g., /influxdb3/core) in addition to product keys (influxdb3_core)
for the --products flag across all docs CLI commands.

Changes:
- Add lib/product-resolver.js for path-to-key resolution
- Update audit command: remove positional args, use --products/--repos
- Update release-notes: add path support, enforce mutual exclusion
- Update create: add path support via resolveProducts()
- Update main CLI help text with new syntax examples
- Add 30 unit tests for product-resolver module
- Update integration tests for new audit syntax

BREAKING CHANGE: audit command no longer accepts positional arguments.
Use `docs audit --products influxdb3_core` instead of `docs audit core`.

* Update skills and commands for new docs CLI syntax

- Update content-editing skill with new --products flag syntax
  - Document path-to-key resolution (e.g., /influxdb3/core -> influxdb3_core)
  - Update Quick Reference table with correct command examples

- Update docs-cli-workflow skill
  - Add examples showing both product keys and content paths
  - Document mutual exclusion between --products and --repos
  - Update audit command syntax (removed positional arguments)

- Replace enhance-release-notes.md with prepare-release-notes.md
  - New command documents docs release-notes CLI usage
  - Includes examples with --products and --repos flags

* feat(github): add Copilot instructions management and DRY refactor

- Add copilot-instructions-agent.md for creating/managing Copilot instructions
- DRY refactor of copilot-instructions.md (485→240 lines, 50% reduction)
- Update all pattern-specific instructions to reference Claude skills
- Add comprehensive cross-references between Copilot and Claude resources
- Document unified docs CLI with non-blocking defaults
- Add COPILOT-INSTRUCTIONS-UPDATE.md summary document

Key improvements:
- Single source of truth (Claude skills) with focused Copilot summaries
- Concise, scannable instructions with links to detailed resources
- Consistent structure across all instruction files
- Better guidance on when to use CLI tools vs direct editing

* refactor(docs-cli): fix unused code and env var naming

Address PR feedback from Copilot code review:

- Rename INFLUXDB_ENTERPRISE_REPO_URL to INFLUXDB3_ENTERPRISE_REPO_URL
  for consistency with InfluxDB 3 naming conventions
- Fix misleading error message to point to correct config location
- Remove unused detectEnterpriseEndpoints import from api-auditor.js
- Remove unused endpointParams variable from api-auditor.js
- Remove unused auditType variable in audit.js loop
- Remove unused assertDeepEquals function from product-resolver tests
2026-02-04 16:44:35 -06:00
Jason Stirnaman 36f9222fd5
feat(sync): extract style attributes from HTML comments (#6694)
Add extractStyleAttributes() function to convert headings like:
  `#### Heading <!-- {.class} -->`
to:
  `#### Heading {.class}`

This allows source READMEs to render cleanly on GitHub while still
supporting Hugo style classes in docs-v2.
2026-01-06 10:13:18 -06:00
meelahme 0e66ac67ff add function to remove title headings 2025-11-18 17:02:52 -08:00
meelahme 6f59a22056 converting TOML links to internal section links 2025-11-17 14:03:41 -08:00
meelahme 9e35deabf9 removed clean title function and expanded abbreviations 2025-11-17 13:07:37 -08:00
meelahme 469be43495 update to transformContent function 2025-11-17 12:16:07 -08:00
meelahme 34f1b9833b add functino to clean up title formatting 2025-11-17 12:13:04 -08:00
meelahme fcda45422c fix: convert relative README links to full GitHub URLs 2025-11-17 11:12:07 -08:00
meelahme 9d1ce68001 fix: correct relative path depth in docs_mapping.yaml 2025-11-14 12:27:43 -08:00
Jason Stirnaman 20562d5bb6
Automate plugin documentation sync workflow between influxdb3_plugins and docs-v2 (#6329)
* 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>
2025-10-20 17:18:34 -05:00
Jason Stirnaman bbcc6b0b8c chore(js): formatting 2025-10-08 16:51:25 -05:00
Jason Stirnaman 3a857320e8 chore(instructions): restructure agent instructions build process
Remove contributing.instructions.md build logic and simplify to only
build platform reference from products.yml. Update lefthook to only
trigger on products.yml changes instead of CONTRIBUTING.md.
2025-10-08 16:15:30 -05:00
Jason Stirnaman 189d86fcda chore(instructions): restructure contributing instructions for humans and assistants 2025-10-08 15:48:44 -05:00
Jason Stirnaman 3f4ad5fb37 chore(scripts): redo cli audit script:
Moved to new tooling repo.
Removed package scripts for now.

Script Gets commands from source code and grep docs for commands- replaces the CLI audit script- searches tagged repo branch source code for CLI commands- searches docs content the commands- allows including and excluding "categories" of docs paths to search
2025-08-19 09:59:31 -05:00
Jason Stirnaman c708bd8658 chore(qol): audit-cli-documentation.js should dynamically get top-level commands and recurse through --help.\Both products work together:
Running node [audit-cli-documentation.js](http://_vscodecontentref_/1) both successfully audits both Core and Enterprise
Core templates use Core-specific frontmatter
Enterprise templates use Enterprise-specific frontmatter
Fixes audit-cli-documentation.js so that it parses commands dynamically from the CLI output.
Some commands () only return top-level help output, which the script had some difficulty with.That seems mostly resolved, but might rear again.
2025-08-19 09:50:54 -05:00
Jason Stirnaman 57cc50ef5a chore(qol): Add instructions imports to CLAUDE.md 2025-07-10 11:25:28 -05:00
Jason Stirnaman 2ef37361a4 chore(qol): Add a tag to extract a CONTRIBUTING.md section into a separate file--for example, frontmatter-reference--and reduce the size of `contributing.instructions.md` 2025-07-10 08:52:22 -05:00
Jason Stirnaman fb743d70e3 chore(qol): Restructure CONTRIBUTING.md and improve agent instructions:
- control what content gets processed by adding the
  appropriate tags in CONTRIBUTING.md--for example:\

  - <!-- agent:instruct: essential --> - Keep all content
  - <!-- agent:instruct: condense --> - Summarize to key points
  - <!-- agent:instruct: remove --> - Skip entirely

- rename and move script to helper-scripts
2025-07-09 15:39:51 -05:00
Jason Stirnaman 105938f3aa Updated all README files in the
helper-scripts directory to:

  1. Main helper-scripts/README.md:
  Updated to describe
  generate-release-notes.js instead of
  the old bash script, including new
  configuration options and examples.
  2. helper-scripts/common/README.md:
  Updated to describe the JavaScript
  version with all its new features like
  configuration files,
  integrated/separated formats, and PR
  link options.
  3. helper-scripts/influxdb3-monolith/RE
  ADME.md: Completely updated to reflect
  the actual JavaScript scripts present
  (audit-cli-documentation.js and
  apply-cli-patches.js) instead of the
  non-existent bash scripts, updated
  prerequisites, examples, and workflow
  documentation.
2025-07-07 12:45:48 -05:00
Jason Stirnaman 33a2d5ce63 Refactored the release notes generator
script with the following improvements:

  1. Renamed output formats:
    - standard → integrated: All repositories' changes are
  integrated together
    - core-enterprise → separated: Primary repository
  first, then secondary repositories
  2. Generalized the separated format:
    - Configurable primary repository (by name or index)
    - Customizable section labels and headers
    - Flexible template system for different products
  3. Enhanced configuration system:
    - Per-repository PR link settings
    - Full template customization for separated format
    - Support for configuration files
  4. Created example configurations:
    - config/influxdb3-core-enterprise.json: For InfluxDB 3
   Core/Enterprise releases
    - config/influxdb-v2.json: For InfluxDB v2 releases
    - config/influxdb3-clustered.json: For Clustered
  (Kubernetes operator) releases
  5. Updated documentation:
    - Explained both output formats clearly
    - Added configuration options documentation
    - Included example configurations usage

  The script now provides a flexible system that can handle
   various release note formats for different InfluxData
  products while maintaining the specific requirements like
   excluding PR links for influxdb_pro but including them
  for influxdb.
2025-07-07 12:13:37 -05:00
Jason Stirnaman 85d8b29772 chore(qol): extract keywords from commit messages, PRs, and source. Apply keywords and formatting to release note output. 2025-07-07 12:13:37 -05:00
Jason Stirnaman a1d7a6399c chore(ci): Migrate generate-release-notes.sh to generate-release-notes.js. Update and cleanup workflows to use the new script and the Markdown-formatted output. 2025-07-07 12:13:37 -05:00
Jason Stirnaman c60483a784 fix(ci): generate-release-notes should account for features, fixes, etc. in merge commits and bullet-style format:\ Summary The issue was that the generate-release-notes.sh script was only looking at commit subject lines using git log --format="%h %s", but merge commits often contain the actual feature and fix information in their commit body with
bullet point formatting like:

  * feat: some feature  * fix: some fix    Changes made:    1. Added new function get_commits_with_body() that uses git log                           --format="%B" to get full commit messages  2. Updated pattern matching to handle both direct commits and bullet-pointed   entries in merge commits (supporting both * and - bullets)  3. Modified the feature and fix extraction to check both commit subjects and   commit bodies  4. Fixed pattern anchoring by removing ^ anchors when calling the body  parsing function
2025-07-07 12:13:37 -05:00
Jason Stirnaman 3f74294584 fix(ci): default location for generated release notes 2025-07-07 12:13:36 -05:00
Jason Stirnaman 6506c5ff5d chore(ci): Cleanup JS 2025-07-07 12:13:36 -05:00
Jason Stirnaman 1cb33bfb13 chore(ci): Validate git tags for workflows: - Reusable utility for validating git tags across all
scripts
  - Supports special case for local development mode
  - Provides helpful error messages with available tags
  - Can be used as CLI tool or imported module
2025-07-07 12:13:36 -05:00
Jason Stirnaman c74060210b chore(ci): Audit documentation for changes to influxdb3 CLI. Configures a GitHub release workflow to generate release notes and run the audit documentation script. 2025-07-07 12:13:36 -05:00
Jason Stirnaman 9a4721aa40 chore(ci): Automation scripts to compare influxdb3 CLI help to reference documentation and generate an audit report, runs influxdb3 core and enterprise using Docker, improves compose.yaml, restructures helper-scripts for different versions 2025-07-07 12:13:36 -05:00
Jason Stirnaman 3d1ef2bfc3 feat(helper-scripts): Enhance release notes generation with multi-repo and API change detection
- Add support for multiple repositories (primary + additional repos)
- Automatically fetch latest commits from all repositories by default
- Add --no-fetch and --pull command-line options for different workflows
- Detect and categorize REST API changes across v1, v2, v3 endpoints
- Include specific API endpoint analysis (/write, /query, /ping, /health, /metrics)
- Add repository tagging to commit categorization for multi-repo visibility
- Improve error handling with fallback options for git operations

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-27 15:26:28 -05:00
Jason Stirnaman a712d5bbeb feat(monolith): Core and Ent v3.2.0 release notes and generation script:
- Add v3.2.0 release notes for Core and Enterprise 3- Add a script to help analyze the diff between tags and generate release notes in a standard format following style guidelines
2025-06-26 11:07:06 -05:00
Scott Anderson f38ca674bf
Add release artifacts to Clustered release notes (#6132)
* WIP add build artifacts to clustered release notes

* added artifacts helper script, added artifacts, added artifact links to clustered release notes

* add instructions for downloading release artifacts manually

* added jq installation links
2025-06-10 16:57:08 -05:00