Commit Graph

9841 Commits (2fa00a36d2bf98d67227dfed7454782595c87cbc)

Author SHA1 Message Date
Jason Stirnaman 2fa00a36d2 fix(api): Fix RapiDoc operation filtering and improve API reference quality
- Restore original RapiDoc match-paths format (method /path) for proper filtering
- Restrict operation tags to primary tag in tag-specific specs to prevent duplicates
- Rename Token tag to Auth token for clarity in Core and Enterprise specs
- Remove Table tag from cache operations (distinct_cache, last_cache)
- Add build script combining API docs, Hugo, and Markdown generation
- Skip summary rendering for conceptual pages
- Add isConceptual check to hide operations in nav for conceptual pages
2026-01-02 16:42:27 -06:00
Jason Stirnaman a1132142ff feat(api): Add RapiDoc Mini component for API operation pages
The feature is shippable, but needs a few small fixes and we'll need to update or alias all API docs links for Core and Ent3.

- Add rapidoc-mini.ts TypeScript component with CDN loading and theme sync
- Add api-operation layout for standalone operation pages
- Add rapidoc-mini.html partial for reusable RapiDoc rendering
- Add rapidoc-custom.css for RapiDoc style overrides
- Register rapidoc-mini component in main.js
- Add article data for cloud-dedicated and clustered products
- Update API reference Cypress tests
2026-01-02 16:42:27 -06:00
Jason Stirnaman 0328f539c0 feat(api): Add compatibility version badges for v1/v2 endpoints
Add visual badges to distinguish v1-compatible and v2-compatible API
endpoints in the sidebar navigation. This helps users migrating from
InfluxDB v1 or v2 quickly identify which compatibility layer each
endpoint belongs to.

Changes:
- Add x-compatibility-version extension to compatibility operations
- Add externalDocs links to reduce verbose descriptions in specs
- Update generator to extract compatVersion and externalDocs fields
- Display colored badges (purple for v1, cyan for v2) in sidebar nav
- Strip redundant "(v1-compatible)" text when badge is shown
- Add hover tooltips explaining compatibility context
2026-01-02 16:42:27 -06:00
Jason Stirnaman 31ab8776e9 refactor(api): Flatten API nav groups to single-tag items
Remove multi-tag groups (Administration, Concepts) and flatten to
single-tag groups for direct linking. Each API tag now renders as
a direct nav item instead of being nested under a parent group.

- Update api_nav_groups.yml to use single-tag groups only
- Delete Administration landing pages (not needed without nesting)
- Improve SCSS styling for API nav visibility and active states
2026-01-02 16:42:26 -06:00
Jason Stirnaman eb1ee7edbc refactor(api): Remove unused separate API nav code
Now that API navigation is integrated into Hugo's menu system:
- Remove api-nav.ts component (no longer needed)
- Remove api/sidebar-nav.html partial (replaced by api-menu-items.html)
- Remove api-nav component registration from main.js
- Update sidebar.html to pass siteData to nested-menu for API nav
- Fix anchor ID handling for special characters (like / in operation IDs)
2026-01-02 16:42:26 -06:00
Jason Stirnaman b0b4e4497f feat(api): Integrate API navigation into Hugo menu system
Add API nav items as children of "InfluxDB HTTP API" menu item:
- New api-menu-items.html partial generates nav from data/articles.yml
- Modified nested-menu.html to inject API nav for API parent menu item
- Updated api_nav_groups.yml to add url for Administration group
- Created Administration landing pages for Core and Enterprise
- Updated .gitignore to allow hand-crafted API conceptual pages

The Administration page uses layout: list and isConceptual: true to render
content directly without RapiDoc wrapper.
2026-01-02 16:42:26 -06:00
Jason Stirnaman c9b3e01554 fix(api): Reset button styles for dark mode, increase operation font size
- Add button reset styles to .api-nav-group-header for dark mode
  compatibility (background: none, border: none, width: 100%)
- Increase operation link font-size from 0.95rem to 1rem to match
  sidebar nav-item font size (18px base)
