Commit Graph

37 Commits (api-docs-uplift)

Author SHA1 Message Date
Jason Stirnaman bbe513e0c5 feat(api-docs): add externalDocs to tags, strip absolute URLs, fix link pipeline
- Add standard OpenAPI `externalDocs` field to all tags.yml files that
  have `x-related` entries (uses first link as the primary doc link)
- Convert `externalDocs` to `{title, href}` objects in related links
  instead of bare URL strings
- Strip `https://docs.influxdata.com` from description/summary fields
  in `transformDocLinks()` so Hugo pages use relative paths
- Fix article generation reading from absolutified download spec instead
  of the Hugo spec with relative links (new `hugoSpecPath` output)
- Add `externalDocs.url` support to `absolutifyLinks()` for downloads
2026-03-16 15:34:43 -05:00
Jason Stirnaman 2e9ac178f7 fix(api-docs): fix orphaned parentheses from Redoc link stripping
The regex that stripped Redoc anchor links didn't account for nested
parentheses in tag names like Authorizations-(API-tokens)), leaving
orphaned closing parens in descriptions and tag references.
2026-03-16 15:15:33 -05:00
Jason Stirnaman 9a385c6927 fix(api-docs): scope Cloud Serverless spec to supported endpoints, absolutify download links
- Rewrite info.yml description to list supported endpoints (write, query,
  authorizations, buckets, orgs) and disclaim unsupported Cloud (TSM) endpoints
