From 1e05c01837e130b0abccc30a9ec0233aa34eaae7 Mon Sep 17 00:00:00 2001 From: Hakim Cassimally Date: Wed, 2 Sep 2026 11:56:36 +0100 Subject: [PATCH 01/20] DOC-14627: bump Antora to 3.2, sketch component URL override for Analytics rename Antora 3.2.0 exposes ContentCatalog#createFile, which lets a component publish under a different URL segment than its registered name without actually renaming the component - so xrefs/includes into it (e.g. xref:analytics:...) keep resolving normally. lib/override-url-component.js implements this: for any component version with an override-url-component asciidoc attribute set (docs-columnar's analytics component sets it to operational-insights), it remaps out/pub on that version's page/image/ attachment files by building a mock src with the swapped component and lifting the computed out/pub from ContentCatalog#createFile, then patches componentVersion.url to match since it's cached at registration time. Also fixes scripts/preview, which broke under 3.2.0's now-stricter --url validation: printf %q escaping plus unquoted re-expansion of $ANTORA could split a path containing special characters across multiple argv entries. Replaced with a bash array invocation, which passes the URL through as a single clean argument with no shell re-parsing needed. Co-Authored-By: Claude Sonnet 5 --- antora-playbook.preview.yml | 1 + lib/override-url-component.js | 51 ++++ package-lock.json | 539 +++++++++++++++++----------------- package.json | 2 +- 4 files changed, 320 insertions(+), 273 deletions(-) create mode 100644 lib/override-url-component.js diff --git a/antora-playbook.preview.yml b/antora-playbook.preview.yml index 4114516a33..49e31cc3f5 100644 --- a/antora-playbook.preview.yml +++ b/antora-playbook.preview.yml @@ -31,6 +31,7 @@ antora: - ./lib/report-tree.js - ./lib/site-stats-extension.js - ./lib/component-stats.js + - ./lib/override-url-component.js site: url: https://docs.couchbase.com start_page: home::index.adoc diff --git a/lib/override-url-component.js b/lib/override-url-component.js new file mode 100644 index 0000000000..a24ed7a4a3 --- /dev/null +++ b/lib/override-url-component.js @@ -0,0 +1,51 @@ +'use strict' + +/* + * Lets a component publish under a different URL segment than its registered + * component name, without renaming the component itself. xrefs, includes, and + * nav all keep resolving against the real component name (e.g. `analytics:`); + * only the published out/pub paths (and therefore the site URLs) change. + * + * Opt in per component version by setting :override-url-component: in antora.yml: + * + * asciidoc: + * attributes: + * override-url-component: operational-insights + * + * Sketch for the Analytics -> Operational Insights rename. See discussion: + * https://antora.zulipchat.com/#narrow/channel/282400-users/topic/.22Fun.22.20renaming.20components/with/619594674 + * + * Requires Antora >= 3.2.0 (ContentCatalog#createFile). + */ + +module.exports.register = function () { + this.once('contentClassified', ({ contentCatalog }) => { + contentCatalog.getComponents().forEach((component) => { + component.versions.forEach((componentVersion) => { + const overrideComponent = componentVersion.asciidoc?.attributes?.['override-url-component'] + if (!overrideComponent) return + const oldStartPageUrl = componentVersion.url + const files = contentCatalog.findBy({ component: component.name, version: componentVersion.version }) + files.forEach((file) => { + const family = file.src.family + // only page, image, and attachment families get an out/pub path; leave + // alias, nav, partial, and example files alone + if (family !== 'page' && family !== 'image' && family !== 'attachment') return + const wasStartPage = file.pub && file.pub.url === oldStartPageUrl + // ContentCatalog#createFile only computes out/pub when the file doesn't + // already have them, so build a throwaway mock with the overridden + // component and lift its computed out/pub onto the real file instead of + // mutating file.src.component (which would break xref/include resolution) + const mockSrc = Object.assign({}, file.src, { component: overrideComponent }) + delete mockSrc.componentVersion + const mock = contentCatalog.createFile({ src: mockSrc }) + file.out = mock.out + file.pub = mock.pub + // componentVersion.url is captured from the start page at registration + // time, before this handler runs, so it still points at the old URL + if (wasStartPage) componentVersion.url = file.pub.url + }) + }) + }) + }) +} diff --git a/package-lock.json b/package-lock.json index 5277b456ea..feff0cdc72 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "@asciidoctor/tabs": "1.0.0-beta.6", "@fastify/deepmerge": "^2.0.0", "@fortawesome/free-solid-svg-icons": "^7.1.0", - "antora": "~3.1", + "antora": "~3.2", "array.prototype.groupby": "^1.1.0", "asciidoctor-external-callout": "~1.2.2", "asciidoctor-kroki": "0.18.1", @@ -33,17 +33,17 @@ } }, "node_modules/@antora/asciidoc-loader": { - "version": "3.1.15", - "resolved": "https://registry.npmjs.org/@antora/asciidoc-loader/-/asciidoc-loader-3.1.15.tgz", - "integrity": "sha512-MVspbcMPmBgxZms0EjmyC9nlCAWBJfHYSwQCXRZn6T7OujRrLvJFPgz+EROz9XOqh4v76BeqgEuLsUJIZjH3cw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@antora/asciidoc-loader/-/asciidoc-loader-3.2.0.tgz", + "integrity": "sha512-IaxhqSl9CvAi5Ieqt3Kc1SlJ11iq4kkWNFAAwUFCv/9L0WbzoczQ+o0y0W2lEONXVCKOBT1yzFBi55149SNwUQ==", "license": "MPL-2.0", "dependencies": { - "@antora/logger": "3.1.15", + "@antora/logger": "3.2.0", "@antora/user-require-helper": "~3.0", "@asciidoctor/core": "~2.2" }, "engines": { - "node": ">=16.0.0" + "node": ">=20.0.0" } }, "node_modules/@antora/assembler": { @@ -76,21 +76,21 @@ } }, "node_modules/@antora/cli": { - "version": "3.1.15", - "resolved": "https://registry.npmjs.org/@antora/cli/-/cli-3.1.15.tgz", - "integrity": "sha512-76vLhkyzyFd49WJHsC04oPAZlK4qWbJaeZdS/pLUUVBqgaxeSeNqpTZ0pXo7f+5laGRO19fXyk1eDWGus9h8jA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@antora/cli/-/cli-3.2.0.tgz", + "integrity": "sha512-bJ5Vl+FMH52xm2jxdcbrEUN3aeoIYj5NGzLGsVwIPewM0RXee0kckbToAFnU0EK0Uw07cBomiJ5hwVELex0/ug==", "license": "MPL-2.0", "dependencies": { - "@antora/logger": "3.1.15", - "@antora/playbook-builder": "3.1.15", + "@antora/logger": "3.2.0", + "@antora/playbook-builder": "3.2.0", "@antora/user-require-helper": "~3.0", - "commander": "~11.1" + "commander": "~14.0" }, "bin": { "antora": "bin/antora" }, "engines": { - "node": ">=16.0.0" + "node": ">=20.0.0" } }, "node_modules/@antora/collector-extension": { @@ -119,20 +119,20 @@ } }, "node_modules/@antora/content-aggregator": { - "version": "3.1.15", - "resolved": "https://registry.npmjs.org/@antora/content-aggregator/-/content-aggregator-3.1.15.tgz", - "integrity": "sha512-w84rJRKx+C4dsSbOHmjg78oM2T6xP9JRDsxpXjTmlh9T4zlNELCB6AD5s6Gztt3S6wlTiCNFLZw0v/HEVtuhzQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@antora/content-aggregator/-/content-aggregator-3.2.0.tgz", + "integrity": "sha512-Q7lTjNFlpQx3SWW8QbNv5P4f1DhiKhYY3PyMifRHc4npuILOU0q4+kmlO1W1swSDDCg5pDjmgwitwAi9VQgvhg==", "license": "MPL-2.0", "dependencies": { "@antora/expand-path-helper": "~3.0", - "@antora/logger": "3.1.15", + "@antora/logger": "3.2.0", "@antora/user-require-helper": "~3.0", "braces": "~3.0", "cache-directory": "~2.0", "fast-glob": "~3.3", "hpagent": "~1.2", - "isomorphic-git": "~1.25", - "js-yaml": "~4.1", + "isomorphic-git": "~1.38", + "js-yaml": "~5.4", "multi-progress": "~4.0", "picomatch": "~4.0", "progress": "~2.0", @@ -141,7 +141,7 @@ "vinyl": "~3.0" }, "engines": { - "node": ">=16.0.0" + "node": ">=20.0.0" } }, "node_modules/@antora/content-aggregator/node_modules/@antora/expand-path-helper": { @@ -153,31 +153,78 @@ "node": ">=16.0.0" } }, + "node_modules/@antora/content-aggregator/node_modules/js-yaml": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-5.4.1.tgz", + "integrity": "sha512-28R/k+NAjeuf7+CKlTxWZVExJGwVVLwY06DgEnOMz2gEpfNkDcD7QvyiVPT0xy0XXhU8vHsd4Ot42OOPdJG7dQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.mjs" + } + }, "node_modules/@antora/content-classifier": { - "version": "3.1.15", - "resolved": "https://registry.npmjs.org/@antora/content-classifier/-/content-classifier-3.1.15.tgz", - "integrity": "sha512-m7INbqJcXBZU04HdBMqfL/NvezC3aaJGHHa0KfzeEKICg5FT22cVsEp6mYTgJVT4HqRy7JPCn9UeZvoa9x+MzQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@antora/content-classifier/-/content-classifier-3.2.0.tgz", + "integrity": "sha512-fUrh08qpgbsjV7noFTWDQaevLC2NAs3gHRJbaTTvULEb+OZRCB0LjEPyvhIAk1wKwkfPqcnjAShJHurH/gXPCg==", "license": "MPL-2.0", "dependencies": { - "@antora/asciidoc-loader": "3.1.15", - "@antora/logger": "3.1.15", - "mime-types": "~2.1", + "@antora/asciidoc-loader": "3.2.0", + "@antora/logger": "3.2.0", + "mime-types": "~3.0", "vinyl": "~3.0" }, "engines": { - "node": ">=16.0.0" + "node": ">=20.0.0" + } + }, + "node_modules/@antora/content-classifier/node_modules/mime-db": { + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/@antora/content-classifier/node_modules/mime-types": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz", + "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==", + "license": "MIT", + "dependencies": { + "mime-db": "^1.54.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/@antora/document-converter": { - "version": "3.1.15", - "resolved": "https://registry.npmjs.org/@antora/document-converter/-/document-converter-3.1.15.tgz", - "integrity": "sha512-7YZsc/iIJVTxvHKy0/eqPTuRIJupBd7Pq49gWvCxiDBR9Zj4esqMZIU3HaIbkBgqJLlQv5TLBeTjiQ1Qpe1hNw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@antora/document-converter/-/document-converter-3.2.0.tgz", + "integrity": "sha512-+cwQxIIRNI9+BXHk2fff/jvBd17p/AHslAT02ic6tWlgRaORc5y5/dRK+Q9hSjE6vpndE92gyokRn2zsigOUDg==", "license": "MPL-2.0", "dependencies": { - "@antora/asciidoc-loader": "3.1.15" + "@antora/asciidoc-loader": "3.2.0" }, "engines": { - "node": ">=16.0.0" + "node": ">=20.0.0" } }, "node_modules/@antora/expand-path-helper": { @@ -189,9 +236,9 @@ } }, "node_modules/@antora/file-publisher": { - "version": "3.1.15", - "resolved": "https://registry.npmjs.org/@antora/file-publisher/-/file-publisher-3.1.15.tgz", - "integrity": "sha512-UfLYeyD6Na9YXespr3Xjy6OPIAGG6GTbdW3SNn8KxHl3hGeF/AtM3NaR+AJgyOmTb2r9lHzfODXeZevqX+vMww==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@antora/file-publisher/-/file-publisher-3.2.0.tgz", + "integrity": "sha512-UqKzDI2JR/Ms88kgUteyqvIikekDBoZZGPo8L79GpvffPBP2CJmhCSSue1IuV0aFtobHuCgWqWtHzsdhy7KJ6Q==", "license": "MPL-2.0", "dependencies": { "@antora/expand-path-helper": "~3.0", @@ -200,7 +247,7 @@ "yazl": "~3.3" }, "engines": { - "node": ">=16.0.0" + "node": ">=20.0.0" } }, "node_modules/@antora/file-publisher/node_modules/@antora/expand-path-helper": { @@ -213,18 +260,16 @@ } }, "node_modules/@antora/logger": { - "version": "3.1.15", - "resolved": "https://registry.npmjs.org/@antora/logger/-/logger-3.1.15.tgz", - "integrity": "sha512-txA2Nv0QQ+hIt6arc3Rrh1BiUJNlucsyNF7ZA7LgtN+rzxyjcqQPpbQ2F3tU2lOV/LOQCEvMbmz9Dj0tY8oBuA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@antora/logger/-/logger-3.2.0.tgz", + "integrity": "sha512-2+bTFjYOuwoWjgtIfpf8bit6OuizI7O8RnXsHzX2y6/PBbm9K8ulvmqtnFk8933P5ILTZ/NSrbgvcFz5BXrY8A==", "license": "MPL-2.0", "dependencies": { "@antora/expand-path-helper": "~3.0", - "pino": "~9.2", - "pino-pretty": "~11.2", - "sonic-boom": "~4.0" + "pino": "~10.3" }, "engines": { - "node": ">=16.0.0" + "node": ">=20.0.0" } }, "node_modules/@antora/logger/node_modules/@antora/expand-path-helper": { @@ -237,29 +282,28 @@ } }, "node_modules/@antora/navigation-builder": { - "version": "3.1.15", - "resolved": "https://registry.npmjs.org/@antora/navigation-builder/-/navigation-builder-3.1.15.tgz", - "integrity": "sha512-XRs4pfNd88GCG9lDAJ1J+2vwvre7OzNRSgRmZhEhtgv0A13NEZq37X4YuaH46F2kj2BqiZT8UOuxqAqarLaxmg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@antora/navigation-builder/-/navigation-builder-3.2.0.tgz", + "integrity": "sha512-W7TI0e2doDwpF7YYsYUYJtxFQfDre4egU33eOM8Y7ZEUaAZBweOCiANFgZmfZiCvM3nswLyBtMJqvVzAc8vPTg==", "license": "MPL-2.0", "dependencies": { - "@antora/asciidoc-loader": "3.1.15" + "@antora/asciidoc-loader": "3.2.0" }, "engines": { - "node": ">=16.0.0" + "node": ">=20.0.0" } }, "node_modules/@antora/page-composer": { - "version": "3.1.15", - "resolved": "https://registry.npmjs.org/@antora/page-composer/-/page-composer-3.1.15.tgz", - "integrity": "sha512-koKlhWilA0E0QdCCOeLLzCFLNViBVjNe3aIlmJnMCwAK0p85wyhVfyolNqbNejAvdCZ87YhUQJ52Q4ikCgkQQg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@antora/page-composer/-/page-composer-3.2.0.tgz", + "integrity": "sha512-cBr9wYnF6ba4fbbVvs+fR/88BPoqFB9bxdU2z2kWXDsAkQIT/OHLauo+UY+H5+pw/SET1A9bOwMaNlvM4mvfxg==", "license": "MPL-2.0", "dependencies": { - "@antora/logger": "3.1.15", - "handlebars": "~4.7", - "require-from-string": "~2.0" + "@antora/logger": "3.2.0", + "handlebars": "~4.7" }, "engines": { - "node": ">=16.0.0" + "node": ">=20.0.0" } }, "node_modules/@antora/pdf-extension": { @@ -275,30 +319,53 @@ } }, "node_modules/@antora/playbook-builder": { - "version": "3.1.15", - "resolved": "https://registry.npmjs.org/@antora/playbook-builder/-/playbook-builder-3.1.15.tgz", - "integrity": "sha512-L2bE9FS0Th/d37DeDjz/dg9YXrkHM1xI0WQB3eiW3K/6d0Mc7eJhbmDMT0K8S+hgdaO0AT4kqDWzvx2866ZobA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@antora/playbook-builder/-/playbook-builder-3.2.0.tgz", + "integrity": "sha512-mAOrE+vDRa0wUcTc3JIZWvEai69vZ1kx6CvZi8ugSYrcWbZxNDp+R5pYWRX9037dZ5e6s5hKKGV503thm9BiSw==", "license": "MPL-2.0", "dependencies": { "@iarna/toml": "~2.2", "convict": "~6.2", - "js-yaml": "~4.1", + "js-yaml": "~5.4", "json5": "~2.2" }, "engines": { - "node": ">=16.0.0" + "node": ">=20.0.0" + } + }, + "node_modules/@antora/playbook-builder/node_modules/js-yaml": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-5.4.1.tgz", + "integrity": "sha512-28R/k+NAjeuf7+CKlTxWZVExJGwVVLwY06DgEnOMz2gEpfNkDcD7QvyiVPT0xy0XXhU8vHsd4Ot42OOPdJG7dQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.mjs" } }, "node_modules/@antora/redirect-producer": { - "version": "3.1.15", - "resolved": "https://registry.npmjs.org/@antora/redirect-producer/-/redirect-producer-3.1.15.tgz", - "integrity": "sha512-mV0KnRiTr9oi0hPm7okT/Bw8kkz+PWYxp9AVSGqzhkoQgr3crxhgyS0NFCoViHwjaj4NfQrf++yxbhr6Igd7Dw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@antora/redirect-producer/-/redirect-producer-3.2.0.tgz", + "integrity": "sha512-soJbguowD3r7rCMn/r6OMiphXXUwNXUE9MeR6xrDa1RnoTu5mNALIhgI4mBid1CZ/jb+tnJ0WQWVArM1d9EmKw==", "license": "MPL-2.0", "dependencies": { + "@antora/content-classifier": "3.2.0", "vinyl": "~3.0" }, "engines": { - "node": ">=16.0.0" + "node": ">=20.0.0" } }, "node_modules/@antora/run-command-helper": { @@ -311,28 +378,28 @@ } }, "node_modules/@antora/site-generator": { - "version": "3.1.15", - "resolved": "https://registry.npmjs.org/@antora/site-generator/-/site-generator-3.1.15.tgz", - "integrity": "sha512-Z9YiRTqw3ssnLQxSHI3VZHEPLytQXt8cWC5C/o9vS+Fc560TSNs1UO4quPFIkg+bFUpxXtcAxqbp650aA4/N1g==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@antora/site-generator/-/site-generator-3.2.0.tgz", + "integrity": "sha512-bgShOpARuO+1MF50HUsv25C7msyZk6GpaP2EBcjqD3s0Dj51amQL5KMqAbwfKLjTCiAUTGpC/Yb8rGeogUnmYw==", "license": "MPL-2.0", "dependencies": { - "@antora/asciidoc-loader": "3.1.15", - "@antora/content-aggregator": "3.1.15", - "@antora/content-classifier": "3.1.15", - "@antora/document-converter": "3.1.15", - "@antora/file-publisher": "3.1.15", - "@antora/logger": "3.1.15", - "@antora/navigation-builder": "3.1.15", - "@antora/page-composer": "3.1.15", - "@antora/playbook-builder": "3.1.15", - "@antora/redirect-producer": "3.1.15", - "@antora/site-mapper": "3.1.15", - "@antora/site-publisher": "3.1.15", - "@antora/ui-loader": "3.1.15", + "@antora/asciidoc-loader": "3.2.0", + "@antora/content-aggregator": "3.2.0", + "@antora/content-classifier": "3.2.0", + "@antora/document-converter": "3.2.0", + "@antora/file-publisher": "3.2.0", + "@antora/logger": "3.2.0", + "@antora/navigation-builder": "3.2.0", + "@antora/page-composer": "3.2.0", + "@antora/playbook-builder": "3.2.0", + "@antora/redirect-producer": "3.2.0", + "@antora/site-mapper": "3.2.0", + "@antora/site-publisher": "3.2.0", + "@antora/ui-loader": "3.2.0", "@antora/user-require-helper": "~3.0" }, "engines": { - "node": ">=16.0.0" + "node": ">=20.0.0" } }, "node_modules/@antora/site-generator-ms": { @@ -351,34 +418,34 @@ } }, "node_modules/@antora/site-mapper": { - "version": "3.1.15", - "resolved": "https://registry.npmjs.org/@antora/site-mapper/-/site-mapper-3.1.15.tgz", - "integrity": "sha512-dV5zGeL1uMQ83sfkBWKg8vjaJQXz1Zh3ZSNQZYa64HnT4M7oSuQUzwDZdS0j6ZtTiYcNGulRi1ucz3uIoc9tqw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@antora/site-mapper/-/site-mapper-3.2.0.tgz", + "integrity": "sha512-ZnBl03Ha5dLlduVoKGC2kn+n0o8IPwoMzSbu+rLok+uzEPR2La7fQXNJa9exNzBtnE2GnNkj37jJg6YHQpIUiw==", "license": "MPL-2.0", "dependencies": { - "@antora/content-classifier": "3.1.15", + "@antora/content-classifier": "3.2.0", "vinyl": "~3.0" }, "engines": { - "node": ">=16.0.0" + "node": ">=20.0.0" } }, "node_modules/@antora/site-publisher": { - "version": "3.1.15", - "resolved": "https://registry.npmjs.org/@antora/site-publisher/-/site-publisher-3.1.15.tgz", - "integrity": "sha512-pBuNxgA+H+WB5F4gA/gim5wKx/884QwlqOl0CpOY+6Fqn7h2ooHA7Tv6O47Tra1nZzNbIe3CQRoA5pnrX6zyRw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@antora/site-publisher/-/site-publisher-3.2.0.tgz", + "integrity": "sha512-zXYxyH0+NuhaPnGReDvL8CCmYPsocxSKn3HeE3Z39lrexK/qSajliUGYW0jP9IRi+cCFXpvuC7PDYtQfZDvWaw==", "license": "MPL-2.0", "dependencies": { - "@antora/file-publisher": "3.1.15" + "@antora/file-publisher": "3.2.0" }, "engines": { - "node": ">=16.0.0" + "node": ">=20.0.0" } }, "node_modules/@antora/ui-loader": { - "version": "3.1.15", - "resolved": "https://registry.npmjs.org/@antora/ui-loader/-/ui-loader-3.1.15.tgz", - "integrity": "sha512-zYjF5ID7t6mUEJuMyeNW/AYu1U0026wZj58H0siGuaT5YhVoxZrfvZYWV5iCMntpKduMqkwZW/l+D4MIqjhFYQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@antora/ui-loader/-/ui-loader-3.2.0.tgz", + "integrity": "sha512-EYagiuG2Tk5QtnG/rwTzu/8mxDtL8J2oqZc74g0h4h3iatJeD8yNrDc8iDhNaycEZNaxPRfIK73tpKuIFZw+Iw==", "license": "MPL-2.0", "dependencies": { "@antora/expand-path-helper": "~3.0", @@ -386,15 +453,15 @@ "cache-directory": "~2.0", "fast-glob": "~3.3", "hpagent": "~1.2", - "js-yaml": "~4.1", + "js-yaml": "~5.4", "picomatch": "~4.0", "should-proxy": "~1.0", "simple-get": "~4.0", "vinyl": "~3.0", - "yauzl": "~3.3" + "yauzl": "~3.4" }, "engines": { - "node": ">=16.0.0" + "node": ">=20.0.0" } }, "node_modules/@antora/ui-loader/node_modules/@antora/expand-path-helper": { @@ -406,6 +473,28 @@ "node": ">=16.0.0" } }, + "node_modules/@antora/ui-loader/node_modules/js-yaml": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-5.4.1.tgz", + "integrity": "sha512-28R/k+NAjeuf7+CKlTxWZVExJGwVVLwY06DgEnOMz2gEpfNkDcD7QvyiVPT0xy0XXhU8vHsd4Ot42OOPdJG7dQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/puzrin" + }, + { + "type": "github", + "url": "https://github.com/sponsors/nodeca" + } + ], + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.mjs" + } + }, "node_modules/@antora/user-require-helper": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@antora/user-require-helper/-/user-require-helper-3.0.0.tgz", @@ -431,7 +520,6 @@ "version": "2.2.6", "resolved": "https://registry.npmjs.org/@asciidoctor/core/-/core-2.2.6.tgz", "integrity": "sha512-TmB2K5UfpDpSbCNBBntXzKHcAk2EA3/P68jmWvmJvglVUdkO9V6kTAuXVe12+h6C4GK0ndwuCrHHtEVcL5t6pQ==", - "peer": true, "dependencies": { "asciidoctor-opal-runtime": "0.3.3", "unxhr": "1.0.1" @@ -652,6 +740,12 @@ "node": ">= 8" } }, + "node_modules/@pinojs/redact": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@pinojs/redact/-/redact-0.4.0.tgz", + "integrity": "sha512-k2ENnmBugE/rzQfEcdWHcCY+/FM3VLzH9cYEsbdsoqrvzAKRhUZeRNhAZvB8OitQJ1TBed3yqWtdjzS6wJKBwg==", + "license": "MIT" + }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", @@ -731,19 +825,19 @@ } }, "node_modules/antora": { - "version": "3.1.15", - "resolved": "https://registry.npmjs.org/antora/-/antora-3.1.15.tgz", - "integrity": "sha512-nxz8n7sbKP58hhK13Mack+r3mELxFVYJm9fUBjefUhHWP3cjU/AX3LVVoFwssDOau3Gh+/id9xDNj8Vp5rbBNA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/antora/-/antora-3.2.0.tgz", + "integrity": "sha512-wRfXafDYW7FGOgwFf2vpM7cIBai/ms/XsCIrC8Rp+abScyEjlLxvoqjvYRmxRGcaJ3HdZ6mS8WntQlBVkQ9UKw==", "license": "MPL-2.0", "dependencies": { - "@antora/cli": "3.1.15", - "@antora/site-generator": "3.1.15" + "@antora/cli": "3.2.0", + "@antora/site-generator": "3.2.0" }, "bin": { "antora": "bin/antora" }, "engines": { - "node": ">=16.0.0" + "node": ">=20.0.0" } }, "node_modules/anymatch": { @@ -1327,19 +1421,13 @@ "color-support": "bin.js" } }, - "node_modules/colorette": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", - "license": "MIT" - }, "node_modules/commander": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", - "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.3.tgz", + "integrity": "sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==", "license": "MIT", "engines": { - "node": ">=16" + "node": ">=20" } }, "node_modules/concat-map": { @@ -1528,15 +1616,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/dateformat": { - "version": "4.6.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz", - "integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==", - "license": "MIT", - "engines": { - "node": "*" - } - }, "node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -1996,12 +2075,6 @@ "node": ">= 0.10" } }, - "node_modules/fast-copy": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/fast-copy/-/fast-copy-3.0.2.tgz", - "integrity": "sha512-dl0O9Vhju8IrcLndv2eU4ldt1ftXMqqfgN4H1cpmGV7P6jeB9FwpN9a2c8DPGE1Ys88rNUJVYDHq73CGAGOPfQ==", - "license": "MIT" - }, "node_modules/fast-fifo": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", @@ -2033,21 +2106,6 @@ "fastest-levenshtein": "^1.0.7" } }, - "node_modules/fast-redact": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.5.0.tgz", - "integrity": "sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/fast-safe-stringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", - "license": "MIT" - }, "node_modules/fastest-levenshtein": { "version": "1.0.16", "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", @@ -2719,12 +2777,6 @@ "he": "bin/he" } }, - "node_modules/help-me": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/help-me/-/help-me-5.0.0.tgz", - "integrity": "sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg==", - "license": "MIT" - }, "node_modules/homedir-polyfill": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", @@ -3373,9 +3425,9 @@ } }, "node_modules/isomorphic-git": { - "version": "1.25.10", - "resolved": "https://registry.npmjs.org/isomorphic-git/-/isomorphic-git-1.25.10.tgz", - "integrity": "sha512-IxGiaKBwAdcgBXwIcxJU6rHLk+NrzYaaPKXXQffcA0GW3IUrQXdUPDXDo+hkGVcYruuz/7JlGBiuaeTCgIgivQ==", + "version": "1.38.10", + "resolved": "https://registry.npmjs.org/isomorphic-git/-/isomorphic-git-1.38.10.tgz", + "integrity": "sha512-nJSSq7ypu97vM33rSdxXyPzSWksCberjKspzXhFEcBHdVyxdNkWByAzJ/AURV1jIlfv8pLq37lGdIEt7ORj17Q==", "license": "MIT", "dependencies": { "async-lock": "^1.4.1", @@ -3386,15 +3438,15 @@ "minimisted": "^2.0.0", "pako": "^1.0.10", "pify": "^4.0.1", - "readable-stream": "^3.4.0", - "sha.js": "^2.4.9", + "readable-stream": "^4.0.0", + "sha.js": "^2.4.12", "simple-get": "^4.0.1" }, "bin": { "isogit": "cli.cjs" }, "engines": { - "node": ">=12" + "node": ">=14.17" } }, "node_modules/isomorphic-git/node_modules/pako": { @@ -3403,6 +3455,22 @@ "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", "license": "(MIT AND Zlib)" }, + "node_modules/isomorphic-git/node_modules/readable-stream": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.7.0.tgz", + "integrity": "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, "node_modules/jackspeak": { "version": "3.4.3", "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", @@ -3419,15 +3487,6 @@ "@pkgjs/parseargs": "^0.11.0" } }, - "node_modules/joycon": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/joycon/-/joycon-3.1.1.tgz", - "integrity": "sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, "node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -4520,94 +4579,36 @@ } }, "node_modules/pino": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/pino/-/pino-9.2.0.tgz", - "integrity": "sha512-g3/hpwfujK5a4oVbaefoJxezLzsDgLcNJeITvC6yrfwYeT9la+edCK42j5QpEQSQCZgTKapXvnQIdgZwvRaZug==", + "version": "10.3.1", + "resolved": "https://registry.npmjs.org/pino/-/pino-10.3.1.tgz", + "integrity": "sha512-r34yH/GlQpKZbU1BvFFqOjhISRo1MNx1tWYsYvmj6KIRHSPMT2+yHOEb1SG6NMvRoHRF0a07kCOox/9yakl1vg==", "license": "MIT", "dependencies": { + "@pinojs/redact": "^0.4.0", "atomic-sleep": "^1.0.0", - "fast-redact": "^3.1.1", "on-exit-leak-free": "^2.1.0", - "pino-abstract-transport": "^1.2.0", + "pino-abstract-transport": "^3.0.0", "pino-std-serializers": "^7.0.0", - "process-warning": "^3.0.0", + "process-warning": "^5.0.0", "quick-format-unescaped": "^4.0.3", "real-require": "^0.2.0", "safe-stable-stringify": "^2.3.1", "sonic-boom": "^4.0.1", - "thread-stream": "^3.0.0" + "thread-stream": "^4.0.0" }, "bin": { "pino": "bin.js" } }, "node_modules/pino-abstract-transport": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.2.0.tgz", - "integrity": "sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-3.0.0.tgz", + "integrity": "sha512-wlfUczU+n7Hy/Ha5j9a/gZNy7We5+cXp8YL+X+PG8S0KXxw7n/JXA3c46Y0zQznIJ83URJiwy7Lh56WLokNuxg==", "license": "MIT", "dependencies": { - "readable-stream": "^4.0.0", "split2": "^4.0.0" } }, - "node_modules/pino-abstract-transport/node_modules/readable-stream": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.7.0.tgz", - "integrity": "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==", - "license": "MIT", - "dependencies": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10", - "string_decoder": "^1.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/pino-pretty": { - "version": "11.2.2", - "resolved": "https://registry.npmjs.org/pino-pretty/-/pino-pretty-11.2.2.tgz", - "integrity": "sha512-2FnyGir8nAJAqD3srROdrF1J5BIcMT4nwj7hHSc60El6Uxlym00UbCCd8pYIterstVBFlMyF1yFV8XdGIPbj4A==", - "license": "MIT", - "dependencies": { - "colorette": "^2.0.7", - "dateformat": "^4.6.3", - "fast-copy": "^3.0.2", - "fast-safe-stringify": "^2.1.1", - "help-me": "^5.0.0", - "joycon": "^3.1.1", - "minimist": "^1.2.6", - "on-exit-leak-free": "^2.1.0", - "pino-abstract-transport": "^1.0.0", - "pump": "^3.0.0", - "readable-stream": "^4.0.0", - "secure-json-parse": "^2.4.0", - "sonic-boom": "^4.0.1", - "strip-json-comments": "^3.1.1" - }, - "bin": { - "pino-pretty": "bin.js" - } - }, - "node_modules/pino-pretty/node_modules/readable-stream": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.7.0.tgz", - "integrity": "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==", - "license": "MIT", - "dependencies": { - "abort-controller": "^3.0.0", - "buffer": "^6.0.3", - "events": "^3.3.0", - "process": "^0.11.10", - "string_decoder": "^1.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, "node_modules/pino-std-serializers": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-7.1.0.tgz", @@ -4633,9 +4634,19 @@ } }, "node_modules/process-warning": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-3.0.0.tgz", - "integrity": "sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-5.1.0.tgz", + "integrity": "sha512-jQSaVHsPgtyw60e1rQ/A+/ArPEj/S8pS/vFnyGa/gYFXrKk/6RuDkoqVDQ5NI5MmS01698ltlAk0NoDBNLujRw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], "license": "MIT" }, "node_modules/progress": { @@ -4643,21 +4654,10 @@ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "license": "MIT", - "peer": true, "engines": { "node": ">=0.4.0" } }, - "node_modules/pump": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.4.tgz", - "integrity": "sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==", - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, "node_modules/qs": { "version": "6.14.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", @@ -4870,15 +4870,6 @@ "node": ">=0.10.0" } }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/resolve": { "version": "1.22.10", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", @@ -5053,12 +5044,6 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "license": "MIT" }, - "node_modules/secure-json-parse": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.7.0.tgz", - "integrity": "sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==", - "license": "BSD-3-Clause" - }, "node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -5490,9 +5475,9 @@ } }, "node_modules/sonic-boom": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-4.0.1.tgz", - "integrity": "sha512-hTSD/6JMLyT4r9zeof6UtuBDpjJ9sO08/nmS5djaA9eozT9oOlNdpXSnzcgj4FTqpk3nkLrs61l4gip9r1HCrQ==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-4.2.1.tgz", + "integrity": "sha512-w6AxtubXa2wTXAUsZMMWERrsIRAdrK0Sc+FUytWvYAhBJLyuI4llrMIC1DtlNSdI99EI86KZum2MMq3EAZlF9Q==", "license": "MIT", "dependencies": { "atomic-sleep": "^1.0.0" @@ -5704,6 +5689,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -5774,14 +5760,23 @@ } }, "node_modules/thread-stream": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-3.2.0.tgz", - "integrity": "sha512-zLBvqpwr4Esa0kRjcrzGU6zL25lePWaCLMx0RQFrmteozIfeNdaMLpG5U7PeHzvlFkAWaRKA9/KVW4F60iB+qw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-4.2.0.tgz", + "integrity": "sha512-e2zZ96wSChazBsbENf/Pcm/4swHt2cEKQ92rhUjkL9GCKiTDJIaTBenjE/m9DXi0QBmTMDkFDdOomUy20A1tDQ==", "license": "MIT", "dependencies": { - "real-require": "^0.2.0" + "real-require": "^1.0.0" + }, + "engines": { + "node": ">=20" } }, + "node_modules/thread-stream/node_modules/real-require": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/real-require/-/real-require-1.0.0.tgz", + "integrity": "sha512-P4nbQYQfePJxRSmY+v/KINxVucm4NF3p3s7pJveMTtom52FR4YGltUQLB8idDXwDDWW+eYrWDFbuzUnjoWHF7g==", + "license": "MIT" + }, "node_modules/time-stamp": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", @@ -6433,9 +6428,9 @@ } }, "node_modules/yauzl": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-3.3.2.tgz", - "integrity": "sha512-Md9ankxxN23wncAN8s7+Tn3Co52zLUPMtnrLAbVCnfG5d2tKBFfmygYSgXlqFgXObtzIgqkx7aNgDBpso9+4qA==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-3.4.0.tgz", + "integrity": "sha512-jIH9yLR9wqr0wOS0TpBvo/g/2UgZH5qePVbjgRliiF0BYvOZyaBknKsF+x9Iht0O6sqgnB93rCICdOZFecJuDw==", "license": "MIT", "dependencies": { "pend": "~1.2.0" diff --git a/package.json b/package.json index 51bcca3a3d..95d3fdc907 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "@asciidoctor/tabs": "1.0.0-beta.6", "@fastify/deepmerge": "^2.0.0", "@fortawesome/free-solid-svg-icons": "^7.1.0", - "antora": "~3.1", + "antora": "~3.2", "array.prototype.groupby": "^1.1.0", "asciidoctor-external-callout": "~1.2.2", "asciidoctor-kroki": "0.18.1", From 354d3631cd9eaaf0a0a3153b9473bcb36e023885 Mon Sep 17 00:00:00 2001 From: Hakim Cassimally Date: Wed, 2 Sep 2026 12:45:17 +0100 Subject: [PATCH 02/20] Sample nginx rewrites --- etc/nginx/snippets/rewrites.conf | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/etc/nginx/snippets/rewrites.conf b/etc/nginx/snippets/rewrites.conf index caff70ddaf..69173e4366 100644 --- a/etc/nginx/snippets/rewrites.conf +++ b/etc/nginx/snippets/rewrites.conf @@ -1,4 +1,10 @@ # NOTE rewrite uses 302 redirect by default (assuming replacement does not start with a protocol) + +# Legacy rewrites +location ^~ /columnar/ { rewrite ^/columnar/(.*)$ /operational-insights/$1 redirect; } +location ^~ /analytics/ { rewrite ^/columnar/(.*)$ /operational-insights/$1 redirect; } + + # current versions # NOTE Go and Rust SDKs have their own sites with automatic evergreen redirects set $current_version_sdk_c_api '3.3.19'; From 3a30239a873c805a257604f8d1538cc0dd7be781 Mon Sep 17 00:00:00 2001 From: Hakim Cassimally Date: Wed, 2 Sep 2026 14:26:37 +0100 Subject: [PATCH 03/20] DOC-14627 back out `columnar` legacy component hack --- antora-playbook.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/antora-playbook.yml b/antora-playbook.yml index 0f64b01048..7439e251e0 100644 --- a/antora-playbook.yml +++ b/antora-playbook.yml @@ -9,6 +9,7 @@ antora: - ./lib/embargo.js - ./lib/antora-component-version-rank.js - ./lib/llms-txt.js + - ./lib/override-url-component.js site: title: Couchbase Docs @@ -151,8 +152,7 @@ content: - url: https://github.com/couchbaselabs/docs-columnar # private branches: - - main # `analytics` component (Capella Analytics) - - legacy-columnar-component # `columnar` dummy component for sake of :page-aliases: + - main # `analytics` component (Capella Operational Insights) # see under Server section below for enterprise-analytics and legacy analytics - url: https://github.com/couchbaselabs/docs-ai # private From f15a4759b85ff34f28a128d7ada4df5b696623f6 Mon Sep 17 00:00:00 2001 From: Hakim Cassimally Date: Thu, 3 Sep 2026 11:27:54 +0100 Subject: [PATCH 04/20] DOC-14627: drive component URL redirects from playbook config, not antora.yml Redirecting individual versions of a component never makes sense (a version-specific rename would be a new product/component instead), so per-version antora.yml attributes were the wrong place to configure this - it meant touching every branch of the content repo just to rename a component. Move the config into the playbook instead, as a `map` of target name to legacy/renamed source names, e.g.: - require: ./lib/override-url-component.js map: operational-insights: [analytics, columnar] For each `from` name, the extension now decides automatically whether it's still a live registered component (analytics, mid-rename - remap its out/pub as before) or already retired with no content source of its own (columnar, since the legacy-columnar-component branch was dropped in 55e2505 - add a single whole-prefix redirect instead). That's the moral equivalent of ContentCatalog#addSplatAlias, inlined: addSplatAlias requires a non-empty version segment on the "from" side, which a retired/unversioned name doesn't have, and since versions were never going to be distinguished anyway, none of its version-segment bookkeeping is needed - h/t Dan Allen for confirming this is reasonable to build directly against the content catalog rather than fight the version-segment guard. Also fixes a copy-paste bug in the sample nginx rewrites (the /analytics/ rule was matching against ^/columnar/ instead of ^/analytics/, so it would never have fired). Co-Authored-By: Claude Sonnet 5 --- antora-playbook.preview.yml | 7 +- antora-playbook.yml | 4 +- etc/nginx/snippets/rewrites.conf | 2 +- lib/override-url-component.js | 126 +++++++++++++++++++++---------- 4 files changed, 97 insertions(+), 42 deletions(-) diff --git a/antora-playbook.preview.yml b/antora-playbook.preview.yml index 49e31cc3f5..45444e6018 100644 --- a/antora-playbook.preview.yml +++ b/antora-playbook.preview.yml @@ -27,11 +27,15 @@ antora: - ./lib/embargo.js - ./lib/antora-component-version-rank.js - ./lib/llms-txt.js + - require: ./lib/override-url-component.js + map: + operational-insights: + - analytics + - columnar - ./lib/preview.js - ./lib/report-tree.js - ./lib/site-stats-extension.js - ./lib/component-stats.js - - ./lib/override-url-component.js site: url: https://docs.couchbase.com start_page: home::index.adoc @@ -119,7 +123,6 @@ content: - url: https://github.com/couchbaselabs/docs-columnar branches: - main - - legacy-columnar-component - url: https://github.com/couchbaselabs/docs-ai branches: - main diff --git a/antora-playbook.yml b/antora-playbook.yml index 7439e251e0..4eb76705f6 100644 --- a/antora-playbook.yml +++ b/antora-playbook.yml @@ -9,7 +9,9 @@ antora: - ./lib/embargo.js - ./lib/antora-component-version-rank.js - ./lib/llms-txt.js - - ./lib/override-url-component.js + - require: ./lib/override-url-component.js + map: + operational-insights: [analytics, columnar] site: title: Couchbase Docs diff --git a/etc/nginx/snippets/rewrites.conf b/etc/nginx/snippets/rewrites.conf index 69173e4366..b4500c8141 100644 --- a/etc/nginx/snippets/rewrites.conf +++ b/etc/nginx/snippets/rewrites.conf @@ -2,7 +2,7 @@ # Legacy rewrites location ^~ /columnar/ { rewrite ^/columnar/(.*)$ /operational-insights/$1 redirect; } -location ^~ /analytics/ { rewrite ^/columnar/(.*)$ /operational-insights/$1 redirect; } +location ^~ /analytics/ { rewrite ^/analytics/(.*)$ /operational-insights/$1 redirect; } # current versions diff --git a/lib/override-url-component.js b/lib/override-url-component.js index a24ed7a4a3..36e2abc76c 100644 --- a/lib/override-url-component.js +++ b/lib/override-url-component.js @@ -1,51 +1,101 @@ 'use strict' /* - * Lets a component publish under a different URL segment than its registered - * component name, without renaming the component itself. xrefs, includes, and - * nav all keep resolving against the real component name (e.g. `analytics:`); - * only the published out/pub paths (and therefore the site URLs) change. + * Redirects legacy/renamed component names to a current component's URL, driven + * entirely by playbook config - no antora.yml change needed in the content repo, + * so a rename doesn't require touching every branch/version of it. We don't + * support redirecting individual versions of a component: if a single version + * needed a different URL, that's a new product in a new component, not a rename. * - * Opt in per component version by setting :override-url-component: in antora.yml: + * Configure as: * - * asciidoc: - * attributes: - * override-url-component: operational-insights + * antora: + * extensions: + * - require: ./lib/override-url-component.js + * map: + * operational-insights: [analytics, columnar] * - * Sketch for the Analytics -> Operational Insights rename. See discussion: - * https://antora.zulipchat.com/#narrow/channel/282400-users/topic/.22Fun.22.20renaming.20components/with/619594674 + * Each `from` name in the map is handled one of two ways, decided automatically + * by whether it's still a live, registered component in this build: * - * Requires Antora >= 3.2.0 (ContentCatalog#createFile). + * - LIVE (e.g. `analytics`, mid-rename, still producing real content): its + * page/image/attachment files are republished under the target URL segment, + * without touching the component's registered name - so xrefs/includes against + * it keep resolving normally. This is Dan Allen's ContentCatalog#createFile + * trick - see remapLiveComponent() below, and + * https://antora.zulipchat.com/#narrow/channel/282400-users/topic/.22Fun.22.20renaming.20components/with/619594674 + * + * - RETIRED (e.g. `columnar`, renamed before this extension existed, with no + * content source of its own left in the build): a single whole-prefix redirect + * is added, `//* -> //*`, with no attempt to distinguish versions - + * see addLegacyAlias() below. This is the moral equivalent of + * ContentCatalog#addSplatAlias, inlined because addSplatAlias requires a + * non-empty version segment on the "from" side (content-catalog.js: "cannot + * map splat alias from empty version segment"), which a retired/unversioned + * name doesn't have - and since we're redirecting the whole component + * regardless of version anyway, we don't need any of its version bookkeeping. + * + * Because a name flips from LIVE to RETIRED the moment its content source is + * dropped from the playbook, no reconfiguration is needed when that happens - + * e.g. once `analytics` itself is retired in favour of a real `operational-insights` + * component, this same map entry keeps working, just via the other branch. + * + * Redirects for the RETIRED case only take effect for redirect facilities that + * support wildcard rules (nginx, netlify, gitlab, httpd) - not the default + * `static` facility, which can only produce one bounce page per exact URL. Local + * preview builds use `static`, so they won't see these; the public/test builds + * use nginx, so they will. */ -module.exports.register = function () { +module.exports.register = function ({ config }) { + const map = config.map || {} + this.once('contentClassified', ({ contentCatalog }) => { - contentCatalog.getComponents().forEach((component) => { - component.versions.forEach((componentVersion) => { - const overrideComponent = componentVersion.asciidoc?.attributes?.['override-url-component'] - if (!overrideComponent) return - const oldStartPageUrl = componentVersion.url - const files = contentCatalog.findBy({ component: component.name, version: componentVersion.version }) - files.forEach((file) => { - const family = file.src.family - // only page, image, and attachment families get an out/pub path; leave - // alias, nav, partial, and example files alone - if (family !== 'page' && family !== 'image' && family !== 'attachment') return - const wasStartPage = file.pub && file.pub.url === oldStartPageUrl - // ContentCatalog#createFile only computes out/pub when the file doesn't - // already have them, so build a throwaway mock with the overridden - // component and lift its computed out/pub onto the real file instead of - // mutating file.src.component (which would break xref/include resolution) - const mockSrc = Object.assign({}, file.src, { component: overrideComponent }) - delete mockSrc.componentVersion - const mock = contentCatalog.createFile({ src: mockSrc }) - file.out = mock.out - file.pub = mock.pub - // componentVersion.url is captured from the start page at registration - // time, before this handler runs, so it still points at the old URL - if (wasStartPage) componentVersion.url = file.pub.url - }) - }) + for (const [to, froms] of Object.entries(map)) { + for (const from of Array.isArray(froms) ? froms : [froms]) { + if (contentCatalog.getComponent(from)) { + remapLiveComponent(contentCatalog, from, to) + } else { + addLegacyAlias(contentCatalog, from, to) + } + } + } + }) +} + +function remapLiveComponent (contentCatalog, from, to) { + contentCatalog.getComponent(from).versions.forEach((componentVersion) => { + const oldStartPageUrl = componentVersion.url + const files = contentCatalog.findBy({ component: from, version: componentVersion.version }) + files.forEach((file) => { + const family = file.src.family + // only page, image, and attachment families get an out/pub path; leave + // alias, nav, partial, and example files alone + if (family !== 'page' && family !== 'image' && family !== 'attachment') return + const wasStartPage = file.pub && file.pub.url === oldStartPageUrl + // ContentCatalog#createFile only computes out/pub when the file doesn't + // already have them, so build a throwaway mock with the swapped component + // and lift its computed out/pub onto the real file instead of mutating + // file.src.component (which would break xref/include resolution) + const mockSrc = Object.assign({}, file.src, { component: to }) + delete mockSrc.componentVersion + const mock = contentCatalog.createFile({ src: mockSrc }) + file.out = mock.out + file.pub = mock.pub + // componentVersion.url is captured from the start page at registration + // time, before this handler runs, so it still points at the old URL + if (wasStartPage) componentVersion.url = file.pub.url }) }) } + +function addLegacyAlias (contentCatalog, from, to) { + const baseSrc = { module: 'ROOT', family: 'alias', relative: '', basename: '', stem: '', extname: '' } + const fromSrc = Object.assign({ component: from, version: '' }, baseSrc) + const toSrc = Object.assign({ component: to, version: '' }, baseSrc) + return contentCatalog.addFile({ + src: fromSrc, + pub: { url: '/' + from, splat: true }, + rel: { src: toSrc, pub: { url: '/' + to, splat: true } }, + }) +} From 3364fb33ad0f22fb4be3027f6e68c919529c24d2 Mon Sep 17 00:00:00 2001 From: Hakim Cassimally Date: Thu, 3 Sep 2026 11:35:43 +0100 Subject: [PATCH 05/20] DOC-14627: also add the whole-prefix redirect for still-live 'from' names remapLiveComponent() moves a live component's own files to new URLs outright rather than aliasing the old ones, so it doesn't help a bookmark to one of their old per-page URLs (e.g. /analytics/intro/intro.html) - only the component's own root got covered, via Antora's built-in synthetic index-page alias. Call addLegacyAlias() unconditionally, alongside remapLiveComponent() when the name is still live, so every 'from' name gets the whole-prefix /from/* -> /to/* redirect regardless. Verified via the real redirect-producer that this doesn't conflict with Antora's own synthetic root-index alias for a live component: nginx's `location =` exact match for /analytics/index.html (pointing straight at the real start page) takes precedence over our `location ^~` prefix match for everything else under /analytics/*, so both apply correctly together. Co-Authored-By: Claude Sonnet 5 --- lib/override-url-component.js | 54 +++++++++++++++++------------------ 1 file changed, 26 insertions(+), 28 deletions(-) diff --git a/lib/override-url-component.js b/lib/override-url-component.js index 36e2abc76c..062ab8e905 100644 --- a/lib/override-url-component.js +++ b/lib/override-url-component.js @@ -15,32 +15,33 @@ * map: * operational-insights: [analytics, columnar] * - * Each `from` name in the map is handled one of two ways, decided automatically - * by whether it's still a live, registered component in this build: + * Every `from` name always gets a whole-prefix redirect, `//* -> //*`, + * with no attempt to distinguish versions - see addLegacyAlias() below. This is + * the moral equivalent of ContentCatalog#addSplatAlias, inlined because + * addSplatAlias requires a non-empty version segment on the "from" side + * (content-catalog.js: "cannot map splat alias from empty version segment"), + * which a retired/unversioned name doesn't have - and since we're redirecting + * the whole component regardless of version anyway, we don't need any of its + * version bookkeeping. * - * - LIVE (e.g. `analytics`, mid-rename, still producing real content): its - * page/image/attachment files are republished under the target URL segment, - * without touching the component's registered name - so xrefs/includes against - * it keep resolving normally. This is Dan Allen's ContentCatalog#createFile - * trick - see remapLiveComponent() below, and - * https://antora.zulipchat.com/#narrow/channel/282400-users/topic/.22Fun.22.20renaming.20components/with/619594674 + * If `from` is ALSO still a live, registered component in this build (e.g. + * `analytics`, mid-rename, still producing real content), its own + * page/image/attachment files are republished under the target URL segment on + * top of that, without touching the component's registered name - so + * xrefs/includes against it keep resolving normally. This is Dan Allen's + * ContentCatalog#createFile trick - see remapLiveComponent() below, and + * https://antora.zulipchat.com/#narrow/channel/282400-users/topic/.22Fun.22.20renaming.20components/with/619594674 + * Both apply together because remapping a live component's files moves them to + * new URLs outright, rather than aliasing the old ones - so the whole-prefix + * redirect is still the only thing that catches a bookmark to one of its old + * per-page URLs. * - * - RETIRED (e.g. `columnar`, renamed before this extension existed, with no - * content source of its own left in the build): a single whole-prefix redirect - * is added, `//* -> //*`, with no attempt to distinguish versions - - * see addLegacyAlias() below. This is the moral equivalent of - * ContentCatalog#addSplatAlias, inlined because addSplatAlias requires a - * non-empty version segment on the "from" side (content-catalog.js: "cannot - * map splat alias from empty version segment"), which a retired/unversioned - * name doesn't have - and since we're redirecting the whole component - * regardless of version anyway, we don't need any of its version bookkeeping. + * Nothing needs to change here when a name flips from live to retired - e.g. + * once `analytics` itself is retired in favour of a real `operational-insights` + * component, this same map entry keeps working, just via the whole-prefix + * redirect alone. * - * Because a name flips from LIVE to RETIRED the moment its content source is - * dropped from the playbook, no reconfiguration is needed when that happens - - * e.g. once `analytics` itself is retired in favour of a real `operational-insights` - * component, this same map entry keeps working, just via the other branch. - * - * Redirects for the RETIRED case only take effect for redirect facilities that + * The whole-prefix redirects only take effect for redirect facilities that * support wildcard rules (nginx, netlify, gitlab, httpd) - not the default * `static` facility, which can only produce one bounce page per exact URL. Local * preview builds use `static`, so they won't see these; the public/test builds @@ -53,11 +54,8 @@ module.exports.register = function ({ config }) { this.once('contentClassified', ({ contentCatalog }) => { for (const [to, froms] of Object.entries(map)) { for (const from of Array.isArray(froms) ? froms : [froms]) { - if (contentCatalog.getComponent(from)) { - remapLiveComponent(contentCatalog, from, to) - } else { - addLegacyAlias(contentCatalog, from, to) - } + if (contentCatalog.getComponent(from)) remapLiveComponent(contentCatalog, from, to) + addLegacyAlias(contentCatalog, from, to) } } }) From 17a8335f431a33571a7d64f7a09b9c790e38afca Mon Sep 17 00:00:00 2001 From: Hakim Cassimally Date: Thu, 3 Sep 2026 13:57:37 +0100 Subject: [PATCH 06/20] Operational Insights nav --- antora-playbook.preview2.diff.yml | 14 +++--- antora-playbook.preview2.yml | 35 ++++++++++----- antora-playbook.yml | 18 ++++++-- .../ROOT/pages/operational-insights.adoc | 44 +++++++++++++++++++ lib/override-url-component.js | 12 ++++- 5 files changed, 97 insertions(+), 26 deletions(-) create mode 100644 home/modules/ROOT/pages/operational-insights.adoc diff --git a/antora-playbook.preview2.diff.yml b/antora-playbook.preview2.diff.yml index e5b0f05037..d03a174942 100644 --- a/antora-playbook.preview2.diff.yml +++ b/antora-playbook.preview2.diff.yml @@ -12,23 +12,19 @@ site: content: $select: - '.' - - '**/docs-ai' - '**/docs-columnar' + - '**/docs-enterprise-analytics' + - '**/docs-analytics' - sources: - - url: https://github.com/couchbaselabs/docs-devex - branches: [capella] - - - url: https://github.com/couchbase/docs-capella - branches: [AV-115233-azure-cmek-support] + sources: [] + # - url: https://github.com/couchbase/docs-capella + # branches: [AV-115233-azure-cmek-support] asciidoc: attributes: kroki-server-url: null page-show-preview-banner: false page-watermark: preview2@ - # page-chatbot-origin: https://dfddckwnvn0ml.cloudfront.net # Production, via Elliot - page-chatbot-origin: https://d2tkqbbgxczr0v.cloudfront.net # Staging, via Elliot #ui: #bundle: diff --git a/antora-playbook.preview2.yml b/antora-playbook.preview2.yml index 7e86e82560..75e745b246 100644 --- a/antora-playbook.preview2.yml +++ b/antora-playbook.preview2.yml @@ -27,6 +27,13 @@ antora: - ./lib/embargo.js - ./lib/antora-component-version-rank.js - ./lib/llms-txt.js + - require: ./lib/override-url-component.js + data: + operational-insights: + - enterprise-analytics + operational-insights-cloud: + - analytics + - columnar - ./lib/report-tree.js site: url: https://docs.couchbase.com @@ -37,7 +44,7 @@ site: [ { "title": "Server", "startPage": "home::server.adoc", - "components": ["server", "operator", "enterprise-analytics", "cloud-native-gateway"], + "components": ["server", "operator", "cloud-native-gateway"], "color": "#c41016" }, { "title": "Mobile / Edge", @@ -47,7 +54,7 @@ site: }, { "title": "Capella", "startPage": "home::cloud.adoc", - "components": ["cloud", "app-services", "analytics"], + "components": ["cloud", "app-services"], "expandHeaderLevels": 1, "color": "#e8830c" }, @@ -56,6 +63,12 @@ site: "components": ["ai", "mcp-server"], "color": "#f2a541" }, + { "title": "Operational Insights", + "startPage": "home::operational-insights.adoc", + "components": ["analytics", "enterprise-analytics"], + "expandHeaderLevels": 1, + "color": "#ed9426" + }, { "title": "Develop", "startPage": "home::developer.adoc", "color": "#8c1c1c", @@ -105,6 +118,7 @@ asciidoc: tabs: tabs tabs-sync-option: "" toc: null + page-chatbot-origin: https://d2tkqbbgxczr0v.cloudfront.net page-toclevels: 1@ page-rank: 50@ xrefstyle: short @@ -121,7 +135,6 @@ asciidoc: kroki-server-url: null page-show-preview-banner: false page-watermark: preview2@ - page-chatbot-origin: https://d2tkqbbgxczr0v.cloudfront.net content: branches: master sources: @@ -132,13 +145,13 @@ content: - url: https://github.com/couchbaselabs/docs-columnar branches: - main - - legacy-columnar-component - - url: https://github.com/couchbaselabs/docs-ai - branches: - - main - - url: https://github.com/couchbaselabs/docs-devex + - url: https://github.com/couchbaselabs/docs-enterprise-analytics branches: - - capella - - url: https://github.com/couchbase/docs-capella + - release/2.2 + - release/2.1 + - release/2.0 + - url: https://github.com/couchbase/docs-analytics branches: - - AV-115233-azure-cmek-support + - release/8.0 + - release/7.6 + - release/7.2 diff --git a/antora-playbook.yml b/antora-playbook.yml index 4eb76705f6..73fdf87cf9 100644 --- a/antora-playbook.yml +++ b/antora-playbook.yml @@ -10,8 +10,9 @@ antora: - ./lib/antora-component-version-rank.js - ./lib/llms-txt.js - require: ./lib/override-url-component.js - map: - operational-insights: [analytics, columnar] + data: + operational-insights: [enterprise-analytics] + operational-insights-cloud: [analytics, columnar] site: title: Couchbase Docs @@ -66,7 +67,7 @@ site: [ { "title": "Server", "startPage": "home::server.adoc", - "components": ["server", "operator", "enterprise-analytics", "cloud-native-gateway"], + "components": ["server", "operator", "cloud-native-gateway"], "color": "#c41016" }, { "title": "Mobile / Edge", @@ -76,7 +77,7 @@ site: }, { "title": "Capella", "startPage": "home::cloud.adoc", - "components": ["cloud", "app-services", "analytics"], + "components": ["cloud", "app-services"], "expandHeaderLevels": 1, "color": "#e8830c" }, @@ -85,6 +86,12 @@ site: "components": ["ai", "mcp-server"], "color": "#f2a541" }, + { "title": "Operational Insights", + "startPage": "home::operational-insights.adoc", + "components": ["analytics", "enterprise-analytics"], + "expandHeaderLevels": 1, + "color": "#ed9426" + }, { "title": "Develop", "startPage": "home::developer.adoc", "color": "#8c1c1c", @@ -205,8 +212,11 @@ content: # Server ############################ + # `enterprise-analytics` - url: https://github.com/couchbaselabs/docs-enterprise-analytics # private branches: [release/2.2, release/2.1, release/2.0] + + # legacy analytics under `server` - url: https://github.com/couchbase/docs-analytics # private branches: [release/8.0, release/7.6, release/7.2] diff --git a/home/modules/ROOT/pages/operational-insights.adoc b/home/modules/ROOT/pages/operational-insights.adoc new file mode 100644 index 0000000000..0f164e309d --- /dev/null +++ b/home/modules/ROOT/pages/operational-insights.adoc @@ -0,0 +1,44 @@ += Welcome to Operational Insights +:page-layout: landing-page-capella +:tabs: +:page-rank: 85 +:!sectids: +:icons: font +:page-nav-header-levels: 1 +:page-for-review: + +include::home::partial$info-banner.adoc[] + += Welcome to Operational Insights + +[description] +-- +Operational Insights is Couchbase's analytical database (RT-OLAP) for real-time apps and operational intelligence, available both as a fully managed Capella service and as a self-managed deployment. + +Operational Insights Capella is the cloud, fully managed option, previously known as Capella Analytics. +Operational Insights Self Managed is the on-premises and self-hosted option, previously known as Enterprise Analytics. +-- + +[.centered.card-container] +== Explore Operational Insights + +[.card-box] +=== icon:cloud[] Get Started With Operational Insights Capella + +Create your account and follow our tutorial on how to load data into your Operational Insights Capella cluster. + +* https://cloud.couchbase.com/sign-up[Sign Up^] +* xref:analytics:intro:intro.adoc[] +* xref:analytics:admin:prepare-project.adoc[] +* xref:analytics:intro:examples.adoc[] +* xref:analytics:query:workbench.adoc[] + +[.card-box] +=== icon:server[] Get Started With Operational Insights Self Managed + +Install Operational Insights on your own infrastructure and start analyzing your data. + +* xref:enterprise-analytics:intro:intro.adoc[] +* xref:enterprise-analytics:intro:start-here.adoc[] +* xref:enterprise-analytics:intro:do-a-quick-install.adoc[] +* xref:enterprise-analytics:sources:database-objects.adoc[] diff --git a/lib/override-url-component.js b/lib/override-url-component.js index 062ab8e905..c3a72a2e9a 100644 --- a/lib/override-url-component.js +++ b/lib/override-url-component.js @@ -12,9 +12,17 @@ * antora: * extensions: * - require: ./lib/override-url-component.js - * map: + * data: * operational-insights: [analytics, columnar] * + * NOTE this must be `data`, not some other key like `map`: playbook-builder + * camelCases every key it loads from YAML (so operational-insights-cloud would + * become operationalInsightsCloud, breaking the URL), except for the one path + * per extension entry it's explicitly told to leave alone - `data` is that path + * (see the `preserve: ['data']` entry for antora.extensions in + * @antora/playbook-builder/lib/config/schema.js). Confirmed empirically: a + * sibling `map` key on the same entry gets its keys camelCased, `data` doesn't. + * * Every `from` name always gets a whole-prefix redirect, `//* -> //*`, * with no attempt to distinguish versions - see addLegacyAlias() below. This is * the moral equivalent of ContentCatalog#addSplatAlias, inlined because @@ -49,7 +57,7 @@ */ module.exports.register = function ({ config }) { - const map = config.map || {} + const map = config.data || {} this.once('contentClassified', ({ contentCatalog }) => { for (const [to, froms] of Object.entries(map)) { From 5bfed273d609474f5abb89f39659f66526a9b643 Mon Sep 17 00:00:00 2001 From: Hakim Cassimally Date: Thu, 3 Sep 2026 14:17:28 +0100 Subject: [PATCH 07/20] remove specific nginx rewrites, as we handle in Antora now --- etc/nginx/snippets/rewrites.conf | 5 ----- 1 file changed, 5 deletions(-) diff --git a/etc/nginx/snippets/rewrites.conf b/etc/nginx/snippets/rewrites.conf index b4500c8141..91fe94f089 100644 --- a/etc/nginx/snippets/rewrites.conf +++ b/etc/nginx/snippets/rewrites.conf @@ -1,10 +1,5 @@ # NOTE rewrite uses 302 redirect by default (assuming replacement does not start with a protocol) -# Legacy rewrites -location ^~ /columnar/ { rewrite ^/columnar/(.*)$ /operational-insights/$1 redirect; } -location ^~ /analytics/ { rewrite ^/analytics/(.*)$ /operational-insights/$1 redirect; } - - # current versions # NOTE Go and Rust SDKs have their own sites with automatic evergreen redirects set $current_version_sdk_c_api '3.3.19'; From 7f58c25500f0b3640e837a3c92e70ed63ea37a00 Mon Sep 17 00:00:00 2001 From: Hakim Cassimally Date: Thu, 3 Sep 2026 14:36:20 +0100 Subject: [PATCH 08/20] point preview2 to rename branch --- antora-playbook.preview2.diff.yml | 7 ++++--- antora-playbook.preview2.yml | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/antora-playbook.preview2.diff.yml b/antora-playbook.preview2.diff.yml index d03a174942..4c76de408b 100644 --- a/antora-playbook.preview2.diff.yml +++ b/antora-playbook.preview2.diff.yml @@ -16,9 +16,10 @@ content: - '**/docs-enterprise-analytics' - '**/docs-analytics' - sources: [] - # - url: https://github.com/couchbase/docs-capella - # branches: [AV-115233-azure-cmek-support] + sources: + - url: https://github.com/couchbaselabs/docs-columnar + branches: + $replace: [ DOC-14627-analytics-url-rename-columnar ] asciidoc: attributes: diff --git a/antora-playbook.preview2.yml b/antora-playbook.preview2.yml index 75e745b246..5edd67d003 100644 --- a/antora-playbook.preview2.yml +++ b/antora-playbook.preview2.yml @@ -144,7 +144,7 @@ content: start_path: home - url: https://github.com/couchbaselabs/docs-columnar branches: - - main + - DOC-14627-analytics-url-rename-columnar - url: https://github.com/couchbaselabs/docs-enterprise-analytics branches: - release/2.2 From 114c9437184b95e3ec95d857638235613a14516d Mon Sep 17 00:00:00 2001 From: Hakim Cassimally Date: Thu, 3 Sep 2026 14:58:05 +0100 Subject: [PATCH 09/20] DOC-14627: fix live remap losing the 'current' version segment remapLiveComponent() builds a mock src to get ContentCatalog#createFile to compute out/pub for the new component name, but the mock's src.component (the target name, e.g. operational-insights) isn't itself a registered component - so createFile's internal getComponentVersion(src.component, src.version) lookup fails, and it falls back to a bare {version} object with no cached activeVersionSegment and no component link. For a component using the redirect:to latest-version-segment strategy (e.g. enterprise-analytics, urls.latest_version_segment_strategy: redirect:to), that fallback silently computes the raw version number instead of resolving to 'current' for the latest version - so the live remap published the latest version at .../2.2/... under the new name, with nothing at all left at .../current/..., where real navigation actually points. Fix: pass the real componentVersion through as src.componentVersion. createFile only does the lookup when componentVersion is absent, so this short-circuits straight to the correct, already-resolved activeVersionSegment (verified via a full register/version/current cycle against the real 3.2.0 ContentCatalog). This also settles the "redirects always land on current" question: that's Antora's own pre-existing redirect:to alias for the numbered version (more specific nginx location, so it fires before our whole-prefix rule and chains into it) - unrelated to this bug, and not something to change. Co-Authored-By: Claude Sonnet 5 --- lib/override-url-component.js | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/lib/override-url-component.js b/lib/override-url-component.js index c3a72a2e9a..6acce1fa5c 100644 --- a/lib/override-url-component.js +++ b/lib/override-url-component.js @@ -82,9 +82,18 @@ function remapLiveComponent (contentCatalog, from, to) { // ContentCatalog#createFile only computes out/pub when the file doesn't // already have them, so build a throwaway mock with the swapped component // and lift its computed out/pub onto the real file instead of mutating - // file.src.component (which would break xref/include resolution) - const mockSrc = Object.assign({}, file.src, { component: to }) - delete mockSrc.componentVersion + // file.src.component (which would break xref/include resolution). Passing + // the real componentVersion through as src.componentVersion is required: + // otherwise createFile tries to look up a component version for `to`, + // which isn't a registered component, gets back a bare {version} object + // with no cached activeVersionSegment or component link, and silently + // falls back to the raw version number even for the latest version of a + // component using the redirect:to latest-version-segment strategy - so + // e.g. the live enterprise-analytics -> operational-insights remap would + // publish the latest version at /operational-insights/2.2/... instead of + // /operational-insights/current/..., with nothing left at the /current/ + // URL under the new name at all. + const mockSrc = Object.assign({}, file.src, { component: to, componentVersion }) const mock = contentCatalog.createFile({ src: mockSrc }) file.out = mock.out file.pub = mock.pub From 1ac41d034007bac7a2f47e611ec615ae15566a58 Mon Sep 17 00:00:00 2001 From: Hakim Cassimally Date: Thu, 3 Sep 2026 16:02:55 +0100 Subject: [PATCH 10/20] DOC-14627 update text based on PM mockup via Claude --- .../ROOT/pages/operational-insights.adoc | 49 +++++++++++-------- 1 file changed, 29 insertions(+), 20 deletions(-) diff --git a/home/modules/ROOT/pages/operational-insights.adoc b/home/modules/ROOT/pages/operational-insights.adoc index 0f164e309d..407acd4361 100644 --- a/home/modules/ROOT/pages/operational-insights.adoc +++ b/home/modules/ROOT/pages/operational-insights.adoc @@ -1,4 +1,4 @@ -= Welcome to Operational Insights += Operational Insights :page-layout: landing-page-capella :tabs: :page-rank: 85 @@ -9,36 +9,45 @@ include::home::partial$info-banner.adoc[] -= Welcome to Operational Insights += Operational Insights + +_Formerly Analytics_ + +*Real-Time Analytics on Your Operational Data — No Pipelines Required.* [description] -- -Operational Insights is Couchbase's analytical database (RT-OLAP) for real-time apps and operational intelligence, available both as a fully managed Capella service and as a self-managed deployment. - -Operational Insights Capella is the cloud, fully managed option, previously known as Capella Analytics. -Operational Insights Self Managed is the on-premises and self-hosted option, previously known as Enterprise Analytics. +Operational Insights is a columnar, MPP-powered analytics engine built directly into the Couchbase platform. +Query your JSON data in place, in real time, with zero-ETL -- no pipelines to build or babysit. +Choose the deployment model that fits your team: fully managed in the cloud, or self-managed on your own infrastructure. -- [.centered.card-container] -== Explore Operational Insights +== Choose Your Deployment Model [.card-box] -=== icon:cloud[] Get Started With Operational Insights Capella +=== icon:cloud[] Operational Insights -- Managed -Create your account and follow our tutorial on how to load data into your Operational Insights Capella cluster. +Fully managed, cloud-native Operational Insights, built into the Capella platform. +Spin up a columnar, MPP-powered cluster in minutes -- no infrastructure to provision, patch, or scale yourself. +Connect it straight to your existing Capella data and start running SQL++ over JSON in place. -* https://cloud.couchbase.com/sign-up[Sign Up^] -* xref:analytics:intro:intro.adoc[] -* xref:analytics:admin:prepare-project.adoc[] -* xref:analytics:intro:examples.adoc[] -* xref:analytics:query:workbench.adoc[] +*Available on:* AWS | GCP + +* https://cloud.couchbase.com/sign-up[Get Started^] +* xref:analytics:query:integration.adoc[Explore Integrations & BI Tools] +* https://www.couchbase.com/pricing/[View Pricing^] +* https://cloud.couchbase.com/sign-up[Try It Free^] [.card-box] -=== icon:server[] Get Started With Operational Insights Self Managed +=== icon:server[] Operational Insights -- Self-managed + +The same columnar storage engine, MPP query engine, and SQL++ language, packaged as software you install and operate yourself -- on-premises or in your own cloud VPC. +Full control over infrastructure, networking, and security, with open lakehouse federation via Apache Iceberg. -Install Operational Insights on your own infrastructure and start analyzing your data. +*Object storage support:* xref:enterprise-analytics:manage:manage-nodes/aws-s3.adoc[AWS S3] | xref:enterprise-analytics:manage:manage-nodes/azure-blob-storage.adoc[Azure Blob] | Google Cloud Storage -* xref:enterprise-analytics:intro:intro.adoc[] -* xref:enterprise-analytics:intro:start-here.adoc[] -* xref:enterprise-analytics:intro:do-a-quick-install.adoc[] -* xref:enterprise-analytics:sources:database-objects.adoc[] +* xref:enterprise-analytics:intro:do-a-quick-install.adoc[Get Started: Do a Quick Install] +* xref:enterprise-analytics:sources:manage-remote.adoc[Explore Integrations, Connectors & Tools] +* https://www.couchbase.com/pricing/[View Pricing^] +* xref:enterprise-analytics:install:introduction-linux-installation.adoc[Download] From 2adc1f670d3d84c64fb8ecd626d449cdfbad3c44 Mon Sep 17 00:00:00 2001 From: Hakim Cassimally Date: Thu, 10 Sep 2026 14:14:00 +0100 Subject: [PATCH 11/20] update preview2 --- antora-playbook.preview2.diff.yml | 3 +++ antora-playbook.preview2.yml | 4 +--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/antora-playbook.preview2.diff.yml b/antora-playbook.preview2.diff.yml index 4c76de408b..826d180b7b 100644 --- a/antora-playbook.preview2.diff.yml +++ b/antora-playbook.preview2.diff.yml @@ -20,6 +20,9 @@ content: - url: https://github.com/couchbaselabs/docs-columnar branches: $replace: [ DOC-14627-analytics-url-rename-columnar ] + - url: https://github.com/couchbaselabs/docs-enterprise-analytics + branches: + $replace: [ DOC-14629-Restructure-EA ] asciidoc: attributes: diff --git a/antora-playbook.preview2.yml b/antora-playbook.preview2.yml index 5edd67d003..5fed57a182 100644 --- a/antora-playbook.preview2.yml +++ b/antora-playbook.preview2.yml @@ -147,9 +147,7 @@ content: - DOC-14627-analytics-url-rename-columnar - url: https://github.com/couchbaselabs/docs-enterprise-analytics branches: - - release/2.2 - - release/2.1 - - release/2.0 + - DOC-14629-Restructure-EA - url: https://github.com/couchbase/docs-analytics branches: - release/8.0 From a56d2c0061cc5aabd109c3cec02bea4a1cd2323c Mon Sep 17 00:00:00 2001 From: Hakim Cassimally Date: Thu, 10 Sep 2026 15:32:05 +0100 Subject: [PATCH 12/20] add more components to better test build/xref errors --- antora-playbook.preview2.diff.yml | 13 +++++++++++++ antora-playbook.preview2.yml | 29 +++++++++++++++++++++++++++-- 2 files changed, 40 insertions(+), 2 deletions(-) diff --git a/antora-playbook.preview2.diff.yml b/antora-playbook.preview2.diff.yml index 826d180b7b..01da1bd975 100644 --- a/antora-playbook.preview2.diff.yml +++ b/antora-playbook.preview2.diff.yml @@ -10,11 +10,21 @@ site: robots: disallow content: + $prune: 1 $select: - '.' - '**/docs-columnar' - '**/docs-enterprise-analytics' - '**/docs-analytics' + - '**/docs-capella' + - '**/docs-capella' + - '**/docs-devex' + - '**/cb-swagger' + - '**/docs-connectors-power-bi' + - '**/docs-tableau' + - '**/docs-sdk-java' + - '**/docs-sdk-common' + - '**/couchbase-cli' sources: - url: https://github.com/couchbaselabs/docs-columnar @@ -23,6 +33,9 @@ content: - url: https://github.com/couchbaselabs/docs-enterprise-analytics branches: $replace: [ DOC-14629-Restructure-EA ] + - url: https://github.com/couchbaselabs/docs-devex + branches: + - capella asciidoc: attributes: diff --git a/antora-playbook.preview2.yml b/antora-playbook.preview2.yml index 5fed57a182..1e145cac59 100644 --- a/antora-playbook.preview2.yml +++ b/antora-playbook.preview2.yml @@ -142,14 +142,39 @@ content: branches: - HEAD start_path: home + - url: https://github.com/couchbaselabs/docs-devex + branches: + - capella + - release/8.0 + - url: https://github.com/couchbaselabs/cb-swagger + branches: + - release/8.0 + start_path: docs + - url: https://github.com/couchbase/docs-capella + branches: + - main - url: https://github.com/couchbaselabs/docs-columnar branches: - DOC-14627-analytics-url-rename-columnar + - url: https://github.com/couchbase/docs-tableau + branches: + - release/2.0 + - url: https://github.com/couchbase/docs-connectors-power-bi + branches: + - release/1.3 - url: https://github.com/couchbaselabs/docs-enterprise-analytics branches: - DOC-14629-Restructure-EA - url: https://github.com/couchbase/docs-analytics branches: - release/8.0 - - release/7.6 - - release/7.2 + - url: https://github.com/couchbase/couchbase-cli + branches: + - morpheus + start_path: docs + - url: https://github.com/couchbase/docs-sdk-common + branches: + - release/8.0.1 + - url: https://github.com/couchbase/docs-sdk-java + branches: + - release/3.12 From 2b04ad65934c9c6d50da56567a604a8bbde2201d Mon Sep 17 00:00:00 2001 From: Hakim Cassimally Date: Thu, 10 Sep 2026 15:42:41 +0100 Subject: [PATCH 13/20] add server --- antora-playbook.preview2.diff.yml | 2 +- antora-playbook.preview2.yml | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/antora-playbook.preview2.diff.yml b/antora-playbook.preview2.diff.yml index 01da1bd975..e6f7803b06 100644 --- a/antora-playbook.preview2.diff.yml +++ b/antora-playbook.preview2.diff.yml @@ -17,7 +17,7 @@ content: - '**/docs-enterprise-analytics' - '**/docs-analytics' - '**/docs-capella' - - '**/docs-capella' + - '**/docs-server' - '**/docs-devex' - '**/cb-swagger' - '**/docs-connectors-power-bi' diff --git a/antora-playbook.preview2.yml b/antora-playbook.preview2.yml index 1e145cac59..34e844c009 100644 --- a/antora-playbook.preview2.yml +++ b/antora-playbook.preview2.yml @@ -172,6 +172,9 @@ content: branches: - morpheus start_path: docs + - url: https://github.com/couchbase/docs-server + branches: + - release/8.0 - url: https://github.com/couchbase/docs-sdk-common branches: - release/8.0.1 From 2ae91c2acf265a2514a0b93fe029ec28cb0d487d Mon Sep 17 00:00:00 2001 From: Hakim Cassimally Date: Thu, 17 Sep 2026 13:47:51 +0100 Subject: [PATCH 14/20] watermark --- antora-playbook.preview2.diff.yml | 5 +++-- antora-playbook.preview2.yml | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/antora-playbook.preview2.diff.yml b/antora-playbook.preview2.diff.yml index e6f7803b06..938a41abd0 100644 --- a/antora-playbook.preview2.diff.yml +++ b/antora-playbook.preview2.diff.yml @@ -6,7 +6,7 @@ antora: - ./lib/report-tree.js site: - title: Couchbase Docs Preview + title: Couchbase Docs Preview Polaris robots: disallow content: @@ -39,9 +39,10 @@ content: asciidoc: attributes: + docs-contact: Zeba kroki-server-url: null page-show-preview-banner: false - page-watermark: preview2@ + page-watermark: Polaris #ui: #bundle: diff --git a/antora-playbook.preview2.yml b/antora-playbook.preview2.yml index 34e844c009..3384b75706 100644 --- a/antora-playbook.preview2.yml +++ b/antora-playbook.preview2.yml @@ -92,7 +92,7 @@ site: "color": "#f2a541" } ] - title: Couchbase Docs Preview + title: Couchbase Docs Preview Polaris robots: disallow asciidoc: extensions: @@ -132,9 +132,10 @@ asciidoc: sqlpp_url: https://www.couchbase.com/products/n1ql cbpp: Couchbase++ kroki-fetch-diagram: true + docs-contact: Zeba kroki-server-url: null page-show-preview-banner: false - page-watermark: preview2@ + page-watermark: Polaris content: branches: master sources: From c71d6f9867489f312ef2ae5a7ca9c596b9ec1466 Mon Sep 17 00:00:00 2001 From: Hakim Cassimally Date: Thu, 17 Sep 2026 14:00:04 +0100 Subject: [PATCH 15/20] update EA branch --- antora-playbook.preview2.diff.yml | 5 ++--- antora-playbook.preview2.yml | 6 +++--- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/antora-playbook.preview2.diff.yml b/antora-playbook.preview2.diff.yml index 938a41abd0..cb8344472b 100644 --- a/antora-playbook.preview2.diff.yml +++ b/antora-playbook.preview2.diff.yml @@ -32,7 +32,7 @@ content: $replace: [ DOC-14627-analytics-url-rename-columnar ] - url: https://github.com/couchbaselabs/docs-enterprise-analytics branches: - $replace: [ DOC-14629-Restructure-EA ] + $replace: [ /DOC-14654-EA-2.1-Rebranding ] - url: https://github.com/couchbaselabs/docs-devex branches: - capella @@ -40,8 +40,7 @@ content: asciidoc: attributes: docs-contact: Zeba - kroki-server-url: null - page-show-preview-banner: false + page-show-preview-banner: true page-watermark: Polaris #ui: diff --git a/antora-playbook.preview2.yml b/antora-playbook.preview2.yml index 3384b75706..4db0a97163 100644 --- a/antora-playbook.preview2.yml +++ b/antora-playbook.preview2.yml @@ -131,10 +131,10 @@ asciidoc: sqlppea: SQL++ for Enterprise Analytics sqlpp_url: https://www.couchbase.com/products/n1ql cbpp: Couchbase++ + kroki-server-url: null kroki-fetch-diagram: true docs-contact: Zeba - kroki-server-url: null - page-show-preview-banner: false + page-show-preview-banner: true page-watermark: Polaris content: branches: master @@ -165,7 +165,7 @@ content: - release/1.3 - url: https://github.com/couchbaselabs/docs-enterprise-analytics branches: - - DOC-14629-Restructure-EA + - /DOC-14654-EA-2.1-Rebranding - url: https://github.com/couchbase/docs-analytics branches: - release/8.0 From e92002f02dd67be256ce204c9745c4d570f840c2 Mon Sep 17 00:00:00 2001 From: Hakim Cassimally Date: Thu, 17 Sep 2026 14:41:52 +0100 Subject: [PATCH 16/20] fix --- antora-playbook.preview2.diff.yml | 2 +- antora-playbook.preview2.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/antora-playbook.preview2.diff.yml b/antora-playbook.preview2.diff.yml index cb8344472b..321e33b184 100644 --- a/antora-playbook.preview2.diff.yml +++ b/antora-playbook.preview2.diff.yml @@ -32,7 +32,7 @@ content: $replace: [ DOC-14627-analytics-url-rename-columnar ] - url: https://github.com/couchbaselabs/docs-enterprise-analytics branches: - $replace: [ /DOC-14654-EA-2.1-Rebranding ] + $replace: [ DOC-14654-EA-2.1-Rebranding ] - url: https://github.com/couchbaselabs/docs-devex branches: - capella diff --git a/antora-playbook.preview2.yml b/antora-playbook.preview2.yml index 4db0a97163..82e13fc362 100644 --- a/antora-playbook.preview2.yml +++ b/antora-playbook.preview2.yml @@ -165,7 +165,7 @@ content: - release/1.3 - url: https://github.com/couchbaselabs/docs-enterprise-analytics branches: - - /DOC-14654-EA-2.1-Rebranding + - DOC-14654-EA-2.1-Rebranding - url: https://github.com/couchbase/docs-analytics branches: - release/8.0 From 229c33fe958a853cf33ecc779013cf3389e768fa Mon Sep 17 00:00:00 2001 From: Hakim Date: Fri, 18 Sep 2026 09:59:41 +0100 Subject: [PATCH 17/20] Update antora-playbook.preview2.yml --- antora-playbook.preview2.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/antora-playbook.preview2.yml b/antora-playbook.preview2.yml index 82e13fc362..41bcafd11c 100644 --- a/antora-playbook.preview2.yml +++ b/antora-playbook.preview2.yml @@ -156,7 +156,7 @@ content: - main - url: https://github.com/couchbaselabs/docs-columnar branches: - - DOC-14627-analytics-url-rename-columnar + - DOC-14645-Rename-CA-as-Operational-Insights-Capella - url: https://github.com/couchbase/docs-tableau branches: - release/2.0 @@ -165,7 +165,7 @@ content: - release/1.3 - url: https://github.com/couchbaselabs/docs-enterprise-analytics branches: - - DOC-14654-EA-2.1-Rebranding + - release/3.0 - url: https://github.com/couchbase/docs-analytics branches: - release/8.0 From da64a8d5bc249801b0463105040a312246eea955 Mon Sep 17 00:00:00 2001 From: Hakim Cassimally Date: Tue, 22 Sep 2026 15:08:59 +0100 Subject: [PATCH 18/20] patch staging playbook --- antora-playbook-staging.yml | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/antora-playbook-staging.yml b/antora-playbook-staging.yml index 7f43dac4df..b7470202dd 100644 --- a/antora-playbook-staging.yml +++ b/antora-playbook-staging.yml @@ -63,6 +63,13 @@ antora: - ./lib/embargo.js - ./lib/antora-component-version-rank.js - ./lib/llms-txt.js + - require: ./lib/override-url-component.js + data: + operational-insights: + - enterprise-analytics + operational-insights-cloud: + - analytics + - columnar - ./lib/report-tree.js - ./lib/site-stats-extension.js - ./lib/component-stats.js @@ -83,7 +90,7 @@ site: [ { "title": "Server", "startPage": "home::server.adoc", - "components": ["server", "operator", "enterprise-analytics", "cloud-native-gateway"], + "components": ["server", "operator", "cloud-native-gateway"], "color": "#c41016" }, { "title": "Mobile / Edge", @@ -93,7 +100,7 @@ site: }, { "title": "Capella", "startPage": "home::cloud.adoc", - "components": ["cloud", "app-services", "analytics"], + "components": ["cloud", "app-services"], "expandHeaderLevels": 1, "color": "#e8830c" }, @@ -102,6 +109,12 @@ site: "components": ["ai", "mcp-server"], "color": "#f2a541" }, + { "title": "Operational Insights", + "startPage": "home::operational-insights.adoc", + "components": ["analytics", "enterprise-analytics"], + "expandHeaderLevels": 1, + "color": "#ed9426" + }, { "title": "Develop", "startPage": "home::developer.adoc", "color": "#8c1c1c", @@ -165,7 +178,6 @@ content: - url: https://github.com/couchbaselabs/docs-columnar branches: - main - - legacy-columnar-component - url: https://github.com/couchbaselabs/docs-ai branches: - main From 2ad93672d7975daa43b85fff95f19cec6923f35e Mon Sep 17 00:00:00 2001 From: Hakim Cassimally Date: Wed, 23 Sep 2026 18:11:03 +0100 Subject: [PATCH 19/20] update IA and polaris sha --- antora-playbook.preview2.diff.yml | 15 +-- antora-playbook.preview2.yml | 217 +++++++++++++++++++++++++++--- antora-playbook.yml | 42 +++--- 3 files changed, 223 insertions(+), 51 deletions(-) diff --git a/antora-playbook.preview2.diff.yml b/antora-playbook.preview2.diff.yml index 321e33b184..a9df8bb78e 100644 --- a/antora-playbook.preview2.diff.yml +++ b/antora-playbook.preview2.diff.yml @@ -13,18 +13,7 @@ content: $prune: 1 $select: - '.' - - '**/docs-columnar' - - '**/docs-enterprise-analytics' - - '**/docs-analytics' - - '**/docs-capella' - - '**/docs-server' - - '**/docs-devex' - - '**/cb-swagger' - - '**/docs-connectors-power-bi' - - '**/docs-tableau' - - '**/docs-sdk-java' - - '**/docs-sdk-common' - - '**/couchbase-cli' + - '**' sources: - url: https://github.com/couchbaselabs/docs-columnar @@ -32,7 +21,7 @@ content: $replace: [ DOC-14627-analytics-url-rename-columnar ] - url: https://github.com/couchbaselabs/docs-enterprise-analytics branches: - $replace: [ DOC-14654-EA-2.1-Rebranding ] + $replace: [ release/3.0 ] - url: https://github.com/couchbaselabs/docs-devex branches: - capella diff --git a/antora-playbook.preview2.yml b/antora-playbook.preview2.yml index 41bcafd11c..8c0565f1c2 100644 --- a/antora-playbook.preview2.yml +++ b/antora-playbook.preview2.yml @@ -45,18 +45,34 @@ site: { "title": "Server", "startPage": "home::server.adoc", "components": ["server", "operator", "cloud-native-gateway"], - "color": "#c41016" - }, - { "title": "Mobile / Edge", - "startPage": "home::mobile.adoc", - "components": ["couchbase-lite", "couchbase-lite-javascript", "sync-gateway", "couchbase-edge-server"], - "color": "#d9480f" + "color": "#c41016", + "subGroups": [ + { + "title": "Operational SDKs", + "startPage": "home::sdk.adoc", + "components": ["dotnet-sdk", "efcore-provider", "c-sdk", "cxx-sdk", "go-sdk", "java-sdk", "quarkus-extension", "kotlin-sdk", "nodejs-sdk", "php-sdk", "python-sdk", "ruby-sdk", "rust-sdk", "scala-sdk", "elasticsearch-connector", "kafka-connector", "spark-connector", "tableau-connector", "talend-connector", "power-bi-connector", "superset-connector", "sdk-extensions"], + "expandHeaderLevels": 1 + } + ] }, { "title": "Capella", "startPage": "home::cloud.adoc", "components": ["cloud", "app-services"], "expandHeaderLevels": 1, - "color": "#e8830c" + "color": "#e8830c", + "subGroups": [ + { + "title": "Operational SDKs", + "startPage": "home::sdk.adoc", + "components": ["dotnet-sdk", "efcore-provider", "c-sdk", "cxx-sdk", "go-sdk", "java-sdk", "quarkus-extension", "kotlin-sdk", "nodejs-sdk", "php-sdk", "python-sdk", "ruby-sdk", "rust-sdk", "scala-sdk", "elasticsearch-connector", "kafka-connector", "spark-connector", "tableau-connector", "talend-connector", "power-bi-connector", "superset-connector", "sdk-extensions"], + "expandHeaderLevels": 1 + } + ] + }, + { "title": "Mobile / Edge", + "startPage": "home::mobile.adoc", + "components": ["couchbase-lite", "couchbase-lite-javascript", "sync-gateway", "couchbase-edge-server"], + "color": "#d9480f" }, { "title": "AI Data Plane", "startPage": "ai:get-started:intro.adoc", @@ -67,20 +83,10 @@ site: "startPage": "home::operational-insights.adoc", "components": ["analytics", "enterprise-analytics"], "expandHeaderLevels": 1, - "color": "#ed9426" - }, - { "title": "Develop", - "startPage": "home::developer.adoc", - "color": "#8c1c1c", + "color": "#ed9426", "subGroups": [ { - "title": "Operational SDKs", - "startPage": "home::sdk.adoc", - "components": ["dotnet-sdk", "efcore-provider", "c-sdk", "cxx-sdk", "go-sdk", "java-sdk", "quarkus-extension", "kotlin-sdk", "nodejs-sdk", "php-sdk", "python-sdk", "ruby-sdk", "rust-sdk", "scala-sdk", "elasticsearch-connector", "kafka-connector", "spark-connector", "tableau-connector", "talend-connector", "power-bi-connector", "superset-connector", "sdk-extensions"], - "expandHeaderLevels": 1 - }, - { - "title": "Analytics SDKs", + "title": "Legacy Analytics SDKs", "startPage": "home::analytics-sdk.adoc", "components": ["*-analytics-sdk", "*-columnar-sdk"], "expandHeaderLevels": 1 @@ -143,6 +149,13 @@ content: branches: - HEAD start_path: home + - url: https://github.com/couchbaselabs/docs-style-guide + branches: + - main + start_paths: + - styleguide + - ui-ux + - pendo - url: https://github.com/couchbaselabs/docs-devex branches: - capella @@ -154,15 +167,57 @@ content: - url: https://github.com/couchbase/docs-capella branches: - main + - url: https://github.com/couchbaselabs/docs-capella-app-services + branches: + - main - url: https://github.com/couchbaselabs/docs-columnar branches: - - DOC-14645-Rename-CA-as-Operational-Insights-Capella + - DOC-14627-analytics-url-rename-columnar + - url: https://github.com/couchbaselabs/docs-ai + branches: + - main + - url: https://github.com/couchbaselabs/docs-mcp-server + branches: + - release/1.0 + - url: https://github.com/couchbase/couchbase-operator + branches: + - 2.9.x + start_path: docs/user + - url: https://github.com/couchbase/docs-operator + branches: + - release/2.9 + - url: https://github.com/couchbaselabs/observability + branches: + - 0.2.x + start_path: docs + - url: https://github.com/couchbaselabs/cbmultimanager + branches: + - 0.2.x + start_path: docs + - url: https://github.com/couchbaselabs/docs-cloud-native-gateway + branches: + - release/1.2 + - url: https://github.com/couchbase/docs-elastic-search + branches: + - main + - url: https://github.com/couchbase/docs-kafka + branches: + - release/4.3 + - url: https://github.com/couchbase/docs-spark + branches: + - release/4.0 - url: https://github.com/couchbase/docs-tableau branches: - release/2.0 - url: https://github.com/couchbase/docs-connectors-power-bi branches: - release/1.3 + - url: https://github.com/couchbase/docs-connectors-superset.git + branches: + - release/1.0 + - url: https://github.com/couchbase/docs-connectors-talend + branches: + - master - url: https://github.com/couchbaselabs/docs-enterprise-analytics branches: - release/3.0 @@ -173,12 +228,134 @@ content: branches: - morpheus start_path: docs + - url: https://github.com/couchbase/backup + branches: + - morpheus + start_path: docs - url: https://github.com/couchbase/docs-server branches: - release/8.0 - url: https://github.com/couchbase/docs-sdk-common branches: - release/8.0.1 + - url: https://github.com/couchbase/docs-sdk-c + branches: + - release/3.3 + - url: https://github.com/couchbase/docs-sdk-cxx + branches: + - release/1.4 + - url: https://github.com/couchbase/docs-sdk-dotnet + branches: + - temp/3.9 + - url: https://github.com/couchbase/docs-efcore + branches: + - release/1.0 + - url: https://github.com/couchbase/docs-sdk-go + branches: + - release/2.12 + - url: https://github.com/couchbase/docs-sdk-rust + branches: + - release/1.0 - url: https://github.com/couchbase/docs-sdk-java branches: - release/3.12 + - url: https://github.com/couchbase/docs-quarkus-extension + branches: + - release/1.4 + - url: https://github.com/couchbase/docs-sdk-kotlin + branches: + - temp/3.12 + - url: https://github.com/couchbase/docs-sdk-scala + branches: + - release/3.12 + - url: https://github.com/couchbase/docs-sdk-nodejs + branches: + - temp/4.7 + - url: https://github.com/couchbase/docs-sdk-php + branches: + - temp/4.5 + - url: https://github.com/couchbase/docs-sdk-python + branches: + - release/4.6 + - url: https://github.com/couchbase/docs-sdk-ruby + branches: + - temp/3.8 + - url: https://github.com/couchbase/docs-sdk-extensions + branches: + - main + - url: https://github.com/couchbase/docs-columnar-sdk-common + branches: + - release/1.0 + - url: https://github.com/couchbase/docs-columnar-sdk-go + branches: + - release/1.0 + - url: https://github.com/couchbase/docs-columnar-sdk-java + branches: + - release/1.0 + - url: https://github.com/couchbase/docs-columnar-sdk-nodejs + branches: + - release/1.0 + - url: https://github.com/couchbase/docs-columnar-sdk-python + branches: + - release/1.0 + - url: https://github.com/couchbase/docs-analytics-sdk-common + branches: + - release/1.1 + - url: https://github.com/couchbase/docs-analytics-sdk-dotnet + branches: + - release/1.1 + - url: https://github.com/couchbase/docs-analytics-sdk-go + branches: + - release/1.1 + - url: https://github.com/couchbase/docs-analytics-sdk-java + branches: + - release/1.1 + - url: https://github.com/couchbase/docs-analytics-sdk-nodejs + branches: + - release/1.1 + - url: https://github.com/couchbase/docs-analytics-sdk-python + branches: + - release/1.1 + - url: https://github.com/couchbase/docs-mobile + branches: + - release/3.1 + - url: https://github.com/couchbase/docs-couchbase-lite + branches: + - release/4.1 + - url: https://github.com/couchbaselabs/docs-couchbase-lite-js + branches: + - release/1.0 + - url: https://github.com/couchbase/docs-sync-gateway + branches: + - release/4.1 + - url: https://github.com/couchbaselabs/docs-couchbase-lite-edge-server + branches: + - release/1.1 + - url: https://github.com/couchbase/edge-server + branches: + - release/1.1 + start_path: docs + - url: https://github.com/couchbaselabs/mobile-travel-sample + branches: + - master + start_path: content + - url: https://github.com/couchbaselabs/mobile-training-todo + branches: + - tutorials + start_path: content + - url: https://github.com/couchbaselabs/UniversityLister-Android + start_path: content + branches: + - master + - url: https://github.com/couchbaselabs/userprofile-couchbase-mobile-xamarin + branches: + - standalone + start_path: content + - url: https://github.com/couchbaselabs/userprofile-couchbase-mobile-android + branches: + - standalone + start_path: content + - url: https://github.com/couchbaselabs/couchbase-lite-peer-to-peer-sync-examples + branches: + - master + start_path: content diff --git a/antora-playbook.yml b/antora-playbook.yml index 73fdf87cf9..f1bb8db552 100644 --- a/antora-playbook.yml +++ b/antora-playbook.yml @@ -68,18 +68,34 @@ site: { "title": "Server", "startPage": "home::server.adoc", "components": ["server", "operator", "cloud-native-gateway"], - "color": "#c41016" - }, - { "title": "Mobile / Edge", - "startPage": "home::mobile.adoc", - "components": ["couchbase-lite", "couchbase-lite-javascript", "sync-gateway", "couchbase-edge-server"], - "color": "#d9480f" + "color": "#c41016", + "subGroups": [ + { + "title": "Operational SDKs", + "startPage": "home::sdk.adoc", + "components": ["dotnet-sdk", "efcore-provider", "c-sdk", "cxx-sdk", "go-sdk", "java-sdk", "quarkus-extension", "kotlin-sdk", "nodejs-sdk", "php-sdk", "python-sdk", "ruby-sdk", "rust-sdk", "scala-sdk", "elasticsearch-connector", "kafka-connector", "spark-connector", "tableau-connector", "talend-connector", "power-bi-connector", "superset-connector", "sdk-extensions"], + "expandHeaderLevels": 1 + } + ] }, { "title": "Capella", "startPage": "home::cloud.adoc", "components": ["cloud", "app-services"], "expandHeaderLevels": 1, - "color": "#e8830c" + "color": "#e8830c", + "subGroups": [ + { + "title": "Operational SDKs", + "startPage": "home::sdk.adoc", + "components": ["dotnet-sdk", "efcore-provider", "c-sdk", "cxx-sdk", "go-sdk", "java-sdk", "quarkus-extension", "kotlin-sdk", "nodejs-sdk", "php-sdk", "python-sdk", "ruby-sdk", "rust-sdk", "scala-sdk", "elasticsearch-connector", "kafka-connector", "spark-connector", "tableau-connector", "talend-connector", "power-bi-connector", "superset-connector", "sdk-extensions"], + "expandHeaderLevels": 1 + } + ] + }, + { "title": "Mobile / Edge", + "startPage": "home::mobile.adoc", + "components": ["couchbase-lite", "couchbase-lite-javascript", "sync-gateway", "couchbase-edge-server"], + "color": "#d9480f" }, { "title": "AI Data Plane", "startPage": "ai:get-started:intro.adoc", @@ -91,19 +107,9 @@ site: "components": ["analytics", "enterprise-analytics"], "expandHeaderLevels": 1, "color": "#ed9426" - }, - { "title": "Develop", - "startPage": "home::developer.adoc", - "color": "#8c1c1c", "subGroups": [ { - "title": "Operational SDKs", - "startPage": "home::sdk.adoc", - "components": ["dotnet-sdk", "efcore-provider", "c-sdk", "cxx-sdk", "go-sdk", "java-sdk", "quarkus-extension", "kotlin-sdk", "nodejs-sdk", "php-sdk", "python-sdk", "ruby-sdk", "rust-sdk", "scala-sdk", "elasticsearch-connector", "kafka-connector", "spark-connector", "tableau-connector", "talend-connector", "power-bi-connector", "superset-connector", "sdk-extensions"], - "expandHeaderLevels": 1 - }, - { - "title": "Analytics SDKs", + "title": "Legacy Analytics SDKs", "startPage": "home::analytics-sdk.adoc", "components": ["*-analytics-sdk", "*-columnar-sdk"], "expandHeaderLevels": 1 From 5d570d87dc24aec04a6e359ba695b8c89f34f936 Mon Sep 17 00:00:00 2001 From: Hakim Cassimally Date: Fri, 25 Sep 2026 15:41:12 +0100 Subject: [PATCH 20/20] DOC-14627 make PR mergeable We want to merge: * Antora 3.2.0 * the lib/override-url-component.js extension but NOT any live config, or the landing page. --- antora-playbook-staging.yml | 18 +----- antora-playbook.preview2.diff.yml | 59 ++++++++++++++++++ antora-playbook.preview2.yml | 17 ++---- antora-playbook.yml | 60 +++++++------------ etc/nginx/snippets/rewrites.conf | 1 - .../ROOT/pages/operational-insights.adoc | 53 ---------------- 6 files changed, 88 insertions(+), 120 deletions(-) delete mode 100644 home/modules/ROOT/pages/operational-insights.adoc diff --git a/antora-playbook-staging.yml b/antora-playbook-staging.yml index b7470202dd..7f43dac4df 100644 --- a/antora-playbook-staging.yml +++ b/antora-playbook-staging.yml @@ -63,13 +63,6 @@ antora: - ./lib/embargo.js - ./lib/antora-component-version-rank.js - ./lib/llms-txt.js - - require: ./lib/override-url-component.js - data: - operational-insights: - - enterprise-analytics - operational-insights-cloud: - - analytics - - columnar - ./lib/report-tree.js - ./lib/site-stats-extension.js - ./lib/component-stats.js @@ -90,7 +83,7 @@ site: [ { "title": "Server", "startPage": "home::server.adoc", - "components": ["server", "operator", "cloud-native-gateway"], + "components": ["server", "operator", "enterprise-analytics", "cloud-native-gateway"], "color": "#c41016" }, { "title": "Mobile / Edge", @@ -100,7 +93,7 @@ site: }, { "title": "Capella", "startPage": "home::cloud.adoc", - "components": ["cloud", "app-services"], + "components": ["cloud", "app-services", "analytics"], "expandHeaderLevels": 1, "color": "#e8830c" }, @@ -109,12 +102,6 @@ site: "components": ["ai", "mcp-server"], "color": "#f2a541" }, - { "title": "Operational Insights", - "startPage": "home::operational-insights.adoc", - "components": ["analytics", "enterprise-analytics"], - "expandHeaderLevels": 1, - "color": "#ed9426" - }, { "title": "Develop", "startPage": "home::developer.adoc", "color": "#8c1c1c", @@ -178,6 +165,7 @@ content: - url: https://github.com/couchbaselabs/docs-columnar branches: - main + - legacy-columnar-component - url: https://github.com/couchbaselabs/docs-ai branches: - main diff --git a/antora-playbook.preview2.diff.yml b/antora-playbook.preview2.diff.yml index a9df8bb78e..10a8cbc95e 100644 --- a/antora-playbook.preview2.diff.yml +++ b/antora-playbook.preview2.diff.yml @@ -8,6 +8,65 @@ antora: site: title: Couchbase Docs Preview Polaris robots: disallow + keys: + nav_groups: | + [ + { "title": "Server", + "startPage": "home::server.adoc", + "components": ["server", "operator", "cloud-native-gateway"], + "color": "#c41016", + "subGroups": [ + { + "title": "Operational SDKs", + "startPage": "home::sdk.adoc", + "components": ["dotnet-sdk", "efcore-provider", "c-sdk", "cxx-sdk", "go-sdk", "java-sdk", "quarkus-extension", "kotlin-sdk", "nodejs-sdk", "php-sdk", "python-sdk", "ruby-sdk", "rust-sdk", "scala-sdk", "elasticsearch-connector", "kafka-connector", "spark-connector", "tableau-connector", "talend-connector", "power-bi-connector", "superset-connector", "sdk-extensions"], + "expandHeaderLevels": 1 + } + ] + }, + { "title": "Capella", + "startPage": "home::cloud.adoc", + "components": ["cloud", "app-services"], + "expandHeaderLevels": 1, + "color": "#e8830c", + "subGroups": [ + { + "title": "Operational SDKs", + "startPage": "home::sdk.adoc", + "components": ["dotnet-sdk", "efcore-provider", "c-sdk", "cxx-sdk", "go-sdk", "java-sdk", "quarkus-extension", "kotlin-sdk", "nodejs-sdk", "php-sdk", "python-sdk", "ruby-sdk", "rust-sdk", "scala-sdk", "elasticsearch-connector", "kafka-connector", "spark-connector", "tableau-connector", "talend-connector", "power-bi-connector", "superset-connector", "sdk-extensions"], + "expandHeaderLevels": 1 + } + ] + }, + { "title": "Mobile / Edge", + "startPage": "home::mobile.adoc", + "components": ["couchbase-lite", "couchbase-lite-javascript", "sync-gateway", "couchbase-edge-server"], + "color": "#d9480f" + }, + { "title": "AI Data Plane", + "startPage": "ai:get-started:intro.adoc", + "components": ["ai", "mcp-server"], + "color": "#f2a541" + }, + { "title": "Operational Insights", + "startPage": "home::operational-insights.adoc", + "components": ["analytics", "enterprise-analytics"], + "expandHeaderLevels": 1, + "color": "#ed9426" + "subGroups": [ + { + "title": "Legacy Analytics SDKs", + "startPage": "home::analytics-sdk.adoc", + "components": ["*-analytics-sdk", "*-columnar-sdk"], + "expandHeaderLevels": 1 + } + ] + }, + { "title": "Contribute", + "components": ["home", "styleguide", "ui-ux", "pendo"], + "color": "#f2a541" + } + ] content: $prune: 1 diff --git a/antora-playbook.preview2.yml b/antora-playbook.preview2.yml index 8c0565f1c2..82f2ae1ca5 100644 --- a/antora-playbook.preview2.yml +++ b/antora-playbook.preview2.yml @@ -15,7 +15,7 @@ urls: latest_version_segment: current ui: bundle: - url: https://github.com/couchbase/docs-ui/releases/download/prod-234/ui-bundle.zip + url: https://github.com/couchbase/docs-ui/releases/download/prod-235/ui-bundle.zip output: dir: ./public runtime: @@ -27,17 +27,12 @@ antora: - ./lib/embargo.js - ./lib/antora-component-version-rank.js - ./lib/llms-txt.js - - require: ./lib/override-url-component.js - data: - operational-insights: - - enterprise-analytics - operational-insights-cloud: - - analytics - - columnar - ./lib/report-tree.js site: url: https://docs.couchbase.com start_page: home::index.adoc + title: Couchbase Docs Preview Polaris + robots: disallow keys: google_analytics: GTM-MVPNN2 nav_groups: > @@ -75,7 +70,7 @@ site: "color": "#d9480f" }, { "title": "AI Data Plane", - "startPage": "ai:get-started:intro.adoc", + "startPage": "ai:get-started:intro.adoc", "components": ["ai", "mcp-server"], "color": "#f2a541" }, @@ -83,7 +78,7 @@ site: "startPage": "home::operational-insights.adoc", "components": ["analytics", "enterprise-analytics"], "expandHeaderLevels": 1, - "color": "#ed9426", + "color": "#ed9426" "subGroups": [ { "title": "Legacy Analytics SDKs", @@ -98,8 +93,6 @@ site: "color": "#f2a541" } ] - title: Couchbase Docs Preview Polaris - robots: disallow asciidoc: extensions: - ./lib/source-url-include-processor.js diff --git a/antora-playbook.yml b/antora-playbook.yml index f1bb8db552..b09424a128 100644 --- a/antora-playbook.yml +++ b/antora-playbook.yml @@ -9,10 +9,6 @@ antora: - ./lib/embargo.js - ./lib/antora-component-version-rank.js - ./lib/llms-txt.js - - require: ./lib/override-url-component.js - data: - operational-insights: [enterprise-analytics] - operational-insights-cloud: [analytics, columnar] site: title: Couchbase Docs @@ -67,49 +63,37 @@ site: [ { "title": "Server", "startPage": "home::server.adoc", - "components": ["server", "operator", "cloud-native-gateway"], - "color": "#c41016", - "subGroups": [ - { - "title": "Operational SDKs", - "startPage": "home::sdk.adoc", - "components": ["dotnet-sdk", "efcore-provider", "c-sdk", "cxx-sdk", "go-sdk", "java-sdk", "quarkus-extension", "kotlin-sdk", "nodejs-sdk", "php-sdk", "python-sdk", "ruby-sdk", "rust-sdk", "scala-sdk", "elasticsearch-connector", "kafka-connector", "spark-connector", "tableau-connector", "talend-connector", "power-bi-connector", "superset-connector", "sdk-extensions"], - "expandHeaderLevels": 1 - } - ] - }, - { "title": "Capella", - "startPage": "home::cloud.adoc", - "components": ["cloud", "app-services"], - "expandHeaderLevels": 1, - "color": "#e8830c", - "subGroups": [ - { - "title": "Operational SDKs", - "startPage": "home::sdk.adoc", - "components": ["dotnet-sdk", "efcore-provider", "c-sdk", "cxx-sdk", "go-sdk", "java-sdk", "quarkus-extension", "kotlin-sdk", "nodejs-sdk", "php-sdk", "python-sdk", "ruby-sdk", "rust-sdk", "scala-sdk", "elasticsearch-connector", "kafka-connector", "spark-connector", "tableau-connector", "talend-connector", "power-bi-connector", "superset-connector", "sdk-extensions"], - "expandHeaderLevels": 1 - } - ] + "components": ["server", "operator", "enterprise-analytics", "cloud-native-gateway"], + "color": "#c41016" }, { "title": "Mobile / Edge", "startPage": "home::mobile.adoc", "components": ["couchbase-lite", "couchbase-lite-javascript", "sync-gateway", "couchbase-edge-server"], "color": "#d9480f" }, + { "title": "Capella", + "startPage": "home::cloud.adoc", + "components": ["cloud", "app-services", "analytics"], + "expandHeaderLevels": 1, + "color": "#e8830c" + }, { "title": "AI Data Plane", "startPage": "ai:get-started:intro.adoc", "components": ["ai", "mcp-server"], "color": "#f2a541" }, - { "title": "Operational Insights", - "startPage": "home::operational-insights.adoc", - "components": ["analytics", "enterprise-analytics"], - "expandHeaderLevels": 1, - "color": "#ed9426" + { "title": "Develop", + "startPage": "home::developer.adoc", + "color": "#8c1c1c", "subGroups": [ { - "title": "Legacy Analytics SDKs", + "title": "Operational SDKs", + "startPage": "home::sdk.adoc", + "components": ["dotnet-sdk", "efcore-provider", "c-sdk", "cxx-sdk", "go-sdk", "java-sdk", "quarkus-extension", "kotlin-sdk", "nodejs-sdk", "php-sdk", "python-sdk", "ruby-sdk", "rust-sdk", "scala-sdk", "elasticsearch-connector", "kafka-connector", "spark-connector", "tableau-connector", "talend-connector", "power-bi-connector", "superset-connector", "sdk-extensions"], + "expandHeaderLevels": 1 + }, + { + "title": "Analytics SDKs", "startPage": "home::analytics-sdk.adoc", "components": ["*-analytics-sdk", "*-columnar-sdk"], "expandHeaderLevels": 1 @@ -167,7 +151,8 @@ content: - url: https://github.com/couchbaselabs/docs-columnar # private branches: - - main # `analytics` component (Capella Operational Insights) + - main # `analytics` component (Capella Analytics) + - legacy-columnar-component # `columnar` dummy component for sake of :page-aliases: # see under Server section below for enterprise-analytics and legacy analytics - url: https://github.com/couchbaselabs/docs-ai # private @@ -218,11 +203,8 @@ content: # Server ############################ - # `enterprise-analytics` - url: https://github.com/couchbaselabs/docs-enterprise-analytics # private branches: [release/2.2, release/2.1, release/2.0] - - # legacy analytics under `server` - url: https://github.com/couchbase/docs-analytics # private branches: [release/8.0, release/7.6, release/7.2] @@ -403,7 +385,7 @@ asciidoc: ui: bundle: - url: https://github.com/couchbase/docs-ui/releases/download/prod-234/ui-bundle.zip + url: https://github.com/couchbase/docs-ui/releases/download/prod-235/ui-bundle.zip output: dir: ./public runtime: diff --git a/etc/nginx/snippets/rewrites.conf b/etc/nginx/snippets/rewrites.conf index 91fe94f089..caff70ddaf 100644 --- a/etc/nginx/snippets/rewrites.conf +++ b/etc/nginx/snippets/rewrites.conf @@ -1,5 +1,4 @@ # NOTE rewrite uses 302 redirect by default (assuming replacement does not start with a protocol) - # current versions # NOTE Go and Rust SDKs have their own sites with automatic evergreen redirects set $current_version_sdk_c_api '3.3.19'; diff --git a/home/modules/ROOT/pages/operational-insights.adoc b/home/modules/ROOT/pages/operational-insights.adoc deleted file mode 100644 index 407acd4361..0000000000 --- a/home/modules/ROOT/pages/operational-insights.adoc +++ /dev/null @@ -1,53 +0,0 @@ -= Operational Insights -:page-layout: landing-page-capella -:tabs: -:page-rank: 85 -:!sectids: -:icons: font -:page-nav-header-levels: 1 -:page-for-review: - -include::home::partial$info-banner.adoc[] - -= Operational Insights - -_Formerly Analytics_ - -*Real-Time Analytics on Your Operational Data — No Pipelines Required.* - -[description] --- -Operational Insights is a columnar, MPP-powered analytics engine built directly into the Couchbase platform. -Query your JSON data in place, in real time, with zero-ETL -- no pipelines to build or babysit. -Choose the deployment model that fits your team: fully managed in the cloud, or self-managed on your own infrastructure. --- - -[.centered.card-container] -== Choose Your Deployment Model - -[.card-box] -=== icon:cloud[] Operational Insights -- Managed - -Fully managed, cloud-native Operational Insights, built into the Capella platform. -Spin up a columnar, MPP-powered cluster in minutes -- no infrastructure to provision, patch, or scale yourself. -Connect it straight to your existing Capella data and start running SQL++ over JSON in place. - -*Available on:* AWS | GCP - -* https://cloud.couchbase.com/sign-up[Get Started^] -* xref:analytics:query:integration.adoc[Explore Integrations & BI Tools] -* https://www.couchbase.com/pricing/[View Pricing^] -* https://cloud.couchbase.com/sign-up[Try It Free^] - -[.card-box] -=== icon:server[] Operational Insights -- Self-managed - -The same columnar storage engine, MPP query engine, and SQL++ language, packaged as software you install and operate yourself -- on-premises or in your own cloud VPC. -Full control over infrastructure, networking, and security, with open lakehouse federation via Apache Iceberg. - -*Object storage support:* xref:enterprise-analytics:manage:manage-nodes/aws-s3.adoc[AWS S3] | xref:enterprise-analytics:manage:manage-nodes/azure-blob-storage.adoc[Azure Blob] | Google Cloud Storage - -* xref:enterprise-analytics:intro:do-a-quick-install.adoc[Get Started: Do a Quick Install] -* xref:enterprise-analytics:sources:manage-remote.adoc[Explore Integrations, Connectors & Tools] -* https://www.couchbase.com/pricing/[View Pricing^] -* xref:enterprise-analytics:install:introduction-linux-installation.adoc[Download]