- Increase api-path code font-size from 0.85rem to 0.9rem
2026-01-02 16:42:26 -06:00
Jason Stirnaman 023e7495d4 fix(api): Match sidebar nav font sizes for operation items
- Changed operation link font-size from 0.85rem to 0.95rem to match sidebar
- Changed path code font-size from 0.75rem to 0.85rem for consistency
- Adjusted method badge font-size from 0.55rem to 0.6rem for readability
2026-01-02 16:42:26 -06:00
Jason Stirnaman a0a4a16b39 fix(api): Show operations in sidebar nav, fix CSS for menu and summary
- Sidebar nav now shows operations with method badges and paths instead
  of duplicating tag names when groups are expanded
- Added background color to nav group items to match sidebar
- Increased max-height for expanded groups to accommodate all operations
- Added styles for operation items in sidebar nav (.api-nav-operation)
- Fixed summary paragraph width by setting flex-basis to 100%
2026-01-02 16:42:26 -06:00
Jason Stirnaman a7f75b8b25 fix(api): Extract first sentence for header summary, add Overview section
- Header summary now shows only the first sentence from description
  using regex extraction with fallback to first line for descriptions
  without sentence-ending punctuation
- Added Overview section with full description after endpoints list
2026-01-02 16:42:26 -06:00
Jason Stirnaman f5fba5a092 chore: Rebuild API generator scripts and update tests 2026-01-02 16:42:26 -06:00
Jason Stirnaman 9c2e276f57 test(api): Update Cypress tests for API reference pages
- Update tests for new tag-based API page structure
- Add tests for operations list rendering
- Add tests for sidebar navigation groups
2026-01-02 16:42:25 -06:00
Jason Stirnaman 54fc853c69 feat(api): Update config, styles, and content for API docs uplift
- Update hugo.yml config for API docs settings
- Simplify _api-overrides.scss (removed hardcoded content styles)
- Import _api-layout.scss in styles-default.scss
- Update API landing pages for Core and Enterprise with redirects
- Update OpenAPI spec files
- Update dependencies
2026-01-02 16:42:25 -06:00
Jason Stirnaman 2e18f52521 feat(api): Add article data files and sidebar navigation partial
- Add YAML article data files for all InfluxDB products
- Add sidebar-nav.html partial for API navigation rendering
- Rename data directory from article-data to article_data for Hugo compatibility
- Remove obsolete JSON articles file
2026-01-02 16:42:25 -06:00
Jason Stirnaman 6a8562216e feat(api): Add TypeScript components for API UI interactions
- Add api-nav.ts for sidebar navigation collapse/expand
- Add api-scalar.ts for Scalar API renderer integration
- Add api-tabs.ts for tab switching functionality
- Add api-toc.ts for table of contents generation
- Register components in main.js
2026-01-02 16:42:25 -06:00
Jason Stirnaman e42999ee98 feat(api): Update Hugo layouts for tag-based API documentation
- Rewrite single.html for operation pages with RapiDoc integration
- Simplify rapidoc.html partial for tag-based rendering
- Add sidebar-nav include to sidebar.html for API navigation
- Add tab-panels.html and tabs.html for content organization
2026-01-02 16:42:25 -06:00
Jason Stirnaman eb33772b60 feat(api): Update OpenAPI article generators for tag-based structure
- Add support for tag-based article generation with operations metadata
- Generate articles.yml data files with tag, menuName, and isConceptual fields
- Include operations array in frontmatter for tag pages
2026-01-02 16:42:25 -06:00
Jason Stirnaman a7dff61792 chore(claude): Update ui-testing agent and hugo-template-dev skill 2026-01-02 16:42:25 -06:00
Jason Stirnaman 802f7fac1e fix(api): Add operations list styling and regroup sidebar navigation
- Add CSS for operations list cards with method badges, paths, and summaries
- Remove duplicate Overview section from list.html (was duplicating summary)
- Split "Data Operations" into separate nav groups: Write data, Query data, Cache data
2026-01-02 16:42:24 -06:00
Jason Stirnaman e282e03cfb chore(claude): Add claude skill for Hugo development/testing workflow. Split ui-dev subagent into hugo-, ts-, and testing-specific agents. 2026-01-02 16:42:24 -06:00
Jason Stirnaman 29bfeb559c chore: Update build:api-docs script to use new generator
- yarn build:api-docs: Generate API docs for all products
- yarn build:api-docs cloud-v2: Generate for specific product
- yarn build:api-docs:compile: Recompile TypeScript if modified
2026-01-02 16:42:24 -06:00
Jason Stirnaman 14e94978d9 fix(shortcodes): Fix Hugo 0.134 compatibility issues
- latest-patch.html: Replace deprecated .Store with local variable
  assignment. The .Store method was removed from shortcode context
  in newer Hugo versions.