- Comment out unsupported Cloud (TSM) paths in spec, keeping 29 supported paths
- Convert orphaned Cloud (TSM) tags to x-traitTag with disclaimer
- Strip all Redoc-specific anchor links (#operation/, #tag/, #section/) from
  spec descriptions and tags.yml — these break in the Hugo-native layout
- Fix product name: "InfluxDB 3 Serverless" → "InfluxDB Cloud Serverless"
- Add absolutifyLinks() to generate-openapi-articles.ts so static/openapi
  downloads contain full URLs (https://docs.influxdata.com/...) while Hugo
  pages keep relative paths
2026-03-16 15:05:39 -05:00
Jason Stirnaman 95a5a29625 fix(api-docs): restore full tag descriptions for API compatibility and Supported operations
Replace truncated "Overview of..." one-liners in tags.yml with proper
descriptions:

- API compatibility (Cloud Dedicated, Cloud Serverless, Clustered):
  restore multi-paragraph descriptions from origin/master specs covering
  write endpoints, query protocols, and v1/v2 compatibility. Move
  external doc links to x-related.

- Supported operations (Cloud v2, OSS v2, Cloud Serverless): replace
  with reference-style descriptions and HTTP method convention table.
2026-03-15 22:15:43 -05:00
Jason Stirnaman 54f9695613 fix(api-docs): restore Redoc security scheme injection in Authentication tags
Add ReDoc-Inject: <security-definitions> directive and scheme links to
the Authentication tag description in all 9 tags.yml files. This renders
the security scheme definitions inline in the Redoc HTML, matching the
pre-uplift behavior. Each product lists its actual security schemes with
anchor links to the scheme definitions section.
2026-03-12 09:34:13 -05:00
Jason Stirnaman 62bd023616 fix(api-docs): add x-traitTag support to post-processor and tags.yml
Add x-traitTag to TagConfig interface so the post-processor propagates
it from tags.yml into specs. Mark all supplementary documentation tags
(Authentication, Quick start, Headers, Usage, etc.) with x-traitTag: true
so Redoc renders them as documentation sections with descriptions rather
than empty operation groups. Also exclude root .config.yml from the
Redoc HTML generation find command.
2026-03-11 17:46:32 -05:00
Jason Stirnaman e2f4d80014 refactor(api-docs): flatten v3 dirs, rewrite build pipeline, add --static-only mode
- Flatten Core/Enterprise v3/ subdirectories to product root
- Rewrite generate-api-docs.sh as clean 3-step pipeline:
  post-process-specs → Redoc HTML → static spec downloads
- Add --static-only flag to generate-openapi-articles.ts
- Remove circular getswagger.sh call from generate-openapi-articles.ts
- Remove dead execCommand function and --skip-fetch flag
- Apply post-processed tag enrichments to all spec files
2026-03-11 17:02:18 -05:00
Jason Stirnaman 24c1e60f2f refactor(api-docs): unify v2 APIs, remove v1-compat specs, migrate mgmt links
Flatten Cloud v2 and OSS v2 spec directories to product root with
self-documenting filenames, matching the pattern used for influxdb3 products.
Remove all 5 v1-compatibility directories — those endpoints are already
included in the main spec (tagged as v1/v2 Compatibility).

Old v1-compat URLs are preserved as Hugo aliases for redirects.

Also includes:
- Migrate inline markdown links from management API spec descriptions
  into tags.yml x-related fields (Cloud Dedicated + Clustered)
- Wire post-process-specs.ts into generate-api-docs.sh build pipeline
- Fix doubled static/openapi download filenames
- Update project plan with design decisions
2026-03-11 11:04:07 -05:00
Jason Stirnaman abc789013f refactor(api-docs): flatten version subdirectories for v2-compat and v1 products
Drop redundant version subdirectories and use self-documenting
filenames for 5 products:

v2-compat influxdb3:
  cloud-dedicated/v2/ref.yml  → cloud-dedicated/influxdb3-cloud-dedicated-openapi.yaml
  cloud-serverless/v2/ref.yml → cloud-serverless/influxdb3-cloud-serverless-openapi.yaml
  clustered/v2/ref.yml        → clustered/influxdb3-clustered-openapi.yaml

v1:
  influxdb/v1/v1/ref.yml           → influxdb/v1/influxdb-oss-v1-openapi.yaml
  enterprise_influxdb/v1/v1/ref.yml → enterprise_influxdb/v1/influxdb-enterprise-v1-openapi.yaml

Update .config.yml, getswagger.sh, and generate-openapi-articles.ts
to reference new paths.
2026-03-10 14:24:49 -05:00
Jason Stirnaman aa863012a5 feat(api-docs): add tag post-processor and per-product tags.yml configs
Add apply-tag-config.ts that reads colocated tags.yml files and patches
OpenAPI spec tags in place (descriptions, x-related links, renames).
Runs between getswagger.sh and generate-openapi-articles.ts in the
build pipeline.

Create tags.yml for all 11 product specs:
- Core, Enterprise: extracted from existing spec tag metadata
- v2-compat, v2, v1: new descriptions and x-related links

Include test suite (16 assertions) covering description setting, tag
rename propagation, x-related links, stale/uncovered tag warnings,
silent skip when no config, and malformed YAML failure.
2026-03-10 14:23:37 -05:00
Jason Stirnaman b841590f9f chore(api-docs): remove dead x-tagGroups from all spec files
Remove the x-tagGroups vendor extension from 8 remaining OpenAPI spec
files. This Redocly extension was used for navigation grouping in the
old RapiDoc layout but is ignored by the Hugo-native API templates,
which generate pages from operation tags[] arrays.
2026-03-09 22:07:08 -05:00
Jason Stirnaman 914380ea54 feat(api-docs): extract api-docs changes from feat-api-uplift
Extract all api-docs/ changes from feat-api-uplift into a standalone
branch for independent testing and merging to master.

Changes include:
- Updated generation scripts (generate-openapi-articles.ts,
  openapi-paths-to-hugo-data/index.ts) for Hugo-native templates
- Removed dead x-tagGroups infrastructure (decorator, config files)
- Updated Core and Enterprise specs with tag descriptions, x-related
  links, and Cache Data tag split
- Added v1 product configs and specs (OSS v1, Enterprise v1)
- Updated getswagger.sh for renamed spec files
- Updated generate-api-docs.sh with clean regeneration support
2026-03-09 12:25:00 -05:00
Jameelah Mercer beb7bb2261
Update api-docs/influxdb3/cloud-serverless/v1-compatibility/swaggerV1Compat.yml
Co-authored-by: Jason Stirnaman <stirnamanj@gmail.com>
2025-08-07 13:13:56 -07:00
Jameelah Mercer c6bd7bb726
Update api-docs/influxdb3/cloud-serverless/v1-compatibility/swaggerV1Compat.yml
Co-authored-by: Jason Stirnaman <stirnamanj@gmail.com>
2025-08-06 09:55:44 -07:00
Jameelah Mercer a69fea8a00
Update api-docs/influxdb3/cloud-serverless/v1-compatibility/swaggerV1Compat.yml
Co-authored-by: Jason Stirnaman <stirnamanj@gmail.com>
2025-08-06 09:55:33 -07:00
Jameelah Mercer bc890e4d6d
Update api-docs/influxdb3/cloud-serverless/v1-compatibility/swaggerV1Compat.yml
Co-authored-by: Jason Stirnaman <stirnamanj@gmail.com>
2025-08-06 09:55:21 -07:00
Jameelah Mercer 65e80cad92
Update api-docs/influxdb3/cloud-serverless/v1-compatibility/swaggerV1Compat.yml
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-08-05 14:38:21 -07:00
Jameelah Mercer a2157763c9
Update api-docs/influxdb3/cloud-serverless/v1-compatibility/swaggerV1Compat.yml
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-08-05 14:38:10 -07:00
meelahme ae96f0154e docs: updates to clous-serveless rp 2025-08-05 14:02:39 -07:00
meelahme 3b60c7f253 docs: updating swaggerVwith rp, operationID, and bucket changed to database 2025-08-05 13:21:16 -07:00
Jameelah Mercer 76af7669ee
Update api-docs/influxdb3/cloud-serverless/v1-compatibility/swaggerV1Compat.yml
Co-authored-by: Jason Stirnaman <stirnamanj@gmail.com>
2025-08-01 16:45:45 -07:00
Jameelah Mercer 6a20bb0372
Update api-docs/influxdb3/cloud-serverless/v1-compatibility/swaggerV1Compat.yml
Co-authored-by: Jason Stirnaman <stirnamanj@gmail.com>
2025-08-01 13:43:22 -07:00
Jameelah Mercer e9bbdf1823
Update api-docs/influxdb3/cloud-serverless/v1-compatibility/swaggerV1Compat.yml
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-07-31 23:21:50 -07:00
Jameelah Mercer aa766edd70
Update api-docs/influxdb3/cloud-serverless/v1-compatibility/swaggerV1Compat.yml
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-07-31 23:21:38 -07:00
meelahme dbcd8dde73 docs(api): enhance POST /query with JSON chunk parameter support 2025-07-30 15:34:42 -07:00
meelahme cbdaaa0247 feat: Add complete GET /query endpoint 2025-07-30 14:39:02 -07:00
Jason Stirnaman 48380fd168 fix(influxdb3): Auth schemes in 3core, 3ent, cloud-dedicated, and clustered:Explains compatibility for different schemasProvides more auth examplesFills missing schemes in API refFixes placeholdersShows that username is optional 2025-07-07 23:10:37 -05:00
Jason Stirnaman 1dce052e56 fix(JS): Rename CommonJS scripts to .cjs extension, keep type: module as the project default. Update and fix ESLint configuration.
- Renames JavaScript files in flux-build-scripts and api-docs/openapi/plugins to .cjs file extension to declare them as CommonJS module syntax.
2025-05-19 11:34:42 -05:00
Jason Stirnaman 4887aa5b66 fix(api): links and headings in local API refs.
- Fix broken links reported by the e2e link checker.
- Add an e2e test for checking internal and external links in API reference docs. Low effort, big win.
2025-02-26 16:20:14 -06:00
Jason Stirnaman bd93174d29 fix(api): confusing nav behavior with endpoints duplicated among tag groups. Closes Remove tag groups from API ref docs that duplicate endpoints in the "All endpoints" tag group. #5868 2025-02-26 16:14:37 -06:00
Jason Stirnaman 4194ef5eb9 fix(api): Add shortDescription to replace summary
- Add a custom x-influxdata-short-description field that replaces the previous non-standard summary field used by Redocly.
- Double quote the title and description vars to preserve the entire value when passing them to the CLI
2025-02-26 16:07:28 -06:00
Jason Stirnaman b3bb9c40f1 feat(api): InfluxDB3 Core API reference, API fixes, and e2e tests
- Adds InfluxDB 3 Core API reference
- Updates scripts
- Removes non-valid info.summary field from specs, replaces with description in metadata
- Simplifies frontmatter generation for HTML template
- Reorg of file structure to mirror the content structure.
- Moves OSS v2 into v2/v2/ref.yml to follow the same pattern as others
- Replaces isDefault API config field with specific aliases.
- Misc. fixes.
- Remove generated HTML files.
2025-02-25 17:10:09 -06:00
Jason Stirnaman 846d3a9e46 fix(api): Update glossary links. Remove old cloud-serverless directory 2025-02-25 17:10:09 -06:00
Jason Stirnaman f15d7857a9 chore(monolith): Core HTTP API and OpenAPI .info content for Core and Enterprise 2025-02-25 17:09:03 -06:00
Jason Stirnaman f9f81ae8f9 Initial Kapa.ai chat integration.
Continue refactoring JavaScript into a component pattern and ESM.
Replaces some jQuery with native DOM API.

chore(ai): reference documentation and instructions for training AI

chore(ai): implement Kapa AI chat widget
- Move script tag to HTML template to make it obvious.
- Cleanup javascript to make it more component-like
- Set Kapa attributes, support setting userid

chore(js): add JS dependencies, previously referenced in script tags, to package.json for JS builds.

fix(api): indents

chore(js): package Mermaid diagram library

chore(js): refactor JS for AIChat and Theme as examples of using the component pattern for HTML/CSS/JS

chore(js): Use the new local-storage API in refactored module code and in code not yet ported. Cleanup syntax in local-storage and make functions available from window.LocalStorageAPI.

fix(js): theme.js name-change

chore(js): fix ai-chat.js file name

fix(js): refactor:
- componentNames are snakecase in HTML
- replace DOM selection method and jQuery eventhandler assignment
- remove old theme.js references

chore(ai): configure chat window overlay, size, and position:
- removes overlay and scroll lock
- positions chat to the right and bottom
- expands sample question width to 12 cols

chore(ai): edit disclaimer

fix(ai): size and position

chore(js): make ai-chat specific to configuration and and setting userid (for testing and future use).

fix(js): copy referrerHost variable to v3-wayfinding instead of relying on influxdb-url to assign it.

chore(ai): add a footer div at page bottom to contain modal triggers for custom-time and ask-ai. Still needs some CSS help. Moves tooltip text from CSS to HTML data attribute.

chore(ai): dynamically load AI script tag after DOMContentLoaded to avoid race conditions. Call initialization from the modal trigger module and pass the show trigger function to the onload handler.

fix(ai): fix modal triggers to viewport

fix(modal-triggers): stack the triggers into a single column.

restyle footer widgets

updated time selector modal to use correct storage term

minor style update

WIP(ai-chat): get product data

chore(js): Factor out pageContext module from influxdb-url.js

chore(js): Refactor helpers.js out of inflluxdb-url.js

WIP: refactor influxdburl - minimal changes for module conversions

feat(ai): Custom AI chat example questions product and version.
Ask AI example questions:
- Adds support for customizing example Ask AI questions per product or version.
- Configure questions in site `data/products.yml`; otherwise, it uses default questions from `ask-ai.js`

Context, page, and product data:
- Adds sample URLs for remaining versions in influxdb_urls
- `page-context.js` consolidates and exports constants for page context (protocol, host, path, referrer) and path-to-data mappings for product and influxdb_url site data

Module refactor:
- Refactors some JavaScript into ES6 modules, and refactors some of those further into a Component pattern--just vanilla JS and no shadow DOM stuff. The Component pattern that uses data attributes to "bind" JavaScript modules with CSS and HTML is a popular approach in modern web development. This pattern enhances modularity, reusability, and maintainability by associating behavior (JavaScript), structure (HTML), and style (CSS) through the use of data attributes.
- `assets/main.js` is the entrypoint
- Passes pageParams from the Hugo page to modules that import `@params`.
- Moves most external dependencies out of `script` tags and into package.json to be managed with `yarn`.
- Adds `eslint`.
- For modules that aren't yet components, wraps execution statements inside an `initialize()` function and calls the function from `main.js` on `DOMContentLoaded`.
- For components, if the page contains the `data-component="<component-name>"`, the matching element is passed to the component function on `DOMContentLoaded`.
- I tried to avoid changing logic where it wasn't necessary.

Update DOC_GPT_PROFILE.md

customize ai chat modal styles

fix(influxdb-url): Rename to cloud_dedicated in influxdb_urls.yml, remove newly added placeholder URL and use the extant default, refactor
- Rename  to  in influxdb_urls.yml
- Fix influxdb-url.js and data provision in local-storage.js to use the new name, mapping it to  to retain the existing local storage key

chore(api-lib): Use local-storage import instead of window global

chore(js): cleanup

fix(js): Ensure feature-callout initializes on page load

fix(theme): Load preferred theme before making the page visible. Execute a predefined function by specifying the function name in data-theme-callback

fix(search-toggle): Restores toggling the search field when sidebar is collapsed. Moves the event handler to a new search-button component

fix(ai): Fix custom attribute assignment. Rename property to ai_example_questions

Include the word `Bearer` or `Token`, a space, and your **token** value (all case-sensitive). Fix TOC links.
Fixes #5781

fix(api-docs): Update API reference directories and generation script for influxdb3 URL paths, update links and names in reference content

fix(api-ref): Update getswagger.sh destination paths to use the new directory structure when fetching spec files. Update the redocly  plugin module path.

hotfix: fix hlevel bug in children shortcode

Remove underline from custom time widget

add color to custom time widget styling
2025-02-03 08:31:55 -06:00
Jason Stirnaman 8509ea36d6 fix(api-ref): Update getswagger.sh destination paths to use the new directory structure when fetching spec files. Update the redocly plugin module path. 2025-01-28 12:31:47 -06:00
Jason Stirnaman f1d82f4b00 fix(api-docs): Update API reference directories and generation script for influxdb3 URL paths, update links and names in reference content 2025-01-28 10:53:07 -06:00