From 1e05c01837e130b0abccc30a9ec0233aa34eaae7 Mon Sep 17 00:00:00 2001 From: Hakim Cassimally Date: Wed, 2 Sep 2026 11:56:36 +0100 Subject: [PATCH 01/39] 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/39] 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/39] 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/39] 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/39] 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/39] 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/39] 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/39] 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/39] 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/39] 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/39] 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/39] 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/39] 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/39] 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/39] 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/39] 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/39] 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/39] 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/39] 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 0e8b25ce881bb7b4f8e738ca4fdeebaacd37a877 Mon Sep 17 00:00:00 2001 From: Hakim Cassimally Date: Mon, 28 Sep 2026 16:08:16 +0100 Subject: [PATCH 20/39] merge-prs script, applied to EA 3.0 --- antora-playbook.preview2.diff.yml | 2 +- antora-playbook.preview2.yml | 7 +- scripts/merge-prs | 213 ++++++++++++++++++++++++++++++ 3 files changed, 219 insertions(+), 3 deletions(-) create mode 100755 scripts/merge-prs diff --git a/antora-playbook.preview2.diff.yml b/antora-playbook.preview2.diff.yml index a9df8bb78e..1930189a5e 100644 --- a/antora-playbook.preview2.diff.yml +++ b/antora-playbook.preview2.diff.yml @@ -21,7 +21,7 @@ content: $replace: [ DOC-14627-analytics-url-rename-columnar ] - url: https://github.com/couchbaselabs/docs-enterprise-analytics branches: - $replace: [ release/3.0 ] + $replace: [ merge-prs/release/3.0, release/2.2, release/2.1, release/2.0 ] - url: https://github.com/couchbaselabs/docs-devex branches: - capella diff --git a/antora-playbook.preview2.yml b/antora-playbook.preview2.yml index 8c0565f1c2..9d827d6cd3 100644 --- a/antora-playbook.preview2.yml +++ b/antora-playbook.preview2.yml @@ -83,7 +83,7 @@ site: "startPage": "home::operational-insights.adoc", "components": ["analytics", "enterprise-analytics"], "expandHeaderLevels": 1, - "color": "#ed9426", + "color": "#ed9426" "subGroups": [ { "title": "Legacy Analytics SDKs", @@ -220,7 +220,10 @@ content: - master - url: https://github.com/couchbaselabs/docs-enterprise-analytics branches: - - release/3.0 + - merge-prs/release/3.0 + - release/2.2 + - release/2.1 + - release/2.0 - url: https://github.com/couchbase/docs-analytics branches: - release/8.0 diff --git a/scripts/merge-prs b/scripts/merge-prs new file mode 100755 index 0000000000..0249aa27b0 --- /dev/null +++ b/scripts/merge-prs @@ -0,0 +1,213 @@ +#!/bin/bash +# See scripts/merge-prs --help. + +set -eo pipefail + +info() { [ -t 1 ] && printf '\033[36m%s\033[0m\n' "$*" || echo "$*"; } +warn() { [ -t 1 ] && printf '\033[1;31m%s\033[0m\n' "$*" || echo "$*"; } +success() { [ -t 1 ] && printf '\033[32m%s\033[0m\n' "$*" || echo "$*"; } + +if [ "$1" = "-h" ] || [ "$1" = "--help" ]; then + cat </dev/null 2>&1 || { + warn "Not inside a git repository." + exit 1 +} + +if [ -n "$(git status --porcelain)" ]; then + warn "You have uncommitted changes. Commit, stash, or discard them first." + exit 1 +fi + +BASE=$(git branch --show-current) + +if [ -z "$BASE" ]; then + warn "Not on a branch (detached HEAD?). Check out the branch you want to build on." + exit 1 +fi + +case "$BASE" in + merge-prs/*) + warn "You're on '$BASE', which looks like a previous run's output branch." + warn "Check out the real base branch (e.g. 'git checkout release/3.0') and try again." + exit 1 + ;; +esac + +command -v gh >/dev/null || { warn "'gh' is required but not found on PATH."; exit 1; } +command -v jq >/dev/null || { warn "'jq' is required but not found on PATH."; exit 1; } +command -v claude >/dev/null || { warn "'claude' is required but not found on PATH."; exit 1; } + +NEW="merge-prs/$BASE" + +info "🔀 Building $NEW from $BASE" + +git checkout -B "$NEW" "$BASE" + +# --- gather PRs -------------------------------------------------------- + +info "Looking up open PRs against $BASE (excluding forks)..." + +PRS=$(gh pr list --base "$BASE" --state open \ + --json number,title,headRefName,isCrossRepository,mergeable,url \ + --jq '[.[] | select(.isCrossRepository == false)] | sort_by(.number)') + +PR_COUNT=$(echo "$PRS" | jq 'length') + +if [ "$PR_COUNT" -eq 0 ]; then + info "No open same-repo PRs found against $BASE. Nothing to do." + exit 0 +fi + +info "Found $PR_COUNT candidate PR(s)." + +MERGED=0 +RESOLVED=0 +SKIPPED=0 +APPLIED_SUMMARY="" + +# --- process each PR ---------------------------------------------------- + +while IFS= read -r pr; do + NUMBER=$(echo "$pr" | jq -r '.number') + TITLE=$(echo "$pr" | jq -r '.title') + HEAD_REF=$(echo "$pr" | jq -r '.headRefName') + URL=$(echo "$pr" | jq -r '.url') + MERGEABLE=$(echo "$pr" | jq -r '.mergeable') + + info "" + info "PR #$NUMBER: $TITLE ($URL)" + + if [ "$MERGEABLE" = "UNKNOWN" ]; then + for i in 1 2 3 4 5; do + sleep 2 + MERGEABLE=$(gh pr view "$NUMBER" --json mergeable --jq '.mergeable') + [ "$MERGEABLE" != "UNKNOWN" ] && break + done + fi + + if [ "$MERGEABLE" != "MERGEABLE" ]; then + warn "GitHub reports PR #$NUMBER won't merge cleanly against $BASE (mergeable=$MERGEABLE) - skipping." + SKIPPED=$((SKIPPED + 1)) + continue + fi + + SAFE_SHA=$(git rev-parse HEAD) + + git fetch origin "$HEAD_REF" + + if git merge --squash "origin/$HEAD_REF" >/tmp/merge-prs-squash.log 2>&1; then + git commit -m "Merge PR #$NUMBER: $TITLE" + success "Merged PR #$NUMBER cleanly." + MERGED=$((MERGED + 1)) + APPLIED_SUMMARY="$APPLIED_SUMMARY +- PR #$NUMBER: $TITLE" + continue + fi + + warn "PR #$NUMBER conflicts with PR(s) already applied in this run. Asking claude to resolve..." + + PROMPT=$(cat </dev/null || true) + MESSAGE=$(echo "$VERDICT_LINE" | jq -r '.message' 2>/dev/null || true) + + if [ "$VERDICT" != "ok" ] && [ "$VERDICT" != "minor-concern" ] && [ "$VERDICT" != "major-issue" ]; then + warn "claude did not return a parseable verdict for PR #$NUMBER. Treating as a major issue." + VERDICT="major-issue" + MESSAGE="claude output did not end with a parseable verdict line: $VERDICT_LINE" + fi + + if [ "$VERDICT" = "major-issue" ]; then + warn "PR #$NUMBER: unresolved conflict - $MESSAGE" + warn "Rolling back this PR's attempt and stopping. Earlier PRs in this run remain merged on $NEW." + git reset --hard "$SAFE_SHA" + exit 1 + fi + + if [ "$VERDICT" = "minor-concern" ]; then + warn "PR #$NUMBER: resolved with a concern - $MESSAGE" + else + success "PR #$NUMBER: conflict resolved cleanly by claude." + fi + + git commit -m "Merge PR #$NUMBER: $TITLE (claude-resolved conflict)" + RESOLVED=$((RESOLVED + 1)) + APPLIED_SUMMARY="$APPLIED_SUMMARY +- PR #$NUMBER: $TITLE (claude-resolved conflict: $MESSAGE)" + +done < <(echo "$PRS" | jq -c '.[]') + +info "" +success "Done. $NEW is checked out." +info " Merged cleanly: $MERGED" +info " Resolved by claude: $RESOLVED" +info " Skipped (conflicts): $SKIPPED" From 4c74f7c946b89a14107fea1d3647841a4e6fc257 Mon Sep 17 00:00:00 2001 From: Hakim Cassimally Date: Mon, 28 Sep 2026 16:30:18 +0100 Subject: [PATCH 21/39] bump playbook --- antora-playbook.preview2.diff.yml | 6 +++--- antora-playbook.preview2.yml | 8 ++++---- antora-playbook.yml | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/antora-playbook.preview2.diff.yml b/antora-playbook.preview2.diff.yml index 1930189a5e..2c5179e198 100644 --- a/antora-playbook.preview2.diff.yml +++ b/antora-playbook.preview2.diff.yml @@ -32,6 +32,6 @@ asciidoc: page-show-preview-banner: true page-watermark: Polaris -#ui: - #bundle: - #url: https://github.com/couchbase/docs-ui/releases/download/prod-217/ui-bundle.zip +ui: + bundle: + url: https://github.com/couchbase/docs-ui/releases/download/prod-236/ui-bundle.zip diff --git a/antora-playbook.preview2.yml b/antora-playbook.preview2.yml index 9d827d6cd3..50c161db9c 100644 --- a/antora-playbook.preview2.yml +++ b/antora-playbook.preview2.yml @@ -13,9 +13,6 @@ git: urls: latest_version_segment_strategy: redirect:to latest_version_segment: current -ui: - bundle: - url: https://github.com/couchbase/docs-ui/releases/download/prod-234/ui-bundle.zip output: dir: ./public runtime: @@ -83,7 +80,7 @@ site: "startPage": "home::operational-insights.adoc", "components": ["analytics", "enterprise-analytics"], "expandHeaderLevels": 1, - "color": "#ed9426" + "color": "#ed9426", "subGroups": [ { "title": "Legacy Analytics SDKs", @@ -142,6 +139,9 @@ asciidoc: docs-contact: Zeba page-show-preview-banner: true page-watermark: Polaris +ui: + bundle: + url: https://github.com/couchbase/docs-ui/releases/download/prod-236/ui-bundle.zip content: branches: master sources: diff --git a/antora-playbook.yml b/antora-playbook.yml index f1bb8db552..933a14ac81 100644 --- a/antora-playbook.yml +++ b/antora-playbook.yml @@ -106,7 +106,7 @@ site: "startPage": "home::operational-insights.adoc", "components": ["analytics", "enterprise-analytics"], "expandHeaderLevels": 1, - "color": "#ed9426" + "color": "#ed9426", "subGroups": [ { "title": "Legacy Analytics SDKs", From 8f8b04c09761f2ae47b786dd35667d8d6ee1a799 Mon Sep 17 00:00:00 2001 From: Hakim Cassimally Date: Mon, 28 Sep 2026 17:04:32 +0100 Subject: [PATCH 22/39] Branches from docs-ai / capella via @Rebecca-Martinez007 --- antora-playbook.preview2.diff.yml | 4 ++++ antora-playbook.preview2.yml | 6 ++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/antora-playbook.preview2.diff.yml b/antora-playbook.preview2.diff.yml index 2c5179e198..b73c56ae5e 100644 --- a/antora-playbook.preview2.diff.yml +++ b/antora-playbook.preview2.diff.yml @@ -25,6 +25,10 @@ content: - url: https://github.com/couchbaselabs/docs-devex branches: - capella + - url: https://github.com/couchbaselabs/docs-ai + branches: DOC-14735_analytics-rename + - url: https://github.com/couchbase/docs-capella + branches: DOC-14735_analytics-rename asciidoc: attributes: diff --git a/antora-playbook.preview2.yml b/antora-playbook.preview2.yml index 50c161db9c..a00b338cf7 100644 --- a/antora-playbook.preview2.yml +++ b/antora-playbook.preview2.yml @@ -165,8 +165,7 @@ content: - release/8.0 start_path: docs - url: https://github.com/couchbase/docs-capella - branches: - - main + branches: DOC-14735_analytics-rename - url: https://github.com/couchbaselabs/docs-capella-app-services branches: - main @@ -174,8 +173,7 @@ content: branches: - DOC-14627-analytics-url-rename-columnar - url: https://github.com/couchbaselabs/docs-ai - branches: - - main + branches: DOC-14735_analytics-rename - url: https://github.com/couchbaselabs/docs-mcp-server branches: - release/1.0 From 62bf7d7a16d6707efd181b2c8850dbfa268ac2c1 Mon Sep 17 00:00:00 2001 From: Hakim Cassimally Date: Tue, 29 Sep 2026 12:27:50 +0100 Subject: [PATCH 23/39] point to Harini's rename branch + removal of page-aliases --- 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 b73c56ae5e..e48af63e0e 100644 --- a/antora-playbook.preview2.diff.yml +++ b/antora-playbook.preview2.diff.yml @@ -18,7 +18,7 @@ content: sources: - url: https://github.com/couchbaselabs/docs-columnar branches: - $replace: [ DOC-14627-analytics-url-rename-columnar ] + $replace: [ DOC-14645-Rename-CA-as-Operational-Insights-Capella-remove-page-aliases ] - url: https://github.com/couchbaselabs/docs-enterprise-analytics branches: $replace: [ merge-prs/release/3.0, release/2.2, release/2.1, release/2.0 ] diff --git a/antora-playbook.preview2.yml b/antora-playbook.preview2.yml index a00b338cf7..e4d3e53059 100644 --- a/antora-playbook.preview2.yml +++ b/antora-playbook.preview2.yml @@ -171,7 +171,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-remove-page-aliases - url: https://github.com/couchbaselabs/docs-ai branches: DOC-14735_analytics-rename - url: https://github.com/couchbaselabs/docs-mcp-server From 2331259d71f97b81d68bc876057220ddfd23eee8 Mon Sep 17 00:00:00 2001 From: Hakim Cassimally Date: Tue, 29 Sep 2026 15:51:41 +0100 Subject: [PATCH 24/39] update merge-prs script --- scripts/merge-prs | 52 ++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 45 insertions(+), 7 deletions(-) diff --git a/scripts/merge-prs b/scripts/merge-prs index 0249aa27b0..7725627131 100755 --- a/scripts/merge-prs +++ b/scripts/merge-prs @@ -141,6 +141,8 @@ while IFS= read -r pr; do warn "PR #$NUMBER conflicts with PR(s) already applied in this run. Asking claude to resolve..." + CONFLICTED_FILES=$(git diff --name-only --diff-filter=U) + PROMPT=$(cat <' or 'git checkout --theirs ' to pick +one side wholesale, then 'git add' it - explain which side you picked and +why in your final message. You do NOT have permission to commit, push, +reset, merge, or checkout anything else (a branch, a commit, etc.) in this +session - only editing files, 'git add', 'git diff', 'git status', and +those two 'git checkout --ours/--theirs ' forms are available to you. If you cannot resolve a conflict safely (e.g. the two changes are genuinely -incompatible, not just textually overlapping), leave it and say so. +incompatible, not just textually overlapping), leave it unresolved and say +so. The VERY LAST LINE of your reply must be, on its own, nothing but a single line of raw JSON (no code fence, no other text after it) in this exact @@ -174,7 +187,15 @@ it (leave the conflict markers in place in that case). PROMPT_EOF ) - CLAUDE_OUTPUT=$(claude -p "$PROMPT" --allowedTools "Edit,Bash(git *)" || true) + # /dev/null || true) @@ -186,6 +207,23 @@ PROMPT_EOF MESSAGE="claude output did not end with a parseable verdict line: $VERDICT_LINE" fi + # Safety net: claude was told not to commit/checkout/reset, and the tool + # permissions above should physically prevent it, but verify rather than + # trust - if HEAD moved, or conflict markers remain despite an "ok" + # verdict, something went outside the expected contract and we should + # not proceed as if everything's fine. + POST_SHA=$(git rev-parse HEAD) + if [ "$POST_SHA" != "$SAFE_SHA" ]; then + warn "PR #$NUMBER: HEAD moved during conflict resolution ($SAFE_SHA -> $POST_SHA)." + warn "claude appears to have committed on its own, which isn't allowed. Treating as a major issue." + VERDICT="major-issue" + MESSAGE="claude's session moved HEAD unexpectedly (possible unauthorized commit): $MESSAGE" + elif [ -n "$(git ls-files -u)" ]; then + warn "PR #$NUMBER: conflict markers remain despite a '$VERDICT' verdict. Treating as a major issue." + VERDICT="major-issue" + MESSAGE="unresolved conflicts remained after claude's session: $MESSAGE" + fi + if [ "$VERDICT" = "major-issue" ]; then warn "PR #$NUMBER: unresolved conflict - $MESSAGE" warn "Rolling back this PR's attempt and stopping. Earlier PRs in this run remain merged on $NEW." From 25cfe11b3eab669b102a911a3b9a3b3b4aa1c66b Mon Sep 17 00:00:00 2001 From: Hakim Cassimally Date: Tue, 29 Sep 2026 15:51:55 +0100 Subject: [PATCH 25/39] update docs-columnar preview branch --- 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 e48af63e0e..1cde4f36a7 100644 --- a/antora-playbook.preview2.diff.yml +++ b/antora-playbook.preview2.diff.yml @@ -18,7 +18,7 @@ content: sources: - url: https://github.com/couchbaselabs/docs-columnar branches: - $replace: [ DOC-14645-Rename-CA-as-Operational-Insights-Capella-remove-page-aliases ] + $replace: [ DOC-14645-Rename-CA-as-Operational-Insights-Capella ] - url: https://github.com/couchbaselabs/docs-enterprise-analytics branches: $replace: [ merge-prs/release/3.0, release/2.2, release/2.1, release/2.0 ] diff --git a/antora-playbook.preview2.yml b/antora-playbook.preview2.yml index e4d3e53059..d3419973c3 100644 --- a/antora-playbook.preview2.yml +++ b/antora-playbook.preview2.yml @@ -171,7 +171,7 @@ content: - main - url: https://github.com/couchbaselabs/docs-columnar branches: - - DOC-14645-Rename-CA-as-Operational-Insights-Capella-remove-page-aliases + - DOC-14645-Rename-CA-as-Operational-Insights-Capella - url: https://github.com/couchbaselabs/docs-ai branches: DOC-14735_analytics-rename - url: https://github.com/couchbaselabs/docs-mcp-server From b22b6020e425e214b9f7b14beb52f1d55a3323e0 Mon Sep 17 00:00:00 2001 From: Hakim Cassimally Date: Tue, 29 Sep 2026 16:56:31 +0100 Subject: [PATCH 26/39] prod-237 Operational Insights badge --- 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 1cde4f36a7..06679c6d2d 100644 --- a/antora-playbook.preview2.diff.yml +++ b/antora-playbook.preview2.diff.yml @@ -38,4 +38,4 @@ asciidoc: ui: bundle: - url: https://github.com/couchbase/docs-ui/releases/download/prod-236/ui-bundle.zip + url: https://github.com/couchbase/docs-ui/releases/download/prod-237/ui-bundle.zip diff --git a/antora-playbook.preview2.yml b/antora-playbook.preview2.yml index d3419973c3..d873edc59b 100644 --- a/antora-playbook.preview2.yml +++ b/antora-playbook.preview2.yml @@ -141,7 +141,7 @@ asciidoc: page-watermark: Polaris ui: bundle: - url: https://github.com/couchbase/docs-ui/releases/download/prod-236/ui-bundle.zip + url: https://github.com/couchbase/docs-ui/releases/download/prod-237/ui-bundle.zip content: branches: master sources: From a8a5d6fc13b1960b35df29c7561dedb5081d3be2 Mon Sep 17 00:00:00 2001 From: Richard Smedley Date: Wed, 30 Sep 2026 14:04:34 +0100 Subject: [PATCH 27/39] SDK work for October release, and new top nav (#918) --- antora-playbook.yml | 211 +-- .../ROOT/pages/analytics-connectors.adoc | 33 + home/modules/ROOT/pages/analytics-sdk.adoc | 45 +- home/modules/ROOT/pages/columnar-sdk.adoc | 24 +- .../ROOT/pages/operational-insights-sdk.adoc | 159 +++ home/modules/ROOT/pages/operational.adoc | 37 + home/modules/ROOT/pages/sdk.adoc | 1154 ++++++++++++++--- home/modules/ROOT/pages/start-here,adoc | 179 +++ 8 files changed, 1528 insertions(+), 314 deletions(-) create mode 100644 home/modules/ROOT/pages/analytics-connectors.adoc create mode 100644 home/modules/ROOT/pages/operational-insights-sdk.adoc create mode 100644 home/modules/ROOT/pages/operational.adoc create mode 100644 home/modules/ROOT/pages/start-here,adoc diff --git a/antora-playbook.yml b/antora-playbook.yml index 933a14ac81..f3dd1f0bfd 100644 --- a/antora-playbook.yml +++ b/antora-playbook.yml @@ -64,63 +64,123 @@ site: # see https://confluence.issues.couchbase.com/wiki/spaces/DOCS/pages/2963243023/FAQ+how+does+the+top+nav+bar+work nav_groups: | - [ - { "title": "Server", - "startPage": "home::server.adoc", - "components": ["server", "operator", "cloud-native-gateway"], - "color": "#c41016", + + [ + { "title": "Start Here", "startPage": "home::start-here.adoc"}, + { "title": "Operational Database", "startPage": "home::operational.adoc", + "color": "#c41016", + "subGroups": [ + { + "title": "Self-Managed Server", + "startPage": "home::server.adoc", + "components": ["server"], + "expandHeaderLevels": 1 + }, + { + "title": "Kubernetes Operator", + "startPage": "operator::overview.adoc", + "components": ["operator"], + "expandHeaderLevels": 1 + }, + { + "title": "Cloud Native Gateway", + "startPage": "cloud-native-gateway:intro:about-cng.adoc", + "components": ["cloud-native-gateway"], + "expandHeaderLevels": 1 + }, + { + "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"], + "expandHeaderLevels": 1 + } + ] + }, + { "title": "Capella", + "startPage": "home::cloud.adoc", + "components": ["cloud"], + "color": "#e8830c", + "subGroups": [ + { + "title": "Capella Operational", + "startPage": "home::cloud.adoc", + "components": ["cloud"], + "expandHeaderLevels": 1 + }, + { + "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"], + "expandHeaderLevels": 1 + } + ] + }, + { "title": "Mobile / Edge", "startPage": "home::mobile.adoc", "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": "Couchbase Lite", + "startPage": "couchbase-lite::index.adoc", + "components": ["couchbase-lite", "couchbase-lite-javascript", "couchbase-edge-server"], + "expandHeaderLevels": 1 + }, { - "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"], + "title": "Sync Gateway", + "startPage": "sync-gateway::introduction.adoc", + "components": ["sync-gateway"], "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"], + "title": "App Services", + "startPage": "app-services:get-started:configuring-app-services.adoc", + "components": ["app-services"], "expandHeaderLevels": 1 } ] - }, - { "title": "Contribute", - "components": ["home", "styleguide", "ui-ux", "pendo"], - "color": "#f2a541" - } - ] + }, + { "title": "Operational Insights", + "startPage": "home::operational-insights.adoc", + "components": ["enterprise-analytics", "analytics", "*-insights-sdk-*"], + "color": "#ed9426", + "subGroups": [ + { + "title": "Operational Insights Enterprise", + "startPage": "enterprise-analytics:intro:intro.adoc", + "components": ["enterprise-analytics"], + "expandHeaderLevels": 1 + }, + { + "title": "Operational Insights Capella", + "startPage": "analytics:intro:intro.adoc", + "components": ["analytics"], + "expandHeaderLevels": 1 + }, + { + "title": "Insights SDKs", + "startPage": "home::operational-insights-sdk.adoc", + "components": ["*-insights-sdk-*"], + "expandHeaderLevels": 1 + }, + { + "title": "Legacy Analytics SDKs", + "startPage": "home::analytics-sdk.adoc", + "components": ["*-analytics-sdk", "*-columnar-sdk"], + "expandHeaderLevels": 1 + }, + { + "title": "Analytics Connectors", + "startPage": "home::analytics-connectors.adoc", + "components": ["tableau-connector", "power-bi-connector", "superset-connector"], + "expandHeaderLevels": 1 + } + ] + }, + { "title": "AI Data Plane", "startPage": "ai:get-started:intro.adoc", "components": ["ai"] }, + { "title": "Tutorials", "startPage": "tutorials::index.adoc", "components": ["tutorials"] }, + { "title": "Contribute", + "components": ["home", "styleguide", "ui-ux", "pendo"], + "color": "#f2a541" + } + ] git: ensure_git_suffix: false @@ -187,13 +247,6 @@ content: - url: https://github.com/couchbase/docs-operator branches: [release/2.9, release/2.8, release/2.7, release/2.6, release/2.5] - # unlinked. retire? - - url: https://github.com/couchbaselabs/observability - branches: [0.2.x] - start_path: docs - - url: https://github.com/couchbaselabs/cbmultimanager # private - branches: [0.2.x] - start_path: docs - url: https://github.com/couchbaselabs/docs-cloud-native-gateway # private branches: release/1.2 @@ -242,34 +295,34 @@ content: ############################ - url: https://github.com/couchbase/docs-sdk-common - branches: [release/8.0.1, release/8.0, release/7.7, release/7.6.6, release/7.6.2, release/7.6, temp/7.5, release/7.2, release/7.1.2, release/7.1, release/7.0, release/6.6, release/6.5] + branches: [api/3.10, release/8.0.1, release/8.0, release/7.7, release/7.6.6, release/7.6.2, release/7.6, temp/7.5, release/7.2, release/7.1.2, release/7.1, release/7.0, release/6.6, release/6.5] - url: https://github.com/couchbase/docs-sdk-c branches: [release/3.3] - url: https://github.com/couchbase/docs-sdk-cxx - branches: [release/1.4, release/1.3, release/1.2, release/1.1, release/1.0] + branches: [release/1.5, release/1.4, release/1.3, release/1.2, release/1.1, release/1.0] # .NET - url: https://github.com/couchbase/docs-sdk-dotnet - branches: [temp/3.9, temp/3.8, temp/3.7, temp/3.6, release/3.5] + branches: [release/3.10, temp/3.9, temp/3.8, temp/3.7, temp/3.6, release/3.5] - url: https://github.com/couchbase/docs-efcore branches: [release/1.0] # Go and Rust - url: https://github.com/couchbase/docs-sdk-go - branches: [release/2.12, temp/2.11, temp/2.10, temp/2.9, temp/2.8] + branches: [release/2.13, release/2.12, temp/2.11, temp/2.10, temp/2.9, temp/2.8] - url: https://github.com/couchbase/docs-sdk-rust - branches: [release/1.0] + branches: [release/1.1, release/1.0] # JVM - url: https://github.com/couchbase/docs-sdk-java - branches: [release/3.12, release/3.11, release/3.10, release/3.9, release/3.8, temp/3.7, temp/3.6] + branches: [release/3.13, release/3.12, release/3.11, release/3.10, release/3.9, release/3.8, temp/3.7, temp/3.6] - url: https://github.com/couchbase/docs-quarkus-extension branches: [release/1.4, release/1.3, release/1.2, release/1.1, release/1.0] - url: https://github.com/couchbase/docs-sdk-kotlin - branches: [temp/3.12, temp/3.11, temp/3.10, temp/3.9, temp/1.5, temp/1.4, temp/1.3] + branches: [release/3.13, temp/3.12, temp/3.11, temp/3.10, temp/3.9, temp/1.5, temp/1.4, temp/1.3] - url: https://github.com/couchbase/docs-sdk-scala - branches: [release/3.12, release/3.11, release/3.10, release/3.9, release/1.8, release/1.7, temp/1.6] + branches: [release/3.13, release/3.12, release/3.11, release/3.10, release/3.9, release/1.8, release/1.7, temp/1.6] # "scripting languages" - url: https://github.com/couchbase/docs-sdk-nodejs @@ -287,18 +340,34 @@ content: # Analytics SDKs (aka Columnar) ############################ - - url: https://github.com/couchbase/docs-columnar-sdk-common + - url: https://github.com/couchbase/docs-operational-insights-sdk-common branches: [release/1.0] - - url: https://github.com/couchbase/docs-columnar-sdk-go + - url: https://github.com/couchbase/docs-operational-insights-sdk-dotnet branches: [release/1.0] - - url: https://github.com/couchbase/docs-columnar-sdk-java + - url: https://github.com/couchbase/docs-operational-insights-sdk-go branches: [release/1.0] - - url: https://github.com/couchbase/docs-columnar-sdk-nodejs + - url: https://github.com/couchbase/docs-operational-insights-sdk-java branches: [release/1.0] - - url: https://github.com/couchbase/docs-columnar-sdk-python + - url: https://github.com/couchbase/docs-operational-insights-sdk-nodejs + branches: [release/1.0] + - url: https://github.com/couchbase/docs-operational-insights-sdk-python branches: [release/1.0] + + - url: https://github.com/couchbase/docs-columnar-sdk-common + branches: [DOC-14641--oi-renaming] + + - url: https://github.com/couchbase/docs-columnar-sdk-go + branches: [DOC-14641--oi-renaming] + - url: https://github.com/couchbase/docs-columnar-sdk-java + branches: [DOC-14641--oi-renaming] + - url: https://github.com/couchbase/docs-columnar-sdk-nodejs + branches: [DOC-14641--oi-renaming] + - url: https://github.com/couchbase/docs-columnar-sdk-python + branches: [DOC-14641--oi-renaming] + + - url: https://github.com/couchbase/docs-analytics-sdk-common branches: [release/1.1, release/1.0] @@ -316,10 +385,6 @@ content: # Mobile ############################ - # possibly legacy shared content - - url: https://github.com/couchbase/docs-mobile - branches: [release/3.1] - - url: https://github.com/couchbase/docs-couchbase-lite branches: [release/4.1, release/4.0, release/3.4, release/3.3, release/3.2, release/3.1, release/3.0] diff --git a/home/modules/ROOT/pages/analytics-connectors.adoc b/home/modules/ROOT/pages/analytics-connectors.adoc new file mode 100644 index 0000000000..dab65af532 --- /dev/null +++ b/home/modules/ROOT/pages/analytics-connectors.adoc @@ -0,0 +1,33 @@ += Connectors for Operational Insights +:page-layout: landing-page-top-level-sdk +:page-role: tiles +:page-rank: 75 +:dotnet: .NET +:!sectids: + + += Connectors for Operational Insights + +Connectors to work with our Operational Insights Clusters. + + +{empty} + + +== Analytics (Insights) Connectors + +* https://docs.couchbase.com/tableau-connector/current/index.html[Tableau Connector] +* https://docs.couchbase.com/power-bi-connector/current/index.html[PowerBI Connector] +* https://docs.couchbase.com/superset-connector/current/index.html[Apache Superset Connector] + + + +{empty} + + +== Big Data Connectors + +The available options for Operational Insights `DataFrame` and `Dataset` operations with the xref:spark-connector:ROOT:index.adoc[Couchbase Spark Connector] +can be found on the Spark xref:spark-connector:ROOT:spark-sql.adoc#enterprise-analytics-options[DataFrames, Datasets, and SQL] page. + +See the xref:enterprise-analytics:sources:manage-remote.adoc[Operational Insights] docs for information on streaming from Confluent for Kafka. + +{empty} + diff --git a/home/modules/ROOT/pages/analytics-sdk.adoc b/home/modules/ROOT/pages/analytics-sdk.adoc index e0a9b5e74b..e35e62564d 100644 --- a/home/modules/ROOT/pages/analytics-sdk.adoc +++ b/home/modules/ROOT/pages/analytics-sdk.adoc @@ -1,31 +1,35 @@ -= Develop with Enterprise Analytics += Develop with Operational Insights :page-layout: landing-page-top-level-sdk :page-role: tiles :page-rank: 75 :page-nav-header-levels: 1 :dotnet: .NET :!sectids: +:table-caption!: // :page-aliases: columnar-sdk.adoc -= Develop with Enterprise Analytics += Develop with Operational Insights include::partial$info-banner.adoc[] -// xref:enterprise-analytics:intro:intro.adoc[Enterprise Analytics] is a real-time analytical database (RT-OLAP) for real time apps and operational intelligence. +// xref:enterprise-analytics:intro:intro.adoc[Operational Insights] is a real-time analytical database (RT-OLAP) for real time apps and operational intelligence. // Capella Columnar is a standalone, cloud-only offering from Couchbase under the Capella family of products. // It uses column storage, which gives speedier retrieval of data. [description] -xref:enterprise-analytics:intro:intro.adoc[Enterprise Analytics] is a self-managed, JSON-native NoSQL analytical database. +xref:enterprise-analytics:intro:intro.adoc[Operational Insights] is a self-managed, JSON-native NoSQL analytical database. It serves to unify data from diverse sources, allowing for the execution of complex analytical queries and the extraction of timely insights. {empty} + -== SDK APIs to work with Enterprise Analytics +== SDK APIs to work with Operational Insights + +TIP: This section covers Couchbase's legacy Analytics SDKs. +These have been superseded by the new xref:operational-insights-sdk.adoc[Operational Insights SDKs], and these Analytics SDKs will be deprecated in due course. Analytics SDKs are developed from the ground-up and while they maintain some syntactic similarities with the xref:sdk.adoc[operational SDKs], -they are purpose built for Enterprise Analytics' real-time analytical use cases. +they are purpose built for Operational Insights' real-time analytical use cases. They support streaming APIs to handle large datasets, as well as the common features expected to be present in any modern database SDK -- such as connection management and robust error handling. @@ -77,24 +81,27 @@ https://docs.couchbase.com/sdk-api/analytics-python-client[Python API Reference] === Big Data Connectors -The available options for Enterprise Analytics `DataFrame` and `Dataset` operations with the xref:spark-connector:ROOT:index.adoc[Couchbase Spark Connector] +The available options for Operational Insights `DataFrame` and `Dataset` operations with the xref:spark-connector:ROOT:index.adoc[Couchbase Spark Connector] can be found on the Spark xref:spark-connector:ROOT:spark-sql.adoc#enterprise-analytics-options[DataFrames, Datasets, and SQL] page. -See the xref:enterprise-analytics:sources:manage-remote.adoc[Enterprise Analytics] docs for information on streaming from Confluent for Kafka. +See the xref:enterprise-analytics:sources:manage-remote.adoc[Operational Insights] docs for information on streaming from Confluent for Kafka. {empty} + == Other Analytics Services -.SDK Compatibility with Analytics Service +.SDK Compatibility with Operational Insights & Analytics Services |=== | Analytics solution | Development option -| xref:enterprise-analytics:intro:intro.adoc[Enterprise Analytics] -| xref:analytics-sdk.adoc[Analytics SDKs] +| xref:enterprise-analytics:intro:intro.adoc[Operational Insights Enterprise] +a| +* xref:operational-insights-sdk.adoc[Insights SDKs] +* xref:analytics-sdk.adoc[Legacy Analytics SDKs] + -| xref:analytics:intro:intro.adoc[Capella Analytics] +| xref:analytics:intro:intro.adoc[Operational Insights Capella] | xref:columnar-sdk.adoc[Columnar (Capella Analytics) SDKs] | xref:server:learn:services-and-indexes/services/analytics-service.adoc[CBAS (Couchbase Analytics Service)] @@ -103,22 +110,22 @@ See the xref:enterprise-analytics:sources:manage-remote.adoc[Enterprise Analytic -In addition to the Enterprise Analytics, +In addition to Operational Insights Enterprise Clusters, // (self-managed and Capella Analytics), -older Couchbase Analytics services are available -- -Enterprise Analytics' forerunner, Columnar, remains available as Capella Analytics for the present time. +older Operational Insights is also available as a managed service -- +Operational Insights Capella, formerly Columnar. Traditional, row-based analytics is also available in Couchbase operational clusters -- self-managed, or Capella Operational. {empty} + -=== SDK APIs to work with Capella Analytics: +=== SDK APIs to work with Operational Insights Capella: -xref:analytics:intro:intro.adoc[Capella Analytics] is a standalone, managed cloud offering from Couchbase under the Capella family of products. +xref:analytics:intro:intro.adoc[Operational Insights Capella] is a standalone, managed cloud offering from Couchbase under the Capella family of products. -Capella Analytics SDKs, formerly known as Columnar SDKs, are similar to the Enterprise Analytics SDKs. -They must be used to connect to the current Capella Analytics Service, as it presents a different connection interface, without Enterprise Analytics' load balancer. +Operational Insights Capella SDKs, formerly known as Columnar SDKs, are similar to the Operational Insights SDKs. +They must be used to connect to the current Operational Insights Capella Service, as it presents a different connection interface, without Operational Insights Enterprise's load balancer. [{tabs}] ==== diff --git a/home/modules/ROOT/pages/columnar-sdk.adoc b/home/modules/ROOT/pages/columnar-sdk.adoc index 0883bd6425..0b86bd7ddf 100644 --- a/home/modules/ROOT/pages/columnar-sdk.adoc +++ b/home/modules/ROOT/pages/columnar-sdk.adoc @@ -1,37 +1,37 @@ -= Develop with Capella Analytics += Develop with Operational Insights Capella :page-layout: landing-page-top-level-sdk :page-role: tiles :page-rank: 75 :!sectids: -= Develop with Capella Analytics += Develop with Operational Insights Capella include::partial$info-banner.adoc[] [description] -xref:analytics:intro:intro.adoc[Capella Analytics] is a real-time analytical database (RT-OLAP) for real time apps and operational intelligence. -Capella Analytics is a standalone, managed offering from Couchbase under the Capella family of products -- -a self-managed xref:enterprise-analytics:intro:intro.adoc[Enterprise Analytics] product is also available. +xref:analytics:intro:intro.adoc[Operational Insights Capella] is a real-time analytical database (RT-OLAP) for real time apps and operational intelligence. +Operational Insights Capella is a standalone, managed offering from Couchbase under the Capella family of products -- +a self-managed xref:enterprise-analytics:intro:intro.adoc[Operational Insights Enterprise] product is also available. [TIP] .Which Analytics Service? ==== -Capella Analytics and Enterprise Analytics are column-based real-time analytical databases. +Operational Insights Capella and Operational Insights Enterprise are column-based real-time analytical databases. -Capella Analytics SDKs, also known as Columnar SDKs, are similar to the Enterprise Analytics SDKs. -They must be used to connect to the current Capella Analytics Service, as it presents a different connection interface, without Enterprise Analytics' load balancer. +Operational Insights Capella SDKs, also known as Columnar SDKs, are similar to the Operational Insights Enterprise SDKs. +They must be used to connect to the current Operational Insights Capella Service, as it presents a different connection interface, without Operational Insights Enterprise's load balancer. -To connect to self-managed Enterprise Analytics, use our xref:analytics-sdk.adoc[Enterprise Analytics SDKs]. +To connect to self-managed Operational Insights Enterprise, use our xref:operational-insights-sdk.adoc[Operational Insights SDKs]. xref:server:learn:services-and-indexes/services/analytics-service.adoc[CBAS (Couchbase Analytics Service)] is our classic OLAP available as part of self-managed Couchbase Server and Capella Operational. Use the xref:sdk.adoc[operational SDKs] to develop for this service. ==== -== SDK APIs to work with Capella Analytics: +== SDK APIs to work with Operational Insights Capella: Columnar SDKs are developed from the ground-up and while they maintain some syntactic similarities with the xref:sdk.adoc[operational SDKs], -they are purpose built for Capella Analytics's real-time analytical use cases. +they are purpose built for Operational Insights Capella's real-time analytical use cases. They support streaming APIs to handle large datasets, as well as the common features expected to be present in any modern database SDK -- such as connection management and robust error handling. @@ -70,5 +70,3 @@ xref:python-columnar-sdk:hello-world:start-using-sdk.adoc[Quickstart] | https://docs.couchbase.com/sdk-api/columnar-python-client[Python API Reference] -- ==== - - diff --git a/home/modules/ROOT/pages/operational-insights-sdk.adoc b/home/modules/ROOT/pages/operational-insights-sdk.adoc new file mode 100644 index 0000000000..3dfaa6f086 --- /dev/null +++ b/home/modules/ROOT/pages/operational-insights-sdk.adoc @@ -0,0 +1,159 @@ += Develop with Enterprise Operational Insights +:page-layout: landing-page-top-level-sdk +:page-role: tiles +:page-rank: 75 +:dotnet: .NET +:!sectids: +:table-caption!: +// :page-aliases: columnar-sdk.adoc + += Develop with Operational Insights + +include::partial$info-banner.adoc[] + +// xref:enterprise-operational-insights:intro:intro.adoc[Enterprise Operational-Insights] is a real-time analytical database (RT-OLAP) for real time apps and operational intelligence. +// Capella Columnar is a standalone, cloud-only offering from Couchbase under the Capella family of products. +// It uses column storage, which gives speedier retrieval of data. + +xref:enterprise-analytics:intro:intro.adoc[Operational Insights Enterprise] is a self-managed, JSON-native NoSQL analytical database. +It serves to unify data from diverse sources, allowing for the execution of complex analytical queries and the extraction of timely insights. + +{empty} + + + +== SDK APIs to work with Operational Insights Enterprise + +Operational Insights SDKs are developed from the ground-up and while they maintain some syntactic similarities with the xref:sdk.adoc[operational SDKs], +they are purpose built for Operational Insights' real-time analytical use cases. +They support streaming APIs to handle large datasets, as well as the common features expected to be present in any modern database SDK -- +such as connection management and robust error handling. + +[{tabs}] +==== + +{dotnet}:: ++ +-- +xref:dotnet-operational-insights-sdk:hello-world:overview.adoc[.NET OI SDK Docs] | +xref:dotnet-operational-insights-sdk:hello-world:start-using-sdk.adoc[Quickstart] | +https://docs.couchbase.com/sdk-api/operational-insights-dotnet-client[.NET Operational Insights API Reference] +-- + +Go:: ++ +-- +xref:go-operational-insights-sdk:hello-world:overview.adoc[Go Operational Insights SDK Docs] | +xref:go-operational-insights-sdk:hello-world:start-using-sdk.adoc[Quickstart] | +https://pkg.go.dev/github.com/couchbase/gocboperational-insights[Go API Reference] +-- + +Java:: ++ +-- +xref:java-operational-insights-sdk:hello-world:overview.adoc[Java Operational Insights SDK Docs] | +xref:java-operational-insights-sdk:hello-world:start-using-sdk.adoc[Quickstart] | +https://docs.couchbase.com/sdk-api/couchbase-operational-insights-java-client/[Java API Reference] +-- + +Node.js:: ++ +-- +xref:nodejs-operational-insights-sdk:hello-world:overview.adoc[Node.js Operational Insights SDK Docs] | +xref:nodejs-operational-insights-sdk:hello-world:start-using-sdk.adoc[Quickstart] | +https://docs.couchbase.com/sdk-api/operational-insights-nodejs-client[Node.js API Reference] +-- + +Python:: ++ +-- +xref:python-operational-insights-sdk:hello-world:overview.adoc[Python Operational Insights SDK Docs] | +xref:python-operational-insights-sdk:hello-world:start-using-sdk.adoc[Quickstart] | +https://docs.couchbase.com/sdk-api/operational-insights-python-client[Python API Reference] +-- +==== + +{empty} + + +=== Big Data Connectors + +The available options for Enterprise Operational-Insights `DataFrame` and `Dataset` operations with the xref:spark-connector:ROOT:index.adoc[Couchbase Spark Connector] +can be found on the Spark xref:spark-connector:ROOT:spark-sql.adoc#enterprise-operational-insights-options[DataFrames, Datasets, and SQL] page. + +See the xref:enterprise-analytics:sources:manage-remote.adoc[Enterprise Operational Insights] docs for information on streaming from Confluent for Kafka. + +{empty} + + +== Other Operational Insights Services + + +.SDK Compatibility with Operational Insights Service +|=== +| Operational-Insights solution | Development option + +| xref:enterprise-operational-insights:intro:intro.adoc[Operational Insights Enterprise] +a| +* xref:operational-insights-sdk.adoc[Operational Insights SDKs] +* xref:analytics-sdk.adoc[Legacy Analytics SDKs] + +| xref:operational-insights:intro:intro.adoc[Operational Insights Capella] +| xref:columnar-sdk.adoc[Columnar (Operational Insights Capella) SDKs] + +| xref:server:learn:services-and-indexes/services/operational-insights-service.adoc[CBAS (Couchbase Operational-Insights Service)] +| xref:sdk.adoc[Operational SDKs] +|=== + + + +In addition to the Operational Insights Enterprise, +traditional, row-based analytics is also available in Couchbase operational clusters -- self-managed, or Capella Operational. + + +{empty} + + +=== SDK APIs to work with Operational Insights Capella + +Columnar SDKs, are similar to the Operational Insights SDKs. +They must be used to connect to the current Operational Insights (Capella) Service, as it presents a different connection interface, without Operational Insights Enterprise's load balancer. + +[{tabs}] +==== +Go:: ++ +-- +xref:go-columnar-sdk:hello-world:overview.adoc[Go Columnar SDK Docs] | +xref:go-columnar-sdk:hello-world:start-using-sdk.adoc[Quickstart] | +https://pkg.go.dev/github.com/couchbase/gocbcolumnar[Go API Reference] +-- + +Java:: ++ +-- +xref:java-columnar-sdk:hello-world:overview.adoc[Java Columnar SDK Docs] | +xref:java-columnar-sdk:hello-world:start-using-sdk.adoc[Quickstart] | +https://docs.couchbase.com/sdk-api/couchbase-columnar-java-client[Java API Reference] +-- + +Node.js:: ++ +-- +xref:nodejs-columnar-sdk:hello-world:overview.adoc[Node.js Columnar SDK Docs] | +xref:nodejs-columnar-sdk:hello-world:start-using-sdk.adoc[Quickstart] | +https://docs.couchbase.com/sdk-api/columnar-nodejs-client[Node.js API Reference] +-- + +Python:: ++ +-- +xref:python-columnar-sdk:hello-world:overview.adoc[Python Columnar SDK Docs] | +xref:python-columnar-sdk:hello-world:start-using-sdk.adoc[Quickstart] | +https://docs.couchbase.com/sdk-api/columnar-python-client[Python API Reference] +-- +==== + + +{empty} + + +=== Row-Based Couchbase Analytics + +xref:server:learn:services-and-indexes/services/analytics-service.adoc[CBAS (Couchbase Analytics Service)] is our classic OLAP service, available as part of self-managed Couchbase Server and Capella Operational. +Use the xref:sdk.adoc[operational SDKs] to develop for this service. \ No newline at end of file diff --git a/home/modules/ROOT/pages/operational.adoc b/home/modules/ROOT/pages/operational.adoc new file mode 100644 index 0000000000..c438a2e414 --- /dev/null +++ b/home/modules/ROOT/pages/operational.adoc @@ -0,0 +1,37 @@ += Couchbase Operational Database +:page-layout: landing-page-top-level-sdk +:page-role: tiles +:page-rank: 75 +:!sectids: +:tabs: + += Couchbase Operational Database + + + +include::partial$info-banner.adoc[] + + + + + +== Self-Managed Couchbase Server + +Self-managede Couchbase Cluster in your datacenter, or choose deployment with Kubernetes Operator or the CSP marketplace provider of your choice. + +* Get Started +* Develop +* Deploy +* Learn + + + + +== Capella Operational + +Couchbase-managed Operational Cluster in your choice of Cloud Provider. + +* Get Started +* Develop +* Deploy +* Learn diff --git a/home/modules/ROOT/pages/sdk.adoc b/home/modules/ROOT/pages/sdk.adoc index 41ba7ef7b0..9d2c55d12b 100644 --- a/home/modules/ROOT/pages/sdk.adoc +++ b/home/modules/ROOT/pages/sdk.adoc @@ -1,21 +1,18 @@ -= SDKs & Connectors -:page-aliases: 8.0@server:sdk:overview.adoc,7.6@server:sdk:overview.adoc,7.2@server:sdk:overview.adoc,8.0@server:install:install-client-server.adoc,7.6@server:install:install-client-server.adoc,7.2@server:install:install-client-server.adoc += SDKs for Couchbase Operational Database +:page-aliases: sdks:intro.adoc,7.6@server:sdk:overview.adoc,8.0@server:sdk:overview.adoc,7.6@server:install:install-client-server.adoc,8.0@server:install:install-client-server.adoc :page-layout: landing-page-top-level-sdk -:page-nav-header-levels: 1 :page-role: tiles :page-rank: 75 :!sectids: -include::partial$info-banner.adoc[] -= SDKs & Connectors += SDKs for Couchbase Operational Database + +include::partial$info-banner.adoc[] -== {empty} +A fast and scalable database is even better when it’s easy to develop for. +Couchbase gives you the SDK APIs to work with Capella, our managed solution, or self-managed options in your private Cloud or datacenter. -[description] -Couchbase provides several SDKs to allow applications to access a Couchbase cluster (Capella or self-managed), -as well as xref:mobile.adoc[Couchbase Lite] -- an embedded, NoSQL JSON Document Style database for your mobile apps. -To exchange data with other platforms, we offer various Big Data Connectors. [source,scala] ---- @@ -27,320 +24,1059 @@ collection.reactive.upsert("document-key", json) .subscribe() ---- -[TIP] -.Analytics SDKs -==== -SDKs for xref:enterprise-analytics:intro:intro.adoc[Enterprise Analytics] -- -Couchbase's analytical database (RT-OLAP) for real time apps and operational intelligence -- -are xref:analytics-sdk.adoc[available] for the Go, Java, Node.js, and Python platforms. -SDKs for xref:analytics:intro:intro.adoc[Capella Analytics] are similar to the Enterprise Analytics SDKs. -They must be used to connect to the current Capella Analytics Service, as it presents a different connection interface, without Enterprise Analytics' load balancer. -They are xref:columnar-sdk.adoc[available] for the Go, Java, Node.js, and Python platforms. -==== +Couchbase is a large platform -- covering many services -- and Couchbase SDKs are not thin wrappers generated around a REST API, +but well thought out interfaces to the platform that make it easier to design and maintain your client code, +and work with Couchbase in more natural ways for your platform. + +Explore our SDK documentation for your chosen platform: + +[{tabs}] +==== +{cpp}:: ++ +-- +xref:cxx-sdk:hello-world:overview.adoc[{cpp} SDK Docs] | +xref:cxx-sdk:hello-world:start-using-sdk.adoc[Quickstart Guide] | +xref:cxx-sdk:project-docs:sdk-release-notes.adoc[] | +https://docs.couchbase.com/sdk-api/couchbase-cxx-client[{cpp} API Reference] {empty} + -== Server SDKs +[discrete] +== Using Your Database icon:database[] -The Couchbase SDKs allow applications to access a Couchbase cluster. -They offer traditional synchronous APIs as well as scalable asynchronous APIs to maximize performance. - -[#table_sdk,cols="38,40,60,50"] -|=== -| SDK | Documentation | Hello World Example | API Reference +How-to guides to help you start your development journey with Couchbase and the {cpp} SDK. -| .NET SDK -| xref:dotnet-sdk:hello-world:overview.adoc[Docs] -| xref:dotnet-sdk:hello-world:start-using-sdk.adoc[.NET Getting Started] -| https://docs.couchbase.com/sdk-api/couchbase-net-client[.NET API Reference] +++++ +
+++++ -| C SDK -| xref:c-sdk:hello-world:overview.adoc[Docs] -| xref:c-sdk:hello-world:start-using-sdk.adoc[C Getting Started] -| https://docs.couchbase.com/sdk-api/couchbase-c-client/index.html[C API Reference] +[.column] +.Easy to Connect & Get Started +* xref:cxx-sdk:hello-world:start-using-sdk.adoc[Quickstart Guide] -- CRUD against a Document Database. +* xref:cxx-sdk:howtos:managing-connections.adoc[Connect your App] -- connect from dev or production environment. +* xref:cxx-sdk:hello-world:sample-application.adoc[Sample Application] -- build a full app +// * xref:cxx-sdk:hello-world:student-record-developer-tutorial.adoc[Beginners' Couchbase Tutorial] -- introduction to the SDK, Document data model, and {sqlpp} for document databases. -| {cpp} SDK -| xref:cxx-sdk:hello-world:overview.adoc[Docs] -| xref:cxx-sdk:hello-world:start-using-sdk.adoc[{cpp} Getting Started] -| https://docs.couchbase.com/sdk-api/couchbase-cxx-client/index.html[{cpp} API Reference] +[.column] +.Search, Query, Analyze +* xref:cxx-sdk:howtos:sqlpp-queries-with-sdk.adoc[Query with a familiar, SQL-like language] +* xref:cxx-sdk:howtos:vector-searching-with-sdk.adoc[Vector Search for your AI app] +* xref:cxx-sdk:howtos:full-text-searching-with-sdk.adoc[Fuzzy Search with text and Geo data] +* xref:cxx-sdk:howtos:analytics-using-sdk.adoc[OLAP -- long running analytical queries] -| Go SDK -| xref:go-sdk:hello-world:overview.adoc[Docs] -| xref:go-sdk:hello-world:start-using-sdk.adoc[Go Getting Started] -| https://pkg.go.dev/github.com/couchbase/gocb/v2[Go API Reference] +[.column] +.Lightning Fast Data Service +* xref:cxx-sdk:howtos:kv-operations.adoc[] +* xref:cxx-sdk:howtos:subdocument-operations.adoc[] +* xref:cxx-sdk:howtos:encrypting-using-sdk.adoc[] +* xref:cxx-sdk:howtos:distributed-acid-transactions-from-the-sdk.adoc[Multi-Document Distributed ACID Transactions] -| Java SDK -| xref:java-sdk:hello-world:overview.adoc[Docs] -| xref:java-sdk:hello-world:start-using-sdk.adoc[Java Getting Started] -| https://docs.couchbase.com/sdk-api/couchbase-java-client[Java API Reference] +[.column] +.Observability & Error Handling +* xref:cxx-sdk:howtos:error-handling.adoc[] +* xref:cxx-sdk:howtos:collecting-information-and-logging.adoc[] +* xref:cxx-sdk:howtos:slow-operations-logging.adoc[] +* xref:cxx-sdk:howtos:health-check.adoc[] -| Kotlin SDK -| xref:kotlin-sdk:hello-world:overview.adoc[Docs] -| xref:kotlin-sdk:hello-world:start-using-sdk.adoc[Kotlin Getting Started] -| https://docs.couchbase.com/sdk-api/couchbase-kotlin-client[Kotlin API Reference] +++++ +
+++++ -| Node.js SDK -| xref:nodejs-sdk:hello-world:overview.adoc[Docs] -| xref:nodejs-sdk:hello-world:start-using-sdk.adoc[Node.js Getting Started] -| https://docs.couchbase.com/sdk-api/couchbase-node-client/modules.html[Node.js API Reference] -| PHP SDK -| xref:php-sdk:hello-world:overview.adoc[Docs] -| xref:php-sdk:hello-world:start-using-sdk.adoc[PHP Getting Started] -| https://docs.couchbase.com/sdk-api/couchbase-php-client/namespaces/couchbase.html[PHP API Reference] +{empty} + -| Python SDK -| xref:python-sdk:hello-world:overview.adoc[Docs] -| xref:python-sdk:hello-world:start-using-sdk.adoc[Python Getting Started] -| https://docs.couchbase.com/sdk-api/couchbase-python-client/[Python API Reference] +[discrete] +== Resources icon:book[] -| Ruby SDK -| xref:ruby-sdk:hello-world:overview.adoc[Docs] -| xref:ruby-sdk:hello-world:start-using-sdk.adoc[Ruby Getting Started] -| https://docs.couchbase.com/sdk-api/couchbase-ruby-client/Couchbase.html[Ruby API Reference] +Useful resources to help support your development experience with Couchbase and the {cpp} SDK. -| Rust SDK -| xref:rust-sdk:hello-world:overview.adoc[Docs] -| xref:rust-sdk:hello-world:start-using-sdk.adoc[Rust Getting Started] -| https://docs.rs/couchbase/[Rust API Reference] +++++ +
+++++ -| Scala SDK -| xref:scala-sdk:hello-world:overview.adoc[Docs] -| xref:scala-sdk:hello-world:start-using-sdk.adoc[Scala Getting Started] -| https://docs.couchbase.com/sdk-api/couchbase-scala-client/com/couchbase/client/scala/index.html[Scala API Reference] -|=== +[.column] +.Reference +* https://docs.couchbase.com/sdk-api/couchbase-cxx-client/[API Reference^] +* xref:cxx-sdk:ref:client-settings.adoc[] +* xref:cxx-sdk:ref:error-codes.adoc[] +* xref:cxx-sdk:ref:glossary.adoc[Glossary] +// * xref:cxx-sdk:ref:travel-app-data-model.adoc[] +[.column] +.Deployment +* xref:cxx-sdk:project-docs:sdk-release-notes.adoc[] +* xref:cxx-sdk:project-docs:compatibility.adoc[Compatibility] +// * https://docs-archive.couchbase.com/home/index.html[Older Versions Archive] +// * xref:cxx-sdk:project-docs:migrating-sdk-code-to-3.n.adoc[] +* xref:cxx-sdk:project-docs:third-party-integrations.adoc[] +* xref:cxx-sdk:project-docs:sdk-full-installation.adoc[] + +++++ +
+++++ +-- + +.NET:: ++ +-- +xref:dotnet-sdk:hello-world:overview.adoc[.NET SDK Docs] | +xref:dotnet-sdk:hello-world:start-using-sdk.adoc[Quickstart Guide] | +xref:dotnet-sdk:project-docs:sdk-release-notes.adoc[] | +https://docs.couchbase.com/sdk-api/couchbase-net-client/[.NET API Reference] + +{empty} + + +[discrete] +== Using Your Database icon:database[] + +How-to guides to help you start your development journey with Couchbase and the .NET SDK. + +++++ +
+++++ [.column] -====== {empty} +.Easy to Connect & Get Started +* xref:dotnet-sdk:hello-world:start-using-sdk.adoc[Quickstart Guide] -- CRUD against a Document Database. +* xref:dotnet-sdk:howtos:managing-connections.adoc[Connect your App] -- connect from dev or production environment. +* xref:dotnet-sdk:hello-world:sample-application.adoc[Sample Application] -- build a full app +// * xref:dotnet-sdk:hello-world:student-record-developer-tutorial.adoc[Beginners' Couchbase Tutorial] -- introduction to the SDK, Document data model, and {sqlpp} for document databases. [.column] -====== {empty} +.Search, Query, Analyze +* xref:dotnet-sdk:howtos:sqlpp-queries-with-sdk.adoc[Query with a familiar, SQL-like language] +* xref:dotnet-sdk:howtos:vector-searching-with-sdk.adoc[Vector Search for your AI app] +* xref:dotnet-sdk:howtos:full-text-searching-with-sdk.adoc[Fuzzy Search with text and Geo data] +* xref:dotnet-sdk:howtos:analytics-using-sdk.adoc[OLAP -- long running analytical queries] +[.column] +.Lightning Fast Data Service +* xref:dotnet-sdk:howtos:kv-operations.adoc[] +* xref:dotnet-sdk:howtos:subdocument-operations.adoc[] +* xref:dotnet-sdk:howtos:encrypting-using-sdk.adoc[] +* xref:dotnet-sdk:howtos:distributed-acid-transactions-from-the-sdk.adoc[Multi-Document Distributed ACID Transactions] -=== Alternatives to SDKs +[.column] +.Observability & Error Handling +* xref:dotnet-sdk:howtos:error-handling.adoc[] +* xref:dotnet-sdk:howtos:collecting-information-and-logging.adoc[] +* xref:dotnet-sdk:howtos:slow-operations-logging.adoc[] +* xref:dotnet-sdk:howtos:health-check.adoc[] -The Data API gives access to data in Capella Operational clusters -- -for when to use the Data API, or Capella's other REST APIs, see xref:cloud:data-api-guide:data-api-sdks.adoc[]. +++++ +
+++++ + + +{empty} + + +[discrete] +== Resources icon:book[] +Useful resources to help support your development experience with Couchbase and the .NET SDK. +++++ +
+++++ [.column] -====== {empty} +.Reference +* https://docs.couchbase.com/sdk-api/couchbase-net-client/[API Reference^] +* xref:dotnet-sdk:ref:client-settings.adoc[] +* xref:dotnet-sdk:ref:error-codes.adoc[] +* xref:dotnet-sdk:ref:glossary.adoc[Glossary] +* xref:dotnet-sdk:ref:travel-app-data-model.adoc[] [.column] -====== {empty} +.Deployment +* xref:dotnet-sdk:project-docs:sdk-release-notes.adoc[] +* xref:dotnet-sdk:project-docs:compatibility.adoc[Compatibility] +* https://docs-archive.couchbase.com/home/index.html[Older Versions Archive] +* xref:dotnet-sdk:project-docs:migrating-sdk-code-to-3.n.adoc[] +* xref:dotnet-sdk:project-docs:third-party-integrations.adoc[] +* xref:dotnet-sdk:project-docs:sdk-full-installation.adoc[] + +++++ +
+++++ +-- + +Go:: ++ +-- +xref:go-sdk:hello-world:overview.adoc[Go SDK Docs] | +xref:go-sdk:hello-world:start-using-sdk.adoc[Quickstart Guide] | +xref:go-sdk:project-docs:sdk-release-notes.adoc[] | +https://pkg.go.dev/github.com/couchbase/gocb/v2[Go API Reference] +{empty} + -== SDK Extension Libraries -[] -The SDK Extension Libraries are shipped as separate libraries. +[discrete] +== Using Your Database icon:database[] +How-to guides to help you start your development journey with Couchbase and the Go SDK. ++++ -
+
++++ [.column] -====== {empty} -.Field Level Encryption +.Easy to Connect & Get Started +* xref:go-sdk:hello-world:start-using-sdk.adoc[Quickstart Guide] -- CRUD against a Document Database. +* xref:go-sdk:howtos:managing-connections.adoc[Connect your App] -- connect from dev or production environment. +* xref:go-sdk:hello-world:sample-application.adoc[Sample Application] -- build a full app +// * xref:go-sdk:hello-world:student-record-developer-tutorial.adoc[Beginners' Couchbase Tutorial] -- introduction to the SDK, Document data model, and {sqlpp} for document databases. -[.content] -Fields within a JSON document can be securely encrypted by the SDK to support FIPS 140-2 compliance. -This is a client-side implementation, with encryption and decryption handled by the Couchbase client SDK. -[] -xref:sdk-extensions::field-level-encryption.adoc[Field Level Encryption] +[.column] +.Search, Query, Analyze +* xref:go-sdk:howtos:sqlpp-queries-with-sdk.adoc[Query with a familiar, SQL-like language] +* xref:go-sdk:howtos:vector-searching-with-sdk.adoc[Vector Search for your AI app] +* xref:go-sdk:howtos:full-text-searching-with-sdk.adoc[Fuzzy Search with text and Geo data] +* xref:go-sdk:howtos:analytics-using-sdk.adoc[OLAP -- long running analytical queries] [.column] -====== {empty} -.Response Time Observability +.Lightning Fast Data Service +* xref:go-sdk:howtos:kv-operations.adoc[] +* xref:go-sdk:howtos:subdocument-operations.adoc[] +* xref:go-sdk:howtos:encrypting-using-sdk.adoc[] +* xref:go-sdk:howtos:distributed-acid-transactions-from-the-sdk.adoc[Multi-Document Distributed ACID Transactions] -[.content] -Health indicators can tell you a lot about the performance of an application. Monitoring them is vital both during its development and production lifecycle. -For a database, performance is best encapsulated via per-request performance. -[] -xref:sdk-extensions::response-time-observability.adoc[Response Time Observability] +[.column] +.Observability & Error Handling +* xref:go-sdk:howtos:error-handling.adoc[] +* xref:go-sdk:howtos:collecting-information-and-logging.adoc[] +* xref:go-sdk:howtos:slow-operations-logging.adoc[] +* xref:go-sdk:howtos:health-check.adoc[] + +++++ +
+++++ + + +{empty} + + +[discrete] +== Resources icon:book[] + +Useful resources to help support your development experience with Couchbase and the Go SDK. + +++++ +
+++++ [.column] -====== {empty} -.Distributed ACID Transactions +.Reference +* https://pkg.go.dev/github.com/couchbase/gocb/v2[API Reference^] +* xref:go-sdk:ref:client-settings.adoc[] +* xref:go-sdk:ref:error-codes.adoc[] +* xref:go-sdk:ref:glossary.adoc[Glossary] +* xref:go-sdk:ref:travel-app-data-model.adoc[] -[.content] -Previously, distributed ACID transactions were available as separate libraries for some of the SDKs. -Please note that this feature, available now in most of the SDKs, is incorporated directly into these SDKs. -[] -xref:sdk-extensions::distributed-acid-transactions.adoc[Distributed ACID Transactions] +[.column] +.Deployment +* xref:go-sdk:project-docs:sdk-release-notes.adoc[] +* xref:go-sdk:project-docs:compatibility.adoc[Compatibility] +* https://docs-archive.couchbase.com/home/index.html[Older Versions Archive] +* xref:go-sdk:project-docs:migrating-sdk-code-to-3.n.adoc[] +* xref:go-sdk:project-docs:third-party-integrations.adoc[] +* xref:go-sdk:project-docs:sdk-full-installation.adoc[] -+++ +++++
-+++ +++++ +-- +Java:: ++ +-- +xref:java-sdk:hello-world:overview.adoc[Java SDK Docs] | +xref:java-sdk:hello-world:start-using-sdk.adoc[Quickstart Guide] | +xref:java-sdk:project-docs:sdk-release-notes.adoc[] | +https://docs.couchbase.com/sdk-api/couchbase-java-client[Java API Reference] + +{empty} + + +[discrete] +== Using Your Database icon:database[] + +How-to guides to help you start your development journey with Couchbase and the Java SDK. + +++++ +
+++++ + +[.column] +.Easy to Connect & Get Started +* xref:java-sdk:hello-world:start-using-sdk.adoc[Quickstart Guide] -- CRUD against a Document Database. +* xref:java-sdk:howtos:managing-connections.adoc[Connect your App] -- connect from dev or production environment. +* xref:java-sdk:hello-world:sample-application.adoc[Sample Application] -- build a full app +* xref:java-sdk:hello-world:student-record-developer-tutorial.adoc[Beginners' Couchbase Tutorial] -- introduction to the SDK, Document data model, and SQL++ for document databases. + +[.column] +.Search, Query, Analyze +* xref:java-sdk:howtos:sqlpp-queries-with-sdk.adoc[Query with a familiar, SQL-like language] +* xref:java-sdk:howtos:vector-searching-with-sdk.adoc[Vector Search for your AI app] +* xref:java-sdk:howtos:full-text-searching-with-sdk.adoc[Fuzzy Search with text and Geo data] +* xref:java-sdk:howtos:analytics-using-sdk.adoc[OLAP -- long running analytical queries] + +[.column] +.Lightning Fast Data Service +* xref:java-sdk:howtos:kv-operations.adoc[] +* xref:java-sdk:howtos:subdocument-operations.adoc[] +* xref:java-sdk:howtos:encrypting-using-sdk.adoc[] +* xref:java-sdk:howtos:distributed-acid-transactions-from-the-sdk.adoc[Multi-Document Distributed ACID Transactions] + +[.column] +.Observability & Error Handling +* xref:java-sdk:howtos:error-handling.adoc[] +* xref:java-sdk:howtos:collecting-information-and-logging.adoc[] +* xref:java-sdk:howtos:slow-operations-logging.adoc[] +* xref:java-sdk:howtos:health-check.adoc[] + +++++ +
+++++ {empty} + -== Enterprise Analytics SDKs +[discrete] +== Resources icon:book[] -xref:enterprise-analytics:intro:intro.adoc[Enterprise Analytics] is an analytical database (RT-OLAP) for real time apps and operational intelligence. -xref:analytics-sdk.adoc[Analytics SDKs] are tailored to the APIs offered by this service. +Useful resources to help support your development experience with Couchbase and the Java SDK. -[#table_analytics_sdk,cols="42,40,60,50"] -|=== -| Analytics SDK | Documentation | Hello World Example | API Reference +++++ +
+++++ -| .NET Analytics SDK -| xref:dotnet-analytics-sdk:hello-world:overview.adoc[Docs] -| xref:dotnet-analytics-sdk:hello-world:start-using-sdk.adoc[.NET Getting Started] -| https://docs.couchbase.com/sdk-api/analytics-dotnet-client[.NET Analytics API Reference] +[.column] +.Reference +* https://docs.couchbase.com/sdk-api/couchbase-scala-client/com/couchbase/client/scala/index.html[API Reference^] +* xref:java-sdk:ref:client-settings.adoc[] +* xref:java-sdk:ref:error-codes.adoc[] +* xref:java-sdk:ref:glossary.adoc[Glossary] +// * xref:java-sdk:ref:travel-app-data-model.adoc[] -| Go Analytics SDK -| xref:go-analytics-sdk:hello-world:overview.adoc[Docs] -| xref:go-analytics-sdk:hello-world:start-using-sdk.adoc[Go Getting Started] -| https://pkg.go.dev/github.com/couchbase/gocbanalytics[Go Analytics API Reference] +[.column] +.Deployment +* xref:java-sdk:project-docs:sdk-release-notes.adoc[] +* xref:java-sdk:project-docs:compatibility.adoc[Compatibility] +// * https://docs-archive.couchbase.com/home/index.html[Older Versions Archive] +// * xref:java-sdk:project-docs:migrating-sdk-code-to-3.n.adoc[] +* xref:java-sdk:project-docs:third-party-integrations.adoc[] +* xref:java-sdk:project-docs:sdk-full-installation.adoc[] -| Java Analytics SDK -| xref:java-analytics-sdk:hello-world:overview.adoc[Docs] -| xref:java-analytics-sdk:hello-world:start-using-sdk.adoc[Java Getting Started] -| https://docs.couchbase.com/sdk-api/couchbase-analytics-java-client[Java Analytics API Reference] +++++ +
+++++ +-- -| Node.js Analytics SDK -| xref:nodejs-analytics-sdk:hello-world:overview.adoc[Docs] -| xref:nodejs-analytics-sdk:hello-world:start-using-sdk.adoc[Node.js Getting Started] -| https://docs.couchbase.com/sdk-api/analytics-nodejs-client/[Node.js Analytics API Reference] -| Python Analytics SDK -| xref:python-analytics-sdk:hello-world:overview.adoc[Docs] -| xref:python-analytics-sdk:hello-world:start-using-sdk.adoc[Python Getting Started] -| https://docs.couchbase.com/sdk-api/analytics-python-client/[Python Analytics API Reference] -|=== +Kotlin:: ++ +-- +xref:kotlin-sdk:hello-world:overview.adoc[Kotlin SDK Docs] | +xref:kotlin-sdk:hello-world:start-using-sdk.adoc[Quickstart Guide] | +xref:kotlin-sdk:project-docs:sdk-release-notes.adoc[] | +https://docs.couchbase.com/sdk-api/couchbase-kotlin-client/index.html[Kotlin API Reference] +{empty} + + +[discrete] +== Using Your Database icon:database[] + +How-to guides to help you start your development journey with Couchbase and the Kotlin SDK. + +++++ +
+++++ + +[.column] +.Easy to Connect & Get Started +* xref:kotlin-sdk:hello-world:start-using-sdk.adoc[Quickstart Guide] -- CRUD against a Document Database. +* xref:kotlin-sdk:howtos:managing-connections.adoc[Connect your App] -- connect from dev or production environment. +* xref:kotlin-sdk:hello-world:sample-application.adoc[Sample Application] -- build a full app +// * xref:kotlin-sdk:hello-world:student-record-developer-tutorial.adoc[Beginners' Couchbase Tutorial] -- introduction to the SDK, Document data model, and {sqlpp} for document databases. + +[.column] +.Search, Query, Analyze +* xref:kotlin-sdk:howtos:sqlpp-queries-with-sdk.adoc[Query with a familiar, SQL-like language] +* xref:kotlin-sdk:howtos:vector-searching-with-sdk.adoc[Vector Search for your AI app] +* xref:kotlin-sdk:howtos:full-text-searching-with-sdk.adoc[Fuzzy Search with text and Geo data] +* xref:kotlin-sdk:howtos:analytics-using-sdk.adoc[OLAP -- long running analytical queries] + +[.column] +.Lightning Fast Data Service +* xref:kotlin-sdk:howtos:kv-operations.adoc[] +* xref:kotlin-sdk:howtos:subdocument-operations.adoc[] +* xref:kotlin-sdk:howtos:encrypting-using-sdk.adoc[] +* xref:kotlin-sdk:howtos:distributed-acid-transactions-from-the-sdk.adoc[Multi-Document Distributed ACID Transactions] + +[.column] +.Observability & Error Handling +* xref:kotlin-sdk:howtos:error-handling.adoc[] +* xref:kotlin-sdk:howtos:collecting-information-and-logging.adoc[] +* xref:kotlin-sdk:howtos:slow-operations-logging.adoc[] +* xref:kotlin-sdk:howtos:health-check.adoc[] + +++++ +
+++++ {empty} + -== Capella Analytics SDKs +[discrete] +== Resources icon:book[] -xref:analytics:intro:intro.adoc[Capella Analytics] is an analytical database (RT-OLAP) for real time apps and operational intelligence. -xref:columnar-sdk.adoc[Columnar SDKs] for Capella Analytics are tailored to the APIs offered by this service. +Useful resources to help support your development experience with Couchbase and the Kotlin SDK. -[#table_columnar_sdk,cols="42,40,60,50"] -|=== -| Columnar SDK | Documentation | Hello World Example | API Reference +++++ +
+++++ -| Go Columnar SDK -| xref:go-columnar-sdk:hello-world:overview.adoc[Docs] -| xref:go-columnar-sdk:hello-world:start-using-sdk.adoc[Go Getting Started] -| https://pkg.go.dev/github.com/couchbase/gocbcolumnar[Go Columnar API Reference] +[.column] +.Reference +* https://docs.couchbase.com/sdk-api/couchbase-kotlin-client/index.html[API Reference^] +* xref:kotlin-sdk:ref:client-settings.adoc[] +* xref:kotlin-sdk:ref:error-codes.adoc[] +* xref:kotlin-sdk:ref:glossary.adoc[Glossary] +* xref:kotlin-sdk:ref:travel-app-data-model.adoc[] -| Java Columnar SDK -| xref:java-columnar-sdk:hello-world:overview.adoc[Docs] -| xref:java-columnar-sdk:hello-world:start-using-sdk.adoc[Java Getting Started] -| https://docs.couchbase.com/sdk-api/couchbase-columnar-java-client[Java Columnar API Reference] +[.column] +.Deployment +* xref:kotlin-sdk:project-docs:sdk-release-notes.adoc[] +* xref:kotlin-sdk:project-docs:compatibility.adoc[Compatibility] +* https://docs-archive.couchbase.com/home/index.html[Older Versions Archive] +* xref:kotlin-sdk:project-docs:migrating-sdk-code-to-3.n.adoc[] +* xref:kotlin-sdk:project-docs:third-party-integrations.adoc[] +* xref:kotlin-sdk:project-docs:sdk-full-installation.adoc[] -| Node.js Columnar SDK -| xref:nodejs-columnar-sdk:hello-world:overview.adoc[Docs] -| xref:nodejs-columnar-sdk:hello-world:start-using-sdk.adoc[Node.js Getting Started] -| https://docs.couchbase.com/sdk-api/columnar-nodejs-client/[Node.js Columnar API Reference] +++++ +
+++++ +-- + + +Node.js:: ++ +-- +xref:nodejs-sdk:hello-world:overview.adoc[Node.js SDK Docs] | +xref:nodejs-sdk:hello-world:start-using-sdk.adoc[Quickstart Guide] | +xref:nodejs-sdk:project-docs:sdk-release-notes.adoc[] | +https://docs.couchbase.com/sdk-api/couchbase-node-client/modules.html[Node.js API Reference] + +{empty} + -| Python Columnar SDK -| xref:python-columnar-sdk:hello-world:overview.adoc[Docs] -| xref:python-columnar-sdk:hello-world:start-using-sdk.adoc[Python Getting Started] -| https://docs.couchbase.com/sdk-api/columnar-python-client/[Python Columnar API Reference] -|=== +[discrete] +== Using Your Database icon:database[] +How-to guides to help you start your development journey with Couchbase and the Node.js SDK. +++++ +
+++++ + +[.column] +.Easy to Connect & Get Started +* xref:nodejs-sdk:hello-world:start-using-sdk.adoc[Quickstart Guide] -- CRUD against a Document Database. +* xref:nodejs-sdk:howtos:managing-connections.adoc[Connect your App] -- connect from dev or production environment. +* xref:nodejs-sdk:hello-world:sample-application.adoc[Sample Application] -- build a full app +// * xref:nodejs-sdk:hello-world:student-record-developer-tutorial.adoc[Beginners' Couchbase Tutorial] -- introduction to the SDK, Document data model, and {sqlpp} for document databases. + +[.column] +.Search, Query, Analyze +* xref:nodejs-sdk:howtos:sqlpp-queries-with-sdk.adoc[Query with a familiar, SQL-like language] +* xref:nodejs-sdk:howtos:vector-searching-with-sdk.adoc[Vector Search for your AI app] +* xref:nodejs-sdk:howtos:full-text-searching-with-sdk.adoc[Fuzzy Search with text and Geo data] +* xref:nodejs-sdk:howtos:analytics-using-sdk.adoc[OLAP -- long running analytical queries] + +[.column] +.Lightning Fast Data Service +* xref:nodejs-sdk:howtos:kv-operations.adoc[] +* xref:nodejs-sdk:howtos:subdocument-operations.adoc[] +* xref:nodejs-sdk:howtos:encrypting-using-sdk.adoc[] +* xref:nodejs-sdk:howtos:distributed-acid-transactions-from-the-sdk.adoc[Multi-Document Distributed ACID Transactions] + +[.column] +.Observability & Error Handling +* xref:nodejs-sdk:howtos:error-handling.adoc[] +* xref:nodejs-sdk:howtos:collecting-information-and-logging.adoc[] +* xref:nodejs-sdk:howtos:slow-operations-logging.adoc[] +* xref:nodejs-sdk:howtos:health-check.adoc[] + +++++ +
+++++ {empty} + -== SDK doctor +[discrete] +== Resources icon:book[] + +Useful resources to help support your development experience with Couchbase and the Node.js SDK. -SDK doctor is a tool to diagnose application-server-side connectivity issues with your Couchbase Cluster. -xref:server:sdk:sdk-doctor.adoc[SDK doctor] +++++ +
+++++ +[.column] +.Reference +* https://docs.couchbase.com/sdk-api/couchbase-node-client/modules.html[API Reference^] +* xref:nodejs-sdk:ref:client-settings.adoc[] +* xref:nodejs-sdk:ref:error-codes.adoc[] +* xref:nodejs-sdk:ref:glossary.adoc[Glossary] +* xref:nodejs-sdk:ref:travel-app-data-model.adoc[] [.column] -====== {empty} +.Deployment +* xref:nodejs-sdk:project-docs:sdk-release-notes.adoc[] +* xref:nodejs-sdk:project-docs:compatibility.adoc[Compatibility] +* https://docs-archive.couchbase.com/home/index.html[Older Versions Archive] +* xref:nodejs-sdk:project-docs:migrating-sdk-code-to-3.n.adoc[] +* xref:nodejs-sdk:project-docs:third-party-integrations.adoc[] +* xref:nodejs-sdk:project-docs:sdk-full-installation.adoc[] +++++ +
+++++ +-- -== Mobile Development with Couchbase Lite -[#table_sdk,cols="25,66,66"] -|=== -| Mobile Platform | Documentation | API Reference +PHP:: ++ +-- +xref:php-sdk:hello-world:overview.adoc[PHP SDK Docs] | +xref:php-sdk:hello-world:start-using-sdk.adoc[Quickstart Guide] | +xref:php-sdk:project-docs:sdk-release-notes.adoc[] | +https://github.com/couchbase/couchbase-php-client[PHP API Reference] -| Couchbase Lite Android (Java and Kotlin) -| xref:couchbase-lite:android:quickstart.adoc[Docs] -| https://docs.couchbase.com/mobile/4.1.0/couchbase-lite-android/[API Reference] +{empty} + -| Couchbase Lite C and {cpp} -| xref:couchbase-lite:c:quickstart.adoc[Docs] -| https://docs.couchbase.com/mobile/4.1.0/couchbase-lite-c[API Reference] +[discrete] +== Using Your Database icon:database[] -| Couchbase Lite .NET (C#) -| xref:couchbase-lite:csharp:quickstart.adoc[Docs] -| https://docs.couchbase.com/mobile/4.1.0/couchbase-lite-net[API Reference] +How-to guides to help you start your development journey with Couchbase and the PHP SDK. -| Couchbase Lite Java -| xref:couchbase-lite:java:quickstart.adoc[Docs] -| https://docs.couchbase.com/mobile/4.1.0/couchbase-lite-java/index.html?[API Reference] +++++ +
+++++ -| Couchbase Lite JavaScript (Ionic, Flutter, and React Native) -| xref:couchbase-lite::javascript.adoc[Docs] -| +[.column] +.Easy to Connect & Get Started +* xref:php-sdk:hello-world:start-using-sdk.adoc[Quickstart Guide] -- CRUD against a Document Database. +* xref:php-sdk:howtos:managing-connections.adoc[Connect your App] -- connect from dev or production environment. +* xref:php-sdk:hello-world:sample-application.adoc[Sample Application] -- build a full app +// * xref:php-sdk:hello-world:student-record-developer-tutorial.adoc[Beginners' Couchbase Tutorial] -- introduction to the SDK, Document data model, and {sqlpp} for document databases. -| Couchbase Lite Swift -| xref:couchbase-lite:swift:quickstart.adoc[Docs] -| https://docs.couchbase.com/mobile/4.1.0/couchbase-lite-swift[API Reference] -|=== +[.column] +.Search, Query, Analyze +* xref:php-sdk:howtos:sqlpp-queries-with-sdk.adoc[Query with a familiar, SQL-like language] +* xref:php-sdk:howtos:vector-searching-with-sdk.adoc[Vector Search for your AI app] +* xref:php-sdk:howtos:full-text-searching-with-sdk.adoc[Fuzzy Search with text and Geo data] +* xref:php-sdk:howtos:analytics-using-sdk.adoc[OLAP -- long running analytical queries] [.column] -====== {empty} +.Lightning Fast Data Service +* xref:php-sdk:howtos:kv-operations.adoc[] +* xref:php-sdk:howtos:subdocument-operations.adoc[] +* xref:php-sdk:howtos:encrypting-using-sdk.adoc[] +* xref:php-sdk:howtos:distributed-acid-transactions-from-the-sdk.adoc[Multi-Document Distributed ACID Transactions] + +[.column] +.Observability & Error Handling +* xref:php-sdk:howtos:error-handling.adoc[] +* xref:php-sdk:howtos:collecting-information-and-logging.adoc[] +* xref:php-sdk:howtos:slow-operations-logging.adoc[] +* xref:php-sdk:howtos:health-check.adoc[] + +++++ +
+++++ + + +{empty} + + +[discrete] +== Resources icon:book[] -== Big Data Connectors +Useful resources to help support your development experience with Couchbase and the PHP SDK. ++++
++++ [.column] -.Elasticsearch -* xref:elasticsearch-connector::getting-started.adoc[Get Started] -* xref:elasticsearch-connector::configuration.adoc[Configuration] -* xref:elasticsearch-connector::migration.adoc[Migrating from Elasticsearch Plug-in] +.Reference +* https://github.com/couchbase/couchbase-php-client[API Reference^] +* xref:php-sdk:ref:client-settings.adoc[] +* xref:php-sdk:ref:error-codes.adoc[] +* xref:php-sdk:ref:glossary.adoc[Glossary] +* xref:php-sdk:ref:travel-app-data-model.adoc[] [.column] -.Kafka -* xref:kafka-connector::quickstart.adoc[Get Started] -* xref:kafka-connector::source-configuration-options.adoc[Source Configuration] -* xref:kafka-connector::sink-configuration-options.adoc[Sink Configuration] -* xref:kafka-connector::streams-sample.adoc[Sample Application with Kafka Steams] +.Deployment +* xref:php-sdk:project-docs:sdk-release-notes.adoc[] +* xref:php-sdk:project-docs:compatibility.adoc[Compatibility] +* https://docs-archive.couchbase.com/home/index.html[Older Versions Archive] +* xref:php-sdk:project-docs:migrating-sdk-code-to-3.n.adoc[] +* xref:php-sdk:project-docs:third-party-integrations.adoc[] +* xref:php-sdk:project-docs:sdk-full-installation.adoc[] + +++++ +
+++++ +-- + + + + +Python:: ++ +-- +xref:python-sdk:hello-world:overview.adoc[Python SDK Docs] | +xref:python-sdk:hello-world:start-using-sdk.adoc[Quickstart Guide] | +xref:python-sdk:project-docs:sdk-release-notes.adoc[] | +https://docs.couchbase.com/sdk-api/couchbase-python-client/[Python API Reference] + +{empty} + + +[discrete] +== Using Your Database icon:database[] + +How-to guides to help you start your development journey with Couchbase and the Python SDK. + +++++ +
+++++ [.column] -.Spark -* xref:spark-connector::getting-started.adoc[Get Started] -* xref:spark-connector::dev-workflow.adoc[Development Workflow] -* xref:spark-connector::java-api.adoc[Java API] -* xref:spark-connector::pyspark.adoc[PySpark] +.Easy to Connect & Get Started +* xref:python-sdk:hello-world:start-using-sdk.adoc[Quickstart Guide] -- CRUD against a Document Database. +* xref:python-sdk:howtos:managing-connections.adoc[Connect your App] -- connect from dev or production environment. +* xref:python-sdk:hello-world:sample-application.adoc[Sample Application] -- build a full app +// * xref:python-sdk:hello-world:student-record-developer-tutorial.adoc[Beginners' Couchbase Tutorial] -- introduction to the SDK, Document data model, and {sqlpp} for document databases. [.column] -.ODBC and JDBC Drivers +.Search, Query, Analyze +* xref:python-sdk:howtos:sqlpp-queries-with-sdk.adoc[Query with a familiar, SQL-like language] +* xref:python-sdk:howtos:vector-searching-with-sdk.adoc[Vector Search for your AI app] +* xref:python-sdk:howtos:full-text-searching-with-sdk.adoc[Fuzzy Search with text and Geo data] +* xref:python-sdk:howtos:analytics-using-sdk.adoc[OLAP -- long running analytical queries] -[.content] -ODBC and JDBC drivers enable any application based on the ODBC/JDBC standards, for example Microsoft Excel, QlikView, SAP Lumira, or Tableau, to connect to a Couchbase Server or cluster. -{empty} -xref:server:connectors:odbc-jdbc-drivers.adoc[ODBC and JDBC Drivers] +[.column] +.Lightning Fast Data Service +* xref:python-sdk:howtos:kv-operations.adoc[] +* xref:python-sdk:howtos:subdocument-operations.adoc[] +* xref:python-sdk:howtos:encrypting-using-sdk.adoc[] +* xref:python-sdk:howtos:distributed-acid-transactions-from-the-sdk.adoc[Multi-Document Distributed ACID Transactions] +[.column] +.Observability & Error Handling +* xref:python-sdk:howtos:error-handling.adoc[] +* xref:python-sdk:howtos:collecting-information-and-logging.adoc[] +* xref:python-sdk:howtos:slow-operations-logging.adoc[] +* xref:python-sdk:howtos:health-check.adoc[] ++++
++++ + +{empty} + + +[discrete] +== Resources icon:book[] + +Useful resources to help support your development experience with Couchbase and the Python SDK. + +++++ +
+++++ + [.column] -====== {empty} +.Reference +* https://docs.couchbase.com/sdk-api/couchbase-python-client/[API Reference^] +* xref:python-sdk:ref:client-settings.adoc[] +* xref:python-sdk:ref:error-codes.adoc[] +* xref:python-sdk:ref:glossary.adoc[Glossary] +* xref:python-sdk:ref:travel-app-data-model.adoc[] + +[.column] +.Deployment +* xref:python-sdk:project-docs:sdk-release-notes.adoc[] +* xref:python-sdk:project-docs:compatibility.adoc[Compatibility] +* https://docs-archive.couchbase.com/home/index.html[Older Versions Archive] +* xref:python-sdk:project-docs:migrating-sdk-code-to-3.n.adoc[] +* xref:python-sdk:project-docs:third-party-integrations.adoc[] +* xref:python-sdk:project-docs:sdk-full-installation.adoc[] + +++++ +
+++++ +-- + + +Ruby:: ++ +-- +xref:ruby-sdk:hello-world:overview.adoc[Ruby SDK Docs] | +xref:ruby-sdk:hello-world:start-using-sdk.adoc[Quickstart Guide] | +xref:ruby-sdk:project-docs:sdk-release-notes.adoc[] | +https://docs.couchbase.com/sdk-api/couchbase-ruby-client/Couchbase.html[Ruby API Reference] + +{empty} + + +[discrete] +== Using Your Database icon:database[] + +How-to guides to help you start your development journey with Couchbase and the Ruby SDK. + +++++ +
+++++ + +[.column] +.Easy to Connect & Get Started +* xref:ruby-sdk:hello-world:start-using-sdk.adoc[Quickstart Guide] -- CRUD against a Document Database. +* xref:ruby-sdk:howtos:managing-connections.adoc[Connect your App] -- connect from dev or production environment. +* xref:ruby-sdk:hello-world:sample-application.adoc[Sample Application] -- build a full app +// * xref:ruby-sdk:hello-world:student-record-developer-tutorial.adoc[Beginners' Couchbase Tutorial] -- introduction to the SDK, Document data model, and {sqlpp} for document databases. + +[.column] +.Search, Query, Analyze +* xref:ruby-sdk:howtos:sqlpp-queries-with-sdk.adoc[Query with a familiar, SQL-like language] +* xref:ruby-sdk:howtos:vector-searching-with-sdk.adoc[Vector Search for your AI app] +* xref:ruby-sdk:howtos:full-text-searching-with-sdk.adoc[Fuzzy Search with text and Geo data] +* xref:ruby-sdk:howtos:analytics-using-sdk.adoc[OLAP -- long running analytical queries] + +[.column] +.Lightning Fast Data Service +* xref:ruby-sdk:howtos:kv-operations.adoc[] +* xref:ruby-sdk:howtos:subdocument-operations.adoc[] +* xref:ruby-sdk:howtos:encrypting-using-sdk.adoc[] +* xref:ruby-sdk:howtos:distributed-acid-transactions-from-the-sdk.adoc[Multi-Document Distributed ACID Transactions] + +[.column] +.Observability & Error Handling +* xref:ruby-sdk:howtos:error-handling.adoc[] +* xref:ruby-sdk:howtos:collecting-information-and-logging.adoc[] +* xref:ruby-sdk:howtos:slow-operations-logging.adoc[] +* xref:ruby-sdk:howtos:health-check.adoc[] + +++++ +
+++++ + + +{empty} + + +[discrete] +== Resources icon:book[] + +Useful resources to help support your development experience with Couchbase and the Ruby SDK. + +++++ +
+++++ + +[.column] +.Reference +* https://docs.couchbase.com/sdk-api/couchbase-ruby-client/Couchbase.html[API Reference^] +* xref:ruby-sdk:ref:client-settings.adoc[] +* xref:ruby-sdk:ref:error-codes.adoc[] +* xref:ruby-sdk:ref:glossary.adoc[Glossary] +* xref:ruby-sdk:ref:travel-app-data-model.adoc[] + +[.column] +.Deployment +* xref:ruby-sdk:project-docs:sdk-release-notes.adoc[] +* xref:ruby-sdk:project-docs:compatibility.adoc[Compatibility] +* https://docs-archive.couchbase.com/home/index.html[Older Versions Archive] +* xref:ruby-sdk:project-docs:migrating-sdk-code-to-3.n.adoc[] +* xref:ruby-sdk:project-docs:third-party-integrations.adoc[] +* xref:ruby-sdk:project-docs:sdk-full-installation.adoc[] + +++++ +
+++++ +-- + + + +Rust:: ++ +-- +xref:rust-sdk:hello-world:overview.adoc[Rust SDK Docs] | +xref:rust-sdk:hello-world:start-using-sdk.adoc[Quickstart Guide] | +xref:rust-sdk:project-docs:sdk-release-notes.adoc[] | +https://docs.rs/couchbase/latest/couchbase/[Rust API Reference] + +{empty} + + +[discrete] +== Using Your Database icon:database[] + +How-to guides to help you start your development journey with Couchbase and the Rust SDK. + +++++ +
+++++ + +[.column] +.Easy to Connect & Get Started +* xref:rust-sdk:hello-world:start-using-sdk.adoc[Quickstart Guide] -- CRUD against a Document Database. +* xref:rust-sdk:howtos:managing-connections.adoc[Connect your App] -- connect from dev or production environment. +* xref:rust-sdk:hello-world:sample-application.adoc[Sample Application] -- build a full app +// * xref:rust-sdk:hello-world:student-record-developer-tutorial.adoc[Beginners' Couchbase Tutorial] -- introduction to the SDK, Document data model, and {sqlpp} for document databases. + +[.column] +.Search, Query, Analyze +* xref:rust-sdk:howtos:sqlpp-queries-with-sdk.adoc[Query with a familiar, SQL-like language] +* xref:rust-sdk:howtos:vector-searching-with-sdk.adoc[Vector Search for your AI app] +* xref:rust-sdk:howtos:full-text-searching-with-sdk.adoc[Fuzzy Search with text and Geo data] +* xref:rust-sdk:howtos:analytics-using-sdk.adoc[OLAP -- long running analytical queries] + +[.column] +.Lightning Fast Data Service +* xref:rust-sdk:howtos:kv-operations.adoc[] +* xref:rust-sdk:howtos:subdocument-operations.adoc[] +* xref:rust-sdk:howtos:encrypting-using-sdk.adoc[] +* xref:rust-sdk:howtos:distributed-acid-transactions-from-the-sdk.adoc[Multi-Document Distributed ACID Transactions] + +[.column] +.Observability & Error Handling +* xref:rust-sdk:howtos:error-handling.adoc[] +* xref:rust-sdk:howtos:collecting-information-and-logging.adoc[] +* xref:rust-sdk:howtos:slow-operations-logging.adoc[] +* xref:rust-sdk:howtos:health-check.adoc[] + +++++ +
+++++ + + +{empty} + + +[discrete] +== Resources icon:book[] + +Useful resources to help support your development experience with Couchbase and the Rust SDK. + +++++ +
+++++ + +[.column] +.Reference +* https://docs.rs/couchbase/latest/couchbase/[API Reference^] +* xref:rust-sdk:ref:client-settings.adoc[] +* xref:rust-sdk:ref:error-codes.adoc[] +* xref:rust-sdk:ref:glossary.adoc[Glossary] +// * xref:rust-sdk:ref:travel-app-data-model.adoc[] + +[.column] +.Deployment +* xref:rust-sdk:project-docs:sdk-release-notes.adoc[] +* xref:rust-sdk:project-docs:compatibility.adoc[Compatibility] +// * https://docs-archive.couchbase.com/home/index.html[Older Versions Archive] +// * xref:rust-sdk:project-docs:migrating-sdk-code-to-3.n.adoc[] +* xref:rust-sdk:project-docs:third-party-integrations.adoc[] +* xref:rust-sdk:project-docs:sdk-full-installation.adoc[] + +++++ +
+++++ +-- + + +Scala:: ++ +-- +xref:scala-sdk:hello-world:overview.adoc[Scala SDK Docs] | +xref:scala-sdk:hello-world:start-using-sdk.adoc[Quickstart Guide] | +xref:scala-sdk:project-docs:sdk-release-notes.adoc[] | +https://docs.couchbase.com/sdk-api/couchbase-scala-client/com/couchbase/client/scala/index.html[Scala API Reference] + +{empty} + + +[discrete] +== Using Your Database icon:database[] + +How-to guides to help you start your development journey with Couchbase and the Scala SDK. + +++++ +
+++++ + +[.column] +.Easy to Connect & Get Started +* xref:scala-sdk:hello-world:start-using-sdk.adoc[Quickstart Guide] +* xref:scala-sdk:hello-world:sample-application.adoc[] +* xref:scala-sdk:howtos:managing-connections.adoc[] +* xref:scala-sdk:hello-world:student-record-developer-tutorial.adoc[Beginners' Couchbase Tutorial] + +[.column] +.Search, Query, Analyze +* xref:scala-sdk:howtos:sqlpp-queries-with-sdk.adoc[Query with a familiar, SQL-like language] +* xref:scala-sdk:howtos:vector-searching-with-sdk.adoc[Vector Search for your AI app] +* xref:scala-sdk:howtos:full-text-searching-with-sdk.adoc[Fuzzy Search with text and Geo data] +* xref:scala-sdk:howtos:analytics-using-sdk.adoc[OLAP -- long running analytical queries] + +[.column] +.Lightning Fast Data Service +* xref:scala-sdk:howtos:kv-operations.adoc[] +* xref:scala-sdk:howtos:subdocument-operations.adoc[] +* xref:scala-sdk:howtos:encrypting-using-sdk.adoc[] +* xref:scala-sdk:howtos:distributed-acid-transactions-from-the-sdk.adoc[Multi-Document Distributed ACID Transactions] + +[.column] +.Observability & Error Handling +* xref:scala-sdk:howtos:error-handling.adoc[] +* xref:scala-sdk:howtos:collecting-information-and-logging.adoc[] +* xref:scala-sdk:howtos:slow-operations-logging.adoc[] +* xref:scala-sdk:howtos:health-check.adoc[] + +++++ +
+++++ + + +{empty} + + +[discrete] +== Resources icon:book[] + +Useful resources to help support your development experience with Couchbase and the Scala SDK. + +++++ +
+++++ + +[.column] +.Reference +* https://docs.couchbase.com/sdk-api/couchbase-scala-client/com/couchbase/client/scala/index.html[API Reference^] +* xref:scala-sdk:ref:client-settings.adoc[] +* xref:scala-sdk:ref:error-codes.adoc[] +* xref:scala-sdk:ref:glossary.adoc[Glossary] +// * xref:scala-sdk:ref:travel-app-data-model.adoc[] + +[.column] +.Deployment +* xref:scala-sdk:project-docs:sdk-release-notes.adoc[] +* xref:scala-sdk:project-docs:compatibility.adoc[Compatibility] +// * https://docs-archive.couchbase.com/home/index.html[Older Versions Archive] +// * xref:scala-sdk:project-docs:migrating-sdk-code-to-3.n.adoc[] +* xref:scala-sdk:project-docs:third-party-integrations.adoc[] +* xref:scala-sdk:project-docs:sdk-full-installation.adoc[] + +++++ +
+++++ +-- +==== + + + + +The links above will take you to the latest version of your chosen SDK. +Should you need to look up something for an older release, you'll discover there a dropdown version selector (in the left-hand navigation) for each SDK release -- +and links to docs for older, unsupported versions in the https://docs-archive.couchbase.com/home/index.html[docs archive]. + + +==== +Couchbase C SDK - `libcouchbase` (`lcb`) - is also available, and supported, but is no longer actively added to with new Server features. + +xref:c-sdk:hello-world:overview.adoc[C SDK Docs] +| xref:c-sdk:hello-world:start-using-sdk.adoc[C Getting Started] +| https://docs.couchbase.com/sdk-api/couchbase-c-client/index.html[C API Reference] + +For new projects, choose instead the xref:cxx-sdk:hello-world:overview.adoc[{cpp} SDK] -- +or possibly xref:go-sdk:hello-world:overview.adoc[Go] or +xref:rust-sdk:hello-world:overview.adoc[Rust] -- +for a modern, fully-featured SDK, with excellent performance. +==== + + +=== Alternatives to SDKs + +The Data API gives access to data in Capella Operational clusters -- +for when to use the Data API, or Capella's other REST APIs, see xref:cloud:data-api-guide:data-api-sdks.adoc[]. + + +{empty} + + +== The Bigger Picture + +SDKs are also available for our real-time analytics service, +xref:columnar:intro:intro.adoc[Operational Insights] -- +see the xref:operational-insights-sdk.adoc[Insights SDKs pages]: + + +[{tabs}] +==== + +{dotnet}:: ++ +-- +xref:dotnet-operational-insights-sdk:hello-world:overview.adoc[.NET OI SDK Docs] | +xref:dotnet-operational-insights-sdk:hello-world:start-using-sdk.adoc[Quickstart] | +| https://docs.couchbase.com/sdk-api/operational-insights-dotnet-client[.NET Operational Insights API Reference] +-- + +Go:: ++ +-- +xref:go-operational-insights-sdk:hello-world:overview.adoc[Go Operational Insights SDK Docs] | +xref:go-operational-insights-sdk:hello-world:start-using-sdk.adoc[Quickstart] | +https://pkg.go.dev/github.com/couchbase/gocboperational-insights[Go API Reference] +-- + +Java:: ++ +-- +xref:java-operational-insights-sdk:hello-world:overview.adoc[Java Operational Insights SDK Docs] | +xref:java-operational-insights-sdk:hello-world:start-using-sdk.adoc[Quickstart] | +https://docs.couchbase.com/sdk-api/couchbase-operational-insights-java-client/[Java API Reference] +-- + +Node.js:: ++ +-- +xref:nodejs-operational-insights-sdk:hello-world:overview.adoc[Node.js Operational Insights SDK Docs] | +xref:nodejs-operational-insights-sdk:hello-world:start-using-sdk.adoc[Quickstart] | +https://docs.couchbase.com/sdk-api/operational-insights-nodejs-client[Node.js API Reference] +-- + +Python:: ++ +-- +xref:python-operational-insights-sdk:hello-world:overview.adoc[Python Operational Insights SDK Docs] | +xref:python-operational-insights-sdk:hello-world:start-using-sdk.adoc[Quickstart] | +https://docs.couchbase.com/sdk-api/operational-insights-python-client[Python API Reference] +-- +==== + +{empty} + + + +More developer documentation is available for: + +* Connectors +** https://docs.couchbase.com/elasticsearch-connector/current/getting-started.html +** https://docs.couchbase.com/kafka-connector/current/quickstart.html +** https://docs.couchbase.com/spark-connector/current/getting-started.html +** https://docs.couchbase.com/server/current/connectors/odbc-jdbc-drivers.html +* Mobile -- xref:couchbase-lite::index.adoc[edge development with Couchbase Lite]. +* AI Data Plane -- xref:[MCP Python SDK] + + + == Couchbase Community diff --git a/home/modules/ROOT/pages/start-here,adoc b/home/modules/ROOT/pages/start-here,adoc new file mode 100644 index 0000000000..8877c924bd --- /dev/null +++ b/home/modules/ROOT/pages/start-here,adoc @@ -0,0 +1,179 @@ += Get Started with Couchbase +:page-layout: landing-page-capella +:page-rank: 75 +:!sectids: + + +include::partial$info-banner.adoc[] + + + += Get Started with Couchbase + + +The Developer Data Platform for Critical Applications in Our AI World. + +Couchbase is a multipurpose NoSQL database for transactional, analytical, mobile, and AI applications. +Our operational and analytical databases can be deployed self-managed or fully-managed as a service offering. +Offline-first mobile takes Couchbase to the edge, and can be synced via App Services in the cloud, or a self-managed Sync Gateway deployment. +AI Services (currently in private preview) simplify building agentic apps. + + + + + +[.centered.card-container] +== A Multipurpose NoSQL Platform for Transactional, Analytical, Mobile / Edge, and AI Applications + +[.card-box] +=== icon:rocket[] Transactional Workloads -- in the Cloud or Your Datacenter + +Explore {sqlpp}, or the fast CRUD interface of the Data Service. + +https://cloud.couchbase.com/sign-up[Sign Up to Capella^] for the quickest start. +Follow along with the built-in tutorial, or discover a xref:sdk.adoc[Couchbase Operational SDKs] in your favorite programming language: + +xref:c-sdk:hello-world:start-using-sdk.adoc[C] +| xref:cxx-sdk:hello-world:start-using-sdk.adoc[{cpp}] +| xref:dotnet-sdk:hello-world:start-using-sdk.adoc[.NET] +| xref:go-sdk:hello-world:start-using-sdk.adoc[Go] +| xref:java-sdk:hello-world:start-using-sdk.adoc[Java] +| xref:kotlin-sdk:hello-world:start-using-sdk.adoc[Kotlin] +| xref:nodejs-sdk:hello-world:start-using-sdk.adoc[Node.js] +| xref:php-sdk:hello-world:start-using-sdk.adoc[PHP] +| xref:python-sdk:hello-world:start-using-sdk.adoc[Python] +| xref:ruby-sdk:hello-world:start-using-sdk.adoc[Ruby] +| xref:rust-sdk:hello-world:start-using-sdk.adoc[Rust] +| xref:scala-sdk:hello-world:start-using-sdk.adoc[Scala] + + +[.card-box] +=== icon:rocket[] Real Time Analytics with Operational Insights + +* xref:enterprise-analytics:intro:intro.adoc[Operational Insights Enterprise] brings the power of NoSQL to the world of analytics -- self-managed, in your private cloud or data centre. +* xrefanalytics:intro:intro.adoc[Operational Insights Capella] brings the power of NoSQL to the world of analytics -- managed for you as a Capella service +* xref:operational-insights-sdk.adoc[Develop for Insights] with SDKs purpose built for Operational Insights' real-time analytical use cases -- supportint streaming APIs to handle large datasets, as well as the common features expected to be present in any modern database SDK, such as connection management and robust error handling. + + +[.card-box] +=== icon:rocket[] Develop for Mobile and the Edge + +Build your app in Couchbase Lite (CBL) for offline-first connectivity, then sync to Couchbase Server with Capella App Services (or self-managed Sync Gateway) -- or run peer-to-peer. + + +* Couchbase Lite for xref:couchbase-lite:android:quickstart.adoc[Android in Java or Kotlin] | +xref:couchbase-lite:swift:quickstart.adoc[iOS Swift] +and xref:couchbase-lite:objc:quickstart.adoc[iOS Objective-C] | +xref:couchbase-lite:c:quickstart.adoc[Edge devices in C] | +xref:couchbase-lite:csharp:quickstart.adoc[C# .NET] | +xref:couchbase-lite:java:quickstart.adoc[Java] | +xref:couchbase-lite:javascript:quickstart.adoc[JavaScript -- Ionic and React] +* Sync your data with: +** xref:cloud:mobile-guides:intro.adoc[Capella App Services] +** xref:sync-gateway::introduction.adoc[Self-managed SyncGateway] +** xref:couchbase-edge-server:introduction:intro.adoc[Edge Server] +** xref:couchbase-lite:android:p2psync-websocket.adoc[peer-to-peer] + + +[.card-box] +=== icon:rocket[] Develop RAG and Agentic AI Applications + +Explore AI Services and build Agentic Apps with the xref:ai:get-started:intro.adoc[AI Data Plane]. + +Or see how Vector Query facilitates RAG applications speedily and at scale. +Vector Search Service offers the ability to combine searches with our sophisticated Search API. + +* xref:cloud:vector-search:vector-search.adoc[Vector Search in Capella Operational] +* xref:server:vector-search:vector-search.adoc[Vector Search in self-managed Couchbase Server] + + + + + + + + + + +//// +[.centered.card-container] +== A Multipurpose NoSQL Platform for Transactional, Analytical, Mobile / Edge, and AI Applications + +[.card-box] +=== icon:rocket[] Transactional Workloads -- in the Cloud or Your Datacenter + +Explore {sqlpp}, or the fast CRUD interface of the Data Service. + + +* Capella Operational -- +** https://cloud.couchbase.com/sign-up[Sign Up to Capella^] +** xref:cloud:get-started:intro.adoc[Read the Capella Docs] +** https://docs.couchbase.com/cloud/develop/intro.html[Develop for Capella] +* Self-managed xref:server:getting-started:start-here.adoc[Couchbase Server] +** xref:operator::overview.adoc[Couchbase Autonomous Operator for Kubernetes] +** xref:7.6@develop:develop:intro.adoc[Develop for Couchbase Server] +** xref:server:tutorials:couchbase-tutorial-student-records.adoc[NoSQL for RDBMS users] +* xref:sdk.adoc[Operational SDKs]: ++ +xref:c-sdk:hello-world:start-using-sdk.adoc[C] +| xref:cxx-sdk:hello-world:start-using-sdk.adoc[{cpp}] +| xref:dotnet-sdk:hello-world:start-using-sdk.adoc[.NET] +| xref:go-sdk:hello-world:start-using-sdk.adoc[Go] +| xref:java-sdk:hello-world:start-using-sdk.adoc[Java] +| xref:kotlin-sdk:hello-world:start-using-sdk.adoc[Kotlin] +| xref:nodejs-sdk:hello-world:start-using-sdk.adoc[Node.js] +| xref:php-sdk:hello-world:start-using-sdk.adoc[PHP] +| xref:python-sdk:hello-world:start-using-sdk.adoc[Python] +| xref:ruby-sdk:hello-world:start-using-sdk.adoc[Ruby] +| xref:rust-sdk:hello-world:start-using-sdk.adoc[Rust] +| xref:scala-sdk:hello-world:start-using-sdk.adoc[Scala] +* xref:cloud:third-party:integrations.adoc[Integrations, Connectors, and Tools] +// * Multi-Document ACID Transactions +// * xref:cloud:develop:intro.adoc[Capella Operational Developer Intro] + + + +[.card-box] +=== icon:rocket[] Real Time Analytics with Analytics SDKs + +Enterprise Analytics brings the power of NoSQL to the world of analytics -- self-managed, or in Capella. + +* xref:enterprise-analytics:intro:intro.adoc[Enterprise Analytics] +** xref:home::analytics-sdk.adoc[Enterprise Analytics SDK pages] +* xref:analytics:intro:intro.adoc[Capella Analytics] +** xref:home::columnar-sdk.adoc[Capella Analytics SDK pages] +* xref:server/current/analytics/introduction.adoc[CBAS] -- traditional row-based analytics in the operational database +** xref:java-sdk:howtos:analytics-using-sdk.adoc[CBAS from the SDK] + + +[.card-box] +=== icon:rocket[] Develop for Mobile and the Edge + +Build your app in Couchbase Lite (CBL) for offline-first connectivity, then sync to Couchbase Server with Capella App Services (or self-managed Sync Gateway) -- or run peer-to-peer. + + +* Couchbase Lite for xref:couchbase-lite:android:quickstart.adoc[Android in Java or Kotlin] | +xref:couchbase-lite:swift:quickstart.adoc[iOS Swift] +and xref:couchbase-lite:objc:quickstart.adoc[iOS Objective-C] | +xref:couchbase-lite:c:quickstart.adoc[Edge devices in C] | +xref:couchbase-lite:csharp:quickstart.adoc[C# .NET] | +xref:couchbase-lite:java:quickstart.adoc[Java] | +xref:couchbase-lite:javascript:quickstart.adoc[JavaScript -- Ionic and React] +* Sync your data with: +** xref:cloud:mobile-guides:intro.adoc[Capella App Services] +** xref:sync-gateway::introduction.adoc[Self-managed SyncGateway] +** xref:couchbase-edge-server:introduction:intro.adoc[Edge Server] +** xref:couchbase-lite:android:p2psync-websocket.adoc[peer-to-peer] + + +[.card-box] +=== icon:rocket[] Develop RAG and Agentic AI Applications + +Vector Query facilitates RAG applications speedily and at scale. +Vector Search Service offers the ability to combine searches with our sophisticated Search API. + +* xref:cloud:vector-search:vector-search.adoc[Vector Search in Capella Operational] +* xref:server:vector-search:vector-search.adoc[Vector Search in self-managed Couchbase Server] + +Explore AI Services and build Agentic Apps (https://info.couchbase.com/capella-ai-services-signup[currently in Private Preview]). +//// \ No newline at end of file From 31f0d7cfa581e46390e08df0f50d68a1da70c62b Mon Sep 17 00:00:00 2001 From: Hakim Cassimally Date: Wed, 30 Sep 2026 14:59:49 +0100 Subject: [PATCH 28/39] Updates to Richard's IA sketch --- antora-playbook.preview2.diff.yml | 16 +++ antora-playbook.preview2.yml | 151 +++++++++++++++++------- antora-playbook.yml | 10 +- home/modules/ROOT/pages/start-here,adoc | 4 +- 4 files changed, 132 insertions(+), 49 deletions(-) diff --git a/antora-playbook.preview2.diff.yml b/antora-playbook.preview2.diff.yml index 06679c6d2d..a8e6f03062 100644 --- a/antora-playbook.preview2.diff.yml +++ b/antora-playbook.preview2.diff.yml @@ -30,6 +30,22 @@ content: - url: https://github.com/couchbase/docs-capella branches: DOC-14735_analytics-rename + - url: https://github.com/couchbase/docs-columnar-sdk-common + branches: + $replace: [DOC-14641--oi-renaming] + - url: https://github.com/couchbase/docs-columnar-sdk-go + branches: + $replace: [DOC-14641--oi-renaming] + - url: https://github.com/couchbase/docs-columnar-sdk-java + branches: + $replace: [DOC-14641--oi-renaming] + - url: https://github.com/couchbase/docs-columnar-sdk-nodejs + branches: + $replace: [DOC-14641--oi-renaming] + - url: https://github.com/couchbase/docs-columnar-sdk-python + branches: + $replace: [DOC-14641--oi-renaming] + asciidoc: attributes: docs-contact: Zeba diff --git a/antora-playbook.preview2.yml b/antora-playbook.preview2.yml index d873edc59b..afe4d03b82 100644 --- a/antora-playbook.preview2.yml +++ b/antora-playbook.preview2.yml @@ -38,58 +38,118 @@ site: keys: google_analytics: GTM-MVPNN2 nav_groups: > + [ - { "title": "Server", - "startPage": "home::server.adoc", - "components": ["server", "operator", "cloud-native-gateway"], + { "title": "Start Here", "startPage": "home::start-here.adoc"}, + { "title": "Operational Database", "startPage": "home::operational.adoc", "color": "#c41016", "subGroups": [ + { + "title": "Self-Managed Server", + "startPage": "home::server.adoc", + "components": ["server"], + "expandHeaderLevels": 1 + }, + { + "title": "Kubernetes Operator", + "startPage": "operator::overview.adoc", + "components": ["operator"], + "expandHeaderLevels": 1 + }, + { + "title": "Cloud Native Gateway", + "startPage": "cloud-native-gateway:intro:about-cng.adoc", + "components": ["cloud-native-gateway"], + "expandHeaderLevels": 1 + }, { "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"], + "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"], "expandHeaderLevels": 1 } ] }, { "title": "Capella", "startPage": "home::cloud.adoc", - "components": ["cloud", "app-services"], - "expandHeaderLevels": 1, + "components": ["cloud"], "color": "#e8830c", "subGroups": [ + { + "title": "Capella Operational", + "startPage": "home::cloud.adoc", + "components": ["cloud"], + "expandHeaderLevels": 1 + }, { "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"], + "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"], "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": "Mobile / Edge", "startPage": "home::mobile.adoc", + "subGroups": [ + { + "title": "Couchbase Lite", + "startPage": "couchbase-lite::index.adoc", + "components": ["couchbase-lite", "couchbase-lite-javascript", "couchbase-edge-server"], + "expandHeaderLevels": 1 + }, + { + "title": "Sync Gateway", + "startPage": "sync-gateway::introduction.adoc", + "components": ["sync-gateway"], + "expandHeaderLevels": 1 + }, + { + "title": "App Services", + "startPage": "app-services:ROOT:get-started/configuring-app-services.adoc", + "components": ["app-services"], + "expandHeaderLevels": 1 + } + ] }, { "title": "Operational Insights", "startPage": "home::operational-insights.adoc", - "components": ["analytics", "enterprise-analytics"], - "expandHeaderLevels": 1, + "components": ["enterprise-analytics", "analytics", "*-insights-sdk-*"], "color": "#ed9426", "subGroups": [ + { + "title": "Operational Insights Enterprise", + "startPage": "enterprise-analytics:intro:intro.adoc", + "components": ["enterprise-analytics"], + "expandHeaderLevels": 1 + }, + { + "title": "Operational Insights Capella", + "startPage": "analytics:intro:intro.adoc", + "components": ["analytics"], + "expandHeaderLevels": 1 + }, + { + "title": "Insights SDKs", + "startPage": "home::operational-insights-sdk.adoc", + "components": ["*-insights-sdk-*"], + "expandHeaderLevels": 1 + }, { "title": "Legacy Analytics SDKs", "startPage": "home::analytics-sdk.adoc", "components": ["*-analytics-sdk", "*-columnar-sdk"], "expandHeaderLevels": 1 + }, + { + "title": "Analytics Connectors", + "startPage": "home::analytics-connectors.adoc", + "components": ["tableau-connector", "power-bi-connector", "superset-connector"], + "expandHeaderLevels": 1 } ] }, + { "title": "AI Data Plane", "startPage": "ai:get-started:intro.adoc", "components": ["ai"] }, + { "title": "Tutorials", "startPage": "tutorials::index.adoc", "components": ["tutorials"] }, { "title": "Contribute", "components": ["home", "styleguide", "ui-ux", "pendo"], "color": "#f2a541" @@ -184,14 +244,6 @@ content: - 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 @@ -238,37 +290,37 @@ content: - release/8.0 - url: https://github.com/couchbase/docs-sdk-common branches: - - release/8.0.1 + - api/3.10 - url: https://github.com/couchbase/docs-sdk-c branches: - release/3.3 - url: https://github.com/couchbase/docs-sdk-cxx branches: - - release/1.4 + - release/1.5 - url: https://github.com/couchbase/docs-sdk-dotnet branches: - - temp/3.9 + - release/3.10 - url: https://github.com/couchbase/docs-efcore branches: - release/1.0 - url: https://github.com/couchbase/docs-sdk-go branches: - - release/2.12 + - release/2.13 - url: https://github.com/couchbase/docs-sdk-rust branches: - - release/1.0 + - release/1.1 - url: https://github.com/couchbase/docs-sdk-java branches: - - release/3.12 + - release/3.13 - url: https://github.com/couchbase/docs-quarkus-extension branches: - release/1.4 - url: https://github.com/couchbase/docs-sdk-kotlin branches: - - temp/3.12 + - release/3.13 - url: https://github.com/couchbase/docs-sdk-scala branches: - - release/3.12 + - release/3.13 - url: https://github.com/couchbase/docs-sdk-nodejs branches: - temp/4.7 @@ -284,21 +336,39 @@ content: - url: https://github.com/couchbase/docs-sdk-extensions branches: - main - - url: https://github.com/couchbase/docs-columnar-sdk-common + - url: https://github.com/couchbase/docs-operational-insights-sdk-common branches: - release/1.0 - - url: https://github.com/couchbase/docs-columnar-sdk-go + - url: https://github.com/couchbase/docs-operational-insights-sdk-dotnet branches: - release/1.0 - - url: https://github.com/couchbase/docs-columnar-sdk-java + - url: https://github.com/couchbase/docs-operational-insights-sdk-go branches: - release/1.0 - - url: https://github.com/couchbase/docs-columnar-sdk-nodejs + - url: https://github.com/couchbase/docs-operational-insights-sdk-java branches: - release/1.0 - - url: https://github.com/couchbase/docs-columnar-sdk-python + - url: https://github.com/couchbase/docs-operational-insights-sdk-nodejs + branches: + - release/1.0 + - url: https://github.com/couchbase/docs-operational-insights-sdk-python branches: - release/1.0 + - url: https://github.com/couchbase/docs-columnar-sdk-common + branches: + - DOC-14641--oi-renaming + - url: https://github.com/couchbase/docs-columnar-sdk-go + branches: + - DOC-14641--oi-renaming + - url: https://github.com/couchbase/docs-columnar-sdk-java + branches: + - DOC-14641--oi-renaming + - url: https://github.com/couchbase/docs-columnar-sdk-nodejs + branches: + - DOC-14641--oi-renaming + - url: https://github.com/couchbase/docs-columnar-sdk-python + branches: + - DOC-14641--oi-renaming - url: https://github.com/couchbase/docs-analytics-sdk-common branches: - release/1.1 @@ -317,9 +387,6 @@ content: - 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 diff --git a/antora-playbook.yml b/antora-playbook.yml index f3dd1f0bfd..78cf4e1eb9 100644 --- a/antora-playbook.yml +++ b/antora-playbook.yml @@ -356,16 +356,16 @@ content: - url: https://github.com/couchbase/docs-columnar-sdk-common - branches: [DOC-14641--oi-renaming] + branches: [release/1.0] - url: https://github.com/couchbase/docs-columnar-sdk-go - branches: [DOC-14641--oi-renaming] + branches: [release/1.0] - url: https://github.com/couchbase/docs-columnar-sdk-java - branches: [DOC-14641--oi-renaming] + branches: [release/1.0] - url: https://github.com/couchbase/docs-columnar-sdk-nodejs - branches: [DOC-14641--oi-renaming] + branches: [release/1.0] - url: https://github.com/couchbase/docs-columnar-sdk-python - branches: [DOC-14641--oi-renaming] + branches: [release/1.0] - url: https://github.com/couchbase/docs-analytics-sdk-common diff --git a/home/modules/ROOT/pages/start-here,adoc b/home/modules/ROOT/pages/start-here,adoc index 8877c924bd..7e488316df 100644 --- a/home/modules/ROOT/pages/start-here,adoc +++ b/home/modules/ROOT/pages/start-here,adoc @@ -1,6 +1,6 @@ = Get Started with Couchbase :page-layout: landing-page-capella -:page-rank: 75 +:page-rank: 90 :!sectids: @@ -176,4 +176,4 @@ Vector Search Service offers the ability to combine searches with our sophistica * xref:server:vector-search:vector-search.adoc[Vector Search in self-managed Couchbase Server] Explore AI Services and build Agentic Apps (https://info.couchbase.com/capella-ai-services-signup[currently in Private Preview]). -//// \ No newline at end of file +//// From 35da59c99bb1ed68dfa37da895f6c9420d27f80e Mon Sep 17 00:00:00 2001 From: Richard Smedley Date: Thu, 1 Oct 2026 14:24:55 +0100 Subject: [PATCH 29/39] oi common files branch fix --- antora-playbook.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/antora-playbook.yml b/antora-playbook.yml index 78cf4e1eb9..1e82dac7bd 100644 --- a/antora-playbook.yml +++ b/antora-playbook.yml @@ -341,7 +341,7 @@ content: ############################ - url: https://github.com/couchbase/docs-operational-insights-sdk-common - branches: [release/1.0] + branches: [api/1.0] - url: https://github.com/couchbase/docs-operational-insights-sdk-dotnet branches: [release/1.0] From 1553ecfec3ed38d0c9c8a60ed15ecd4c27df6d5d Mon Sep 17 00:00:00 2001 From: Hakim Cassimally Date: Thu, 1 Oct 2026 14:41:36 +0100 Subject: [PATCH 30/39] update preview2 playbook --- antora-playbook.preview2.yml | 2 +- antora-playbook.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/antora-playbook.preview2.yml b/antora-playbook.preview2.yml index afe4d03b82..d51dad2143 100644 --- a/antora-playbook.preview2.yml +++ b/antora-playbook.preview2.yml @@ -338,7 +338,7 @@ content: - main - url: https://github.com/couchbase/docs-operational-insights-sdk-common branches: - - release/1.0 + - api/1.0 - url: https://github.com/couchbase/docs-operational-insights-sdk-dotnet branches: - release/1.0 diff --git a/antora-playbook.yml b/antora-playbook.yml index 1e82dac7bd..1fad37141c 100644 --- a/antora-playbook.yml +++ b/antora-playbook.yml @@ -131,7 +131,7 @@ site: }, { "title": "App Services", - "startPage": "app-services:get-started:configuring-app-services.adoc", + "startPage": "app-services:ROOT:get-started/configuring-app-services.adoc", "components": ["app-services"], "expandHeaderLevels": 1 } From 9ce25ebc3d8dd2b7f325e1b9affacc73eed57031 Mon Sep 17 00:00:00 2001 From: Hakim Cassimally Date: Fri, 2 Oct 2026 11:32:35 +0100 Subject: [PATCH 31/39] docs-site changes for Operational Insights --- antora-playbook.preview2.yml | 4 ++-- antora-playbook.yml | 4 ++-- home/modules/ROOT/pages/developer.adoc | 8 ++++---- home/modules/ROOT/pages/index.adoc | 10 +++++----- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/antora-playbook.preview2.yml b/antora-playbook.preview2.yml index d51dad2143..23754bbb69 100644 --- a/antora-playbook.preview2.yml +++ b/antora-playbook.preview2.yml @@ -190,8 +190,8 @@ asciidoc: enterprise: https://www.couchbase.com/products/editions[ENTERPRISE EDITION] community: https://www.couchbase.com/products/editions[COMMUNITY EDITION] sqlpp: SQL++ - sqlppc: SQL++ for Capella Analytics - sqlppea: SQL++ for Enterprise Analytics + sqlppc: SQL++ for Operational Insights Cloud + sqlppea: SQL++ for Operational Insights sqlpp_url: https://www.couchbase.com/products/n1ql cbpp: Couchbase++ kroki-server-url: null diff --git a/antora-playbook.yml b/antora-playbook.yml index 1fad37141c..cc3791c864 100644 --- a/antora-playbook.yml +++ b/antora-playbook.yml @@ -446,8 +446,8 @@ asciidoc: enterprise: https://www.couchbase.com/products/editions[ENTERPRISE EDITION] community: https://www.couchbase.com/products/editions[COMMUNITY EDITION] sqlpp: SQL++ - sqlppc: SQL++ for Capella Analytics - sqlppea: SQL++ for Enterprise Analytics + sqlppc: SQL++ for Operational Insights Cloud + sqlppea: SQL++ for Operational Insights sqlpp_url: https://www.couchbase.com/products/n1ql cbpp: Couchbase++ kroki-server-url: ~ diff --git a/home/modules/ROOT/pages/developer.adoc b/home/modules/ROOT/pages/developer.adoc index 7086be50b4..86660830fa 100644 --- a/home/modules/ROOT/pages/developer.adoc +++ b/home/modules/ROOT/pages/developer.adoc @@ -53,14 +53,14 @@ xref:c-sdk:hello-world:overview.adoc[C] [.card-box] === icon:rocket[] Real Time Analytics with Analytics SDKs -xref:enterprise-analytics:intro:intro.adoc[Enterprise Analytics] brings the power of NoSQL to the world of analytics. -Self-managed Enterprise Analytics brings real-time adaptive applications to your datacenter or private cloud -- -or try this service fully-hosted as xref:columnar:intro:intro.adoc[Capella Analytics], which integrates seamlessly with the Couchbase Capella cloud platform. +xref:enterprise-analytics:intro:intro.adoc[Operational Insights] brings the power of NoSQL to the world of analytics. +Self-managed Operational Insights brings real-time adaptive applications to your datacenter or private cloud -- +or try this service fully-hosted as xref:columnar:intro:intro.adoc[Operational Insights Capella], which integrates seamlessly with the Couchbase Capella cloud platform. xref::analytics-sdk.adoc[Analytics SDKs] support streaming APIs to handle large datasets. //// xref:columnar-sdk.adoc[Columnar SDKs] are developed from the ground-up and while they maintain some syntactic similarities with the xref:sdk.adoc[operational SDKs], -they are purpose built for Enterprise Analytics' analytical use cases. +they are purpose built for Operational Analytics use cases. They support streaming APIs to handle large datasets, as well as the common features expected to be present in any modern database SDK -- such as connection management and robust error handling. //// diff --git a/home/modules/ROOT/pages/index.adoc b/home/modules/ROOT/pages/index.adoc index 7db818c2f3..2aa0ef52d7 100644 --- a/home/modules/ROOT/pages/index.adoc +++ b/home/modules/ROOT/pages/index.adoc @@ -87,12 +87,12 @@ xref:server.adoc[Couchbase Server] {empty} + -.Enterprise Analytics (RT-OLAP) +.Operational Insights (RT-OLAP) [.content] -Enterprise Analytics is a self-managed analytical database (RT-OLAP) for real time apps and operational intelligence. +Operational Insights is a self-managed analytical database (RT-OLAP) for real time apps and operational intelligence. -xref:enterprise-analytics:intro:intro.adoc[Enterprise Analytics] +xref:enterprise-analytics:intro:intro.adoc[Operational Insights] [.column] ====== {empty} @@ -138,7 +138,7 @@ Couchbase SDKs allow applications to access a Couchbase cluster and the big data xref:home:ROOT:developer.adoc[Developer Docs] | xref:home:ROOT:sdk.adoc[Operational SDKs] | -xref:home:ROOT:analytics-sdk.adoc[Enterprise Analytics SDKs] | +xref:home:ROOT:analytics-sdk.adoc[Operational Insights SDKs] | xref:home:ROOT:columnar-sdk.adoc[Capella Analytics SDKs] [.column] @@ -222,7 +222,7 @@ xref:analytics:intro:intro.adoc[Capella Analytics] a| xref:server.adoc[Couchbase Server] -xref:enterprise-analytics:intro:intro.adoc[Enterprise Analytics] +xref:enterprise-analytics:intro:intro.adoc[Operational Insights] xref:operator::overview.adoc[Couchbase Autonomous Operator] From d332121ca7613b0593fd60efcd9e6924e49c6b79 Mon Sep 17 00:00:00 2001 From: Hakim Cassimally Date: Fri, 2 Oct 2026 12:12:58 +0100 Subject: [PATCH 32/39] change wording on OI landing page --- home/modules/ROOT/pages/operational-insights.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/home/modules/ROOT/pages/operational-insights.adoc b/home/modules/ROOT/pages/operational-insights.adoc index 407acd4361..b8c82660dd 100644 --- a/home/modules/ROOT/pages/operational-insights.adoc +++ b/home/modules/ROOT/pages/operational-insights.adoc @@ -26,7 +26,7 @@ Choose the deployment model that fits your team: fully managed in the cloud, or == Choose Your Deployment Model [.card-box] -=== icon:cloud[] Operational Insights -- Managed +=== icon:cloud[] Operational Insights Capella 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. @@ -40,7 +40,7 @@ Connect it straight to your existing Capella data and start running SQL++ over J * https://cloud.couchbase.com/sign-up[Try It Free^] [.card-box] -=== icon:server[] Operational Insights -- Self-managed +=== icon:server[] Operational Insights Enterprise 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. From 82f37becbe7f7f983a5a9c2ca000bc38aad931c4 Mon Sep 17 00:00:00 2001 From: Hakim Cassimally Date: Fri, 2 Oct 2026 16:47:10 +0100 Subject: [PATCH 33/39] correct name of start-here --- home/modules/ROOT/pages/{start-here,adoc => start-here.adoc} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename home/modules/ROOT/pages/{start-here,adoc => start-here.adoc} (100%) diff --git a/home/modules/ROOT/pages/start-here,adoc b/home/modules/ROOT/pages/start-here.adoc similarity index 100% rename from home/modules/ROOT/pages/start-here,adoc rename to home/modules/ROOT/pages/start-here.adoc From 8bc51c7dc293d7805cccf959f996f2695879fcf2 Mon Sep 17 00:00:00 2001 From: Hakim Cassimally Date: Mon, 5 Oct 2026 09:36:51 +0100 Subject: [PATCH 34/39] Update to Antora Atlas via @mojavelinux --- antora-playbook.yml | 4 +- package-lock.json | 101 +++++++++++++++++++++++++++++++++++++------- package.json | 4 +- 3 files changed, 90 insertions(+), 19 deletions(-) diff --git a/antora-playbook.yml b/antora-playbook.yml index cc3791c864..06501fe785 100644 --- a/antora-playbook.yml +++ b/antora-playbook.yml @@ -4,8 +4,8 @@ antora: extensions: - - '@antora/site-generator-ms' - - ./lib/site-navigation-data-json.js + - '@antora/atlas-extension' + - '@opendevise/antora-navigator-extension' - ./lib/embargo.js - ./lib/antora-component-version-rank.js - ./lib/llms-txt.js diff --git a/package-lock.json b/package-lock.json index feff0cdc72..de5564a1d6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6,12 +6,14 @@ "": { "name": "docs-site", "dependencies": { + "@antora/atlas-extension": "1.0.0-alpha.6", "@antora/collector-extension": "^1.0.1", "@antora/pdf-extension": "^1.0.0-alpha.11", - "@antora/site-generator-ms": "git+https://gitlab.com/opendevise/oss/antora-site-generator-ms#as-extension", + "@asciidoctor/core": "~2.2", "@asciidoctor/tabs": "1.0.0-beta.6", "@fastify/deepmerge": "^2.0.0", "@fortawesome/free-solid-svg-icons": "^7.1.0", + "@opendevise/antora-navigator-extension": "1.0.0-alpha.1", "antora": "~3.2", "array.prototype.groupby": "^1.1.0", "asciidoctor-external-callout": "~1.2.2", @@ -75,6 +77,30 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/@antora/atlas-extension": { + "version": "1.0.0-alpha.6", + "resolved": "https://registry.npmjs.org/@antora/atlas-extension/-/atlas-extension-1.0.0-alpha.6.tgz", + "integrity": "sha512-Q/zZ/llwJ8vO49dBtJ9Akr4jvgwnNnbvVT/LB6nKTL17eetGcnK0GH8ynmob2dM7BNWpJHKTaXNjq+ckDjeVpA==", + "license": "MPL-2.0", + "dependencies": { + "@antora/expand-path-helper": "~3.0", + "cache-directory": "~2.0", + "node-gzip": "~1.1", + "simple-get": "~4.0" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@antora/atlas-extension/node_modules/@antora/expand-path-helper": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@antora/expand-path-helper/-/expand-path-helper-3.0.0.tgz", + "integrity": "sha512-7PdEIhk97v85/CSm3HynCsX14TR6oIVz1s233nNLsiWubE8tTnpPt4sNRJR+hpmIZ6Bx9c6QDp3XIoiyu/WYYA==", + "license": "MPL-2.0", + "engines": { + "node": ">=16.0.0" + } + }, "node_modules/@antora/cli": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/@antora/cli/-/cli-3.2.0.tgz", @@ -402,21 +428,6 @@ "node": ">=20.0.0" } }, - "node_modules/@antora/site-generator-ms": { - "version": "3.0.0-beta.1", - "resolved": "git+ssh://git@gitlab.com/opendevise/oss/antora-site-generator-ms.git#cb6fc699470384af90b9186fb32466842500e0c1", - "license": "MPL-2.0", - "dependencies": { - "@antora/expand-path-helper": "~2.0", - "cache-directory": "~2.0", - "node-gzip": "~1.1", - "simple-get": "~4.0", - "uglify-js": "~3.14" - }, - "engines": { - "node": ">=12.21.0" - } - }, "node_modules/@antora/site-mapper": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/@antora/site-mapper/-/site-mapper-3.2.0.tgz", @@ -740,6 +751,63 @@ "node": ">= 8" } }, + "node_modules/@opendevise/antora-navigator-extension": { + "version": "1.0.0-alpha.1", + "resolved": "https://registry.npmjs.org/@opendevise/antora-navigator-extension/-/antora-navigator-extension-1.0.0-alpha.1.tgz", + "integrity": "sha512-n6QFiAZz/XTF+lURFjHx8y1pLD+wt00vVTZBqKKQSPwraCiJAOB2qBmSGAKT6RaP11dyjnen85JNdZN8r5SGfA==", + "license": "MPL-2.0", + "dependencies": { + "@antora/expand-path-helper": "~3.0", + "js-yaml": "~5.4", + "uglify-js": "~3.19" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@opendevise/antora-navigator-extension/node_modules/@antora/expand-path-helper": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@antora/expand-path-helper/-/expand-path-helper-3.0.0.tgz", + "integrity": "sha512-7PdEIhk97v85/CSm3HynCsX14TR6oIVz1s233nNLsiWubE8tTnpPt4sNRJR+hpmIZ6Bx9c6QDp3XIoiyu/WYYA==", + "license": "MPL-2.0", + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@opendevise/antora-navigator-extension/node_modules/js-yaml": { + "version": "5.4.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-5.4.2.tgz", + "integrity": "sha512-m+aqu+LwO1O6sIopafj8HUVl5aawITwZQe/yHpMCKjaWBaA/d07B/QdMb3529REftiU+RMMHL3Vlsw3hON7vWg==", + "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/@opendevise/antora-navigator-extension/node_modules/uglify-js": { + "version": "3.19.3", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz", + "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==", + "license": "BSD-2-Clause", + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/@pinojs/redact": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/@pinojs/redact/-/redact-0.4.0.tgz", @@ -5950,6 +6018,7 @@ "version": "3.14.5", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.5.tgz", "integrity": "sha512-qZukoSxOG0urUTvjc2ERMTcAy+BiFh3weWAkeurLwjrCba73poHmG3E36XEjd/JGukMzwTL7uCxZiAexj8ppvQ==", + "optional": true, "bin": { "uglifyjs": "bin/uglifyjs" }, diff --git a/package.json b/package.json index 95d3fdc907..fcd5217d37 100644 --- a/package.json +++ b/package.json @@ -6,8 +6,10 @@ "dependencies": { "@antora/collector-extension": "^1.0.1", "@antora/pdf-extension": "^1.0.0-alpha.11", - "@antora/site-generator-ms": "git+https://gitlab.com/opendevise/oss/antora-site-generator-ms#as-extension", + "@antora/atlas-extension": "1.0.0-alpha.6", + "@opendevise/antora-navigator-extension": "1.0.0-alpha.1", "@asciidoctor/tabs": "1.0.0-beta.6", + "@asciidoctor/core": "~2.2", "@fastify/deepmerge": "^2.0.0", "@fortawesome/free-solid-svg-icons": "^7.1.0", "antora": "~3.2", From 06f32c88fbdf39aaaccfae5fa13ee6e365fbee39 Mon Sep 17 00:00:00 2001 From: Hakim Cassimally Date: Mon, 5 Oct 2026 09:41:27 +0100 Subject: [PATCH 35/39] update preview2 playbook --- 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 23754bbb69..bb64a8f4f7 100644 --- a/antora-playbook.preview2.yml +++ b/antora-playbook.preview2.yml @@ -19,8 +19,8 @@ runtime: fetch: true antora: extensions: - - "@antora/site-generator-ms" - - ./lib/site-navigation-data-json.js + - "@antora/atlas-extension" + - "@opendevise/antora-navigator-extension" - ./lib/embargo.js - ./lib/antora-component-version-rank.js - ./lib/llms-txt.js From 643fb885ea43d151ba2ddac7b2bb3d8d501baba4 Mon Sep 17 00:00:00 2001 From: Hakim Cassimally Date: Thu, 8 Oct 2026 18:39:31 +0100 Subject: [PATCH 36/39] hide preview link --- antora-playbook.preview2.diff.yml | 3 ++- antora-playbook.preview2.yml | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/antora-playbook.preview2.diff.yml b/antora-playbook.preview2.diff.yml index a8e6f03062..793c8d0c15 100644 --- a/antora-playbook.preview2.diff.yml +++ b/antora-playbook.preview2.diff.yml @@ -50,8 +50,9 @@ asciidoc: attributes: docs-contact: Zeba page-show-preview-banner: true + page-hide-preview-link: true page-watermark: Polaris ui: bundle: - url: https://github.com/couchbase/docs-ui/releases/download/prod-237/ui-bundle.zip + url: https://github.com/couchbase/docs-ui/releases/download/prod-238/ui-bundle.zip diff --git a/antora-playbook.preview2.yml b/antora-playbook.preview2.yml index bb64a8f4f7..eef3f3f187 100644 --- a/antora-playbook.preview2.yml +++ b/antora-playbook.preview2.yml @@ -198,10 +198,11 @@ asciidoc: kroki-fetch-diagram: true docs-contact: Zeba page-show-preview-banner: true + page-hide-preview-link: true page-watermark: Polaris ui: bundle: - url: https://github.com/couchbase/docs-ui/releases/download/prod-237/ui-bundle.zip + url: https://github.com/couchbase/docs-ui/releases/download/prod-238/ui-bundle.zip content: branches: master sources: From dbc06cfd5ab977d0925d059b02c14c9d2d98b62e Mon Sep 17 00:00:00 2001 From: harini16r Date: Fri, 9 Oct 2026 10:01:50 +0530 Subject: [PATCH 37/39] Updated the card content --- .../ROOT/pages/operational-insights.adoc | 23 ++++++++----------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/home/modules/ROOT/pages/operational-insights.adoc b/home/modules/ROOT/pages/operational-insights.adoc index b8c82660dd..a2ff7bcb83 100644 --- a/home/modules/ROOT/pages/operational-insights.adoc +++ b/home/modules/ROOT/pages/operational-insights.adoc @@ -10,16 +10,12 @@ include::home::partial$info-banner.adoc[] = Operational Insights - -_Formerly Analytics_ - -*Real-Time Analytics on Your Operational Data — No Pipelines Required.* +*Real-Time Analytics on Your Operational Data. No ETL 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. +Operational Insights is a JSON-native analytical database with columnar storage and a massively parallel query engine. Data from Couchbase and Kafka streams in continuously, so your analytics stay current without slowing down your applications. You can also query files and Iceberg tables directly in object storage, alongside your live data. Choose the deployment model that fits your needs: fully managed in the cloud as Operational Insights Capella, or self-managed on your own infrastructure as Operational Insights Enterprise. + -- [.centered.card-container] @@ -27,12 +23,11 @@ Choose the deployment model that fits your team: fully managed in the cloud, or [.card-box] === icon:cloud[] Operational Insights Capella +_Fully managed · Previously Capella Analytics_ -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. +Operational Insights as a fully managed service in Couchbase Capella. Create a cluster in minutes, and Capella handles provisioning, patching, and upgrades. Connect your data sources in a few clicks and start querying. -*Available on:* AWS | GCP +*Available on:* xref:analytics:sources:external-s3.adoc[AWS S3] | xref:analytics:sources:external-gcs.adoc[Google Cloud Storage] | xref:analytics:sources:external-azure.adoc[Azure Blob] * https://cloud.couchbase.com/sign-up[Get Started^] * xref:analytics:query:integration.adoc[Explore Integrations & BI Tools] @@ -41,11 +36,11 @@ Connect it straight to your existing Capella data and start running SQL++ over J [.card-box] === icon:server[] Operational Insights Enterprise +_Self-managed · Previously Enterprise Analytics_ -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. +Operational Insights as software you install and operate yourself, on-premises or in your own cloud VPC. Keep full control over infrastructure, networking, and security, and scale compute independently of storage. Connect your data sources and start querying. -*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 +*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] | xref:enterprise-analytics:sources:external-gcs.adoc[Google Cloud Storage] | xref:enterprise-analytics:manage:manage-nodes/s3-compatible-storage.adoc[S3-Compatible 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] From 7f10aad1a564f9efa5927ae9db87e5b73baad808 Mon Sep 17 00:00:00 2001 From: harini16r Date: Fri, 9 Oct 2026 15:05:16 +0530 Subject: [PATCH 38/39] Included a new note --- home/modules/ROOT/pages/operational-insights.adoc | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/home/modules/ROOT/pages/operational-insights.adoc b/home/modules/ROOT/pages/operational-insights.adoc index a2ff7bcb83..9f66654da6 100644 --- a/home/modules/ROOT/pages/operational-insights.adoc +++ b/home/modules/ROOT/pages/operational-insights.adoc @@ -18,6 +18,13 @@ Operational Insights is a JSON-native analytical database with columnar storage -- +[NOTE] +==== +Couchbase Analytics is now Operational Insights. +Your clusters, queries, and integrations work as before. +Only the name has changed. +==== + [.centered.card-container] == Choose Your Deployment Model From 25dc83a11d5295097c55779f672ec8c25aed5382 Mon Sep 17 00:00:00 2001 From: Rebecca Martinez Date: Fri, 9 Oct 2026 09:49:02 -0400 Subject: [PATCH 39/39] Update docs-capella branch for preview --- antora-playbook.preview2.diff.yml | 2 +- antora-playbook.preview2.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/antora-playbook.preview2.diff.yml b/antora-playbook.preview2.diff.yml index 793c8d0c15..73743793a0 100644 --- a/antora-playbook.preview2.diff.yml +++ b/antora-playbook.preview2.diff.yml @@ -28,7 +28,7 @@ content: - url: https://github.com/couchbaselabs/docs-ai branches: DOC-14735_analytics-rename - url: https://github.com/couchbase/docs-capella - branches: DOC-14735_analytics-rename + branches: DOC-14735_preview-branch-october - url: https://github.com/couchbase/docs-columnar-sdk-common branches: diff --git a/antora-playbook.preview2.yml b/antora-playbook.preview2.yml index eef3f3f187..af1b435b73 100644 --- a/antora-playbook.preview2.yml +++ b/antora-playbook.preview2.yml @@ -5,7 +5,7 @@ # Instead # # * edit antora-playbook.preview2.diff.yml with just the *differences* from the main playbook -# * run: /Users/hakimcassimally/couchbase/docs-site/scripts/patch-cutdown-playbook antora-playbook.preview2 +# * run: /Users/rebecca.martinez/GitHub/docs-site/scripts/patch-cutdown-playbook antora-playbook.preview2 git: ensure_git_suffix: false @@ -226,7 +226,7 @@ content: - release/8.0 start_path: docs - url: https://github.com/couchbase/docs-capella - branches: DOC-14735_analytics-rename + branches: DOC-14735_preview-branch-october - url: https://github.com/couchbaselabs/docs-capella-app-services branches: - main