- api-endpoint.html: Add nil check for productRef lookup to prevent
  index errors when productKey is not in productAliases dictionary.
  Falls back to "influxdb" as default product reference.
2026-01-02 16:42:24 -06:00
Jason Stirnaman 4d88770ed3 feat(api): Uplift API reference docs with Scalar renderer
Replace legacy API documentation approach with modern Scalar-based rendering:

## Architecture Changes
- Add renderer abstraction (`layouts/partials/api/`) supporting Scalar and RapiDoc
- Create `api` layout type for API reference pages (single.html, list.html)
- Configure renderer via `site.Params.apiRenderer` (default: scalar)

## OpenAPI Processing Pipeline (TypeScript)
- `api-docs/scripts/generate-openapi-articles.ts` - Main generation script
- `api-docs/scripts/openapi-paths-to-hugo-data/` - OpenAPI to Hugo data converter
- Generates per-endpoint path fragments for AI agent access
- Creates Hugo content pages with `type: api` frontmatter

## AI Agent Accessibility
- Full specs at `/openapi/influxdb-{product}.yml` and `.json`
- Per-endpoint fragments at `/openapi/influxdb-{product}/paths/`
- `<link rel="alternate">` tags in HTML for machine discovery

## Scalar Features
- Dark/light theme support synchronized with site theme
- InfluxData brand colors
- Responsive layout
- Download link for OpenAPI spec

## Products Supported
- cloud-v2, oss-v2
- influxdb3-core, influxdb3-enterprise
- cloud-dedicated, cloud-serverless, clustered

