Commit Graph

14 Commits (a3648a79a4c0e8e6de931cc0270cef46272545b9)

Author SHA1 Message Date
Claude a3648a79a4
chore: update Scalar references to RapiDoc in comments
Update code comments and documentation to accurately reflect that
the API documentation uses RapiDoc, not Scalar:

- api-docs/scripts/generate-openapi-articles.ts: Update JSDoc comments
- api-docs/scripts/dist/generate-openapi-articles.js: Update compiled version
- assets/js/components/api-toc.ts: Update implementation comment
- .claude/agents/ts-component-dev.md: Update component reference
- .claude/skills/hugo-template-dev/SKILL.md: Update component reference

The implementation uses RapiDoc throughout, so these comments needed
to be corrected for accuracy.
2026-01-02 02:06:10 +00:00
Jason Stirnaman 863ba93744 feat(api): improve parent index pages with intro and children listing 2025-12-31 13:16:48 -06:00
Jason Stirnaman dde5900133 fix(api-docs): resolve duplicate api/api paths and menu warnings
Fixed two issues causing Hugo warnings about duplicate menu entries:

1. Path generation bug: apiPathToSlug returns 'api/v3/...' for paths
   starting with '/api/', but the generator always prepended 'api/',
   creating 'api/api/v3/...' paths.

   Fix: Only add 'api/' prefix if path doesn't already start with it.

2. Config inconsistency: cloud-dedicated, cloud-serverless, and clustered
   had '/api' in pagesDir while core/enterprise didn't. The function
   always adds '/api', causing double prefixes for some products.

   Fix: Removed '/api' from pagesDir for affected products to match
   core/enterprise pattern.
2025-12-31 12:14:46 -06:00
Jason Stirnaman 4fccddc255 fix(api): propagate showSecuritySchemes to content generation
Add showSecuritySchemes field handling to generate-openapi-articles.ts
to ensure the flag is written to content frontmatter. Regenerate API
docs for cloud-dedicated and clustered products.
2025-12-29 15:19:33 -06:00
Jason Stirnaman b6e585ecb1 fix(api): add showSecuritySchemes to Authentication pages
Add showSecuritySchemes field to Article interface and automatically
set it to true for Authentication tag pages. This ensures the Security
Schemes section renders on authentication pages after API docs are
regenerated.
2025-12-29 15:07:45 -06:00
Jason Stirnaman dee9c355c9 feat(api-docs): add link placeholder transformation for OpenAPI specs
Transform /influxdb/version/ placeholders in OpenAPI spec description
and summary fields to product-specific paths at build time.

- Add deriveProductPath() to extract product path from spec location
- Add transformDocLinks() to recursively transform markdown links
- Add validateDocLinks() with --validate-links CLI flag for checking
- Integrate transformation into processProduct() workflow
- Add placeholder links to Authorization header descriptions

The product path is derived from the spec file location, so
api-docs/influxdb3/core/v3/ref.yml produces /influxdb3/core paths.
2025-12-29 14:55:12 -06:00
Jason Stirnaman 6bc90b2ad0 feat(api): Convert auth input to popover with filtered schemes
- Convert collapsible auth panel to popover UI triggered by
  "Set credentials" button positioned above RapiDoc
- Filter auth schemes based on API path:
  - /api/v3/* endpoints: Bearer only
  - /api/v2/* endpoints: Bearer + Token
  - /write, /query (v1): All 4 schemes
- Fix "Authentication Not Required" bug by adding global security
  field to path-specific OpenAPI specs
- Change RapiDoc --blue CSS variable to green so status text and
  type links don't look like clickable links
- Add explicit button styling for Apply/Clear in popover
- Hide RapiDoc's built-in auth section (use custom popover instead)
2025-12-29 14:55:11 -06:00
Jason Stirnaman 9a3c29baa1 fix(api): Complete Auth token rename and remove Redoc x-tagGroups
- Update api_nav_groups.yml to use "Auth token" instead of "Token"
- Remove x-tagGroups from Core and Enterprise specs (Redoc-specific, not needed for RapiDoc)
- Add migration notes to plan document for future product migrations
2025-12-29 14:55:09 -06:00
Jason Stirnaman 3f4364a511 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
2025-12-29 14:55:09 -06:00
Jason Stirnaman f6de23b5ec 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
2025-12-29 14:55:08 -06:00
Jason Stirnaman da990a3252 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
2025-12-29 14:55:08 -06:00
Jason Stirnaman 593309c2b4 chore: Rebuild API generator scripts and update tests 2025-12-29 14:55:06 -06:00
Jason Stirnaman 7c04b8ad57 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
2025-12-29 14:55:04 -06:00
Jason Stirnaman 7c7d92bbb6 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]
2025-12-29 14:48:26 -06:00