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 diff --git a/antora-playbook.preview.yml b/antora-playbook.preview.yml index 4114516a33..45444e6018 100644 --- a/antora-playbook.preview.yml +++ b/antora-playbook.preview.yml @@ -27,6 +27,11 @@ 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 @@ -118,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.preview2.diff.yml b/antora-playbook.preview2.diff.yml index e5b0f05037..a8e6f03062 100644 --- a/antora-playbook.preview2.diff.yml +++ b/antora-playbook.preview2.diff.yml @@ -6,30 +6,52 @@ antora: - ./lib/report-tree.js site: - title: Couchbase Docs Preview + title: Couchbase Docs Preview Polaris robots: disallow content: + $prune: 1 $select: - '.' - - '**/docs-ai' - - '**/docs-columnar' + - '**' sources: - - url: https://github.com/couchbaselabs/docs-devex - branches: [capella] + - url: https://github.com/couchbaselabs/docs-columnar + branches: + $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 ] + - 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 - - url: https://github.com/couchbase/docs-capella - branches: [AV-115233-azure-cmek-support] + - 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: - 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 + docs-contact: Zeba + 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-237/ui-bundle.zip diff --git a/antora-playbook.preview2.yml b/antora-playbook.preview2.yml index 7e86e82560..bb64a8f4f7 100644 --- a/antora-playbook.preview2.yml +++ b/antora-playbook.preview2.yml @@ -13,20 +13,24 @@ 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: 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 + - 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 @@ -34,52 +38,124 @@ site: keys: google_analytics: GTM-MVPNN2 nav_groups: > + [ - { "title": "Server", - "startPage": "home::server.adoc", - "components": ["server", "operator", "enterprise-analytics", "cloud-native-gateway"], - "color": "#c41016" - }, - { "title": "Mobile / Edge", - "startPage": "home::mobile.adoc", - "components": ["couchbase-lite", "couchbase-lite-javascript", "sync-gateway", "couchbase-edge-server"], - "color": "#d9480f" + { "title": "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", "app-services", "analytics"], - "expandHeaderLevels": 1, - "color": "#e8830c" - }, - { "title": "AI Data Plane", - "startPage": "ai:get-started:intro.adoc", - "components": ["ai", "mcp-server"], - "color": "#f2a541" - }, - { "title": "Develop", - "startPage": "home::developer.adoc", - "color": "#8c1c1c", + "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", + "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": ["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": "Analytics SDKs", + "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" } ] - title: Couchbase Docs Preview + title: Couchbase Docs Preview Polaris robots: disallow asciidoc: extensions: @@ -105,6 +181,7 @@ asciidoc: tabs: tabs tabs-sync-option: "" toc: null + page-chatbot-origin: https://d2tkqbbgxczr0v.cloudfront.net page-toclevels: 1@ page-rank: 50@ xrefstyle: short @@ -113,15 +190,18 @@ 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-fetch-diagram: true kroki-server-url: null - page-show-preview-banner: false - page-watermark: preview2@ - page-chatbot-origin: https://d2tkqbbgxczr0v.cloudfront.net + kroki-fetch-diagram: true + docs-contact: Zeba + page-show-preview-banner: true + page-watermark: Polaris +ui: + bundle: + url: https://github.com/couchbase/docs-ui/releases/download/prod-237/ui-bundle.zip content: branches: master sources: @@ -129,16 +209,221 @@ content: branches: - HEAD start_path: home - - url: https://github.com/couchbaselabs/docs-columnar - branches: - - main - - legacy-columnar-component - - url: https://github.com/couchbaselabs/docs-ai + - 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 + - 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: DOC-14735_analytics-rename + - 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 + - url: https://github.com/couchbaselabs/docs-ai + branches: DOC-14735_analytics-rename + - 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/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: + - 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 + - url: https://github.com/couchbase/couchbase-cli + 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: + - 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.5 + - url: https://github.com/couchbase/docs-sdk-dotnet + branches: + - 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.13 + - url: https://github.com/couchbase/docs-sdk-rust + branches: + - release/1.1 + - url: https://github.com/couchbase/docs-sdk-java + branches: + - release/3.13 + - url: https://github.com/couchbase/docs-quarkus-extension + branches: + - release/1.4 + - url: https://github.com/couchbase/docs-sdk-kotlin + branches: + - release/3.13 + - url: https://github.com/couchbase/docs-sdk-scala + branches: + - release/3.13 + - 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-operational-insights-sdk-common + branches: + - api/1.0 + - url: https://github.com/couchbase/docs-operational-insights-sdk-dotnet + branches: + - release/1.0 + - url: https://github.com/couchbase/docs-operational-insights-sdk-go + branches: + - release/1.0 + - url: https://github.com/couchbase/docs-operational-insights-sdk-java + branches: + - release/1.0 + - 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 + - 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-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: - - AV-115233-azure-cmek-support + - master + start_path: content diff --git a/antora-playbook.yml b/antora-playbook.yml index 0f64b01048..06501fe785 100644 --- a/antora-playbook.yml +++ b/antora-playbook.yml @@ -4,11 +4,15 @@ 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 + - require: ./lib/override-url-component.js + data: + operational-insights: [enterprise-analytics] + operational-insights-cloud: [analytics, columnar] site: title: Couchbase Docs @@ -60,51 +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", "enterprise-analytics", "cloud-native-gateway"], - "color": "#c41016" - }, - { "title": "Mobile / Edge", - "startPage": "home::mobile.adoc", - "components": ["couchbase-lite", "couchbase-lite-javascript", "sync-gateway", "couchbase-edge-server"], - "color": "#d9480f" - }, - { "title": "Capella", - "startPage": "home::cloud.adoc", - "components": ["cloud", "app-services", "analytics"], - "expandHeaderLevels": 1, - "color": "#e8830c" - }, - { "title": "AI Data Plane", - "startPage": "ai:get-started:intro.adoc", - "components": ["ai", "mcp-server"], - "color": "#f2a541" - }, - { "title": "Develop", - "startPage": "home::developer.adoc", - "color": "#8c1c1c", + + [ + { "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"], + "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": "Analytics SDKs", - "startPage": "home::analytics-sdk.adoc", - "components": ["*-analytics-sdk", "*-columnar-sdk"], + "title": "App Services", + "startPage": "app-services:ROOT: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 @@ -151,8 +227,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 @@ -172,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 @@ -203,8 +271,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] @@ -224,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 @@ -269,6 +340,21 @@ content: # Analytics SDKs (aka Columnar) ############################ + - url: https://github.com/couchbase/docs-operational-insights-sdk-common + branches: [api/1.0] + + - url: https://github.com/couchbase/docs-operational-insights-sdk-dotnet + branches: [release/1.0] + - url: https://github.com/couchbase/docs-operational-insights-sdk-go + branches: [release/1.0] + - url: https://github.com/couchbase/docs-operational-insights-sdk-java + branches: [release/1.0] + - 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: [release/1.0] @@ -281,6 +367,7 @@ content: - 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, release/1.0] @@ -298,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] @@ -363,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/etc/nginx/snippets/rewrites.conf b/etc/nginx/snippets/rewrites.conf index caff70ddaf..91fe94f089 100644 --- a/etc/nginx/snippets/rewrites.conf +++ b/etc/nginx/snippets/rewrites.conf @@ -1,4 +1,5 @@ # NOTE rewrite uses 302 redirect by default (assuming replacement does not start with a protocol) + # current versions # NOTE Go and Rust SDKs have their own sites with automatic evergreen redirects set $current_version_sdk_c_api '3.3.19'; diff --git a/home/modules/ROOT/pages/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/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] 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-insights.adoc b/home/modules/ROOT/pages/operational-insights.adoc new file mode 100644 index 0000000000..b8c82660dd --- /dev/null +++ b/home/modules/ROOT/pages/operational-insights.adoc @@ -0,0 +1,53 @@ += Operational Insights +:page-layout: landing-page-capella +:tabs: +:page-rank: 85 +:!sectids: +:icons: font +:page-nav-header-levels: 1 +:page-for-review: + +include::home::partial$info-banner.adoc[] + += Operational Insights + +_Formerly Analytics_ + +*Real-Time Analytics on Your Operational Data — No Pipelines Required.* + +[description] +-- +Operational Insights is a columnar, MPP-powered analytics engine built directly into the Couchbase platform. +Query your JSON data in place, in real time, with zero-ETL -- no pipelines to build or babysit. +Choose the deployment model that fits your team: fully managed in the cloud, or self-managed on your own infrastructure. +-- + +[.centered.card-container] +== Choose Your Deployment Model + +[.card-box] +=== icon:cloud[] Operational Insights 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. +Connect it straight to your existing Capella data and start running SQL++ over JSON in place. + +*Available on:* AWS | GCP + +* https://cloud.couchbase.com/sign-up[Get Started^] +* xref:analytics:query:integration.adoc[Explore Integrations & BI Tools] +* https://www.couchbase.com/pricing/[View Pricing^] +* https://cloud.couchbase.com/sign-up[Try It Free^] + +[.card-box] +=== icon:server[] Operational Insights 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. + +*Object storage support:* xref:enterprise-analytics:manage:manage-nodes/aws-s3.adoc[AWS S3] | xref:enterprise-analytics:manage:manage-nodes/azure-blob-storage.adoc[Azure Blob] | Google Cloud Storage + +* xref:enterprise-analytics:intro:do-a-quick-install.adoc[Get Started: Do a Quick Install] +* xref:enterprise-analytics:sources:manage-remote.adoc[Explore Integrations, Connectors & Tools] +* https://www.couchbase.com/pricing/[View Pricing^] +* xref:enterprise-analytics:install:introduction-linux-installation.adoc[Download] 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..7e488316df --- /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: 90 +:!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]). +//// diff --git a/lib/override-url-component.js b/lib/override-url-component.js new file mode 100644 index 0000000000..6acce1fa5c --- /dev/null +++ b/lib/override-url-component.js @@ -0,0 +1,116 @@ +'use strict' + +/* + * 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. + * + * Configure as: + * + * antora: + * extensions: + * - require: ./lib/override-url-component.js + * 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 + * 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. + * + * 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. + * + * 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. + * + * 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 + * use nginx, so they will. + */ + +module.exports.register = function ({ config }) { + const map = config.data || {} + + 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) + 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). 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 + // 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 } }, + }) +} diff --git a/package-lock.json b/package-lock.json index 5277b456ea..de5564a1d6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6,13 +6,15 @@ "": { "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", - "antora": "~3.1", + "@opendevise/antora-navigator-extension": "1.0.0-alpha.1", + "antora": "~3.2", "array.prototype.groupby": "^1.1.0", "asciidoctor-external-callout": "~1.2.2", "asciidoctor-kroki": "0.18.1", @@ -33,17 +35,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": { @@ -75,22 +77,46 @@ "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.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 +145,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 +167,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 +179,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 +262,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 +273,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 +286,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 +308,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 +345,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,74 +404,59 @@ } }, "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_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": ">=20.0.0" } }, "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 +464,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 +484,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 +531,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 +751,69 @@ "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", + "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 +893,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 +1489,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 +1684,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 +2143,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 +2174,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 +2845,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 +3493,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 +3506,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 +3523,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 +3555,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 +4647,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 +4702,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 +4722,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 +4938,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 +5112,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 +5543,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 +5757,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 +5828,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", @@ -5955,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" }, @@ -6433,9 +6497,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..fcd5217d37 100644 --- a/package.json +++ b/package.json @@ -6,11 +6,13 @@ "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.1", + "antora": "~3.2", "array.prototype.groupby": "^1.1.0", "asciidoctor-external-callout": "~1.2.2", "asciidoctor-kroki": "0.18.1", diff --git a/scripts/merge-prs b/scripts/merge-prs new file mode 100755 index 0000000000..7725627131 --- /dev/null +++ b/scripts/merge-prs @@ -0,0 +1,251 @@ +#!/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..." + + 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 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 +shape: + +{"verdict": "ok", "message": "..."} +{"verdict": "minor-concern", "message": "..."} +{"verdict": "major-issue", "message": "..."} + +Use "ok" if fully and confidently resolved, "minor-concern" if resolved but +worth a human double-checking, "major-issue" if you could not safely resolve +it (leave the conflict markers in place in that case). +PROMPT_EOF +) + + # /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 + + # 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." + 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"