Usage: node api-docs/scripts/dist/generate-openapi-articles.js [product]
2026-01-02 16:41:59 -06:00
Jason Stirnaman 4ddce8a57e
docs: add CLAUDE.md files for generated content directories (#6690)
Add guidance for AI tools about generated documentation:
- content/shared/influxdb3-plugins/plugins-library/official/CLAUDE.md
- content/telegraf/CLAUDE.md

These files document the sync workflows and prevent AI tools from
editing generated content directly.
2026-01-02 16:25:31 -06:00
Jason Stirnaman b8418d9788
fix(shortcodes): latest-patch CLI version for cloud-serverless (#6655)
* fix(shortcodes): latest-patch CLI version for cloud-serverless

Add cloud-serverless to the condition that handles cloud products,
and use influxdb.latest directly for CLI version lookups.

Root cause: The shortcode only checked for "cloud" version when
deciding to use the influxdb CLI version. Cloud Serverless pages
have $product="influxdb3" which doesn't exist in products.yml,
causing $latestVersion to be empty.

Fix: Calculate $influxdbLatest directly from products.influxdb.latest
within the CLI block, ensuring cloud products always use the correct
lookup key (v2) for the influx CLI version.

Includes Cypress test covering v2, Cloud, and Cloud Serverless.

Closes #6646

* Restore latest-patch shortcode for cloud-serverless. Revert "hotfix: influxdb (v2) CLI version (#6644)"

This reverts commit 5f792bd47a.

* chore(link-checker): update configs for v1.3.0 severity classification (#6688)

Remove exclusions for sites that return 403/429 (bot protection) and
5xx (server errors) - these are now handled by severity classification:
- 403/401/429 → info (shown but don't fail CI)
- 5xx/timeout → warning (shown but don't fail CI)
- 404/410/DNS → error (fail CI)

Removed exclusions:
- GitHub, Slack, Reddit, StackOverflow
- Docker Hub, Grafana, Microsoft Learn
- Claude.ai, Dremio, Scarf, InfluxData support

Kept exclusions:
- Localhost/local network URLs
- Example/placeholder URLs
- CI-specific workarounds (canonical URLs, file fragments)

Added [severity] configuration section with default thresholds.
2026-01-02 12:47:12 -06:00
Scott Anderson dc62d0d011
Telegraf Controller (alpha) Documentation (#6685)
* feat: telegraf-controller scaffolding (#6625)

* feat: telegraf-ui scaffolding

* Apply suggestions from code review

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com>

* chore: add agent management docs for telegraf controller (#6635)

* chore: add agent management docs for telegraf controller

* fix: apply suggestions from copilot PR review

* Apply suggestions from code review

Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com>

* chore(controller): italicize required callout

* fix(controller): fixed bad shortcode syntax

---------

Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com>

* Install Telegraf Controller (#6676)

* feat(telegraf-controller): install telegraf controller

* 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>

* Manage configs with Telegraf Controller (#6681)

* chore(telegraf-controller): WIP manage configs docs

* feat(telegraf-controller): WIP manage configs

* feat(telegraf-controller): add dynamic value syntax highlighting

* feat(telegraf-controller): finish config management docs

* Apply suggestions from code review

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* chore(telegraf-controller): add info about updating config name and description

* chore(telegraf-controller): fix type in update config

* Apply suggestions from code review

Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com>

* chore(telegraf-controller): add content to telegraf controller landing page (#6684)

* chore: update search for telegraf controller

* fix(links): ignore influxdata slack links

* fix(links): skip nssm download in link checks

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com>
2025-12-31 14:49:32 -07:00
Jason Stirnaman 98deae1185
chore(ci): Add vale spellings (#6683) 2025-12-31 14:39:40 -06:00
WeblWabl a6994439e4
feat: use current-version in upgrade guide (#6679)
* feat: use current-version in upgrade guide

* chore(influxdb2): Update version 2.7 to 2.8.  Use shortcode where supported. Punctuation fix. (#6680)

* Update content/influxdb/v2/install/upgrade/v1-to-v2/_index.md

* Update content/influxdb/v2/install/upgrade/v1-to-v2/_index.md

* Update content/influxdb/v2/install/upgrade/v1-to-v2/_index.md

---------

Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com>
2025-12-31 13:54:10 -06:00
Jason Stirnaman 7ed3861031
fix(influxdb3): publish parameterized queries and add HTTP API examples (#6673)
- Fix broken link to parameterized queries in time-and-timezone.md
- Remove draft: true from Core and Enterprise InfluxQL parameterized queries
- Add HTTP API examples for Core/Enterprise using /api/v3/query_sql and
  /api/v3/query_influxql endpoints
- Simplify list_code_example frontmatter to use query-only format across
  all SQL and InfluxQL parameterized queries pages
- Fix api-endpoint shortcode arguments to use correct method, endpoint,
  and api-ref parameters

Note: PR preview URLs show broken /version/ links but they render
correctly in local Hugo testing. The link replacement logic in
layouts/partials/article/content.html processes these correctly.

Closes #6672
2025-12-27 15:01:20 -06:00
Jamie Strandboge 42e17de7d6
Merge pull request #6670 from influxdata/jdstrand/fix-rpm-install2
fix: use sudo with 'yum install' and create the keyring dir if needed
2025-12-23 10:47:31 -06:00
Jason Stirnaman 564a70dcb9
Merge branch 'master' into jdstrand/fix-rpm-install2 2025-12-23 11:09:46 -05:00
Jason Stirnaman 6090142bb3
docs(telegraf): add missing serializer documentation (#6654)
* docs(telegraf): add missing serializer documentation

Add documentation for missing output data formats (serializers):
- binary: Binary protocol serialization with configurable entries
- cloudevents: CloudEvents JSON format (v0.3 and v1.0)
- csv: Comma-separated values with configurable columns
- prometheus: Prometheus text exposition format
- prometheusremotewrite: Prometheus protobuf for remote write
- wavefront: Wavefront data format

Also fixes:
- Rename messagepack.md to msgpack.md to match Telegraf source

This completes the serializer documentation coverage.

* Apply suggestion from @jstirnaman

* Apply suggestion from @jstirnaman

* docs(telegraf): clarify prometheusremotewrite example shows logical representation (#6661)

* Initial plan

* docs(telegraf): clarify prometheusremotewrite example shows logical representation

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/telegraf/v1/data_formats/output/binary.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* docs: improve prometheus serializer warnings and clarify configuration options (#6660)

* hotfix(influxdb3): fix duplicate menu entry for Enterprise security page

Change menu key from influxdb3_core to influxdb3_enterprise.

* chore(influxdb3) Security: style and cleanup: intro, requirements, callouts

* fix(influxdb3): restore clean install.md from jdstrand branch

Remove duplicate content and fix malformed code blocks introduced
during rebase conflict resolution.

* docs(telegraf): add design plan for batch format documentation

Defines documentation changes to clarify:
- Output plugin vs serializer relationship
- use_batch_format option location and purpose
- Histogram/summary handling with prometheus_client
- Choosing the right output approach

* docs(telegraf): clarify output plugins, serializers, and batch format

- Add "How output plugins use serializers" section explaining the
  relationship between output plugins and data formats
- Add "Choosing an output approach" guidance by destination and metric type
- Create prometheus serializer doc with histogram/summary guidance
- Add "Use this plugin for..." sections to prometheus_client
- Add Data formats subsection to configuration.md
- Expand output plugins index with serializer relationship

Addresses confusion about use_batch_format being an output plugin option
rather than a serializer option, and provides clear guidance on when to
use prometheus_client vs the prometheus serializer.

---------

Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com>

---------

Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-12-23 11:09:07 -05:00
Jason Stirnaman 44081e7eb9
Merge branch 'master' into jdstrand/fix-rpm-install2 2025-12-23 11:06:51 -05:00
Jamie Strandboge 47ca3066c3
fix: use sudo with 'yum install' and create the keyring dir if needed 2025-12-23 09:38:38 -06:00
Jason Stirnaman 2ab200d78b
influxdb3: Add Helm for Ent3, cleanup install.md formatting (#6657)
* docs(influxdb3): add Helm chart deployment guide for Enterprise

Add documentation for deploying InfluxDB 3 Enterprise on Kubernetes
using the official Helm chart (currently in beta). The guide covers:

- Prerequisites and licensing information
- Installation steps using Helm
- Configuration options for object storage (S3, Azure, GCS, MinIO)
- Cluster and ingress configuration
- Upgrade and uninstall procedures
- Troubleshooting commands
- Support and issue reporting links

* chore(influxdb3): Cleanup install

* chore(influxdb3): add version metadata for systemd
2025-12-22 16:52:31 -06:00
Geoffrey Wossum ad9453a107
fix: move Raft auth docs from data node to meta node (#6669)
Move documentation on Raft authentication from data nodes page to meta
node page. Also add note with recommended staging for enabling Raft
authentication in an existing cluster.

Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com>
2025-12-22 16:47:25 -06:00
Jason Stirnaman 3bb92f3783
ci(preview): Add PR Preview reference in DOCS-DEPLOYING.md (#6668)
- Use pull request previews in GitHub for manual validation
2025-12-22 15:56:40 -06:00
Jason Stirnaman 0fbf9e5e9b
fix(ci): complete PR preview path offset and fork PR handling (#6667)
* fix(ci): add path offset for PR preview subdirectory baseURL

When PR preview builds use a subdirectory baseURL like
/docs-v2/pr-preview/pr-XXXX/, shortcodes that parse .RelPermalink
to detect product context fail because the path has extra segments.

This fix:
- Adds config/pr-preview/params.yml with prPreviewPathOffset: 3
- Updates workflow to use -e pr-preview environment
- Updates api-endpoint, influxdb/host, and children shortcodes to
  use the offset when indexing path segments
- Adds nil-safety with default fallback for placeholder_host

Normal builds are unaffected (offset defaults to 0).

* fix(ci): add path offset to product-name and sidebar for PR previews

Apply the same prPreviewPathOffset fix to product-name.html and
sidebar.html that was applied in the initial PR #6665.

These templates parse RelPermalink to detect product context, but when
baseURL includes a subdirectory path (e.g., /docs-v2/pr-preview/pr-XXXX/),
the path indices shift. This fix uses the configurable offset to skip
extra path segments in PR preview builds.

* fix(ci): skip PR preview for fork PRs and add notice comment

Fork PRs cannot deploy to gh-pages because GITHUB_TOKEN has read-only
access to the base repository. This is a GitHub security feature.

Changes:
- Add condition to skip preview job for fork PRs
- Add fork-notice job to post helpful comment explaining limitation
- Include local preview instructions for contributors
2025-12-22 15:30:26 -06:00
spike77453 8045b67adc
fix(telegraf): escape dollar in here-doc to prevent parameter expansion (#6659)
Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com>
2025-12-22 13:47:57 -06:00
Copilot 77e52a54b9
Move influxctl --perf-debug example output to command reference (#6599)
* Initial plan

* docs: move perf-debug example output to query command reference

Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com>

* docs: update placeholder syntax and add link to query command

Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com>

* docs: add disclaimer for example performance statistics output

Co-authored-by: jstirnaman <212227+jstirnaman@users.noreply.github.com>

* fix(influxdb3): update --perf-debug example output to match documented query

Regenerate example performance statistics output using the documented
query (SELECT SUM(temp) FROM home). Tested influxctl query --perf-debug
command to verify output format and values.

---------

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>
2025-12-22 13:11:35 -06:00
Jason Stirnaman afb9b92b2f
fix(ci): add path offset for PR preview subdirectory baseURL (#6665)
When PR preview builds use a subdirectory baseURL like
/docs-v2/pr-preview/pr-XXXX/, shortcodes that parse .RelPermalink
to detect product context fail because the path has extra segments.

This fix:
- Adds config/pr-preview/params.yml with prPreviewPathOffset: 3
- Updates workflow to use -e pr-preview environment
- Updates api-endpoint, influxdb/host, and children shortcodes to
  use the offset when indexing path segments
- Adds nil-safety with default fallback for placeholder_host

Normal builds are unaffected (offset defaults to 0).
2025-12-22 12:42:20 -06:00
Jamie Strandboge c1a0785612
fix: move 'yum install' outside the 'cat' for influxdb3 installs (#6666) 2025-12-22 12:26:18 -06:00
Jason Stirnaman 74c33e9483
fix(ci): add path offset for PR preview subdirectory baseURL (#6662)
When PR preview builds use a subdirectory baseURL like
/docs-v2/pr-preview/pr-XXXX/, shortcodes that parse .RelPermalink
to detect product context fail because the path has extra segments.

This fix:
- Adds config/pr-preview/params.yml with prPreviewPathOffset: 3
- Updates workflow to use -e pr-preview environment
- Updates api-endpoint, influxdb/host, and children shortcodes to
  use the offset when indexing path segments
- Adds nil-safety with default fallback for placeholder_host

Normal builds are unaffected (offset defaults to 0).
2025-12-22 10:03:27 -06:00
Jason Stirnaman 975132d2b9
docs(telegraf): add Helm chart links and ToC updates (#6632)
* docs(telegraf): add Helm chart links and ToC updates

Add Kubernetes/Helm deployment section with links to:
- telegraf: single instance deployment
- telegraf-ds: DaemonSet deployment
- telegraf-operator: operator-based management

Also add missing ToC links for Kubernetes and configuration sections.

* chore(telegraf): revise install intro and description
2025-12-22 09:34:40 -06:00
Jason Stirnaman 61a88db39b
fix(ci): set baseURL for PR preview subdirectory deployment (#6658)
* refactor(ci): improve PR preview with products.yml and index page

- Load product prefixes from data/products.yml (single source of truth)
- Build regex pattern dynamically from loaded namespaces
- Fix CSS copying: Hugo outputs fingerprinted CSS at root level
- Generate index.html with clickable links to preview pages
- Add test for influxdb3_explorer namespace

This keeps the URL parser in sync as new products are added and
provides a better preview experience with navigable links.

* fix(ci): set baseURL for preview subdirectory deployment

Hugo generates absolute paths for fingerprinted assets based on baseURL.
When deploying to GitHub Pages subdirectory (pr-preview/pr-XXXX/), assets
were incorrectly resolving to the root instead of the preview path.

This sets --baseURL to the correct preview URL so all asset paths work.
2025-12-19 18:31:37 -06:00
Jason Stirnaman e03e7874fc
refactor(ci): improve PR preview with products.yml and index page (#6656)
- Load product prefixes from data/products.yml (single source of truth)
- Build regex pattern dynamically from loaded namespaces
- Fix CSS copying: Hugo outputs fingerprinted CSS at root level
- Generate index.html with clickable links to preview pages
- Add test for influxdb3_explorer namespace

This keeps the URL parser in sync as new products are added and
provides a better preview experience with navigable links.
2025-12-19 12:12:20 -06:00
Jamie Strandboge 56bdda83aa
fix: add a few missing DEB/RPM instructions for license activation; shell source is for quick install (#6652)
* fix: add a few missing DEB/RPM instructions for license activation

* fix: sourcing shell config only needed with quick installs

* chore: address review feedback from Jason
2025-12-18 17:05:34 -06:00
Jamie Strandboge 50397f2dc4
chore: update install and license info for DEB/RPM (#6650)
* fix: remove a couple of mis-merges and clarify DEB/RPM is non-Docker

* chore: update install and license info for DEB/RPM

* chore: incorporate formatting and style feedback from Jason

* fix(influxdb3): Install: ToC and merge cleanup

---------

Co-authored-by: Jason Stirnaman <jstirnaman@influxdata.com>
2025-12-18 15:24:40 -06:00
Jason Stirnaman e203482b62
feat(ci): add PR preview system for GitHub Pages (#6636)
* docs(ci): add PR preview system design

Document the design for GitHub Pages PR previews including:
- Selective deployment of changed pages only
- Reuse of existing content-utils.js change detection
- URL parsing from PR descriptions for layout/asset changes
- Automatic cleanup on PR close
- Storage budget management

* docs(ci): add PR preview implementation plan

Detailed task-by-task implementation plan including:
- 8 tasks with complete code and exact file paths
- Reuses existing content-utils.js for change detection
- Scripts for URL parsing, change detection, file staging
- Main workflow and cleanup workflow
- Setup documentation and testing steps

* feat(ci): add PR URL parser for preview page detection

* fix(ci): harden PR URL parser against malicious input

- Add path validation to reject path traversal attacks (..)
- Add validation to reject HTML/script injection attempts
- Add validation to reject URL-encoded characters
- Update regex to capture markdown link paths: [text](/path/)
- Add comprehensive test suite with 27 security and functionality tests

Security improvements:
- Reject paths containing '..' to prevent directory traversal
- Reject paths with suspicious characters: <, >, |, {, }, `, etc.
- Reject URL-encoded characters to prevent encoding attacks
- Validate all paths against known product prefixes

Functionality improvements:
- Support markdown link syntax: [text](/influxdb3/core/)
- Support reference-style markdown links
- Maintain existing support for production URLs, localhost URLs, and relative paths

* feat(ci): add change detection script for PR previews

* fix(ci): remove unused import from detect-preview-pages.js

* feat(ci): add preview file staging script for selective deployment

* fix(ci): add input validation to preview file staging script

- Add path traversal validation to urlToHtmlPath() to reject paths containing '..'
- Add array validation at start of preparePreviewFiles() with clear error message
- Fix copiedCount to only increment when safeCopy() actually succeeds
- Add return value to copyPage() to track success/failure

Addresses security vulnerabilities and improves accuracy of preview stats.

* feat(ci): add preview comment manager for sticky PR comments

* fix(ci): sanitize user input in preview comments to prevent XSS

* feat(ci): add PR preview workflow for GitHub Pages deployment

* fix(ci): correct environment variables and checkout in PR preview workflow

* feat(ci): add weekly stale preview cleanup workflow

* docs(ci): add PR preview setup guide

* Delete docs/plans/2025-12-16-pr-preview-design.md

* Delete docs/plans/2025-12-16-pr-preview-implementation.md

* fix(ci): add input validation for PR preview security

- Add single quote to rejected characters in URL path validation
  to prevent JavaScript injection in workflow string interpolation
- Add BASE_REF validation regex to prevent command injection,
  allowing slashes for feature branches (e.g., feature/new-auth)
- Add PR_NUM numeric validation in cleanup workflow
- Add tests for single quote handling and BASE_REF validation
2025-12-18 13:44:14 -06:00
Jason Stirnaman b2efc05a87
influxdb3 security cleanup (#6649)
* hotfix(influxdb3): fix duplicate menu entry for Enterprise security page

Change menu key from influxdb3_core to influxdb3_enterprise.

* chore(influxdb3) Security: style and cleanup: intro, requirements, callouts
2025-12-18 11:19:09 -06:00