From 304e58be141023bb07e8a33882f7cfe0ec5d88b1 Mon Sep 17 00:00:00 2001 From: ibsoln <52778946+ibsoln@users.noreply.github.com> Date: Wed, 1 Dec 2021 17:07:58 +0000 Subject: [PATCH 01/19] QF211201-2 -- Minor fixes --- .../ROOT/pages/_partials/blocklinks-cbl.adoc | 21 ++++++++++++------- modules/ROOT/pages/load-balancer.adoc | 2 +- modules/ROOT/pages/sync-using-app.adoc | 11 +++++----- .../pages/sync-with-couchbase-server.adoc | 2 +- 4 files changed, 22 insertions(+), 14 deletions(-) diff --git a/modules/ROOT/pages/_partials/blocklinks-cbl.adoc b/modules/ROOT/pages/_partials/blocklinks-cbl.adoc index fbb34d864..c16088b96 100644 --- a/modules/ROOT/pages/_partials/blocklinks-cbl.adoc +++ b/modules/ROOT/pages/_partials/blocklinks-cbl.adoc @@ -4,10 +4,10 @@ // Optional: param-bookmark == section within page // Optional: param-untitled == don't include block title -// :xref-cbl-pg-replication: {xref--pfx-cbl}{xref-cbl-module}/learn/\{xref-cbl-lang}-replication.adoc :this-path: {empty} :this-bookmark: {empty} -:this-version: 2.8 +ifdef::version[:this-version: {version}] +ifndef::version[:this-version: 2.8] :pre-2x8: false // ifdef::param-page[] @@ -17,22 +17,29 @@ ifdef::param-bookmark[:this-bookmark: #{param-bookmark}] ifdef::{param-version}[:this-version: {param-version}] :xref--pfx: xref:{this-version}@couchbase-lite: -:xref--sfx: :{this-path}{param--page}.adoc{this-bookmark} +:xref--sfx: :{this-path}{param-page}.adoc{this-bookmark} ifndef::param-untitled[] Related Couchbase Lite content:: + -- endif::[] -ifeval::[{this-version}>=2.8 ] + +ifeval::[{this-version}>2.8] {xref--pfx}android{xref--sfx}[Android] | -// {xref--pfx}c{xref--sfx}[C] | +{xref--pfx}c{xref--sfx}[C] | {xref--pfx}csharp{xref--sfx}[C#] | {xref--pfx}java{xref--sfx}[Java] | {xref--pfx}objc{xref--sfx}[Objective-C] | {xref--pfx}swift{xref--sfx}[Swift] +endif::[] -// endif for ifdef::this-version >=2.8 +ifeval::[{this-version}==2.8] +{xref--pfx}android{xref--sfx}[Android] | +{xref--pfx}csharp{xref--sfx}[C#] | +{xref--pfx}java{xref--sfx}[Java] | +{xref--pfx}objc{xref--sfx}[Objective-C] | +{xref--pfx}swift{xref--sfx}[Swift] endif::[] ifeval::[{this-version}<2.8 ] @@ -41,7 +48,6 @@ xref:{this-version}@couchbase-lite:ROOT:java-android.adoc#{param-bookmark}[Java xref:{this-version}@couchbase-lite:ROOT:csharp.adoc#{param-bookmark}[C#] | xref:{this-version}@couchbase-lite:ROOT:objc.adoc#{param-bookmark}[Objective-C] | xref:{this-version}@couchbase-lite:ROOT:swift.adoc#{param-bookmark}[Swift] -// endif for ifdef::this-version <2.8 endif::[] ifndef::param-untitled[] @@ -54,6 +60,7 @@ endif::[] :param-page!: :param-bookmark!: :param-untitled!: +:param-version!: // END inclusion -- block-links-cbl -- Renders line of links to CBL pointing to required anchor )pre-2.8 diff --git a/modules/ROOT/pages/load-balancer.adoc b/modules/ROOT/pages/load-balancer.adoc index cef1062c3..c87d0020f 100644 --- a/modules/ROOT/pages/load-balancer.adoc +++ b/modules/ROOT/pages/load-balancer.adoc @@ -39,7 +39,7 @@ To support the heartbeat's effective operation, the keep-alive timeout interval This can be achieved either by changing the websocket proxy settings for the load balancer to align with the heartbeat interval -- see <>. Or alternatively, by configuring the replicator heartbeat interval using Couchbase Lite {fn-2-8} -:param--page: replication +:param-page: replication :param-bookmark: lbl-cfg-keep-alive include::partial$blocklinks-cbl.adoc[] diff --git a/modules/ROOT/pages/sync-using-app.adoc b/modules/ROOT/pages/sync-using-app.adoc index b1c0d7ba3..b02cd13f4 100644 --- a/modules/ROOT/pages/sync-using-app.adoc +++ b/modules/ROOT/pages/sync-using-app.adoc @@ -22,7 +22,7 @@ include::partial$block-abstract.adoc[] Couchbase Lite client applications use a Replicator process to synchronize their local database, through a Sync Gateway database, to a remote Couchbase Server database (server- or cloud-based) -- see: <>. -[#sync-diag] +[#fig-sync-diag] .Sync from Cloud/Server to Edge image::svr-sgw-cbl.png[] @@ -33,12 +33,13 @@ This is the process by which clients running Couchbase Lite download database ch Push Replication:: This is the process by which clients running Couchbase Lite upload database changes from the local source database to the remote (server) target database -For more on how to build applications using Sync Gateway replication see the Couchbase Lite documentation set for the appropriate language: +For more on how to build Couchbase Lite applications that use Sync Gateway replication, see the documentation for the appropriate language: [#cbl-content] -:param-path: learn -:param--page: replication -:param-bookmark: starting-a-replication +// :param-path: learn +:param-page: replication +:param-path!: +:param-bookmark!: include::partial$blocklinks-cbl.adoc[] diff --git a/modules/ROOT/pages/sync-with-couchbase-server.adoc b/modules/ROOT/pages/sync-with-couchbase-server.adoc index c74e19320..24ade7055 100644 --- a/modules/ROOT/pages/sync-with-couchbase-server.adoc +++ b/modules/ROOT/pages/sync-with-couchbase-server.adoc @@ -73,7 +73,7 @@ https://blog.couchbase.com/store-sync-binary-data-attachments-blobs-couchbase-mo Couchbase Lite apps seamlessly handle blobs and attachments, see the appropriate platform examples here: :param-path: learn -:param--page: blob +:param-page: blob include::partial$blocklinks-cbl.adoc[] // * xref:couchbase-lite:swift:learn/swift-blob.adoc[Swift] // * xref:couchbase-lite:objc:learn/objc-blob.adoc[Objective-C] From a0bc9b73434f13b9bdc8e84840adf1bdeeafe08c Mon Sep 17 00:00:00 2001 From: ibsoln <52778946+ibsoln@users.noreply.github.com> Date: Fri, 7 Jan 2022 15:56:58 +0000 Subject: [PATCH 02/19] QF220007-1 -- Remove prerelease text from page titles --- modules/ROOT/pages/access-control-concepts.adoc | 2 +- .../ROOT/pages/access-control-how-assign-users-to-roles.adoc | 2 +- .../ROOT/pages/access-control-how-control-document-access.adoc | 2 +- modules/ROOT/pages/access-control-how-create-roles.adoc | 2 +- modules/ROOT/pages/access-control-how-create-users.adoc | 2 +- .../pages/access-control-how-use-xattrs-for-access-grants.adoc | 2 +- modules/ROOT/pages/access-control-how-verify-access.adoc | 2 +- modules/ROOT/pages/access-control-how.adoc | 2 +- modules/ROOT/pages/access-control-model.adoc | 2 +- modules/ROOT/pages/authentication-certs.adoc | 2 +- modules/ROOT/pages/authentication-users.adoc | 2 +- modules/ROOT/pages/auto-purge-channel-access-revocation.adoc | 2 +- modules/ROOT/pages/changes-feed.adoc | 2 +- modules/ROOT/pages/channels.adoc | 2 +- modules/ROOT/pages/command-line-options.adoc | 2 +- modules/ROOT/pages/compatibility.adoc | 2 +- modules/ROOT/pages/configuration-environment-variables.adoc | 2 +- modules/ROOT/pages/configuration-javascript-functions.adoc | 2 +- modules/ROOT/pages/configuration-overview.adoc | 2 +- modules/ROOT/pages/configuration-properties-legacy.adoc | 2 +- modules/ROOT/pages/configuration-rest-api.adoc | 2 +- modules/ROOT/pages/configuration-schema-access-control.adoc | 2 +- modules/ROOT/pages/configuration-schema-bootstrap.adoc | 2 +- modules/ROOT/pages/configuration-schema-database.adoc | 2 +- modules/ROOT/pages/configuration-schema-db-security.adoc | 2 +- modules/ROOT/pages/configuration-schema-import-filter.adoc | 2 +- modules/ROOT/pages/configuration-schema-isgr.adoc | 2 +- modules/ROOT/pages/conflict-resolution.adoc | 2 +- modules/ROOT/pages/couchbase-mobile-index.adoc | 2 +- modules/ROOT/pages/data-modeling.adoc | 2 +- modules/ROOT/pages/database-offline.adoc | 2 +- modules/ROOT/pages/delta-sync.adoc | 2 +- modules/ROOT/pages/deploy-cluster-to-kubernetes.adoc | 2 +- modules/ROOT/pages/deploy-dr-cluster.adoc | 2 +- modules/ROOT/pages/deployment.adoc | 2 +- modules/ROOT/pages/get-started-install.adoc | 2 +- modules/ROOT/pages/get-started-prepare.adoc | 2 +- modules/ROOT/pages/get-started-verify-install.adoc | 2 +- modules/ROOT/pages/glossary.adoc | 2 +- modules/ROOT/pages/import-filter.adoc | 2 +- modules/ROOT/pages/indexing.adoc | 2 +- modules/ROOT/pages/integrating-external-stores.adoc | 2 +- modules/ROOT/pages/introduction.adoc | 2 +- modules/ROOT/pages/load-balancer.adoc | 2 +- modules/ROOT/pages/logging.adoc | 2 +- modules/ROOT/pages/managing-tombstones.adoc | 2 +- modules/ROOT/pages/os-level-tuning.adoc | 2 +- modules/ROOT/pages/release-notes.adoc | 2 +- modules/ROOT/pages/rest-api-access.adoc | 2 +- modules/ROOT/pages/rest-api-admin.adoc | 2 +- modules/ROOT/pages/rest-api-metrics.adoc | 2 +- modules/ROOT/pages/rest-api.adoc | 2 +- modules/ROOT/pages/resync.adoc | 2 +- modules/ROOT/pages/revisions.adoc | 2 +- modules/ROOT/pages/roles.adoc | 2 +- modules/ROOT/pages/secure-sgw-access.adoc | 2 +- modules/ROOT/pages/server-compatibility-collections.adoc | 2 +- modules/ROOT/pages/server-compatibility-eventing.adoc | 2 +- modules/ROOT/pages/server-compatibility-transactions.adoc | 2 +- modules/ROOT/pages/server-compatibility-xdcr.adoc | 2 +- modules/ROOT/pages/setting-up-dr-cluster.adoc | 2 +- modules/ROOT/pages/sgcollect-info.adoc | 2 +- modules/ROOT/pages/stats-monitoring.adoc | 2 +- modules/ROOT/pages/stats-prometheus.adoc | 2 +- modules/ROOT/pages/supported-environments.adoc | 2 +- modules/ROOT/pages/sync-function-api-access-cmd.adoc | 2 +- modules/ROOT/pages/sync-function-api-channel-cmd.adoc | 2 +- modules/ROOT/pages/sync-function-api-expiry-cmd.adoc | 2 +- modules/ROOT/pages/sync-function-api-require-access-cmd.adoc | 2 +- modules/ROOT/pages/sync-function-api-require-admin-cmd.adoc | 2 +- modules/ROOT/pages/sync-function-api-require-role-cmd.adoc | 2 +- modules/ROOT/pages/sync-function-api-require-user-cmd.adoc | 2 +- modules/ROOT/pages/sync-function-api-role-cmd.adoc | 2 +- modules/ROOT/pages/sync-function-api-throw-cmd.adoc | 2 +- modules/ROOT/pages/sync-function-api.adoc | 2 +- modules/ROOT/pages/sync-function-overview.adoc | 2 +- modules/ROOT/pages/sync-function.adoc | 2 +- .../ROOT/pages/sync-inter-syncgateway-conflict-resolution.adoc | 2 +- modules/ROOT/pages/sync-inter-syncgateway-manage.adoc | 2 +- modules/ROOT/pages/sync-inter-syncgateway-monitor.adoc | 2 +- modules/ROOT/pages/sync-inter-syncgateway-overview.adoc | 2 +- modules/ROOT/pages/sync-inter-syncgateway-run.adoc | 2 +- modules/ROOT/pages/sync-using-app.adoc | 2 +- modules/ROOT/pages/sync-with-couchbase-server.adoc | 2 +- modules/ROOT/pages/upgrading.adoc | 2 +- modules/ROOT/pages/users.adoc | 2 +- modules/ROOT/pages/webhooks.adoc | 2 +- modules/ROOT/pages/what-are-tombstones.adoc | 2 +- modules/ROOT/pages/whatsnew.adoc | 2 +- 89 files changed, 89 insertions(+), 89 deletions(-) diff --git a/modules/ROOT/pages/access-control-concepts.adoc b/modules/ROOT/pages/access-control-concepts.adoc index 27c02d637..95b8f0bfe 100644 --- a/modules/ROOT/pages/access-control-concepts.adoc +++ b/modules/ROOT/pages/access-control-concepts.adoc @@ -20,7 +20,7 @@ // END PAGE DEFINITION :page-partial: :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :description: An introduction to the key concepts behind the provision of effective access control in Sync Gateway include::partial$_std-hdr-sgw.adoc[] diff --git a/modules/ROOT/pages/access-control-how-assign-users-to-roles.adoc b/modules/ROOT/pages/access-control-how-assign-users-to-roles.adoc index 521a658e4..0d48b6e6e 100644 --- a/modules/ROOT/pages/access-control-how-assign-users-to-roles.adoc +++ b/modules/ROOT/pages/access-control-how-assign-users-to-roles.adoc @@ -1,6 +1,6 @@ = How to Assign Users to Roles :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :description: pass:q[How to assign a Sync Gateway _User_ one or more roles for secure access control in cloud-to-edge enterprise data synchronization.] :idprefix: :idseparator: - diff --git a/modules/ROOT/pages/access-control-how-control-document-access.adoc b/modules/ROOT/pages/access-control-how-control-document-access.adoc index d0484db6e..45b3f1c0e 100644 --- a/modules/ROOT/pages/access-control-how-control-document-access.adoc +++ b/modules/ROOT/pages/access-control-how-control-document-access.adoc @@ -1,6 +1,6 @@ = Control Document Access :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :description: pass:q[How to control read/write/delete access using Sync Gateway's Sync Function API to ensure secure access to data in cloud-to-edge enterprise data synchronization.] :idprefix: :idseparator: - diff --git a/modules/ROOT/pages/access-control-how-create-roles.adoc b/modules/ROOT/pages/access-control-how-create-roles.adoc index 8ef7cebf1..b0411bc30 100644 --- a/modules/ROOT/pages/access-control-how-create-roles.adoc +++ b/modules/ROOT/pages/access-control-how-create-roles.adoc @@ -1,6 +1,6 @@ = How to Create a Role :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :description: pass:q[How to create a Sync Gateway _Role_ for secure access control in cloud-to-edge enterprise data synchronization.] :idprefix: :idseparator: - diff --git a/modules/ROOT/pages/access-control-how-create-users.adoc b/modules/ROOT/pages/access-control-how-create-users.adoc index f5c42191e..2510be373 100644 --- a/modules/ROOT/pages/access-control-how-create-users.adoc +++ b/modules/ROOT/pages/access-control-how-create-users.adoc @@ -1,6 +1,6 @@ = How to Create a User :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :description: pass:q[How to create a Sync Gateway user for secure access control in cloud-to-edge enterprise data synchronization.] :idprefix: :idseparator: - diff --git a/modules/ROOT/pages/access-control-how-use-xattrs-for-access-grants.adoc b/modules/ROOT/pages/access-control-how-use-xattrs-for-access-grants.adoc index 469935985..c2eedd2ec 100644 --- a/modules/ROOT/pages/access-control-how-use-xattrs-for-access-grants.adoc +++ b/modules/ROOT/pages/access-control-how-use-xattrs-for-access-grants.adoc @@ -1,6 +1,6 @@ = Use Extended Attributes (XATTRs) for Access Grants :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :description: pass:q[How to set access grants using extended attributes (xattrs).] :keywords: access control, document routing, sync diff --git a/modules/ROOT/pages/access-control-how-verify-access.adoc b/modules/ROOT/pages/access-control-how-verify-access.adoc index 6027d361e..bfb86bd5f 100644 --- a/modules/ROOT/pages/access-control-how-verify-access.adoc +++ b/modules/ROOT/pages/access-control-how-verify-access.adoc @@ -1,6 +1,6 @@ = How to Verify Access :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :description: pass:q[How to verify Sync Gateway access to data in cloud-to-edge enterprise data synchronization.] :idprefix: :idseparator: - diff --git a/modules/ROOT/pages/access-control-how.adoc b/modules/ROOT/pages/access-control-how.adoc index b8a553a71..568867407 100644 --- a/modules/ROOT/pages/access-control-how.adoc +++ b/modules/ROOT/pages/access-control-how.adoc @@ -1,6 +1,6 @@ = Access Control How-To :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] // BEGIN -- PAGE -- access-control-model.adoc // BEGIN PAGE DEFINITION // LOCATION modules/ROOT/pages/ diff --git a/modules/ROOT/pages/access-control-model.adoc b/modules/ROOT/pages/access-control-model.adoc index 21a452391..c5858fd73 100644 --- a/modules/ROOT/pages/access-control-model.adoc +++ b/modules/ROOT/pages/access-control-model.adoc @@ -1,6 +1,6 @@ = Access Control Model :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :description: pass:q[An introduction to access control in Sync Gateway] diff --git a/modules/ROOT/pages/authentication-certs.adoc b/modules/ROOT/pages/authentication-certs.adoc index 1009a5067..a025b3fcd 100644 --- a/modules/ROOT/pages/authentication-certs.adoc +++ b/modules/ROOT/pages/authentication-certs.adoc @@ -1,7 +1,7 @@ = TLS Certificate Authentication :page-aliases: deployment-considerations,configuring-ssl, security.adoc :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :description: Securing Couchbase Sync Gateway with TLS Authentication :url-curl: https://curl.haxx.se/ :url-httpie: https://github.com/jakubroztocil/httpie diff --git a/modules/ROOT/pages/authentication-users.adoc b/modules/ROOT/pages/authentication-users.adoc index 3cdedf46e..4bf004212 100644 --- a/modules/ROOT/pages/authentication-users.adoc +++ b/modules/ROOT/pages/authentication-users.adoc @@ -1,7 +1,7 @@ = User Authentication :page-aliases: learn/authentication.adoc, authentication.adoc :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :description: Access Sync Gateway securely to sync from cloud to edge include::partial$_std-hdr-sgw.adoc[] diff --git a/modules/ROOT/pages/auto-purge-channel-access-revocation.adoc b/modules/ROOT/pages/auto-purge-channel-access-revocation.adoc index af69f5859..a67e9bf58 100644 --- a/modules/ROOT/pages/auto-purge-channel-access-revocation.adoc +++ b/modules/ROOT/pages/auto-purge-channel-access-revocation.adoc @@ -1,7 +1,7 @@ = Auto-Purge on Channel Access Revocation :page-aliases: anchor-auto-purge-channel-access-revocation :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :description: pass:q[Auto-purge behavior on loss of access to document channels] :keywords: access control, document routing, sync, auto-purge diff --git a/modules/ROOT/pages/changes-feed.adoc b/modules/ROOT/pages/changes-feed.adoc index a5d98ed5b..14f5ce462 100644 --- a/modules/ROOT/pages/changes-feed.adoc +++ b/modules/ROOT/pages/changes-feed.adoc @@ -1,7 +1,7 @@ = Changes Feed :page-aliases: server-integration.adoc :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :description: Integrating Sync Gateway with other servers :idprefix: :idseparator: - diff --git a/modules/ROOT/pages/channels.adoc b/modules/ROOT/pages/channels.adoc index d70b96706..8ff740724 100644 --- a/modules/ROOT/pages/channels.adoc +++ b/modules/ROOT/pages/channels.adoc @@ -1,7 +1,7 @@ = Channels :page-aliases: data-routing.adoc, learn/sync-gateway-channels.adoc, sync-gateway-channels.adoc :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :description: pass:q[About Sync Gateway _Channels_ and their part in data routing and access control for secure cloud-to-edge enterprise data synchronization.] :keywords: access control, document routing, sync diff --git a/modules/ROOT/pages/command-line-options.adoc b/modules/ROOT/pages/command-line-options.adoc index d397844c2..95f7e90c8 100644 --- a/modules/ROOT/pages/command-line-options.adoc +++ b/modules/ROOT/pages/command-line-options.adoc @@ -1,6 +1,6 @@ = Using the Command Line :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :Description: Start a Sync Gateway instance using command line options and securely sync enterprise data from cloud to edge // BEGIN -- DO NOT EDIT diff --git a/modules/ROOT/pages/compatibility.adoc b/modules/ROOT/pages/compatibility.adoc index 9298030a8..7c59b3097 100644 --- a/modules/ROOT/pages/compatibility.adoc +++ b/modules/ROOT/pages/compatibility.adoc @@ -1,7 +1,7 @@ = Compatibility :page-aliases: prodnotes/pn-compatibility.adoc :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: Couchbase Sync Gateway :keywords: edge nosql api synchronization replication diff --git a/modules/ROOT/pages/configuration-environment-variables.adoc b/modules/ROOT/pages/configuration-environment-variables.adoc index 8bdf232e8..ef094d017 100644 --- a/modules/ROOT/pages/configuration-environment-variables.adoc +++ b/modules/ROOT/pages/configuration-environment-variables.adoc @@ -1,6 +1,6 @@ = Configuration Environment Variables :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: :page-content: conceptual :description: Using environment variables in the configuration of Sync Gateway diff --git a/modules/ROOT/pages/configuration-javascript-functions.adoc b/modules/ROOT/pages/configuration-javascript-functions.adoc index 70e62cfc2..2e0bdb882 100644 --- a/modules/ROOT/pages/configuration-javascript-functions.adoc +++ b/modules/ROOT/pages/configuration-javascript-functions.adoc @@ -1,7 +1,7 @@ // BEGIN -- PAGE -- config-external-javascript-functions.adoc = Using External Javascript Functions :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: :page-content-type: conceptual :description: How to use Javascript functions to customize data sync between cloud-and-edge. diff --git a/modules/ROOT/pages/configuration-overview.adoc b/modules/ROOT/pages/configuration-overview.adoc index 55ae246ca..f26f0e52c 100644 --- a/modules/ROOT/pages/configuration-overview.adoc +++ b/modules/ROOT/pages/configuration-overview.adoc @@ -1,6 +1,6 @@ = Configuration Overview :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-content: conceptual :description: pass:q,a[How to configure _Sync{nbsp}Gateway_ for secure cloud-to-edge data sync] :keywords: sync, data replication, cloud-to-edge, configuration diff --git a/modules/ROOT/pages/configuration-properties-legacy.adoc b/modules/ROOT/pages/configuration-properties-legacy.adoc index 6242c61f4..b2e5c880c 100644 --- a/modules/ROOT/pages/configuration-properties-legacy.adoc +++ b/modules/ROOT/pages/configuration-properties-legacy.adoc @@ -1,7 +1,7 @@ = Legacy Pre-3.0 BETA Configuration :page-aliases: configuration-properties.adoc, refer/config-properties.adoc, config-properties.adoc :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-status: Legacy Content :page-role: :page-content: reference diff --git a/modules/ROOT/pages/configuration-rest-api.adoc b/modules/ROOT/pages/configuration-rest-api.adoc index b5fbbdd5e..8f3007c4c 100644 --- a/modules/ROOT/pages/configuration-rest-api.adoc +++ b/modules/ROOT/pages/configuration-rest-api.adoc @@ -1,6 +1,6 @@ = Configuration Rest API :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: :page-content: conceptual :description: How to use the Config REST API to configure Sync Gateway for secure cloud-to-edge data sync diff --git a/modules/ROOT/pages/configuration-schema-access-control.adoc b/modules/ROOT/pages/configuration-schema-access-control.adoc index b2309f8ec..3b8e407cb 100644 --- a/modules/ROOT/pages/configuration-schema-access-control.adoc +++ b/modules/ROOT/pages/configuration-schema-access-control.adoc @@ -1,6 +1,6 @@ = Access Control Configuration :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :description: Using Sync Gateway's Admin REST API and the Sync function to configure access :ouroffsetlevel: +1 diff --git a/modules/ROOT/pages/configuration-schema-bootstrap.adoc b/modules/ROOT/pages/configuration-schema-bootstrap.adoc index 240bdd664..75fad09ee 100644 --- a/modules/ROOT/pages/configuration-schema-bootstrap.adoc +++ b/modules/ROOT/pages/configuration-schema-bootstrap.adoc @@ -1,7 +1,7 @@ = Bootstrap Configuration :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: :page-content: reference :description: Reference data on the contents of Sync Gateway's bootstrap configuration, which determines its run time behavior. diff --git a/modules/ROOT/pages/configuration-schema-database.adoc b/modules/ROOT/pages/configuration-schema-database.adoc index 29efe4d07..163d73eb1 100644 --- a/modules/ROOT/pages/configuration-schema-database.adoc +++ b/modules/ROOT/pages/configuration-schema-database.adoc @@ -1,6 +1,6 @@ = Database Configuration :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role" :description: Using Sync Gateway's Admin REST API to configure and manage databases diff --git a/modules/ROOT/pages/configuration-schema-db-security.adoc b/modules/ROOT/pages/configuration-schema-db-security.adoc index bdb2e4ed8..b97c12839 100644 --- a/modules/ROOT/pages/configuration-schema-db-security.adoc +++ b/modules/ROOT/pages/configuration-schema-db-security.adoc @@ -1,6 +1,6 @@ = Database Security :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-content: Reference :description: Using Sync Gateway's Admin REST API to configure users and roles diff --git a/modules/ROOT/pages/configuration-schema-import-filter.adoc b/modules/ROOT/pages/configuration-schema-import-filter.adoc index 1c695c347..56fccb02f 100644 --- a/modules/ROOT/pages/configuration-schema-import-filter.adoc +++ b/modules/ROOT/pages/configuration-schema-import-filter.adoc @@ -1,6 +1,6 @@ = Import Filter Configuration :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :description: Using Sync Gateway's Admin REST API and the Import Filter function to configure access :ouroffsetlevel: +1 diff --git a/modules/ROOT/pages/configuration-schema-isgr.adoc b/modules/ROOT/pages/configuration-schema-isgr.adoc index cf24ddbbc..5d2242b80 100644 --- a/modules/ROOT/pages/configuration-schema-isgr.adoc +++ b/modules/ROOT/pages/configuration-schema-isgr.adoc @@ -1,6 +1,6 @@ = Inter-Sync{nbsp}Gateway Replication Configuration :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: :page-content: Reference :description: Using Sync Gateway's Admin REST API to configure and manage inter-Sync{nbsp}Gateway replications diff --git a/modules/ROOT/pages/conflict-resolution.adoc b/modules/ROOT/pages/conflict-resolution.adoc index 144aa2d40..4bd8e38be 100644 --- a/modules/ROOT/pages/conflict-resolution.adoc +++ b/modules/ROOT/pages/conflict-resolution.adoc @@ -19,7 +19,7 @@ = Conflict Resolution :page-aliases: advance/conflict-resolution.adoc :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: Couchbase Sync Gateway's conflict resolution approach :idprefix: diff --git a/modules/ROOT/pages/couchbase-mobile-index.adoc b/modules/ROOT/pages/couchbase-mobile-index.adoc index a4aee8a8d..eed0b9dcc 100644 --- a/modules/ROOT/pages/couchbase-mobile-index.adoc +++ b/modules/ROOT/pages/couchbase-mobile-index.adoc @@ -1,7 +1,7 @@ = Couchbase Mobile :description: Couchbase Mobile delivers the power of NoSQL to the Edge :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: -toc include::partial$_attributes-local.adoc[] diff --git a/modules/ROOT/pages/data-modeling.adoc b/modules/ROOT/pages/data-modeling.adoc index 768f8204f..d52663d3b 100644 --- a/modules/ROOT/pages/data-modeling.adoc +++ b/modules/ROOT/pages/data-modeling.adoc @@ -1,6 +1,6 @@ = Data Modelling :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: pass:q[_Couchbase Sync Gateway's_ data model; for secure cloud-to-edge synchronization of enterprise data.] diff --git a/modules/ROOT/pages/database-offline.adoc b/modules/ROOT/pages/database-offline.adoc index 6bb013cc6..3097a5b8b 100644 --- a/modules/ROOT/pages/database-offline.adoc +++ b/modules/ROOT/pages/database-offline.adoc @@ -1,6 +1,6 @@ = Take Database Offline/Online :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: :page-content: conceptual :description: pass:q[How to take a _Sync Gateway_ database offline and bring back online.] diff --git a/modules/ROOT/pages/delta-sync.adoc b/modules/ROOT/pages/delta-sync.adoc index 99ffe8828..c52050710 100644 --- a/modules/ROOT/pages/delta-sync.adoc +++ b/modules/ROOT/pages/delta-sync.adoc @@ -1,6 +1,6 @@ = Delta Sync :page-edition: {release} {enterprise} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: :page-content: conceptual :description: Use Sync Gateway's delta sync feature for secure, resilient and efficient sync from cloud to edge diff --git a/modules/ROOT/pages/deploy-cluster-to-kubernetes.adoc b/modules/ROOT/pages/deploy-cluster-to-kubernetes.adoc index 05aa42bcb..a24d79497 100644 --- a/modules/ROOT/pages/deploy-cluster-to-kubernetes.adoc +++ b/modules/ROOT/pages/deploy-cluster-to-kubernetes.adoc @@ -20,7 +20,7 @@ = Deploying a Sync Gateway Cluster :page-aliases: deploy-cluster.adoc, advance/kubernetes/deploy-cluster.adoc :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: :page-content: procedural :version-cao-1-x: 1.2 diff --git a/modules/ROOT/pages/deploy-dr-cluster.adoc b/modules/ROOT/pages/deploy-dr-cluster.adoc index c4512cd2f..887c61de5 100644 --- a/modules/ROOT/pages/deploy-dr-cluster.adoc +++ b/modules/ROOT/pages/deploy-dr-cluster.adoc @@ -1,6 +1,6 @@ = Using XDCR for Disaster Recovery in Mobile Clusters :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: :page-partial: :page-content: reference diff --git a/modules/ROOT/pages/deployment.adoc b/modules/ROOT/pages/deployment.adoc index 586e95f64..8af6d3fb5 100644 --- a/modules/ROOT/pages/deployment.adoc +++ b/modules/ROOT/pages/deployment.adoc @@ -1,6 +1,6 @@ = Deployment :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: When deploying your application for production use you will need to use Sync Gateway and Couchbase Server. diff --git a/modules/ROOT/pages/get-started-install.adoc b/modules/ROOT/pages/get-started-install.adoc index 4bc499025..8e21fcf84 100644 --- a/modules/ROOT/pages/get-started-install.adoc +++ b/modules/ROOT/pages/get-started-install.adoc @@ -1,7 +1,7 @@ = Install Sync Gateway :page-aliases: getting-started, start/get-started-install.adoc :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: :Description: pass:q[Install a _Sync Gateway_ instance; securely sync enterprise data from cloud to edge.] :page-type: procedural diff --git a/modules/ROOT/pages/get-started-prepare.adoc b/modules/ROOT/pages/get-started-prepare.adoc index 961491567..d56dba1de 100644 --- a/modules/ROOT/pages/get-started-prepare.adoc +++ b/modules/ROOT/pages/get-started-prepare.adoc @@ -1,7 +1,7 @@ = Prepare to Install Sync Gateway :page-aliases: start/get-started-prepare.adoc :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: pass:q[Prerequisites for installing _Sync Gateway_; to synchronize your data from cloud to edge.] diff --git a/modules/ROOT/pages/get-started-verify-install.adoc b/modules/ROOT/pages/get-started-verify-install.adoc index a66e05457..67aa18d08 100644 --- a/modules/ROOT/pages/get-started-verify-install.adoc +++ b/modules/ROOT/pages/get-started-verify-install.adoc @@ -1,7 +1,7 @@ = Verify a Sync Gateway Install :page-aliases: start/get-started-verify-install.adoc :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: :Description: pass:q[Configure and verify your _Sync Gateway_ installation; securely sync enterprise data from cloud to edge!] :page-type: procedural diff --git a/modules/ROOT/pages/glossary.adoc b/modules/ROOT/pages/glossary.adoc index 222eafd69..4be63f96a 100644 --- a/modules/ROOT/pages/glossary.adoc +++ b/modules/ROOT/pages/glossary.adoc @@ -2,7 +2,7 @@ :page-aliases: sgw-glossary, refer/refer-sgw-glossary.adoc :page-partial: :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: -toc :description: Sync Gateway Glossary of Terms :keywords: edge nosql api synchronization replication diff --git a/modules/ROOT/pages/import-filter.adoc b/modules/ROOT/pages/import-filter.adoc index 05bc6f323..b385f2426 100644 --- a/modules/ROOT/pages/import-filter.adoc +++ b/modules/ROOT/pages/import-filter.adoc @@ -20,7 +20,7 @@ = Import Filter :page-aliases: advance/adv-sgw-cfg-import-filter.adoc, import-filters :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: :page-type: procedural :description: pass:q[Introducing _import filters_ and how to use them to speed-up the initial import process.] diff --git a/modules/ROOT/pages/indexing.adoc b/modules/ROOT/pages/indexing.adoc index 1ff9ad5c6..4945daf1f 100644 --- a/modules/ROOT/pages/indexing.adoc +++ b/modules/ROOT/pages/indexing.adoc @@ -1,6 +1,6 @@ = Indexes versus Views :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: :Description: Using Indexes to minimize system downtime in Sync Gateway diff --git a/modules/ROOT/pages/integrating-external-stores.adoc b/modules/ROOT/pages/integrating-external-stores.adoc index fa73d7c74..6add2b068 100644 --- a/modules/ROOT/pages/integrating-external-stores.adoc +++ b/modules/ROOT/pages/integrating-external-stores.adoc @@ -1,6 +1,6 @@ = Integrating External Stores :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: Introducing Sync Gateway integration with external data stores diff --git a/modules/ROOT/pages/introduction.adoc b/modules/ROOT/pages/introduction.adoc index 53a3b5f08..aa7e4701d 100644 --- a/modules/ROOT/pages/introduction.adoc +++ b/modules/ROOT/pages/introduction.adoc @@ -1,6 +1,6 @@ = Introduction :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: :page-partial: :description: pass:q[A short introduction to _Couchbase's Sync Gateway_ and how to get started using it.] diff --git a/modules/ROOT/pages/load-balancer.adoc b/modules/ROOT/pages/load-balancer.adoc index c87d0020f..906d9444c 100644 --- a/modules/ROOT/pages/load-balancer.adoc +++ b/modules/ROOT/pages/load-balancer.adoc @@ -1,6 +1,6 @@ = Load Balancer :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: Load balancing replications :keywords: sync, load-balance, proxy, nginx diff --git a/modules/ROOT/pages/logging.adoc b/modules/ROOT/pages/logging.adoc index 1b79c4878..d5141a8b4 100644 --- a/modules/ROOT/pages/logging.adoc +++ b/modules/ROOT/pages/logging.adoc @@ -20,7 +20,7 @@ = Logging :page-aliases: advance/logging.adoc :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: Introducing Couchbase Sync Gateway's logging functionality diff --git a/modules/ROOT/pages/managing-tombstones.adoc b/modules/ROOT/pages/managing-tombstones.adoc index 547d41d8a..a42c5a45e 100644 --- a/modules/ROOT/pages/managing-tombstones.adoc +++ b/modules/ROOT/pages/managing-tombstones.adoc @@ -1,7 +1,7 @@ = Managing Tombstones :description: pass:q[Sync Gateway's _Tombstones_ are the means by which mobile clients are notified that a document has been deleted.] :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: :page-content: conceptual diff --git a/modules/ROOT/pages/os-level-tuning.adoc b/modules/ROOT/pages/os-level-tuning.adoc index 8588aaa2e..cbe84f0c4 100644 --- a/modules/ROOT/pages/os-level-tuning.adoc +++ b/modules/ROOT/pages/os-level-tuning.adoc @@ -1,6 +1,6 @@ = OS Level Tuning :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: pass:q[OS level parameters you can use to tune _Couchbase Sync Gateway] diff --git a/modules/ROOT/pages/release-notes.adoc b/modules/ROOT/pages/release-notes.adoc index bbca2fe67..9021bb462 100644 --- a/modules/ROOT/pages/release-notes.adoc +++ b/modules/ROOT/pages/release-notes.adoc @@ -1,7 +1,7 @@ = Release Notes :page-aliases: prodnotes/pn-releasenotes.adoc, prodnotes/pn-release-notes.adoc, releasenotes.adoc, pn-release-notes.adoc :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: Couchbase Sync Gateway :keywords: edge nosql api synchronization replication diff --git a/modules/ROOT/pages/rest-api-access.adoc b/modules/ROOT/pages/rest-api-access.adoc index 542e92579..2f17be0b9 100644 --- a/modules/ROOT/pages/rest-api-access.adoc +++ b/modules/ROOT/pages/rest-api-access.adoc @@ -2,7 +2,7 @@ :page-aliases: start/rest-api-access.adoc, start/get-started-access-rest-api.adoc, get-started-access-rest-api.adoc :page-partials: :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: :page-content: Reference :description: Sync Gateway REST API Access diff --git a/modules/ROOT/pages/rest-api-admin.adoc b/modules/ROOT/pages/rest-api-admin.adoc index 0ef153d86..fdc9aad9f 100644 --- a/modules/ROOT/pages/rest-api-admin.adoc +++ b/modules/ROOT/pages/rest-api-admin.adoc @@ -1,7 +1,7 @@ = Admin REST API :page-aliases: refer/rest-api-admin.adoc :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: -toc :page-content: Reference :description: Description of the Sync Gateway Admin REST API diff --git a/modules/ROOT/pages/rest-api-metrics.adoc b/modules/ROOT/pages/rest-api-metrics.adoc index 5b6e5745e..9d701fb8c 100644 --- a/modules/ROOT/pages/rest-api-metrics.adoc +++ b/modules/ROOT/pages/rest-api-metrics.adoc @@ -1,7 +1,7 @@ = Metrics REST API :page-aliases: refer/rest-api-metrics.adoc :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: :page-content: conceptual :description: Description of the Sync Gateway Metrics Rest API diff --git a/modules/ROOT/pages/rest-api.adoc b/modules/ROOT/pages/rest-api.adoc index 98a6cdd1f..3e62cd138 100644 --- a/modules/ROOT/pages/rest-api.adoc +++ b/modules/ROOT/pages/rest-api.adoc @@ -2,7 +2,7 @@ :page-aliases: refer/rest-api-public.adoc :page-role: -toc :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-content: conceptual :description: Description of the Sync Gateway Rest API' diff --git a/modules/ROOT/pages/resync.adoc b/modules/ROOT/pages/resync.adoc index dd7a09c2d..d95279bda 100644 --- a/modules/ROOT/pages/resync.adoc +++ b/modules/ROOT/pages/resync.adoc @@ -1,6 +1,6 @@ = Resync :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: Recalculating routing and data access following Sync Function changes :idprefix: diff --git a/modules/ROOT/pages/revisions.adoc b/modules/ROOT/pages/revisions.adoc index ecd5c6f63..d62cf96ac 100644 --- a/modules/ROOT/pages/revisions.adoc +++ b/modules/ROOT/pages/revisions.adoc @@ -1,6 +1,6 @@ = Revisions :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: :page-content: conceptual :description: About Sync Gateway's use of Revisions, Revision Trees and Revision Caches. diff --git a/modules/ROOT/pages/roles.adoc b/modules/ROOT/pages/roles.adoc index caaf1ae3c..906bd226c 100644 --- a/modules/ROOT/pages/roles.adoc +++ b/modules/ROOT/pages/roles.adoc @@ -1,7 +1,7 @@ = Roles :page-aliases: learn/roles.adoc :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: :page-content: conceptual :description: pass:q[About Sync Gateway _Roles_ and their part in secure cloud-to-edge enterprise data synchronization.] diff --git a/modules/ROOT/pages/secure-sgw-access.adoc b/modules/ROOT/pages/secure-sgw-access.adoc index 628e5f707..6a7dcb190 100644 --- a/modules/ROOT/pages/secure-sgw-access.adoc +++ b/modules/ROOT/pages/secure-sgw-access.adoc @@ -1,6 +1,6 @@ = Secure Sync Gateway Access :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: :page-aliases: anchor-secure-sync-gateway-access.adoc :description: Couchbase Sync Gateway TLS encryption and verification diff --git a/modules/ROOT/pages/server-compatibility-collections.adoc b/modules/ROOT/pages/server-compatibility-collections.adoc index 0ad439d95..edfd5ebf2 100644 --- a/modules/ROOT/pages/server-compatibility-collections.adoc +++ b/modules/ROOT/pages/server-compatibility-collections.adoc @@ -1,6 +1,6 @@ = Collections -- Server Compatibility :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: pass:q[How _Sync Gateway_ can work with _Couchbase Server's Collections_] :idprefix: diff --git a/modules/ROOT/pages/server-compatibility-eventing.adoc b/modules/ROOT/pages/server-compatibility-eventing.adoc index 5fe983b25..059b61d47 100644 --- a/modules/ROOT/pages/server-compatibility-eventing.adoc +++ b/modules/ROOT/pages/server-compatibility-eventing.adoc @@ -1,6 +1,6 @@ = Eventing -- Server Compatibility :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: pass:q[How _Sync Gateway_ works with _Couchbase Server's_ _Eventing_ feature] :idprefix: diff --git a/modules/ROOT/pages/server-compatibility-transactions.adoc b/modules/ROOT/pages/server-compatibility-transactions.adoc index 93a6c2239..f3b060179 100644 --- a/modules/ROOT/pages/server-compatibility-transactions.adoc +++ b/modules/ROOT/pages/server-compatibility-transactions.adoc @@ -1,6 +1,6 @@ = Transactions -- Server Compatibility :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: pass:q[How Sync Gateway works with _Couchbase Server Transactions_] :idprefix: diff --git a/modules/ROOT/pages/server-compatibility-xdcr.adoc b/modules/ROOT/pages/server-compatibility-xdcr.adoc index 23a14dcb7..d26822b22 100644 --- a/modules/ROOT/pages/server-compatibility-xdcr.adoc +++ b/modules/ROOT/pages/server-compatibility-xdcr.adoc @@ -1,6 +1,6 @@ = XDCR -- Server Compatibility :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: pass:q[How Sync Gateway works with Couchbase Server's _Cross Data Center Replication_ (_XDCR_).] :keywords: high-availability, disaster recovery, sync, replicate, edge, cloud, dr, ha, sync gateway cluster, mobile cluster, data migration, active standby, lift-and-shift, in hybrid cloud diff --git a/modules/ROOT/pages/setting-up-dr-cluster.adoc b/modules/ROOT/pages/setting-up-dr-cluster.adoc index 724f65046..fb38944d4 100644 --- a/modules/ROOT/pages/setting-up-dr-cluster.adoc +++ b/modules/ROOT/pages/setting-up-dr-cluster.adoc @@ -1,7 +1,7 @@ = Setting up Disaster Recovery :page-layout: article :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: :page-partial: :page-content: reference diff --git a/modules/ROOT/pages/sgcollect-info.adoc b/modules/ROOT/pages/sgcollect-info.adoc index e3996f5d2..972a73e23 100644 --- a/modules/ROOT/pages/sgcollect-info.adoc +++ b/modules/ROOT/pages/sgcollect-info.adoc @@ -1,6 +1,6 @@ = SG Collect Info :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: pass:q[Using _sgcollect_ to gather system information, diagnostics and metrics] diff --git a/modules/ROOT/pages/stats-monitoring.adoc b/modules/ROOT/pages/stats-monitoring.adoc index 58ff56b4e..cec64eab3 100644 --- a/modules/ROOT/pages/stats-monitoring.adoc +++ b/modules/ROOT/pages/stats-monitoring.adoc @@ -1,6 +1,6 @@ = View Statistics and Metrics :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: :page-partial: :page-content: conceptual diff --git a/modules/ROOT/pages/stats-prometheus.adoc b/modules/ROOT/pages/stats-prometheus.adoc index c14941d19..181c976d9 100644 --- a/modules/ROOT/pages/stats-prometheus.adoc +++ b/modules/ROOT/pages/stats-prometheus.adoc @@ -1,6 +1,6 @@ = Integrate Prometheus :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: Integrating Sync Gateway and Prometheus for Stats Monitoring and Alerts diff --git a/modules/ROOT/pages/supported-environments.adoc b/modules/ROOT/pages/supported-environments.adoc index bf3fe026a..a83d0e9a1 100644 --- a/modules/ROOT/pages/supported-environments.adoc +++ b/modules/ROOT/pages/supported-environments.adoc @@ -19,7 +19,7 @@ = Supported Environments :page-aliases: official-support, supported-os, prodnotes/pn-supported-os.adoc :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: Couchbase Sync Gateway's Supported Operating System and Cloud environments :keywords: edge nosql api synchronization replication diff --git a/modules/ROOT/pages/sync-function-api-access-cmd.adoc b/modules/ROOT/pages/sync-function-api-access-cmd.adoc index e8c7e30f0..3b6cfd2b5 100644 --- a/modules/ROOT/pages/sync-function-api-access-cmd.adoc +++ b/modules/ROOT/pages/sync-function-api-access-cmd.adoc @@ -1,6 +1,6 @@ = Access() :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: pass:q[Enabling Sync Gateway data access] diff --git a/modules/ROOT/pages/sync-function-api-channel-cmd.adoc b/modules/ROOT/pages/sync-function-api-channel-cmd.adoc index 97850b3f7..a38139a5c 100644 --- a/modules/ROOT/pages/sync-function-api-channel-cmd.adoc +++ b/modules/ROOT/pages/sync-function-api-channel-cmd.adoc @@ -1,6 +1,6 @@ = channel() :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: pass:q[Assigning Sync Gateway _channels_] diff --git a/modules/ROOT/pages/sync-function-api-expiry-cmd.adoc b/modules/ROOT/pages/sync-function-api-expiry-cmd.adoc index b34f9e190..5a5a2f109 100644 --- a/modules/ROOT/pages/sync-function-api-expiry-cmd.adoc +++ b/modules/ROOT/pages/sync-function-api-expiry-cmd.adoc @@ -1,6 +1,6 @@ = expiry() :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: pass:q[Setting an expiry value on a document in a local database] diff --git a/modules/ROOT/pages/sync-function-api-require-access-cmd.adoc b/modules/ROOT/pages/sync-function-api-require-access-cmd.adoc index e58789365..184c5f6f1 100644 --- a/modules/ROOT/pages/sync-function-api-require-access-cmd.adoc +++ b/modules/ROOT/pages/sync-function-api-require-access-cmd.adoc @@ -1,6 +1,6 @@ = requireAccess() :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: pass:q[Enabling Sync Gateway data access] diff --git a/modules/ROOT/pages/sync-function-api-require-admin-cmd.adoc b/modules/ROOT/pages/sync-function-api-require-admin-cmd.adoc index 4828173b1..06c2dda41 100644 --- a/modules/ROOT/pages/sync-function-api-require-admin-cmd.adoc +++ b/modules/ROOT/pages/sync-function-api-require-admin-cmd.adoc @@ -1,6 +1,6 @@ = requireAdmin() :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: pass:q[Requiring Sync Gateway admin user] diff --git a/modules/ROOT/pages/sync-function-api-require-role-cmd.adoc b/modules/ROOT/pages/sync-function-api-require-role-cmd.adoc index f16c9aafc..269156621 100644 --- a/modules/ROOT/pages/sync-function-api-require-role-cmd.adoc +++ b/modules/ROOT/pages/sync-function-api-require-role-cmd.adoc @@ -1,6 +1,6 @@ = requireRole() :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: pass:q[Requiring Sync Gateway role] diff --git a/modules/ROOT/pages/sync-function-api-require-user-cmd.adoc b/modules/ROOT/pages/sync-function-api-require-user-cmd.adoc index fed7a6822..804992512 100644 --- a/modules/ROOT/pages/sync-function-api-require-user-cmd.adoc +++ b/modules/ROOT/pages/sync-function-api-require-user-cmd.adoc @@ -1,6 +1,6 @@ = requireUser() :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: pass:q[Requiring Sync Gateway user] diff --git a/modules/ROOT/pages/sync-function-api-role-cmd.adoc b/modules/ROOT/pages/sync-function-api-role-cmd.adoc index ef5c38f0b..6a552371f 100644 --- a/modules/ROOT/pages/sync-function-api-role-cmd.adoc +++ b/modules/ROOT/pages/sync-function-api-role-cmd.adoc @@ -1,6 +1,6 @@ = role() :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: pass:q[Assigning Sync Gateway _roles_] diff --git a/modules/ROOT/pages/sync-function-api-throw-cmd.adoc b/modules/ROOT/pages/sync-function-api-throw-cmd.adoc index e6902fddb..567e63193 100644 --- a/modules/ROOT/pages/sync-function-api-throw-cmd.adoc +++ b/modules/ROOT/pages/sync-function-api-throw-cmd.adoc @@ -1,6 +1,6 @@ = throw() :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: pass:q[Rejecting a document change in Sync Gateway] diff --git a/modules/ROOT/pages/sync-function-api.adoc b/modules/ROOT/pages/sync-function-api.adoc index edb01764d..09756d6a8 100644 --- a/modules/ROOT/pages/sync-function-api.adoc +++ b/modules/ROOT/pages/sync-function-api.adoc @@ -23,7 +23,7 @@ = Sync Function API Reference :page-aliases: advance/adv-sgw-cfg-sync-function.adoc :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: :page-partial: :description: pass:q[Use Sync Functionss to implement effective data routing and access control in the cloud-to-edge synchronization of enterprise data.] diff --git a/modules/ROOT/pages/sync-function-overview.adoc b/modules/ROOT/pages/sync-function-overview.adoc index 7fecd2e49..b86406008 100644 --- a/modules/ROOT/pages/sync-function-overview.adoc +++ b/modules/ROOT/pages/sync-function-overview.adoc @@ -2,7 +2,7 @@ :page-layout: article :page-partial: :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: pass:q[Use Sync Gateway's Sync Functions to implement effective data routing and access control in the cloud-to-edge synchronization of enterprise data.] :idprefix: diff --git a/modules/ROOT/pages/sync-function.adoc b/modules/ROOT/pages/sync-function.adoc index da96ad70f..b45ffdfd9 100644 --- a/modules/ROOT/pages/sync-function.adoc +++ b/modules/ROOT/pages/sync-function.adoc @@ -1,6 +1,6 @@ = Sync Function Reference :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: :page-content: conceptual :description: pass:q[About Sync Gateway _Roles_ and their part in secure cloud-to-edge enterprise data synchronization.] diff --git a/modules/ROOT/pages/sync-inter-syncgateway-conflict-resolution.adoc b/modules/ROOT/pages/sync-inter-syncgateway-conflict-resolution.adoc index aedeb28d7..028692a3f 100644 --- a/modules/ROOT/pages/sync-inter-syncgateway-conflict-resolution.adoc +++ b/modules/ROOT/pages/sync-inter-syncgateway-conflict-resolution.adoc @@ -1,7 +1,7 @@ = Enhanced Conflict Resolution :page-aliases: learn/icr-conflict-resolution.adoc :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: About conflict resolution in inter-Sync Gateway replication diff --git a/modules/ROOT/pages/sync-inter-syncgateway-manage.adoc b/modules/ROOT/pages/sync-inter-syncgateway-manage.adoc index 507217d80..e59be7603 100644 --- a/modules/ROOT/pages/sync-inter-syncgateway-manage.adoc +++ b/modules/ROOT/pages/sync-inter-syncgateway-manage.adoc @@ -1,7 +1,7 @@ = Manage Inter-Sync Gateway Replications :page-aliases: learn/icr-admin.adoc, icr-admin.adoc :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: Managing inter-Sync Gateway replications :keywords: cloud edge sync replicate diff --git a/modules/ROOT/pages/sync-inter-syncgateway-monitor.adoc b/modules/ROOT/pages/sync-inter-syncgateway-monitor.adoc index 5d6dfd7e7..c34f03165 100644 --- a/modules/ROOT/pages/sync-inter-syncgateway-monitor.adoc +++ b/modules/ROOT/pages/sync-inter-syncgateway-monitor.adoc @@ -1,7 +1,7 @@ = Replication Monitoring and Statistics :page-aliases: learn/icr-monitoring.adoc, icr-monitoring.adoc :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: Monitoring inter-Sync Gateway replications diff --git a/modules/ROOT/pages/sync-inter-syncgateway-overview.adoc b/modules/ROOT/pages/sync-inter-syncgateway-overview.adoc index 486a2a6af..a2b6ec39c 100644 --- a/modules/ROOT/pages/sync-inter-syncgateway-overview.adoc +++ b/modules/ROOT/pages/sync-inter-syncgateway-overview.adoc @@ -1,7 +1,7 @@ = Inter-Sync Gateway Replication :page-aliases: learn/icr-sgreplicate.adoc, icr-sgreplicate.adoc :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: Use inter-Sync Gateway replication to keep clusters in different mobile data centers in sync. diff --git a/modules/ROOT/pages/sync-inter-syncgateway-run.adoc b/modules/ROOT/pages/sync-inter-syncgateway-run.adoc index e38d4b935..998a7d19e 100644 --- a/modules/ROOT/pages/sync-inter-syncgateway-run.adoc +++ b/modules/ROOT/pages/sync-inter-syncgateway-run.adoc @@ -1,7 +1,7 @@ = Initialize Inter-Sync Gateway Replications :page-aliases: running-replications.adoc, learn/icr-running.adoc, icr-running.adoc :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: Initializing and running inter-Sync Gateway replication diff --git a/modules/ROOT/pages/sync-using-app.adoc b/modules/ROOT/pages/sync-using-app.adoc index b02cd13f4..4ea2f00bf 100644 --- a/modules/ROOT/pages/sync-using-app.adoc +++ b/modules/ROOT/pages/sync-using-app.adoc @@ -1,7 +1,7 @@ = Sync with Couchbase Lite :page-aliases: sync-from-client.adoc :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: -toc :description: pass:q[Use Sync Gateway to sync with Couchbase Lite apps.] :keywords: sync gateway, replication, sync, synchronization, edge, cloud diff --git a/modules/ROOT/pages/sync-with-couchbase-server.adoc b/modules/ROOT/pages/sync-with-couchbase-server.adoc index 24ade7055..e88dbd672 100644 --- a/modules/ROOT/pages/sync-with-couchbase-server.adoc +++ b/modules/ROOT/pages/sync-with-couchbase-server.adoc @@ -1,7 +1,7 @@ = Sync with Couchbase Server :page-aliases: shared-bucket-access.adoc, sync-with-server.adoc :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: :page-content: conceptual :description: Use Sync Gateway to sync Couchbase Server changes securely from cloud to edge diff --git a/modules/ROOT/pages/upgrading.adoc b/modules/ROOT/pages/upgrading.adoc index e4b879bb9..7bd40ba87 100644 --- a/modules/ROOT/pages/upgrading.adoc +++ b/modules/ROOT/pages/upgrading.adoc @@ -20,7 +20,7 @@ = Upgrading Sync Gateway :page-aliases: advance/deploy/upgrade.adoc, upgrade.adoc :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-role: :page-content: procedural :description: This page documents various implementation details and functionalities to consider when performing an upgrade to Sync Gateway {page-component-version}. diff --git a/modules/ROOT/pages/users.adoc b/modules/ROOT/pages/users.adoc index 122f4c388..258a0a144 100644 --- a/modules/ROOT/pages/users.adoc +++ b/modules/ROOT/pages/users.adoc @@ -1,7 +1,7 @@ = Users :page-aliases: learn/users-and-roles.adoc, users-and-roles.adoc :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :description: pass:q[About Sync Gateway _users_ and their role in secure cloud-to-edge enterprise data synchronization.] diff --git a/modules/ROOT/pages/webhooks.adoc b/modules/ROOT/pages/webhooks.adoc index e0b557154..61dce0e6c 100644 --- a/modules/ROOT/pages/webhooks.adoc +++ b/modules/ROOT/pages/webhooks.adoc @@ -1,6 +1,6 @@ = Webhooks :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :description: Introducing Sync Gateway events and event handling with Webhooks include::partial$_std-hdr-sgw.adoc[] diff --git a/modules/ROOT/pages/what-are-tombstones.adoc b/modules/ROOT/pages/what-are-tombstones.adoc index c73141036..4229cc49a 100644 --- a/modules/ROOT/pages/what-are-tombstones.adoc +++ b/modules/ROOT/pages/what-are-tombstones.adoc @@ -1,7 +1,7 @@ = Tombstones :page-aliases: learn/concept-tombstones.adoc, learn/concept-fundamentals-data-tombstones.adoc, learn/what-are-tombstones.adoc :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :page-content: conceptual :description: pass:q[About Sync Gateway _Tombstones_.] diff --git a/modules/ROOT/pages/whatsnew.adoc b/modules/ROOT/pages/whatsnew.adoc index c20fde5e3..eac22e8e6 100644 --- a/modules/ROOT/pages/whatsnew.adoc +++ b/modules/ROOT/pages/whatsnew.adoc @@ -1,7 +1,7 @@ = New at 3.0 BETA :page-aliases: sgw-whatsnew.adoc, whats-new.adoc, what-is-new.adoc :page-edition: {release} -:page-status: {prerelease} +ifdef::prerelease[:page-status: {prerelease}] :description: Couchbase Sync Gateway -- What's new in the latest release :keywords: edge nosql api synchronization replication From aab27f5f0d30bbcf77be229d339120007d87451a Mon Sep 17 00:00:00 2001 From: ibsoln <52778946+ibsoln@users.noreply.github.com> Date: Fri, 7 Jan 2022 16:23:43 +0000 Subject: [PATCH 03/19] QF220007-1 -- Remove edition text from page titles --- antora.yml | 4 ++-- modules/ROOT/pages/access-control-concepts.adoc | 2 +- .../ROOT/pages/access-control-how-assign-users-to-roles.adoc | 2 +- .../pages/access-control-how-control-document-access.adoc | 2 +- modules/ROOT/pages/access-control-how-create-roles.adoc | 2 +- modules/ROOT/pages/access-control-how-create-users.adoc | 2 +- .../access-control-how-use-xattrs-for-access-grants.adoc | 2 +- modules/ROOT/pages/access-control-how-verify-access.adoc | 2 +- modules/ROOT/pages/access-control-how.adoc | 2 +- modules/ROOT/pages/access-control-model.adoc | 2 +- modules/ROOT/pages/authentication-certs.adoc | 2 +- modules/ROOT/pages/authentication-users.adoc | 2 +- modules/ROOT/pages/auto-purge-channel-access-revocation.adoc | 2 +- modules/ROOT/pages/changes-feed.adoc | 2 +- modules/ROOT/pages/channels.adoc | 2 +- modules/ROOT/pages/command-line-options.adoc | 2 +- modules/ROOT/pages/compatibility.adoc | 2 +- modules/ROOT/pages/configuration-environment-variables.adoc | 2 +- modules/ROOT/pages/configuration-javascript-functions.adoc | 2 +- modules/ROOT/pages/configuration-overview.adoc | 2 +- modules/ROOT/pages/configuration-properties-legacy.adoc | 2 +- modules/ROOT/pages/configuration-rest-api.adoc | 2 +- modules/ROOT/pages/configuration-schema-access-control.adoc | 2 +- modules/ROOT/pages/configuration-schema-bootstrap.adoc | 2 +- modules/ROOT/pages/configuration-schema-database.adoc | 2 +- modules/ROOT/pages/configuration-schema-db-security.adoc | 2 +- modules/ROOT/pages/configuration-schema-import-filter.adoc | 2 +- modules/ROOT/pages/configuration-schema-isgr.adoc | 2 +- modules/ROOT/pages/conflict-resolution.adoc | 2 +- modules/ROOT/pages/couchbase-mobile-index.adoc | 2 +- modules/ROOT/pages/data-modeling.adoc | 2 +- modules/ROOT/pages/database-offline.adoc | 2 +- modules/ROOT/pages/delta-sync.adoc | 2 +- modules/ROOT/pages/deploy-cluster-to-kubernetes.adoc | 2 +- modules/ROOT/pages/deploy-dr-cluster.adoc | 2 +- modules/ROOT/pages/deployment.adoc | 2 +- modules/ROOT/pages/get-started-install.adoc | 2 +- modules/ROOT/pages/get-started-prepare.adoc | 2 +- modules/ROOT/pages/get-started-verify-install.adoc | 2 +- modules/ROOT/pages/glossary.adoc | 2 +- modules/ROOT/pages/import-filter.adoc | 2 +- modules/ROOT/pages/indexing.adoc | 2 +- modules/ROOT/pages/integrating-external-stores.adoc | 2 +- modules/ROOT/pages/introduction.adoc | 2 +- modules/ROOT/pages/load-balancer.adoc | 2 +- modules/ROOT/pages/logging.adoc | 2 +- modules/ROOT/pages/managing-tombstones.adoc | 2 +- modules/ROOT/pages/os-level-tuning.adoc | 2 +- modules/ROOT/pages/release-notes.adoc | 2 +- modules/ROOT/pages/rest-api-access.adoc | 2 +- modules/ROOT/pages/rest-api-admin.adoc | 2 +- modules/ROOT/pages/rest-api-metrics.adoc | 2 +- modules/ROOT/pages/rest-api.adoc | 2 +- modules/ROOT/pages/resync.adoc | 2 +- modules/ROOT/pages/revisions.adoc | 2 +- modules/ROOT/pages/roles.adoc | 2 +- modules/ROOT/pages/secure-sgw-access.adoc | 2 +- modules/ROOT/pages/server-compatibility-collections.adoc | 2 +- modules/ROOT/pages/server-compatibility-eventing.adoc | 2 +- modules/ROOT/pages/server-compatibility-transactions.adoc | 2 +- modules/ROOT/pages/server-compatibility-xdcr.adoc | 2 +- modules/ROOT/pages/setting-up-dr-cluster.adoc | 2 +- modules/ROOT/pages/sgcollect-info.adoc | 2 +- modules/ROOT/pages/stats-monitoring.adoc | 2 +- modules/ROOT/pages/stats-prometheus.adoc | 2 +- modules/ROOT/pages/supported-environments.adoc | 2 +- modules/ROOT/pages/sync-function-api-access-cmd.adoc | 2 +- modules/ROOT/pages/sync-function-api-channel-cmd.adoc | 2 +- modules/ROOT/pages/sync-function-api-expiry-cmd.adoc | 2 +- modules/ROOT/pages/sync-function-api-require-access-cmd.adoc | 2 +- modules/ROOT/pages/sync-function-api-require-admin-cmd.adoc | 2 +- modules/ROOT/pages/sync-function-api-require-role-cmd.adoc | 2 +- modules/ROOT/pages/sync-function-api-require-user-cmd.adoc | 2 +- modules/ROOT/pages/sync-function-api-role-cmd.adoc | 2 +- modules/ROOT/pages/sync-function-api-throw-cmd.adoc | 2 +- modules/ROOT/pages/sync-function-api.adoc | 2 +- modules/ROOT/pages/sync-function-overview.adoc | 2 +- modules/ROOT/pages/sync-function.adoc | 2 +- .../pages/sync-inter-syncgateway-conflict-resolution.adoc | 2 +- modules/ROOT/pages/sync-inter-syncgateway-manage.adoc | 2 +- modules/ROOT/pages/sync-inter-syncgateway-monitor.adoc | 2 +- modules/ROOT/pages/sync-inter-syncgateway-overview.adoc | 2 +- modules/ROOT/pages/sync-inter-syncgateway-run.adoc | 2 +- modules/ROOT/pages/sync-using-app.adoc | 2 +- modules/ROOT/pages/sync-with-couchbase-server.adoc | 2 +- modules/ROOT/pages/upgrading.adoc | 2 +- modules/ROOT/pages/users.adoc | 2 +- modules/ROOT/pages/webhooks.adoc | 2 +- modules/ROOT/pages/what-are-tombstones.adoc | 2 +- modules/ROOT/pages/whatsnew.adoc | 2 +- 90 files changed, 91 insertions(+), 91 deletions(-) diff --git a/antora.yml b/antora.yml index e7d3b4d20..ec47a543c 100644 --- a/antora.yml +++ b/antora.yml @@ -1,14 +1,14 @@ name: sync-gateway title: Sync Gateway version: '3.0' -prerelease: beta +# prerelease: beta display-version: '3.0.0 (beta)' start_page: ROOT:index.adoc nav: - modules/ROOT/nav.adoc asciidoc: attributes: - prerelease: beta + # prerelease: beta is-beta: true release: '3.0' major: 3 diff --git a/modules/ROOT/pages/access-control-concepts.adoc b/modules/ROOT/pages/access-control-concepts.adoc index 95b8f0bfe..9991c6232 100644 --- a/modules/ROOT/pages/access-control-concepts.adoc +++ b/modules/ROOT/pages/access-control-concepts.adoc @@ -19,7 +19,7 @@ // INCLUSION USAGE // END PAGE DEFINITION :page-partial: -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :description: An introduction to the key concepts behind the provision of effective access control in Sync Gateway diff --git a/modules/ROOT/pages/access-control-how-assign-users-to-roles.adoc b/modules/ROOT/pages/access-control-how-assign-users-to-roles.adoc index 0d48b6e6e..1c432265c 100644 --- a/modules/ROOT/pages/access-control-how-assign-users-to-roles.adoc +++ b/modules/ROOT/pages/access-control-how-assign-users-to-roles.adoc @@ -1,5 +1,5 @@ = How to Assign Users to Roles -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :description: pass:q[How to assign a Sync Gateway _User_ one or more roles for secure access control in cloud-to-edge enterprise data synchronization.] :idprefix: diff --git a/modules/ROOT/pages/access-control-how-control-document-access.adoc b/modules/ROOT/pages/access-control-how-control-document-access.adoc index 45b3f1c0e..031f9a9be 100644 --- a/modules/ROOT/pages/access-control-how-control-document-access.adoc +++ b/modules/ROOT/pages/access-control-how-control-document-access.adoc @@ -1,5 +1,5 @@ = Control Document Access -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :description: pass:q[How to control read/write/delete access using Sync Gateway's Sync Function API to ensure secure access to data in cloud-to-edge enterprise data synchronization.] :idprefix: diff --git a/modules/ROOT/pages/access-control-how-create-roles.adoc b/modules/ROOT/pages/access-control-how-create-roles.adoc index b0411bc30..ff8958dce 100644 --- a/modules/ROOT/pages/access-control-how-create-roles.adoc +++ b/modules/ROOT/pages/access-control-how-create-roles.adoc @@ -1,5 +1,5 @@ = How to Create a Role -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :description: pass:q[How to create a Sync Gateway _Role_ for secure access control in cloud-to-edge enterprise data synchronization.] :idprefix: diff --git a/modules/ROOT/pages/access-control-how-create-users.adoc b/modules/ROOT/pages/access-control-how-create-users.adoc index 2510be373..7f7534f04 100644 --- a/modules/ROOT/pages/access-control-how-create-users.adoc +++ b/modules/ROOT/pages/access-control-how-create-users.adoc @@ -1,5 +1,5 @@ = How to Create a User -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :description: pass:q[How to create a Sync Gateway user for secure access control in cloud-to-edge enterprise data synchronization.] :idprefix: diff --git a/modules/ROOT/pages/access-control-how-use-xattrs-for-access-grants.adoc b/modules/ROOT/pages/access-control-how-use-xattrs-for-access-grants.adoc index c2eedd2ec..dd10daebc 100644 --- a/modules/ROOT/pages/access-control-how-use-xattrs-for-access-grants.adoc +++ b/modules/ROOT/pages/access-control-how-use-xattrs-for-access-grants.adoc @@ -1,5 +1,5 @@ = Use Extended Attributes (XATTRs) for Access Grants -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :description: pass:q[How to set access grants using extended attributes (xattrs).] :keywords: access control, document routing, sync diff --git a/modules/ROOT/pages/access-control-how-verify-access.adoc b/modules/ROOT/pages/access-control-how-verify-access.adoc index bfb86bd5f..162a5885b 100644 --- a/modules/ROOT/pages/access-control-how-verify-access.adoc +++ b/modules/ROOT/pages/access-control-how-verify-access.adoc @@ -1,5 +1,5 @@ = How to Verify Access -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :description: pass:q[How to verify Sync Gateway access to data in cloud-to-edge enterprise data synchronization.] :idprefix: diff --git a/modules/ROOT/pages/access-control-how.adoc b/modules/ROOT/pages/access-control-how.adoc index 568867407..d87913649 100644 --- a/modules/ROOT/pages/access-control-how.adoc +++ b/modules/ROOT/pages/access-control-how.adoc @@ -1,5 +1,5 @@ = Access Control How-To -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] // BEGIN -- PAGE -- access-control-model.adoc // BEGIN PAGE DEFINITION diff --git a/modules/ROOT/pages/access-control-model.adoc b/modules/ROOT/pages/access-control-model.adoc index c5858fd73..b52cc0069 100644 --- a/modules/ROOT/pages/access-control-model.adoc +++ b/modules/ROOT/pages/access-control-model.adoc @@ -1,5 +1,5 @@ = Access Control Model -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :description: pass:q[An introduction to access control in Sync Gateway] diff --git a/modules/ROOT/pages/authentication-certs.adoc b/modules/ROOT/pages/authentication-certs.adoc index a025b3fcd..92a83fac0 100644 --- a/modules/ROOT/pages/authentication-certs.adoc +++ b/modules/ROOT/pages/authentication-certs.adoc @@ -1,6 +1,6 @@ = TLS Certificate Authentication :page-aliases: deployment-considerations,configuring-ssl, security.adoc -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :description: Securing Couchbase Sync Gateway with TLS Authentication :url-curl: https://curl.haxx.se/ diff --git a/modules/ROOT/pages/authentication-users.adoc b/modules/ROOT/pages/authentication-users.adoc index 4bf004212..edeadbfb8 100644 --- a/modules/ROOT/pages/authentication-users.adoc +++ b/modules/ROOT/pages/authentication-users.adoc @@ -1,6 +1,6 @@ = User Authentication :page-aliases: learn/authentication.adoc, authentication.adoc -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :description: Access Sync Gateway securely to sync from cloud to edge diff --git a/modules/ROOT/pages/auto-purge-channel-access-revocation.adoc b/modules/ROOT/pages/auto-purge-channel-access-revocation.adoc index a67e9bf58..bca48bcba 100644 --- a/modules/ROOT/pages/auto-purge-channel-access-revocation.adoc +++ b/modules/ROOT/pages/auto-purge-channel-access-revocation.adoc @@ -1,6 +1,6 @@ = Auto-Purge on Channel Access Revocation :page-aliases: anchor-auto-purge-channel-access-revocation -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :description: pass:q[Auto-purge behavior on loss of access to document channels] :keywords: access control, document routing, sync, auto-purge diff --git a/modules/ROOT/pages/changes-feed.adoc b/modules/ROOT/pages/changes-feed.adoc index 14f5ce462..b78e990a6 100644 --- a/modules/ROOT/pages/changes-feed.adoc +++ b/modules/ROOT/pages/changes-feed.adoc @@ -1,6 +1,6 @@ = Changes Feed :page-aliases: server-integration.adoc -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :description: Integrating Sync Gateway with other servers :idprefix: diff --git a/modules/ROOT/pages/channels.adoc b/modules/ROOT/pages/channels.adoc index 8ff740724..f150e9957 100644 --- a/modules/ROOT/pages/channels.adoc +++ b/modules/ROOT/pages/channels.adoc @@ -1,6 +1,6 @@ = Channels :page-aliases: data-routing.adoc, learn/sync-gateway-channels.adoc, sync-gateway-channels.adoc -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :description: pass:q[About Sync Gateway _Channels_ and their part in data routing and access control for secure cloud-to-edge enterprise data synchronization.] :keywords: access control, document routing, sync diff --git a/modules/ROOT/pages/command-line-options.adoc b/modules/ROOT/pages/command-line-options.adoc index 95f7e90c8..91b55adf5 100644 --- a/modules/ROOT/pages/command-line-options.adoc +++ b/modules/ROOT/pages/command-line-options.adoc @@ -1,5 +1,5 @@ = Using the Command Line -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :Description: Start a Sync Gateway instance using command line options and securely sync enterprise data from cloud to edge diff --git a/modules/ROOT/pages/compatibility.adoc b/modules/ROOT/pages/compatibility.adoc index 7c59b3097..e03f47f74 100644 --- a/modules/ROOT/pages/compatibility.adoc +++ b/modules/ROOT/pages/compatibility.adoc @@ -1,6 +1,6 @@ = Compatibility :page-aliases: prodnotes/pn-compatibility.adoc -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: Couchbase Sync Gateway diff --git a/modules/ROOT/pages/configuration-environment-variables.adoc b/modules/ROOT/pages/configuration-environment-variables.adoc index ef094d017..6c22cc254 100644 --- a/modules/ROOT/pages/configuration-environment-variables.adoc +++ b/modules/ROOT/pages/configuration-environment-variables.adoc @@ -1,5 +1,5 @@ = Configuration Environment Variables -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: :page-content: conceptual diff --git a/modules/ROOT/pages/configuration-javascript-functions.adoc b/modules/ROOT/pages/configuration-javascript-functions.adoc index 2e0bdb882..c23a1a67a 100644 --- a/modules/ROOT/pages/configuration-javascript-functions.adoc +++ b/modules/ROOT/pages/configuration-javascript-functions.adoc @@ -1,6 +1,6 @@ // BEGIN -- PAGE -- config-external-javascript-functions.adoc = Using External Javascript Functions -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: :page-content-type: conceptual diff --git a/modules/ROOT/pages/configuration-overview.adoc b/modules/ROOT/pages/configuration-overview.adoc index f26f0e52c..b990551b7 100644 --- a/modules/ROOT/pages/configuration-overview.adoc +++ b/modules/ROOT/pages/configuration-overview.adoc @@ -1,5 +1,5 @@ = Configuration Overview -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-content: conceptual :description: pass:q,a[How to configure _Sync{nbsp}Gateway_ for secure cloud-to-edge data sync] diff --git a/modules/ROOT/pages/configuration-properties-legacy.adoc b/modules/ROOT/pages/configuration-properties-legacy.adoc index b2e5c880c..81b00415f 100644 --- a/modules/ROOT/pages/configuration-properties-legacy.adoc +++ b/modules/ROOT/pages/configuration-properties-legacy.adoc @@ -1,6 +1,6 @@ = Legacy Pre-3.0 BETA Configuration :page-aliases: configuration-properties.adoc, refer/config-properties.adoc, config-properties.adoc -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-status: Legacy Content :page-role: diff --git a/modules/ROOT/pages/configuration-rest-api.adoc b/modules/ROOT/pages/configuration-rest-api.adoc index 8f3007c4c..9737bc604 100644 --- a/modules/ROOT/pages/configuration-rest-api.adoc +++ b/modules/ROOT/pages/configuration-rest-api.adoc @@ -1,5 +1,5 @@ = Configuration Rest API -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: :page-content: conceptual diff --git a/modules/ROOT/pages/configuration-schema-access-control.adoc b/modules/ROOT/pages/configuration-schema-access-control.adoc index 3b8e407cb..a32e52515 100644 --- a/modules/ROOT/pages/configuration-schema-access-control.adoc +++ b/modules/ROOT/pages/configuration-schema-access-control.adoc @@ -1,5 +1,5 @@ = Access Control Configuration -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :description: Using Sync Gateway's Admin REST API and the Sync function to configure access diff --git a/modules/ROOT/pages/configuration-schema-bootstrap.adoc b/modules/ROOT/pages/configuration-schema-bootstrap.adoc index 75fad09ee..fc9fb803f 100644 --- a/modules/ROOT/pages/configuration-schema-bootstrap.adoc +++ b/modules/ROOT/pages/configuration-schema-bootstrap.adoc @@ -1,6 +1,6 @@ = Bootstrap Configuration -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: :page-content: reference diff --git a/modules/ROOT/pages/configuration-schema-database.adoc b/modules/ROOT/pages/configuration-schema-database.adoc index 163d73eb1..4940f9dc1 100644 --- a/modules/ROOT/pages/configuration-schema-database.adoc +++ b/modules/ROOT/pages/configuration-schema-database.adoc @@ -1,5 +1,5 @@ = Database Configuration -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role" :description: Using Sync Gateway's Admin REST API to configure and manage databases diff --git a/modules/ROOT/pages/configuration-schema-db-security.adoc b/modules/ROOT/pages/configuration-schema-db-security.adoc index b97c12839..40e03104d 100644 --- a/modules/ROOT/pages/configuration-schema-db-security.adoc +++ b/modules/ROOT/pages/configuration-schema-db-security.adoc @@ -1,5 +1,5 @@ = Database Security -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-content: Reference :description: Using Sync Gateway's Admin REST API to configure users and roles diff --git a/modules/ROOT/pages/configuration-schema-import-filter.adoc b/modules/ROOT/pages/configuration-schema-import-filter.adoc index 56fccb02f..61c82fa52 100644 --- a/modules/ROOT/pages/configuration-schema-import-filter.adoc +++ b/modules/ROOT/pages/configuration-schema-import-filter.adoc @@ -1,5 +1,5 @@ = Import Filter Configuration -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :description: Using Sync Gateway's Admin REST API and the Import Filter function to configure access diff --git a/modules/ROOT/pages/configuration-schema-isgr.adoc b/modules/ROOT/pages/configuration-schema-isgr.adoc index 5d2242b80..65883c21a 100644 --- a/modules/ROOT/pages/configuration-schema-isgr.adoc +++ b/modules/ROOT/pages/configuration-schema-isgr.adoc @@ -1,5 +1,5 @@ = Inter-Sync{nbsp}Gateway Replication Configuration -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: :page-content: Reference diff --git a/modules/ROOT/pages/conflict-resolution.adoc b/modules/ROOT/pages/conflict-resolution.adoc index 4bd8e38be..c4000dc50 100644 --- a/modules/ROOT/pages/conflict-resolution.adoc +++ b/modules/ROOT/pages/conflict-resolution.adoc @@ -18,7 +18,7 @@ // END PAGE DEFINITION = Conflict Resolution :page-aliases: advance/conflict-resolution.adoc -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: Couchbase Sync Gateway's conflict resolution approach diff --git a/modules/ROOT/pages/couchbase-mobile-index.adoc b/modules/ROOT/pages/couchbase-mobile-index.adoc index eed0b9dcc..56841b8fc 100644 --- a/modules/ROOT/pages/couchbase-mobile-index.adoc +++ b/modules/ROOT/pages/couchbase-mobile-index.adoc @@ -1,6 +1,6 @@ = Couchbase Mobile :description: Couchbase Mobile delivers the power of NoSQL to the Edge -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: -toc diff --git a/modules/ROOT/pages/data-modeling.adoc b/modules/ROOT/pages/data-modeling.adoc index d52663d3b..eb5b9f91e 100644 --- a/modules/ROOT/pages/data-modeling.adoc +++ b/modules/ROOT/pages/data-modeling.adoc @@ -1,5 +1,5 @@ = Data Modelling -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: pass:q[_Couchbase Sync Gateway's_ data model; for secure cloud-to-edge synchronization of enterprise data.] diff --git a/modules/ROOT/pages/database-offline.adoc b/modules/ROOT/pages/database-offline.adoc index 3097a5b8b..51e83ac0d 100644 --- a/modules/ROOT/pages/database-offline.adoc +++ b/modules/ROOT/pages/database-offline.adoc @@ -1,5 +1,5 @@ = Take Database Offline/Online -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: :page-content: conceptual diff --git a/modules/ROOT/pages/delta-sync.adoc b/modules/ROOT/pages/delta-sync.adoc index c52050710..6744125ea 100644 --- a/modules/ROOT/pages/delta-sync.adoc +++ b/modules/ROOT/pages/delta-sync.adoc @@ -1,5 +1,5 @@ = Delta Sync -:page-edition: {release} {enterprise} +ifdef::show_edition[:page-edition: {release}] {enterprise} ifdef::prerelease[:page-status: {prerelease}] :page-role: :page-content: conceptual diff --git a/modules/ROOT/pages/deploy-cluster-to-kubernetes.adoc b/modules/ROOT/pages/deploy-cluster-to-kubernetes.adoc index a24d79497..d9264510e 100644 --- a/modules/ROOT/pages/deploy-cluster-to-kubernetes.adoc +++ b/modules/ROOT/pages/deploy-cluster-to-kubernetes.adoc @@ -19,7 +19,7 @@ // END PAGE DEFINITION = Deploying a Sync Gateway Cluster :page-aliases: deploy-cluster.adoc, advance/kubernetes/deploy-cluster.adoc -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: :page-content: procedural diff --git a/modules/ROOT/pages/deploy-dr-cluster.adoc b/modules/ROOT/pages/deploy-dr-cluster.adoc index 887c61de5..d0793e587 100644 --- a/modules/ROOT/pages/deploy-dr-cluster.adoc +++ b/modules/ROOT/pages/deploy-dr-cluster.adoc @@ -1,5 +1,5 @@ = Using XDCR for Disaster Recovery in Mobile Clusters -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: :page-partial: diff --git a/modules/ROOT/pages/deployment.adoc b/modules/ROOT/pages/deployment.adoc index 8af6d3fb5..be6a010a0 100644 --- a/modules/ROOT/pages/deployment.adoc +++ b/modules/ROOT/pages/deployment.adoc @@ -1,5 +1,5 @@ = Deployment -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: When deploying your application for production use you will need to use Sync Gateway and Couchbase Server. diff --git a/modules/ROOT/pages/get-started-install.adoc b/modules/ROOT/pages/get-started-install.adoc index 8e21fcf84..0bdcfa52e 100644 --- a/modules/ROOT/pages/get-started-install.adoc +++ b/modules/ROOT/pages/get-started-install.adoc @@ -1,6 +1,6 @@ = Install Sync Gateway :page-aliases: getting-started, start/get-started-install.adoc -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: :Description: pass:q[Install a _Sync Gateway_ instance; securely sync enterprise data from cloud to edge.] diff --git a/modules/ROOT/pages/get-started-prepare.adoc b/modules/ROOT/pages/get-started-prepare.adoc index d56dba1de..708e1becb 100644 --- a/modules/ROOT/pages/get-started-prepare.adoc +++ b/modules/ROOT/pages/get-started-prepare.adoc @@ -1,6 +1,6 @@ = Prepare to Install Sync Gateway :page-aliases: start/get-started-prepare.adoc -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: pass:q[Prerequisites for installing _Sync Gateway_; to synchronize your data from cloud to edge.] diff --git a/modules/ROOT/pages/get-started-verify-install.adoc b/modules/ROOT/pages/get-started-verify-install.adoc index 67aa18d08..f92c3114c 100644 --- a/modules/ROOT/pages/get-started-verify-install.adoc +++ b/modules/ROOT/pages/get-started-verify-install.adoc @@ -1,6 +1,6 @@ = Verify a Sync Gateway Install :page-aliases: start/get-started-verify-install.adoc -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: :Description: pass:q[Configure and verify your _Sync Gateway_ installation; securely sync enterprise data from cloud to edge!] diff --git a/modules/ROOT/pages/glossary.adoc b/modules/ROOT/pages/glossary.adoc index 4be63f96a..0dde01535 100644 --- a/modules/ROOT/pages/glossary.adoc +++ b/modules/ROOT/pages/glossary.adoc @@ -1,7 +1,7 @@ = Glossary :page-aliases: sgw-glossary, refer/refer-sgw-glossary.adoc :page-partial: -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: -toc :description: Sync Gateway Glossary of Terms diff --git a/modules/ROOT/pages/import-filter.adoc b/modules/ROOT/pages/import-filter.adoc index b385f2426..1039820da 100644 --- a/modules/ROOT/pages/import-filter.adoc +++ b/modules/ROOT/pages/import-filter.adoc @@ -19,7 +19,7 @@ // END PAGE DEFINITION = Import Filter :page-aliases: advance/adv-sgw-cfg-import-filter.adoc, import-filters -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: :page-type: procedural diff --git a/modules/ROOT/pages/indexing.adoc b/modules/ROOT/pages/indexing.adoc index 4945daf1f..ce16df62e 100644 --- a/modules/ROOT/pages/indexing.adoc +++ b/modules/ROOT/pages/indexing.adoc @@ -1,5 +1,5 @@ = Indexes versus Views -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: :Description: Using Indexes to minimize system downtime in Sync Gateway diff --git a/modules/ROOT/pages/integrating-external-stores.adoc b/modules/ROOT/pages/integrating-external-stores.adoc index 6add2b068..658b1026e 100644 --- a/modules/ROOT/pages/integrating-external-stores.adoc +++ b/modules/ROOT/pages/integrating-external-stores.adoc @@ -1,5 +1,5 @@ = Integrating External Stores -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: Introducing Sync Gateway integration with external data stores diff --git a/modules/ROOT/pages/introduction.adoc b/modules/ROOT/pages/introduction.adoc index aa7e4701d..094a79212 100644 --- a/modules/ROOT/pages/introduction.adoc +++ b/modules/ROOT/pages/introduction.adoc @@ -1,5 +1,5 @@ = Introduction -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: :page-partial: diff --git a/modules/ROOT/pages/load-balancer.adoc b/modules/ROOT/pages/load-balancer.adoc index 906d9444c..1e523f0b7 100644 --- a/modules/ROOT/pages/load-balancer.adoc +++ b/modules/ROOT/pages/load-balancer.adoc @@ -1,5 +1,5 @@ = Load Balancer -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: Load balancing replications diff --git a/modules/ROOT/pages/logging.adoc b/modules/ROOT/pages/logging.adoc index d5141a8b4..79ca6c431 100644 --- a/modules/ROOT/pages/logging.adoc +++ b/modules/ROOT/pages/logging.adoc @@ -19,7 +19,7 @@ // END PAGE DEFINITION = Logging :page-aliases: advance/logging.adoc -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: Introducing Couchbase Sync Gateway's logging functionality diff --git a/modules/ROOT/pages/managing-tombstones.adoc b/modules/ROOT/pages/managing-tombstones.adoc index a42c5a45e..e871a8cd9 100644 --- a/modules/ROOT/pages/managing-tombstones.adoc +++ b/modules/ROOT/pages/managing-tombstones.adoc @@ -1,6 +1,6 @@ = Managing Tombstones :description: pass:q[Sync Gateway's _Tombstones_ are the means by which mobile clients are notified that a document has been deleted.] -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: :page-content: conceptual diff --git a/modules/ROOT/pages/os-level-tuning.adoc b/modules/ROOT/pages/os-level-tuning.adoc index cbe84f0c4..0c49d0395 100644 --- a/modules/ROOT/pages/os-level-tuning.adoc +++ b/modules/ROOT/pages/os-level-tuning.adoc @@ -1,5 +1,5 @@ = OS Level Tuning -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: pass:q[OS level parameters you can use to tune _Couchbase Sync Gateway] diff --git a/modules/ROOT/pages/release-notes.adoc b/modules/ROOT/pages/release-notes.adoc index 9021bb462..bc8bfac96 100644 --- a/modules/ROOT/pages/release-notes.adoc +++ b/modules/ROOT/pages/release-notes.adoc @@ -1,6 +1,6 @@ = Release Notes :page-aliases: prodnotes/pn-releasenotes.adoc, prodnotes/pn-release-notes.adoc, releasenotes.adoc, pn-release-notes.adoc -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: Couchbase Sync Gateway diff --git a/modules/ROOT/pages/rest-api-access.adoc b/modules/ROOT/pages/rest-api-access.adoc index 2f17be0b9..98e92e21b 100644 --- a/modules/ROOT/pages/rest-api-access.adoc +++ b/modules/ROOT/pages/rest-api-access.adoc @@ -1,7 +1,7 @@ = Secure API Access :page-aliases: start/rest-api-access.adoc, start/get-started-access-rest-api.adoc, get-started-access-rest-api.adoc :page-partials: -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: :page-content: Reference diff --git a/modules/ROOT/pages/rest-api-admin.adoc b/modules/ROOT/pages/rest-api-admin.adoc index fdc9aad9f..22f7aa604 100644 --- a/modules/ROOT/pages/rest-api-admin.adoc +++ b/modules/ROOT/pages/rest-api-admin.adoc @@ -1,6 +1,6 @@ = Admin REST API :page-aliases: refer/rest-api-admin.adoc -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: -toc :page-content: Reference diff --git a/modules/ROOT/pages/rest-api-metrics.adoc b/modules/ROOT/pages/rest-api-metrics.adoc index 9d701fb8c..c79160fbc 100644 --- a/modules/ROOT/pages/rest-api-metrics.adoc +++ b/modules/ROOT/pages/rest-api-metrics.adoc @@ -1,6 +1,6 @@ = Metrics REST API :page-aliases: refer/rest-api-metrics.adoc -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: :page-content: conceptual diff --git a/modules/ROOT/pages/rest-api.adoc b/modules/ROOT/pages/rest-api.adoc index 3e62cd138..01c2f8243 100644 --- a/modules/ROOT/pages/rest-api.adoc +++ b/modules/ROOT/pages/rest-api.adoc @@ -1,7 +1,7 @@ = Public REST API :page-aliases: refer/rest-api-public.adoc :page-role: -toc -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-content: conceptual :description: Description of the Sync Gateway Rest API' diff --git a/modules/ROOT/pages/resync.adoc b/modules/ROOT/pages/resync.adoc index d95279bda..a463e7088 100644 --- a/modules/ROOT/pages/resync.adoc +++ b/modules/ROOT/pages/resync.adoc @@ -1,5 +1,5 @@ = Resync -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: Recalculating routing and data access following Sync Function changes diff --git a/modules/ROOT/pages/revisions.adoc b/modules/ROOT/pages/revisions.adoc index d62cf96ac..5f006c3db 100644 --- a/modules/ROOT/pages/revisions.adoc +++ b/modules/ROOT/pages/revisions.adoc @@ -1,5 +1,5 @@ = Revisions -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: :page-content: conceptual diff --git a/modules/ROOT/pages/roles.adoc b/modules/ROOT/pages/roles.adoc index 906bd226c..9567536dd 100644 --- a/modules/ROOT/pages/roles.adoc +++ b/modules/ROOT/pages/roles.adoc @@ -1,6 +1,6 @@ = Roles :page-aliases: learn/roles.adoc -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: :page-content: conceptual diff --git a/modules/ROOT/pages/secure-sgw-access.adoc b/modules/ROOT/pages/secure-sgw-access.adoc index 6a7dcb190..603162ccf 100644 --- a/modules/ROOT/pages/secure-sgw-access.adoc +++ b/modules/ROOT/pages/secure-sgw-access.adoc @@ -1,5 +1,5 @@ = Secure Sync Gateway Access -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: :page-aliases: anchor-secure-sync-gateway-access.adoc diff --git a/modules/ROOT/pages/server-compatibility-collections.adoc b/modules/ROOT/pages/server-compatibility-collections.adoc index edfd5ebf2..bc8529e1f 100644 --- a/modules/ROOT/pages/server-compatibility-collections.adoc +++ b/modules/ROOT/pages/server-compatibility-collections.adoc @@ -1,5 +1,5 @@ = Collections -- Server Compatibility -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: pass:q[How _Sync Gateway_ can work with _Couchbase Server's Collections_] diff --git a/modules/ROOT/pages/server-compatibility-eventing.adoc b/modules/ROOT/pages/server-compatibility-eventing.adoc index 059b61d47..45f631ceb 100644 --- a/modules/ROOT/pages/server-compatibility-eventing.adoc +++ b/modules/ROOT/pages/server-compatibility-eventing.adoc @@ -1,5 +1,5 @@ = Eventing -- Server Compatibility -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: pass:q[How _Sync Gateway_ works with _Couchbase Server's_ _Eventing_ feature] diff --git a/modules/ROOT/pages/server-compatibility-transactions.adoc b/modules/ROOT/pages/server-compatibility-transactions.adoc index f3b060179..a7c5c6150 100644 --- a/modules/ROOT/pages/server-compatibility-transactions.adoc +++ b/modules/ROOT/pages/server-compatibility-transactions.adoc @@ -1,5 +1,5 @@ = Transactions -- Server Compatibility -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: pass:q[How Sync Gateway works with _Couchbase Server Transactions_] diff --git a/modules/ROOT/pages/server-compatibility-xdcr.adoc b/modules/ROOT/pages/server-compatibility-xdcr.adoc index d26822b22..46d9cfe03 100644 --- a/modules/ROOT/pages/server-compatibility-xdcr.adoc +++ b/modules/ROOT/pages/server-compatibility-xdcr.adoc @@ -1,5 +1,5 @@ = XDCR -- Server Compatibility -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: pass:q[How Sync Gateway works with Couchbase Server's _Cross Data Center Replication_ (_XDCR_).] diff --git a/modules/ROOT/pages/setting-up-dr-cluster.adoc b/modules/ROOT/pages/setting-up-dr-cluster.adoc index fb38944d4..9e6e9d4af 100644 --- a/modules/ROOT/pages/setting-up-dr-cluster.adoc +++ b/modules/ROOT/pages/setting-up-dr-cluster.adoc @@ -1,6 +1,6 @@ = Setting up Disaster Recovery :page-layout: article -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: :page-partial: diff --git a/modules/ROOT/pages/sgcollect-info.adoc b/modules/ROOT/pages/sgcollect-info.adoc index 972a73e23..ba1872f4d 100644 --- a/modules/ROOT/pages/sgcollect-info.adoc +++ b/modules/ROOT/pages/sgcollect-info.adoc @@ -1,5 +1,5 @@ = SG Collect Info -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: pass:q[Using _sgcollect_ to gather system information, diagnostics and metrics] diff --git a/modules/ROOT/pages/stats-monitoring.adoc b/modules/ROOT/pages/stats-monitoring.adoc index cec64eab3..b112d577d 100644 --- a/modules/ROOT/pages/stats-monitoring.adoc +++ b/modules/ROOT/pages/stats-monitoring.adoc @@ -1,5 +1,5 @@ = View Statistics and Metrics -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: :page-partial: diff --git a/modules/ROOT/pages/stats-prometheus.adoc b/modules/ROOT/pages/stats-prometheus.adoc index 181c976d9..c35b1c954 100644 --- a/modules/ROOT/pages/stats-prometheus.adoc +++ b/modules/ROOT/pages/stats-prometheus.adoc @@ -1,5 +1,5 @@ = Integrate Prometheus -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: Integrating Sync Gateway and Prometheus for Stats Monitoring and Alerts diff --git a/modules/ROOT/pages/supported-environments.adoc b/modules/ROOT/pages/supported-environments.adoc index a83d0e9a1..6f215f82e 100644 --- a/modules/ROOT/pages/supported-environments.adoc +++ b/modules/ROOT/pages/supported-environments.adoc @@ -18,7 +18,7 @@ // END PAGE DEFINITION = Supported Environments :page-aliases: official-support, supported-os, prodnotes/pn-supported-os.adoc -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: Couchbase Sync Gateway's Supported Operating System and Cloud environments diff --git a/modules/ROOT/pages/sync-function-api-access-cmd.adoc b/modules/ROOT/pages/sync-function-api-access-cmd.adoc index 3b6cfd2b5..84eef6762 100644 --- a/modules/ROOT/pages/sync-function-api-access-cmd.adoc +++ b/modules/ROOT/pages/sync-function-api-access-cmd.adoc @@ -1,5 +1,5 @@ = Access() -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: pass:q[Enabling Sync Gateway data access] diff --git a/modules/ROOT/pages/sync-function-api-channel-cmd.adoc b/modules/ROOT/pages/sync-function-api-channel-cmd.adoc index a38139a5c..2e86c327a 100644 --- a/modules/ROOT/pages/sync-function-api-channel-cmd.adoc +++ b/modules/ROOT/pages/sync-function-api-channel-cmd.adoc @@ -1,5 +1,5 @@ = channel() -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: pass:q[Assigning Sync Gateway _channels_] diff --git a/modules/ROOT/pages/sync-function-api-expiry-cmd.adoc b/modules/ROOT/pages/sync-function-api-expiry-cmd.adoc index 5a5a2f109..13fb74b58 100644 --- a/modules/ROOT/pages/sync-function-api-expiry-cmd.adoc +++ b/modules/ROOT/pages/sync-function-api-expiry-cmd.adoc @@ -1,5 +1,5 @@ = expiry() -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: pass:q[Setting an expiry value on a document in a local database] diff --git a/modules/ROOT/pages/sync-function-api-require-access-cmd.adoc b/modules/ROOT/pages/sync-function-api-require-access-cmd.adoc index 184c5f6f1..8b48e066c 100644 --- a/modules/ROOT/pages/sync-function-api-require-access-cmd.adoc +++ b/modules/ROOT/pages/sync-function-api-require-access-cmd.adoc @@ -1,5 +1,5 @@ = requireAccess() -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: pass:q[Enabling Sync Gateway data access] diff --git a/modules/ROOT/pages/sync-function-api-require-admin-cmd.adoc b/modules/ROOT/pages/sync-function-api-require-admin-cmd.adoc index 06c2dda41..e5a6e5be0 100644 --- a/modules/ROOT/pages/sync-function-api-require-admin-cmd.adoc +++ b/modules/ROOT/pages/sync-function-api-require-admin-cmd.adoc @@ -1,5 +1,5 @@ = requireAdmin() -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: pass:q[Requiring Sync Gateway admin user] diff --git a/modules/ROOT/pages/sync-function-api-require-role-cmd.adoc b/modules/ROOT/pages/sync-function-api-require-role-cmd.adoc index 269156621..cc8f8c291 100644 --- a/modules/ROOT/pages/sync-function-api-require-role-cmd.adoc +++ b/modules/ROOT/pages/sync-function-api-require-role-cmd.adoc @@ -1,5 +1,5 @@ = requireRole() -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: pass:q[Requiring Sync Gateway role] diff --git a/modules/ROOT/pages/sync-function-api-require-user-cmd.adoc b/modules/ROOT/pages/sync-function-api-require-user-cmd.adoc index 804992512..b043f52c3 100644 --- a/modules/ROOT/pages/sync-function-api-require-user-cmd.adoc +++ b/modules/ROOT/pages/sync-function-api-require-user-cmd.adoc @@ -1,5 +1,5 @@ = requireUser() -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: pass:q[Requiring Sync Gateway user] diff --git a/modules/ROOT/pages/sync-function-api-role-cmd.adoc b/modules/ROOT/pages/sync-function-api-role-cmd.adoc index 6a552371f..3f3cfa88f 100644 --- a/modules/ROOT/pages/sync-function-api-role-cmd.adoc +++ b/modules/ROOT/pages/sync-function-api-role-cmd.adoc @@ -1,5 +1,5 @@ = role() -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: pass:q[Assigning Sync Gateway _roles_] diff --git a/modules/ROOT/pages/sync-function-api-throw-cmd.adoc b/modules/ROOT/pages/sync-function-api-throw-cmd.adoc index 567e63193..62485415a 100644 --- a/modules/ROOT/pages/sync-function-api-throw-cmd.adoc +++ b/modules/ROOT/pages/sync-function-api-throw-cmd.adoc @@ -1,5 +1,5 @@ = throw() -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: pass:q[Rejecting a document change in Sync Gateway] diff --git a/modules/ROOT/pages/sync-function-api.adoc b/modules/ROOT/pages/sync-function-api.adoc index 09756d6a8..1f574a729 100644 --- a/modules/ROOT/pages/sync-function-api.adoc +++ b/modules/ROOT/pages/sync-function-api.adoc @@ -22,7 +22,7 @@ // END PAGE DEFINITION = Sync Function API Reference :page-aliases: advance/adv-sgw-cfg-sync-function.adoc -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: :page-partial: diff --git a/modules/ROOT/pages/sync-function-overview.adoc b/modules/ROOT/pages/sync-function-overview.adoc index b86406008..1b05ddd20 100644 --- a/modules/ROOT/pages/sync-function-overview.adoc +++ b/modules/ROOT/pages/sync-function-overview.adoc @@ -1,7 +1,7 @@ = Sync Function Overview :page-layout: article :page-partial: -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: pass:q[Use Sync Gateway's Sync Functions to implement effective data routing and access control in the cloud-to-edge synchronization of enterprise data.] diff --git a/modules/ROOT/pages/sync-function.adoc b/modules/ROOT/pages/sync-function.adoc index b45ffdfd9..8987d07de 100644 --- a/modules/ROOT/pages/sync-function.adoc +++ b/modules/ROOT/pages/sync-function.adoc @@ -1,5 +1,5 @@ = Sync Function Reference -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: :page-content: conceptual diff --git a/modules/ROOT/pages/sync-inter-syncgateway-conflict-resolution.adoc b/modules/ROOT/pages/sync-inter-syncgateway-conflict-resolution.adoc index 028692a3f..3d69d5f5a 100644 --- a/modules/ROOT/pages/sync-inter-syncgateway-conflict-resolution.adoc +++ b/modules/ROOT/pages/sync-inter-syncgateway-conflict-resolution.adoc @@ -1,6 +1,6 @@ = Enhanced Conflict Resolution :page-aliases: learn/icr-conflict-resolution.adoc -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: About conflict resolution in inter-Sync Gateway replication diff --git a/modules/ROOT/pages/sync-inter-syncgateway-manage.adoc b/modules/ROOT/pages/sync-inter-syncgateway-manage.adoc index e59be7603..c8ce77ca0 100644 --- a/modules/ROOT/pages/sync-inter-syncgateway-manage.adoc +++ b/modules/ROOT/pages/sync-inter-syncgateway-manage.adoc @@ -1,6 +1,6 @@ = Manage Inter-Sync Gateway Replications :page-aliases: learn/icr-admin.adoc, icr-admin.adoc -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: Managing inter-Sync Gateway replications diff --git a/modules/ROOT/pages/sync-inter-syncgateway-monitor.adoc b/modules/ROOT/pages/sync-inter-syncgateway-monitor.adoc index c34f03165..a0d923d71 100644 --- a/modules/ROOT/pages/sync-inter-syncgateway-monitor.adoc +++ b/modules/ROOT/pages/sync-inter-syncgateway-monitor.adoc @@ -1,6 +1,6 @@ = Replication Monitoring and Statistics :page-aliases: learn/icr-monitoring.adoc, icr-monitoring.adoc -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: Monitoring inter-Sync Gateway replications diff --git a/modules/ROOT/pages/sync-inter-syncgateway-overview.adoc b/modules/ROOT/pages/sync-inter-syncgateway-overview.adoc index a2b6ec39c..84856e845 100644 --- a/modules/ROOT/pages/sync-inter-syncgateway-overview.adoc +++ b/modules/ROOT/pages/sync-inter-syncgateway-overview.adoc @@ -1,6 +1,6 @@ = Inter-Sync Gateway Replication :page-aliases: learn/icr-sgreplicate.adoc, icr-sgreplicate.adoc -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: Use inter-Sync Gateway replication to keep clusters in different mobile data centers in sync. diff --git a/modules/ROOT/pages/sync-inter-syncgateway-run.adoc b/modules/ROOT/pages/sync-inter-syncgateway-run.adoc index 998a7d19e..99f5db696 100644 --- a/modules/ROOT/pages/sync-inter-syncgateway-run.adoc +++ b/modules/ROOT/pages/sync-inter-syncgateway-run.adoc @@ -1,6 +1,6 @@ = Initialize Inter-Sync Gateway Replications :page-aliases: running-replications.adoc, learn/icr-running.adoc, icr-running.adoc -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: :description: Initializing and running inter-Sync Gateway replication diff --git a/modules/ROOT/pages/sync-using-app.adoc b/modules/ROOT/pages/sync-using-app.adoc index 4ea2f00bf..defd4e97f 100644 --- a/modules/ROOT/pages/sync-using-app.adoc +++ b/modules/ROOT/pages/sync-using-app.adoc @@ -1,6 +1,6 @@ = Sync with Couchbase Lite :page-aliases: sync-from-client.adoc -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: -toc :description: pass:q[Use Sync Gateway to sync with Couchbase Lite apps.] diff --git a/modules/ROOT/pages/sync-with-couchbase-server.adoc b/modules/ROOT/pages/sync-with-couchbase-server.adoc index e88dbd672..2aaaa2968 100644 --- a/modules/ROOT/pages/sync-with-couchbase-server.adoc +++ b/modules/ROOT/pages/sync-with-couchbase-server.adoc @@ -1,6 +1,6 @@ = Sync with Couchbase Server :page-aliases: shared-bucket-access.adoc, sync-with-server.adoc -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: :page-content: conceptual diff --git a/modules/ROOT/pages/upgrading.adoc b/modules/ROOT/pages/upgrading.adoc index 7bd40ba87..fdce065e4 100644 --- a/modules/ROOT/pages/upgrading.adoc +++ b/modules/ROOT/pages/upgrading.adoc @@ -19,7 +19,7 @@ // END PAGE DEFINITION = Upgrading Sync Gateway :page-aliases: advance/deploy/upgrade.adoc, upgrade.adoc -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: :page-content: procedural diff --git a/modules/ROOT/pages/users.adoc b/modules/ROOT/pages/users.adoc index 258a0a144..f4c232d7a 100644 --- a/modules/ROOT/pages/users.adoc +++ b/modules/ROOT/pages/users.adoc @@ -1,6 +1,6 @@ = Users :page-aliases: learn/users-and-roles.adoc, users-and-roles.adoc -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :description: pass:q[About Sync Gateway _users_ and their role in secure cloud-to-edge enterprise data synchronization.] diff --git a/modules/ROOT/pages/webhooks.adoc b/modules/ROOT/pages/webhooks.adoc index 61dce0e6c..497f0938e 100644 --- a/modules/ROOT/pages/webhooks.adoc +++ b/modules/ROOT/pages/webhooks.adoc @@ -1,5 +1,5 @@ = Webhooks -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :description: Introducing Sync Gateway events and event handling with Webhooks diff --git a/modules/ROOT/pages/what-are-tombstones.adoc b/modules/ROOT/pages/what-are-tombstones.adoc index 4229cc49a..c0de4d006 100644 --- a/modules/ROOT/pages/what-are-tombstones.adoc +++ b/modules/ROOT/pages/what-are-tombstones.adoc @@ -1,6 +1,6 @@ = Tombstones :page-aliases: learn/concept-tombstones.adoc, learn/concept-fundamentals-data-tombstones.adoc, learn/what-are-tombstones.adoc -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-content: conceptual :description: pass:q[About Sync Gateway _Tombstones_.] diff --git a/modules/ROOT/pages/whatsnew.adoc b/modules/ROOT/pages/whatsnew.adoc index eac22e8e6..4c4df3d27 100644 --- a/modules/ROOT/pages/whatsnew.adoc +++ b/modules/ROOT/pages/whatsnew.adoc @@ -1,6 +1,6 @@ = New at 3.0 BETA :page-aliases: sgw-whatsnew.adoc, whats-new.adoc, what-is-new.adoc -:page-edition: {release} +ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :description: Couchbase Sync Gateway -- What's new in the latest release :keywords: edge nosql api synchronization replication From ae69ddab8d45f218e0031d41ab41795d3d2bc87c Mon Sep 17 00:00:00 2001 From: ibsoln <52778946+ibsoln@users.noreply.github.com> Date: Fri, 7 Jan 2022 16:38:26 +0000 Subject: [PATCH 04/19] QF220007-1 -- Remove whatsnew beta items --- antora.yml | 6 +++--- modules/ROOT/nav.adoc | 2 +- modules/ROOT/pages/whatsnew.adoc | 10 +++++----- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/antora.yml b/antora.yml index ec47a543c..57bed9381 100644 --- a/antora.yml +++ b/antora.yml @@ -2,17 +2,17 @@ name: sync-gateway title: Sync Gateway version: '3.0' # prerelease: beta -display-version: '3.0.0 (beta)' +display-version: '3.0' start_page: ROOT:index.adoc nav: - modules/ROOT/nav.adoc asciidoc: attributes: # prerelease: beta - is-beta: true + # is-beta: true release: '3.0' major: 3 minor: 0 maintenance: 0 base: 0 - releasetag: beta02 + releasetag: diff --git a/modules/ROOT/nav.adoc b/modules/ROOT/nav.adoc index aa77aaa75..5595a7485 100644 --- a/modules/ROOT/nav.adoc +++ b/modules/ROOT/nav.adoc @@ -6,7 +6,7 @@ // -* xref:whatsnew.adoc[pass:q,a[*_New in {release} {prerelease}_*]] +* xref:whatsnew.adoc[pass:q,a[*_New in {release}_*]] // diff --git a/modules/ROOT/pages/whatsnew.adoc b/modules/ROOT/pages/whatsnew.adoc index 4c4df3d27..a68831470 100644 --- a/modules/ROOT/pages/whatsnew.adoc +++ b/modules/ROOT/pages/whatsnew.adoc @@ -1,4 +1,4 @@ -= New at 3.0 BETA += New at {release} :page-aliases: sgw-whatsnew.adoc, whats-new.adoc, what-is-new.adoc ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] @@ -13,17 +13,17 @@ include::ROOT:partial$_std-hdr-sgw.adoc[] :xref-sgw-bmk-cfg-hideprodvn: xref:{configuration-properties-legacy--page}#hide_product_version[Hide Product Version in Headers] -:param-abstract: This content covers the new features introduced in Sync Gateway {release} {prerelease} +:param-abstract: This content covers the new features introduced in Sync Gateway {release} :param-related: {xref-sgw-pg-release-notes} include::partial$block-abstract.adoc[] -CAUTION: {sgw-t} {release} {prerelease} introduces some breaking changes. + +CAUTION: {sgw-t} {release} introduces some breaking changes. + If you are upgrading from 2.x, please refer to the {upgrading--xref} page. -== Overview of {sgw-t} {release} {prerelease} +== Overview of {sgw-t} {release} -_The public beta of {sgw-te} introduces significant strategic new features and enhancements aimed at boosting the functionality supporting mobile and edge computing solutions._ +_This release of {sgw-te} introduces significant strategic new features and enhancements aimed at boosting the functionality supporting mobile and edge computing solutions._ Most significant are the major architectural enhancements to make {sgw} node configuration simpler, more modular and cluster-aware. The secure, encrypted, REST API endpoints now support persistent configuration changes to simplify management and administration. From 846f75afe6150ced1a1d4b61748376866976aa08 Mon Sep 17 00:00:00 2001 From: ibsoln <52778946+ibsoln@users.noreply.github.com> Date: Thu, 9 Dec 2021 13:20:29 +0000 Subject: [PATCH 05/19] DOC-8066 -- Mobile Attachment Cleanup Tidy up of purging and tombstones content too https://issues.couchbase.com/browse/DOC-8066 (cherry picked from commit 6ed115bee3f836926ba81f59c974d48d4b57f7cb) seperate (cherry picked from commit c926ba62ce6d35391aa44826e3da88815fdc68ee) Config change (cherry picked from commit 4562727eaf5f0998709fd374550d0e4b90c264de) Release notes (cherry picked from commit 62629efdb1d4ef58406f0eeee27d8f9342a65316) DOC-8066 -- Mobile Attachement Cleanup https://issues.couchbase.com/browse/DOC-8066?filter=20185 DOC-8066 -- Mobile Attachment Cleanup Tidy up of purging and tombstones content too https://issues.couchbase.com/browse/DOC-8066 (cherry picked from commit 6ed115bee3f836926ba81f59c974d48d4b57f7cb) DOC-8066 -- Mobile Attachment Cleanup Feedback https://issues.couchbase.com/browse/DOC-8066 (cherry picked from commit 6ed115bee3f836926ba81f59c974d48d4b57f7cb) DOC-8066 -- Mobile Attachment Cleanup Feedback tweak https://issues.couchbase.com/browse/DOC-8066 (cherry picked from commit 6ed115bee3f836926ba81f59c974d48d4b57f7cb) DOC-8066 -- Mobile Attachment Cleanup Feedback tweak 2 https://issues.couchbase.com/browse/DOC-8066 (cherry picked from commit 6ed115bee3f836926ba81f59c974d48d4b57f7cb) DOC-8066 -- Mobile Attachment Cleanup Feedback tweak 3 (current phase) https://issues.couchbase.com/browse/DOC-8066 (cherry picked from commit 6ed115bee3f836926ba81f59c974d48d4b57f7cb) --- .../assets/attachments/rest-api-admin.yaml | 407 +++++++++++++++--- modules/ROOT/nav.adoc | 9 +- modules/ROOT/pages/_partials/_page-index.adoc | 29 +- .../pages/_partials/topic-group-concepts.adoc | 2 +- modules/ROOT/pages/data-modeling.adoc | 2 +- .../ROOT/pages/database-management copy.adoc | 212 +++++++++ modules/ROOT/pages/database-management.adoc | 218 ++++++++++ modules/ROOT/pages/index.adoc | 1 - modules/ROOT/pages/managing-tombstones.adoc | 211 ++++++--- modules/ROOT/pages/release-notes.adoc | 12 +- modules/ROOT/pages/revisions.adoc | 69 ++- ...ombstones.adoc => what-are-tombstones.txt} | 0 12 files changed, 997 insertions(+), 175 deletions(-) create mode 100644 modules/ROOT/pages/database-management copy.adoc create mode 100644 modules/ROOT/pages/database-management.adoc rename modules/ROOT/pages/{what-are-tombstones.adoc => what-are-tombstones.txt} (100%) diff --git a/modules/ROOT/assets/attachments/rest-api-admin.yaml b/modules/ROOT/assets/attachments/rest-api-admin.yaml index df29b0b05..a19941f0d 100644 --- a/modules/ROOT/assets/attachments/rest-api-admin.yaml +++ b/modules/ROOT/assets/attachments/rest-api-admin.yaml @@ -242,7 +242,7 @@ paths: 200: description: Information about active replications. schema: - type: array + items: type: object $ref: '#/definitions/ActiveTaskResponseBody' @@ -341,7 +341,7 @@ paths: 201: description: Documents have been created or updated. The response object is an array with the status for each document submitted in the original request. schema: - type: array + items: $ref: '#/definitions/BulkDocsSuccess' 409: @@ -482,35 +482,71 @@ paths: description: Request completed successfully schema: $ref: '#/definitions/Changes' + /{db}/_compact: + get: + tags: + - 'Database Management' + summary: Get the current status + description: |+ + Use this request to return the current status of a compaction. + + Set the `type` parameter to one of: + - tombstone -- A GET request to /{db}/_compact?type=tombstone returns the number of tombstones removed. + - attachment -- A GET request to /{db}/_compact?type=attachment returns the number of attachments that are removed from the bucket. + + For example: + ```{ + "status": "running", + "start_time": "2021-12-02T18:26:17.086152Z", + "last_error": "", + "marked_attachments": 0, + "purged_attachments": 0, + "compact_id": "68302d2d-2c56-434e-94e0-33c0d0437828", + "phase": "cleanup" + }``` + + parameters: + - $ref: '#/parameters/db' + - $ref: '#/parameters/compaction_type' + + responses: + 200: + $ref: '#/responses/200-db-compact-get' + post: tags: - 'Database Management' summary: Compact the database description: |+ - Use the ```/{db}/_compact``` endpoint to trigger the compaction process, which purges the JSON bodies of non-leaf revisions. This process is also run periodically by the system. + Use the ```/{db}/_compact``` endpoint to start a compaction process. + The process purges the JSON bodies of non-leaf revisions. - Note -- Leaf revisions are not purged during compaction. + Using this endpoint following a failed compaction will trigger a restart of the compact_id at the appropriate phase (where possible). - Compaction does not remove JSON bodies of leaf nodes (conflicting branches). So it is also important to resolve conflicts in your application in order to re-claim disk space. + This process is also run periodically by the system. - **Pre-1.5 behavior differed from the above, as follows:** + Note -- Leaf revisions are not purged during compaction. - 1.3-1.4 -- the parent revision is marked with a 5 minute expiry time, thus calling the `/{db}/_compact` endpoint is not necessary. + Compaction does not remove JSON bodies of leaf nodes (conflicting branches). + So it is also important to resolve conflicts in your application in order to re-claim disk space. - 1.2 -- obsolete revision bodies have to be cleaned up by calling the `/{db}/_compact` endpoint. parameters: - $ref: '#/parameters/db' + - $ref: '#/parameters/compaction_type' + - $ref: '#/parameters/compaction_action' + - $ref: '#/parameters/compaction_dry_run' + - $ref: '#/parameters/compaction_reset' + responses: 200: - description: Request completed successfully. - schema: - type: object - properties: - revs: - type: integer - description: Count of the number of revisions that were compacted away. + $ref: '#/responses/200-db-compact-post-start' + 400: + $ref: '#/responses/400-db-compact-post-bad-request' + 503: + $ref: '#/responses/503-db-compact-post-unavailable' + /{db}/_config: get: tags: @@ -655,36 +691,67 @@ paths: - Document summary: Get attachment description: |+ - This request retrieves a file attachment associated with the document. The raw data of the associated attachment is returned (just as if you were accessing a static file). The Content-Type response header is the same content type set when the document attachment was added to the database. + Use this request to get the file attachment associated with a document. + It returns the raw data of the associated attachmen, just as if you were accessing a static file. + + The Content-Type response header is the same content type set when the document attachment was added to the database. + + To remove an attachment from a document, simply update the `_attachments` dictionary of the document in the PUT "/{db}/{id}" request. + + Use the `meta` parameter to request that only the document ID of the attachment blob be returned - To remove an attachment from a document, simply update the `_attachments` dictionary of the document in the PUT "/{db}/{id}" request. From then on, the attachment will not be replicated but will still reside in the Couchbase Server bucket (see open ticket [1648](https://github.com/couchbase/sync_gateway/issues/1648). parameters: - $ref: '#/parameters/db' - $ref: '#/parameters/doc' - $ref: '#/parameters/attachment' - $ref: '#/parameters/rev' + - in: query + name: meta + type: boolean + description: |+ + If `true` only the document ID of the attachment blob is returned in the response body + default: false + responses: 200: description: The message body contains the attachment, in the format specified in the Content-Type header. schema: type: string format: binary + example: |+ + GET /{db}/{doc}/{attachment}?meta=true + { + "content_type": "text/plain", + "length": 2, + "key": "_sync:att2:uU0nuZNNPgilLlLX2n2r+sSE7+N6U4DukIj3rOLvzek=:sha1-Kq5sNclPz7QV2+lfQIuc6R7oRu0=" + } + 304: description: Not Modified, the attachment wasn't modified if ETag equals the If-None-Match header + 400: + description: Bad Request -- A non boolean value was supplied for the meta parameter. 404: description: Not Found, the specified database, document or attachment was not found. + + put: tags: - Document - summary: Add or update attachment + summary: Add or update a document attachment description: |+ - This request adds or updates the supplied request content as an attachment to the specified document, the maximum content size of an attachment is 20MB. The attachment name must be a URL-encoded string (the file name). You must also supply either the rev query parameter or the If-Match HTTP header for validation, and the Content-Type headers (to set the attachment content type). + Use this request to add or update the supplied request content as an attachment to the specified document. - When uploading an attachment using an existing attachment name, the corresponding stored content of the database will be updated. Because you must supply the revision information to add an attachment to the document, this serves as validation to update the existing attachment. + - The maximum content size of an attachment is 20MB. + - The attachment name must be a URL-encoded string (the file name). + - You must also supply either the rev query parameter or the If-Match HTTP header for validation, and the Content-Type headers (to set the attachment content type). - Uploading an attachment updates the corresponding document revision. Revisions are tracked for the parent document, not individual attachments. + When uploading an attachment using an existing attachment name, the corresponding stored content of the database will be updated. Because you must supply the revision information to add an attachment to the document, this serves as validation to update the existing attachment. + + Uploading an attachment updates the corresponding document revision. + Revisions are tracked for the parent document, not individual attachments. + + To remove an attachment from a document, simply update the `_attachments` dictionary of the document in the PUT "{db}/{id}" request. - To remove an attachment from a document, simply update the `_attachments` dictionary of the document in the PUT "{db}/{id}" request. From then on, the attachment will not be replicated but will still reside in the Couchbase Server bucket (see open ticket [1648](https://github.com/couchbase/sync_gateway/issues/1648). parameters: - $ref: '#/parameters/db' - $ref: '#/parameters/doc' @@ -699,6 +766,7 @@ paths: $ref: '#/responses/200-doc' 409: description: Conflict, the document revision wasn't specified or it's not the latest. + /{db}/_design/{ddoc}/_view/{view}: get: tags: @@ -1023,7 +1091,7 @@ paths: 200: description: Successful response - returns an array of replication definitions in the body as JSON schema: - type: array + items: # type: object $ref: '#/definitions/ReplicationResponseBody' @@ -1042,7 +1110,7 @@ paths: 200: description: Successful response - returns requested replication definition in the body as JSON schema: - # type: array + # # items: type: object $ref: '#/definitions/ReplicationResponseBody' @@ -1089,6 +1157,7 @@ paths: responses: 200: description: Replication successfully deleted + /{db}/_replicationStatus?{queryString}: get: tags: @@ -1158,7 +1227,7 @@ paths: 200: description: Returns information about the active replications schema: - type: array + items: $ref: '#/definitions/ReplicationStatusResponseBody' @@ -1225,7 +1294,7 @@ paths: type: object additionalProperties: description: An array of revision IDs for that document. - type: array + items: type: string responses: @@ -1238,7 +1307,7 @@ paths: type: object properties: missing: - type: array + description: A list of revision IDs for that document (the ones that are not stored in the database). /{db}/_design/{ddoc}: get: @@ -1384,7 +1453,7 @@ paths: description: Response object properties: a_doc_id: - type: array + description: Contains one property for each document ID successfully purged, the property key is the "docID" and the property value is a list containing the single entry "*". items: type: string @@ -1462,7 +1531,7 @@ paths: 200: description: 200 OK – Returns the list of roles as an array of strings schema: - type: array + description: The message body contains the list of roles in a JSON array. Each element of the array is a string representing the name of a role in the specified database. items: type: string @@ -1502,14 +1571,14 @@ paths: name: type: string admin_channels: - type: array + description: |+ The admin channels that this role has granted access to. Admin channels are the ones which are granted access to in the config file or via the Admin REST API. items: type: string all_channels: - type: array + description: All the channels that this role has access to. items: type: string @@ -1600,7 +1669,7 @@ paths: type: object properties: authentication_handlers: - type: array + items: type: object description: List of supported authentication handlers @@ -1659,7 +1728,7 @@ paths: 200: description: The message body contains the list of users in a JSON array. Each element of the array is a string representing the name of a user in the specified database. schema: - type: array + items: type: string description: username @@ -1749,6 +1818,91 @@ responses: type: boolean description: Indicates whether the operation was successful + '200-db-compact-get': + description: |+ + OK - A successful response will return a JSON object containing the _compact status. + + The current phase of `running` compact processes is returned in `phase`. + + schema: + $ref: '#/definitions/Compact_Response' + example: + { + "status": "running", + "start_time": "2021-12-02T18:26:17.086152Z", + "last_error": "", + "marked_attachments": 0, + "purged_attachments": 0, + "compact_id": "68302d2d-2c56-434e-94e0-33c0d0437828", + "phase": "cleanup" + } + + '200-db-compact-post-start': + description: | + OK - This successful response indicates _compact process was started. + The response body comprises a JSON object showing the _compact status. + schema: + $ref: '#/definitions/Compact_Response' + example: + { + "id": "2", + "status": "Started", + "start_time": "2015-09-23T17:27:17.55+01:00", + "duration": "0ms", + "atts_compacted": 0 + } + + '400-db-compact-post-bad-request': + description: | + Bad Request + + This can mean that a required parameter has not been provided, the value supplied is invalid, or the combination of provided parameters is invalid. + + Compaction API returns a 400 Bad Request error in the following cases: + -- A GET /{db}/_compact request is submitted with an invalid value for type parameter (anything other than tombstone or attachment). + -- A POST /{db}/_compact request is submitted with an invalid value for type parameter (type must be either tombstone or attachment) and or action parameter (action must be either start or stop). + + '503-db-compact-post-unavailable': + description: | + Service Unavailable + + A 503 Service Unavailable error indicates that the system is not ready to handle the submitted compaction start request due another compaction is running. + You may encounter this error when you submit a compaction request in the middle of another. + + # '200-db-compact-post-stop': + # description: | + # OK - This successful response indicates the _compact process was stopped. + # The response body comprises a JSON object showing the closing _compact status. + # schema: + # $ref: '#/definitions/Compact_Response' + # example: + # { + # "id": "8", + # "status": "Stopped", + # "start_time": "2015-09-23T17:27:17.55+01:00", + # "end_time": "2015-09-23T17:30:17.55+01:00", + # "duration": "3s", + # "atts_compacted": 108, + # "docs_processed": 200 + # } + + # '200-db-compact-post-in-progress': + # description: | + # OK - If you make a subsequent post request whilst _compact is in progress, your response body comprises a JSON object showing the in-progress _compact status, just as if you had issued a GET request + # schema: + # $ref: '#/definitions/Compact_Response' + # example: + # { + # "id": "1", + # "status": "Running", + # "start_time": "2015-09-23T17:27:17.55+01:00", + # "end_time": "2015-09-23T17:30:17.55+01:00", + # "duration": "12.677085ms", + # "mark_atts_marked": 20, + # "mark_docs_processed": 300 + # } + + '200-db-config': description: OK schema: @@ -1964,7 +2118,7 @@ definitions: Change requires HTTP server restart properties: headers: - type: array + description: |+ List of HTTP headers that can be used by domains specified in the `origin` and `login_origin` properties.
A common value is `["Content-Type"]` as clients use the `Content-Type: application/json` header when sending data as JSON in the body of POST/PUT requests. @@ -1973,7 +2127,7 @@ definitions: items: type: string login_origin: - type: array + description: |+ List of allowed login origins. @@ -1990,7 +2144,7 @@ definitions: Change requires HTTP server restart origin: - type: array + description: |+ List of allowed origins; use a wildcard character (*) to allow access from everywhere. @@ -2243,7 +2397,7 @@ definitions: - `SyncMsg`: Can be used for additional Sync logging output - `WS`: Websocket replication log messages - `WSFrame`: Can be used for additional WS logging output - type: array + items: type: string default: '["HTTP"]' @@ -2794,7 +2948,7 @@ definitions: properties: document_changed: description: The configuration for the action to perform when a document change is detected. - type: array + items: # type: object title: "Document Changed" @@ -2842,7 +2996,7 @@ definitions: type: string # required: true db_state_changed: - type: array + description: |+ Use the `db_state_changed` property group to define the actions to perform when a `db_state` change is detected. items: @@ -3591,13 +3745,13 @@ definitions: description: |+ Name of the role admin_channels: - type: array + description: |+ Array of channel names the role allows access to items: type: string all_channels: - type: array + readOnly: true description: |+ Lists all the channels the role has access to including any assigned by the `sync` function. @@ -3897,7 +4051,7 @@ definitions: OPTIONAL for stops and removes (even if defined during creation) query_params: - type: array + description: |+ **About** @@ -3968,7 +4122,7 @@ definitions: Use the optional `batch_size` property to specify the number of changes to be included in a single batch during replication. perf_tuning_params: - type: array + description: |+ The perf_tuning_params are not available in this release. @@ -4021,7 +4175,7 @@ definitions: Mandatory, unless `allow_empty_password=true`. admin_channels: - type: array + description: |+ The channels that the user is able to access. items: @@ -4030,7 +4184,7 @@ definitions: Channel name admin_roles: - type: array + description: |+ An array of the roles this user is associated with. items: @@ -4615,6 +4769,47 @@ definitions: items: $ref: '#/definitions/ChangesFeedRow' + + Compact_Response: + type: object + description: JSON Respponse to a _compact request + properties: + status: + type: string + description: State of the _compact process (Running, Stopped, Completed) + start_time: + type: string + description: |+ + Time the _compact process started e.g. "2015-09-23T17:27:17.55+01:00" + end_time: + type: string + description: |+ + Time the _compact process ended e.g. "2015-09-23T17:27:17.55+01:00" + last_error: + type: string + description: Text of the last error message. + marked_attachments: + type: integer + description: The number of attachments marked during the ``mark``` phase. + purged_attachments: + type: integer + description: The number of attachments purged by the ```sweep``` phase of the _compact process. + compact_id: + type: string + description: Unique identifier + phase: + type: string + description: |+ + This item indicates the current phase of `running` compact processes. + It can be useful in monitoring progress. + + For failed processes, this indicates the phase at which a compact_id restart will commence (where relevant). + + Phases include: + - mark + - sweep + - cleanup + Database-info: type: object description: Database Information @@ -4668,14 +4863,33 @@ definitions: type: string description: A revision ID. _attachments: - type: object - properties: - attachment_name: - type: object - properties: - content_type: - type: string - description: The content type of the attachment. + type: array + description: Array of attachments + items: + type: object + properties: + attachment_name: + type: object + properties: + ver: + type: integer + description: | + Indicate that the attachment reference is made through the new reference scheme (not exposed). + Value = 2. + content_type: + type: string + description: The content type of the attachment. + digest: + type: string + description: |+ + Reference to stored attachment content + length: + type: integer + revpos: + type: integer + stub: + type: boolean + default: true # QueryResult: type: object @@ -4684,7 +4898,7 @@ definitions: type: string description: Starting index of the returned rows. rows: - type: array + items: $ref: '#/definitions/QueryRow' total_rows: @@ -4810,7 +5024,7 @@ definitions: type: object properties: authentication_handlers: - type: array + description: List of authentication methods. items: type: string @@ -4835,7 +5049,7 @@ definitions: properties: 200: description: The request was successful. - type: array + items: type: object $ref: '#/definitions/ReplicationStatusResponseBody' @@ -5054,7 +5268,7 @@ definitions: All password data is redacted and is displayed as a string of `****`. perf_tuning_params: - type: array + description: |+ The perf_tuning_params are yet to be defined (subject to performance testing) @@ -5085,7 +5299,7 @@ definitions: query_params: - type: array + description: |+ **About** @@ -5189,7 +5403,7 @@ definitions: # END: Define sync-gateway replications ReplicationStatistics-SGR1: - type: array + description: This is the replication definition set returned in response to an ExpVars `GET` request. properties: replname: @@ -5245,7 +5459,7 @@ definitions: type: object properties: per_replication: - type: array + description: |+ An array of stats for each replication declared in the config file @@ -5293,7 +5507,7 @@ definitions: perReplicationStats-SGR2: - type: array + description: This is the replication definition set returned in response to an ExpVars `GET` request. items: type: object @@ -5408,7 +5622,7 @@ parameters: name: atts_since in: query description: Include attachments only since specified revisions. Does not include attachments for specified revisions. - type: array + items: type: string required: false @@ -5435,7 +5649,7 @@ parameters: type: object properties: docs: - type: array + items: type: object properties: @@ -5454,6 +5668,57 @@ parameters: description: A comma-separated list of channel names. The response will be filtered to only documents in these channels. (This parameter must be used with the **sync_gateway/bychannel** filter parameter; see below.) type: string required: false + + compaction_action: + type: string + in: query + name: action + description: |+ + Use the ```action``` parameter to *start* or *stop* a `_compact` process. + + The value must be one of : + -- `start` -- immediately starts (or restarts) a compaction and returns its status + -- `stop` -- immediately stops the active compaction and returns the status + + This parameter works in conjunction with compaction type. + + default: start + + compaction_dry_run: + in: query + type: string + name: dry_run + default: false + description: |+ + Use ```dry_run``` only for attachment compaction. + + If this is set to ```true``` the process will run but will not execute the final purge of attachments. + It can be used to check how many attachments will be purged. + + compaction_reset: + in: query + type: string + name: reset + default: false + description: |+ + Use ```reset``` only for attachment compaction. + + If this is set to ```true``` the ```start``` action will not attempt to resume a failed process but will force a fresh compact to start. + + compaction_type: + type: string + in: query + name: type + description: |+ + Use the ```type``` option to specify the type of compaction required. + + The type must be one of : + -- `attachment` for legacy pre-3.0 attachment compaction + -- `tombstone` for database compaction, which purges the JSON bodies of non-leaf revisions. + + This parameter works in conjunction with compaction action. + default: tombstone + content_type: in: header name: Content-Type @@ -5504,9 +5769,11 @@ parameters: in: query name: doc_ids description: A list of document IDs as a valid JSON array. The response will be filtered to only documents with these IDs. This parameter must be used with the `filter=_doc_ids` and `feed=normal` parameters. - type: array + items: type: string + + endkey: name: endkey in: query @@ -5551,7 +5818,7 @@ parameters: Note that this is an array field, so to retrieve docs with Ids of "keyid1" and "keyid4", for example, use a request in this format -- ```curl -X GET \ 'http://localhost:4985/test_db/_all_docs?keys=[%22keyid1%22,%22keyid4%22]' \ -H 'Accept: application/json'``` - type: array + items: type: string required: false @@ -5579,7 +5846,7 @@ parameters: Option to fetch specified revisions of the document. The value can be `all` to fetch all leaf revisions or an array of revision numbers (i.e. open_revs=["rev1", "rev2"]). Only [leaf revision](glossary.html) bodies that haven't been pruned are guaranteed to be returned. If this option is specified the response will be in multipart format. Use the `Accept: application/json` request header to get the result as a JSON object. - type: array + items: type: string required: false @@ -5825,7 +6092,7 @@ parameters: Once provided and recorded, the password data is redacted and will not be displayed in either the configuration file or Admin REST API. A string of `****` will be displayed in its place. perf_tuning_params: - type: array + description: |+ The perf_tuning_params are not available in this release. @@ -5854,7 +6121,7 @@ parameters: Replications created prior to version 2.8 *must* be run with `purge_on_removal=false`. query_params: - type: array + description: |+ **About** @@ -6143,7 +6410,7 @@ parameters: properties: docs: description: List containing new or updated documents. Each object in the array can contain the following properties _id, _rev, _deleted, and values for new and updated documents. - type: array + items: type: object $ref: '#/definitions/Document' @@ -6186,7 +6453,7 @@ parameters: type: string doc_ids: description: A list of document IDs as a valid JSON array. The response will be filtered to only documents with these IDs. (This parameter must be used with the _doc_ids filter parameter; see below.) - type: array + items: type: string feed: diff --git a/modules/ROOT/nav.adoc b/modules/ROOT/nav.adoc index aa77aaa75..006f506dd 100644 --- a/modules/ROOT/nav.adoc +++ b/modules/ROOT/nav.adoc @@ -81,19 +81,18 @@ ** xref:sync-inter-syncgateway-manage.adoc[Manage] ** xref:sync-inter-syncgateway-monitor.adoc[Monitor] ** xref:sync-inter-syncgateway-conflict-resolution.adoc[Inter Syncgateway Conflict Resolution] - * xref:revisions.adoc[Revisions] - * xref:what-are-tombstones.adoc[Tombstones] - * xref:managing-tombstones.adoc[Managing Tomstones] * xref:delta-sync.adoc[Delta Sync] - * xref:resync.adoc[Resync] * xref:import-filter.adoc[Import Filter] .Manage + * xref:revisions.adoc[Revisions] + * xref:managing-tombstones.adoc[Tombstones] + * xref:resync.adoc[Resync] * xref:stats-monitoring.adoc[Stats Monitoring] + * xref:database-offline.adoc[Database Offline] * Logging and Troubleshooting ** xref:logging.adoc[Logging] ** xref:sgcollect-info.adoc[SG Collect Info] - * xref:database-offline.adoc[Database Offline] .Deploy * xref:deployment.adoc[Overview] diff --git a/modules/ROOT/pages/_partials/_page-index.adoc b/modules/ROOT/pages/_partials/_page-index.adoc index 7ee74e67c..c9647d3f0 100644 --- a/modules/ROOT/pages/_partials/_page-index.adoc +++ b/modules/ROOT/pages/_partials/_page-index.adoc @@ -51,9 +51,23 @@ endif::xref--pfx-sgw[] :server-install-get-started--page: install:get-started.adoc :server-install-get-started--xref: {svr--xref}{server-install-get-started--page}[Deploy Couchbase Server] -:server-manage-security--pfx: manage:manage-security/ +:svr-manage--pfx: {svr--xref}manage: + +:server-manage-security--pfx: {svr-manage--pfx}manage-security/ :server-manage-security-users-and-roles--page: manage-users-and-roles.adoc -:server-manage-security-users-and-roles--xref: {svr--xref}{server-manage-security--pfx}{server-manage-security-users-and-roles--page}[Server -- Manage Users and Roles] +:server-manage-security-users-and-roles--xref: {server-manage-security--pfx}{server-manage-security-users-and-roles--page}[Server -- Manage Users and Roles] + +:svr-manage-settings--pfx: {svr-manage--pfx}manage-settings/ +:server-manage-settings-configure-compact--page: configure-compact-settings.adoc +:server-manage-settings-configure-compact--pfx: {svr-manage-settings--pfx}{server-manage-settings-configure-compact--page} +:server-manage-settings-configure-compact--xref: {server-manage-settings-configure-compact--pfx}[Auto Compaction] +:server-manage-settings-configure-compact--xref--ui: {server-manage-settings-configure-compact--pfx}#configure-auto-compaction-with-the-ui[Auto Compaction with UI] + +:svr-rest-api--pfx: {svr--xref}rest-api: +:server-rest-api-bucket-create--page: rest-bucket-create.adoc +:server-rest-api-bucket-create--xref: {svr-rest-api--pfx}{server-rest-api-bucket-create--page}[Creating and Editing Buckets] + + :server-security--pfx: learn:security/ :server-security-auth-domains--page: {server-security--pfx}authentication-domains.adoc @@ -642,6 +656,8 @@ endif::xref--pfx-sgw[] :rest-api-admin-user-post--xref: {rest-api-admin--pfx}#/user/post\__db___user_[/\{tkn-db}/_user] :rest-api-admin-user-put--xref: {rest-api-admin--pfx}#/user/post\__db___user_name_[/\{tkn-db}/_user/\{name}] +:rest-api-admin--pfx--database-management: {rest-api-admin--pfx}#/Database_Management/ +:rest-api-admin--xref--database-management--compact: {rest-api-admin--pfx--database-management}post__db___compact[\{db\}/_compact] :rest-api-admin-doc-channels-get--xref: {rest-api-admin--pfx}#/database/get__db___all_docs[/\{tkn-db}/_alldocs] @@ -675,7 +691,9 @@ endif::xref--pfx-sgw[] :resync--xref: {sgw--xref}{resync--page}[Resync] :revisions--page: revisions.adoc -:revisions--xref: {sgw--xref}{revisions--page}[Revisions] +:revisions--pfx: {sgw--xref}{revisions--page} +:revisions--xref: {revisions-- pfx}[Revisions] +:revisions--xref-compacting: {revisions--pfx}#compacting[Revisions -- Compacting] :roles--page: roles.adoc :roles--xref: {sgw--xref}{roles--page}[Roles] @@ -766,8 +784,6 @@ endif::xref--pfx-sgw[] :webhooks--page: webhooks.adoc :webhooks--xref: {sgw--xref}{webhooks--page}[Webhooks] -:what-are-tombstones--page: what-are-tombstones.adoc -:what-are-tombstones--xref: {sgw--xref}{what-are-tombstones--page}[What Are Tombstones] :whatsnew--page: whatsnew.adoc :whatsnew--xref: {sgw--xref}{whatsnew--page}[What's New] @@ -840,8 +856,7 @@ endif::xref--pfx-sgw[] :sgw-pg-users: users-and-roles.adoc :sgw-pg-whatsnew: sgw-whatsnew.adoc :sgw-pg-write-access: write-access.adoc -:what-are-tombstones--page: what-are-tombstones.adoc -:what-are-tombstones--xref: {sgw--xref}{what-are-tombstones--page}[Tombstones] + :xref-sgw-bmk-icr-sgreplicate--conflict: {sgw--xref}{sgw-pg-icr-sgreplicate}#conflict-resolution[Conflict Resolution] :xref-sgw-ep-admin-api: {sgw--xref}{rest-api-admin--page} :xref-sgw--xref-admin-api-attachment: {xref-sgw-ep-admin-api}#/attachment diff --git a/modules/ROOT/pages/_partials/topic-group-concepts.adoc b/modules/ROOT/pages/_partials/topic-group-concepts.adoc index 9209a72d1..565922707 100644 --- a/modules/ROOT/pages/_partials/topic-group-concepts.adoc +++ b/modules/ROOT/pages/_partials/topic-group-concepts.adoc @@ -24,7 +24,7 @@ ifdef::param-title[:this-title: {param-title}] :topic-2: {roles--page} :topic-3: {channels--page} :topic-4: {revisions--page} -:topic-5: {what-are-tombstones--page} +:topic-5: {managing-tombstones--page} // Set the xrefs up using attribute from _page-index.adoc and above attributes diff --git a/modules/ROOT/pages/data-modeling.adoc b/modules/ROOT/pages/data-modeling.adoc index 768f8204f..22595760f 100644 --- a/modules/ROOT/pages/data-modeling.adoc +++ b/modules/ROOT/pages/data-modeling.adoc @@ -16,7 +16,7 @@ include::partial$_std-hdr-sgw.adoc[] // BEGIN -- Page Heading :param-abstract!: -:param-related: {revisions--xref} | {what-are-tombstones--xref} +:param-related: {revisions--xref} | {managing-tombstones--xref} include::partial$block-abstract.adoc[] // END -- Page Heading diff --git a/modules/ROOT/pages/database-management copy.adoc b/modules/ROOT/pages/database-management copy.adoc new file mode 100644 index 000000000..4ed2ed474 --- /dev/null +++ b/modules/ROOT/pages/database-management copy.adoc @@ -0,0 +1,212 @@ += Database Management +:page-edition: {release} +:page-status: {prerelease} +:page-toclevels: 2@ +:page-role: +:page-content: conceptual +:description: Describes the various database management functions available to maintain an efficient sync gateway database + + +include::partial$_std-hdr-sgw.adoc[] + + +// BEGIN -- Page Heading +:param-abstract: pass:q[Revisions are at the heart of Couchbase Mobile's ability to respond flexibly and securely to changing data from server to edge.] +:param-related: {url-blog-dbsizemng-pruning} | {url-blog-doc-conflicts-repl-protocol-revisions} | {url-blog-doc-conflicts-demystifying-mvcc}] +include::partial$block-abstract.adoc[] +// END -- Page Heading + + +== Revisions + +=== Generation + +_Documents_ and _buckets_ (collections of, usually related, documents) are the basic units of data within Couchbase. + +Remember that within _Couchbase Mobile_, each document comprises: + +* A Document ID +* A current revision ID +* A JSON body +* Metadata + +Binary data such as images, audio and other multimedia objects are stored separately from the document in an entity known as a _blob_ (or _attachment_). + +Each change to a document (even its creation and deletion) is recorded as a <>. +Changes to _blobs_ do not generate revisions. + + +[#lbl-revs] +=== Format + +Couchbase creates a revision whenever a document is created, updated or deleted. +Each revision is given a unique _Revision ID_ in addition to the _Document ID_. + +The _revisions_ are contained within a document's _metadata_, as a <>. + +Sync Gateway uses a _revision id_ to resolve conflicts arising when making concurrent changes to replicated copies of distributed data. +It comprises two parts: + +* A generation ID + +This is a sequential auto-incrementing number. +It is specific to the database on which the document resides. +Couchbase Lite generates simple integers. +Sync Gateway generates more complex long base64 values. + +The contents of remote revision IDs are implementation dependent. +Do not base any processing logic on their contents. +* A hash derived from the document contents + + +[#lbl-revtree] +=== Structure + +The revisions for each document form a _revision tree_ within its metadata. + +This revision tree comprises all revisions made to the document throughout its lifetime to date, in sequence. +The _current revision_ (the most recent version of the document) being the tip of the tree, the _leaf_ node. + +A revision tree's growth is unlimited. +So Couchbase periodically removes obsolete revisions to maintain performance levels. +This process is known as <>. + + +[#lbl-prune] +== Revision Pruning +In the section:: +<> | <> | <> | <> + +Pruning is the process of removing obsolete revisions. +It automatically runs whenever a new revision is generated. + +TIP: Use the Admin Rest API endpoint for {rest-api-admin--xref--database-configuration} or {rest-api-admin--xref--database-configuration} to provision any configuration changes to properties described in this content. + + +[#lbl-alg] +=== Algorithm +Although fundamentally the same, the pruning algorithm works slightly differently between Sync Gateway and Couchbase Lite. + +On Sync Gateway, the pruning algorithm is applied to the shortest, non-tombstoned branch in the revision tree. + +The algorithm allows the branch to retain a configurable number of revisions (revs_limit) and removes all older revisions. + + +[#lbl-rtctrl] +=== Controls +You can vary the number of retained revisions using the Configuration File's {configuration-schema-database--xref--revs-limit} setting. + +So, for example, with a `revs_limit` of 1,000 the algorithm will keep the last 1,000 revisions in the shortest non-tombstoned branch and remove any others from that branch. + +[NOTE] +-- +Do not set `revs_limit` below 100 when `allow_conflicts = true` + +*Otherwise* ... you may adversely affect the conflict resolution process, as there may be insufficient revision history to resolve a given conflict. +-- + + +[#lbl-rtcons] +=== Constraints +The default and minimum values of `revs_limit` are dependent on whether {configuration-schema-database--xref--allow-conflicts} is True or False. + +The presence of multiple unresolved conflicts in a revision tree can impair the pruning process. +It may result in obsolete revisions not being pruned or in the premature pruning of revisions. + + +[#lbl-rt-more] +=== Learn More +To learn more about revision pruning and database size management in general see our blog: {url-blog-dbsizemng-pruning}. + + +[#lbl-caching] +== Caching +In this section:: +<> | <> | <> | <> | <> + +Whenever a document is accessed its revision tree (or at least some portion of its revision tree) is also cached. + + +[#lbl-ctrl] +=== Control +You can control the size of the revision cache using the {configuration-schema-database--xref--cache--rev-cache} settings within the configuration file, specifically: + +* {configuration-schema-database--xref--cache--rev-cache--size} +* {configuration-schema-database--xref--cache--rev-cache--shard-count} + + +[#lbl-size] +=== Size +Use the {configuration-schema-database--xref--cache--rev-cache--size} setting to specify the total number of document revisions to be cached in memory for all (recently accessed) documents. + +When the revision cache is full, Sync Gateway will remove older document revisions to make room for newer ones. + +By adjusting this setting you can fine-tune Sync Gateway's memory consumption. +This can be useful when working on servers with limited memory and in cases when Sync Gateway creates and-or updated many new documents relative to the number of read operations. + + +[#lbl-sharding] +=== Sharding +include::partial$block-caveats.adoc[tags=ee-only-feature] + +The *Community Edition* is configured with the default value and ignores any {configuration-schema-database--xref--cache--rev-cache--shard-count} value in the configuration file. + +You can control the number of shards into which Sync Gateway will split its revisions cache by using the +{configuration-schema-database--xref--cache--rev-cache--shard-count} + +More shards means lower cache contention when accessing distinct revisions, at the cost of some memory overhead per-shard. + +IMPORTANT: Do not change the default xref:configuration-schema-database.adoc#database-cache-rev_cache-shard_count[database.cache.rev_cache.shard_count] unless advised to do so by Couchbase Support -- see: {url-cb-support-policy}. + + +[#lbl-deltasync] +=== Delta Sync +include::partial$block-caveats.adoc[tags=ee-only-feature] + +When executing a write operation with delta_sync enabled the revision body is backed up in the bucket and retained for {configuration-schema-database--xref--delta-sync-max-age}, during which time it is available for the calculation of future revision deltas. + +As a result, new deltas can only be generated for read requests that come in within the {configuration-schema-database--xref--delta-sync-max-age} time window. + +Storing backed up revision bodies for delta sync incurs additional bucket storage, the size of which equates to: + +`(doc_size * updates_per_day * 86400) / rev_max_age_seconds` -- see <>. + +[#ex-deltastor] +.Calculating Additional Delta-Sync Storage +==== +Enabling delta sync would take up an additional 400 KB of storage on Couchbase Server, assuming: + +* The default {`rev_max_age_seconds`} value +* An average document size of 4 KB +* 100 writes/day + +Equating to: `(4 * 100 * 86400)/86400 = 400 KB` +==== + +Setting {configuration-schema-database--xref--delta-sync-max-age} to zero will generate deltas opportunistically on pull replications, with no additional storage requirements. + + +[#lbl-disable] +=== Disabling the Cache + +include::partial$block-caveats.adoc[tags=ee-only-feature] + +Disabling the revision cache can be useful when there are very large documents or if you expect a very low cache hit rate. +Otherwise it can negatively impact the latency of replications. + +NOTE: Do not disable the revision cache, unless advised to do so by Couchbase Support -- see: {url-cb-support-policy}. + +To disable the revision cache entirely, set {configuration-schema-database--xref--cache--rev-cache--size} to zero. +Community Edition ignores a zero setting. + + +== Compacting + + +Attachments added post 3.0 are automatically removed from the bucket upon reference removal, document delete or document purge. + +However, Legacy attachments can still remain in the bucket even after their reference removal, document delete or document purge. +The compaction garbage collection process (_compact) will remove these and reclaim the underlying storage. + +The legacy attachment compaction process scans all documents in the bucket, removing unreferenced attachments. +You can trigger this process on demand using the REST API call endpoint {rest-api-admin--xref--database-management--compact}. + + + +include::partial$block-related-content-data.adoc[] \ No newline at end of file diff --git a/modules/ROOT/pages/database-management.adoc b/modules/ROOT/pages/database-management.adoc new file mode 100644 index 000000000..a052ed663 --- /dev/null +++ b/modules/ROOT/pages/database-management.adoc @@ -0,0 +1,218 @@ += Database Management +:page-edition: {release} +:page-status: {prerelease} +:page-toclevels: 2@ +:page-pagination: next +:page-role: +:page-content: conceptual +:description: Describes the various database management functions available to maintain an efficient sync gateway database + + +include::partial$_std-hdr-sgw.adoc[] + + +// BEGIN -- Page Heading +:param-abstract: pass:q[Revisions are at the heart of Couchbase Mobile's ability to respond flexibly and securely to changing data from server to edge.] +:param-related: {url-blog-dbsizemng-pruning} | {url-blog-doc-conflicts-repl-protocol-revisions} | {url-blog-doc-conflicts-demystifying-mvcc}] +include::partial$block-abstract.adoc[] +// END -- Page Heading + + +[#lbl-prune] +== Revision Pruning +In the section:: +<> | <> | <> | <> + +Pruning is the process of removing obsolete revisions. +It automatically runs whenever a new revision is generated. + +TIP: Use the Admin Rest API endpoint for {rest-api-admin--xref--database-configuration} or {rest-api-admin--xref--database-configuration} to provision any configuration changes to properties described in this content. + + +[#lbl-alg] +=== Algorithm +Although fundamentally the same, the pruning algorithm works slightly differently between Sync Gateway and Couchbase Lite. + +On Sync Gateway, the pruning algorithm is applied to the shortest, non-tombstoned branch in the revision tree. + +The algorithm allows the branch to retain a configurable number of revisions (revs_limit) and removes all older revisions. + + +[#lbl-rtctrl] +=== Controls +You can vary the number of retained revisions using the Configuration File's {configuration-schema-database--xref--revs-limit} setting. + +So, for example, with a `revs_limit` of 1,000 the algorithm will keep the last 1,000 revisions in the shortest non-tombstoned branch and remove any others from that branch. + +[NOTE] +-- +Do not set `revs_limit` below 100 when `allow_conflicts = true` + +*Otherwise* ... you may adversely affect the conflict resolution process, as there may be insufficient revision history to resolve a given conflict. +-- + + +[#lbl-rtcons] +=== Constraints +The default and minimum values of `revs_limit` are dependent on whether {configuration-schema-database--xref--allow-conflicts} is True or False. + +The presence of multiple unresolved conflicts in a revision tree can impair the pruning process. +It may result in obsolete revisions not being pruned or in the premature pruning of revisions. + + +[#lbl-rt-more] +=== Learn More +To learn more about revision pruning and database size management in general see our blog: {url-blog-dbsizemng-pruning}. + + +[#lbl-tomb-purge] +== Purging Tombstones + +To remove tombstones, you need to purge them. +The table at <> shows when tombstones are purged automatically and how to manually purge them. + +[#tbl-tomb-purge] +.Purging tombstones +[,cols="1h,2,2"] +|=== + +.2+^.>h| +2+^.>h|Value of `enable_shared_bucket_access`` + +^.>h|`false` +^.>h|`true` + +|Automatic +|Tombstones are not automatically purged from the bucket. + +Tombstones can be purged by setting a server expiry on tombstone documents. +This can be easily automated via Sync Gateway. + +Use the {sync-function-api-expiry-cmd--xref} function in the Sync Function. + +Set the expiry time to be sufficient to allow for all other devices to sync and receive the delete notification -- perhaps a week, or a month. +|Tombstones are automatically purged from the bucket based on the server's metadata purge interval. + +|Manual +|Tombstones can be manually removed via Sync Gateway's {rest-api-admin--pfx}#/document/post\__db___purge[+/\{tkn-db}/_purge+] endpoint, or deleting documents directly in the bucket. +|Tombstones can be manually removed via Sync Gateway's {rest-api-admin--pfx}#/document/post\__db___purge[+/\{tkn-db}/_purge+] endpoint. +|=== + +Purging of tombstones is also required on Couchbase Lite. +For example, you might decide that if a document is deleted on a Couchbase Lite client, that you want to purge the document (on that device) as soon as the delete has been successfully replicated to Sync Gateway. + + +[#lbl-tomb-cache] +== Cache Ejection + +Deleted/expired tombstones aren't automatically ejected from Sync Gateway's in-memory channel caches. +See <>, which shows when channel caches are ejected. + + +[#tbl-tomb-cache] +.Flushing Sync Gateway channel caches +[,cols="1h,<.<2a,<.<2a"] +|=== + +.2+^.>| Tombstone + +Purged On +2+^.>|Value of `enable_shared_bucket_access`` + +^|`false` +^|`true` + +| Couchbase Server +| Restarting Sync Gateway will flush the cache +| * Restarting Sync Gateway will flush the cache +* Running the {rest-api-admin--pfx}#/database/post\__db___compact[+/\{tkn-db}/_compact+] endpoint will remove purged tombstones from the channel cache {fn-211} + +| Sync Gateway +a| * Restarting Sync Gateway will flush the cache. +* Starting in 2.1.1, this is done automatically. +a| * Restarting Sync Gateway will flush the cache. +* Starting in 2.1.1, this is done automatically. +|=== + + +== Compacting + +Attachments added post 3.0 are automatically removed from the bucket upon reference removal, document delete or document purge. +This contrasts with the behavior of Legacy attachments, which can remain in the bucket even after their reference removal, document delete or document purge. + +The compaction garbage collection process (`/{db}/_compact`) will remove these legacy attachments and reclaim the underlying storage. + +You can run the garbage collection process in one of two modes: + +* tombstone + +Purges the JSON bodies of non-leaf revisions. +* attachment + +Removes redundant legacy attachments. + +The legacy attachment compaction process scans all documents in the bucket, removing unreferenced attachments. + +See the REST API call endpoint {rest-api-admin--xref--database-management--compact}. + + +== Resync + +=== Why +The _Sync Function_ computes both the document routing to channels and the user access to channels at document write time. + +If the Sync Function is changed, Sync Gateway needs to reprocess all existing documents in the bucket to recalculate the routing and access assignments. + +To this end, the Admin REST API provides a `/{db}/_resync` endpoint that enables you to initiate the reprocessing of every document in the database again. + +=== How +To update the Sync Function and fully resync, you are recommended to follow the steps in <>. + +NOTE: This is an expensive operation because it requires every document in the database to be processed by the new function. + +The database can accept no requests until this process is complete because no user's full access privileges are known until all documents have been scanned. +Therefore, the Sync Function update will result in application downtime whilst teh database is offline (that is, between the call to the `+/{tkn-db}/_offline+` and `+/{tkn-db}/_online+` endpoints in <>. + + +[#steps-to-resync] +.Steps to Update and Resync +**** +. Update the configuration file of the Sync Gateway instance +. Restart Sync Gateway +. Take the database offline + +Use this Admin REST API endpoint: + +{rest-api-admin--pfx}#/Database_Management/post\__db___offline[+/{tkn-db}/_offline+] +. Resync the database + +Use this Admin REST API endpoint: + +{rest-api-admin--pfx}#/Database_Management/post\/post__db___resync[+/{tkn-db}/resync+] ++ +The message body of the response contains the number of changes that were made as a result of calling resync +. Bring the database back online + +Use this Admin REST API endpoint: + +{rest-api-admin--pfx}#/Database_Management/post\__db___online[+/{tkn-db}/_online+] +**** + +=== Uses + +==== Changing Channel Assignment +When running a resync operation, the context in the Sync Function is the admin user. +For that reason, calling the methods `requireUser`, `requireAccess`, and `requireRole` will always succeed. +It is very likely that you are using those functions in production to govern write operations. +But in a resync operation, all the documents are already written to the database. +For that reason, it is recommended to use resync for changing the assignment to channels only (i.e. reads). + +==== Changing Write Security Only +If the modifications to the Sync Function only impact write security (and not routing/access), you won't need to run the resync operation. + +==== Changing Channel/Access Rules +If you wish to change the channel/access rules, but only want those rules to apply to documents written after the change was made, then you don't need to run the resync operation. + +==== Access Revocation +If you change the sync function to revoke a user's access to a document, the access will only take effect once a new revision to that document is saved on Sync Gateway. +Running a resync operation does not revoke access to that document. + +=== Database Availability +If you need to ensure access to the database during the update, you can create a read-only backup of the Sync Gateway's bucket beforehand, then run a secondary Sync Gateway on the backup bucket, in read-only mode. +After the update is complete, switch to the main Gateway and bucket. + +In a clustered environment with multiple Sync Gateway instances sharing the load, all the instances need to share the same configuration, so they all need to be taken offline either by stopping the process or taking them offline using the {rest-api-admin--pfx}#/Database_Management/post\__db___offline[+/{tkn-db}/_offline+] endpoint. +After the configuration is updated, *one* instance should be brought up so it can update the database--if more than one is running at this time, they'll conflict with each other. +After the first instance finishes opening the database, the others can be started. + + +include::partial$block-related-content-data.adoc[] \ No newline at end of file diff --git a/modules/ROOT/pages/index.adoc b/modules/ROOT/pages/index.adoc index 65436693b..5e269934e 100644 --- a/modules/ROOT/pages/index.adoc +++ b/modules/ROOT/pages/index.adoc @@ -65,7 +65,6 @@ image::cbm-architecture.png[,300] .Concepts * {data-modeling--xref} * {revisions--xref} -* {what-are-tombstones--xref} * {users--xref} * {authentication-users--xref} * {channels--xref} diff --git a/modules/ROOT/pages/managing-tombstones.adoc b/modules/ROOT/pages/managing-tombstones.adoc index 547d41d8a..1aa778dec 100644 --- a/modules/ROOT/pages/managing-tombstones.adoc +++ b/modules/ROOT/pages/managing-tombstones.adoc @@ -1,6 +1,8 @@ -= Managing Tombstones += Tombstones +:page-aliases: learn/concept-tombstones.adoc, learn/concept-fundamentals-data-tombstones.adoc, learn/what-are-tombstones.adoc, what-are-tombstones.adoc :description: pass:q[Sync Gateway's _Tombstones_ are the means by which mobile clients are notified that a document has been deleted.] :page-edition: {release} +:page-toclevels: 2@ :page-status: {prerelease} :page-role: :page-content: conceptual @@ -9,116 +11,197 @@ include::partial$_std-hdr-sgw.adoc[] -// BEGIN -- Page Attributes -// END -- Page Attributes +:fn-211: footnote:fn-211[Commencing with release 2.1.1] +:fnref-211: footnote:fn-211[] - -// BEGIN -- Page Heading -:topic-group: sync +// BEGIN -- Page Heading +:param-abstract: pass:q[Here we introduce the concept of _Tombstones_ and their role in the _Sync Gateway_ revision process.] :param-related!: -:param-abstract!: include::partial$block-abstract.adoc[] -// END -- Page Heading +// END -- Page Heading -== Purging Tombstones +== Tombstone Objects -To remove tombstones, you need to purge them. -The following tables describe how to purge tombstones (automatically or manually) and reset the Sync Gateway channel cache when Shared Bucket Access is enabled or disabled. +A _tombstone_ is a persistent record that an item has been deleted. -|=== -2+a|*Automatic purging of tombstones* -|`enable_shared_bucket_access: false` -|`enable_shared_bucket_access: true` -|Tombstones are not automatically purged from the bucket. Tombstones can be purged by setting a server expiry on tombstone documents. -This can be easily automated via Sync Gateway using the {sync-function-api-expiry-cmd--xref} function in the Sync Function. -The expiry time should be sufficient (perhaps a week, or a month) to allow for all other devices to sync and receive the delete notification. -|Tombstones are automatically purged from the bucket based on the server's metadata purge interval. -|=== +Sync Gateway creates tombstones to ensure all synchronizing devices can identify that a previously existing document has now been deleted. +This is particularly necessary in the case of devices that may not be online continuously and therefore are not syncing regularly. -|=== -2+a|*Manually purging tombstones* -|`enable_shared_bucket_access: false` -|`enable_shared_bucket_access: true` -|Tombstones can be manually removed via Sync Gateway's {rest-api-admin--pfx}#/document/post\__db___purge[+/\{tkn-db}/_purge+] endpoint, or deleting documents directly in the bucket. -|Tombstones can be manually removed via Sync Gateway's {rest-api-admin--pfx}#/document/post\__db___purge[+/\{tkn-db}/_purge+] endpoint. -|=== +The actual tombstone artefact is a document revision comprising only: -Purging of tombstones is also required on Couchbase Lite. -For example, you might decide that if a document is deleted on a Couchbase Lite client, that you want to purge the document (on that device) as soon as the delete has been successfully replicated out to Sync Gateway. +* The (deleted) document ID +* A revision ID +* A key value pair `deleted:true`. -== Cache Ejection +.Example tombstone artifact +==== +[source,json] +---- +{ + "_deleted": true, + "_id": "foobar", + "_rev": "3-db962c6d93c3f1720cc7d3b6e50ac9df" +} +---- +==== -Deleted/expired tombstones aren't automatically ejected from Sync Gateway's in-memory channel caches. -The following table describes how to eject Sync Gateway's cache. +== Sync -|=== -|`enable_shared_bucket_access: false`|`enable_shared_bucket_access: true` +When mobile tombstones sync with a Couchbase Server (that is, when `enable_shared_bucket_access: true`) they become server tombstones. +The document body is deleted, and only the mobile sync metadata required to replicate the tombstone is retained in the mobile extended attribute. -2+a|*For tombstones purged on Couchbase Server* -a| -* Restarting Sync Gateway will flush the cache -a| -* Restarting Sync Gateway will flush the cache. -* Starting in 2.1.1, running the {rest-api-admin--pfx}#/database/post\__db___compact[+/\{tkn-db}/_compact+] endpoint will remove purged tombstones from the channel cache. +The server's `metadata purge interval` becomes an important consideration for sync'd mobile deployments. +Because, when the server purges a tombstone (based on the `metadata purge interval`), that tombstone is no longer replicated to mobile clients. +So, users should set the server's `metadata purge interval` based on their expected client replication frequency, to ensure that clients are notified of the tombstone prior to that tombstone being purged. -2+a|*For documents purged on Sync Gateway* -a| -* Restarting Sync Gateway will flush the cache. -* Starting in 2.1.1, this is done automatically. -a| -* Restarting Sync Gateway will flush the cache. -* Starting in 2.1.1, this is done automatically. -|=== +NOTE: The default `metadata purge interval` is set to 3 days which can potentially result in tombstones being purged before all clients have had a chance to be notified. + +For how to tune the `metadata purge interval` on Couchbase Server, see the server documentation on: + +- Bucket settings [on server UI] -- +{server-manage-settings-configure-compact--xref--ui} +- Bucket endpoint [on the REST API] -- {server-rest-api-bucket-create--xref} -== Tombstone Lifecycle +No matter how you sync, you will need to manage tombstone artifacts to: -The storage location of tombstones differs slightly depending on whether the Shared Bucket Access feature is enabled (`enable_shared_bucket_access: true`). -The table below describes those differences. +* Remove tombstones (manually or automatically) -- see <> +* Clear Sync Gateway's in-memory channel caches -- see <> +=== Storage Location + +The storage location of tombstones differs slightly depending on whether the Shared Bucket Access feature is enabled (`enable_shared_bucket_access: true`) -- see, +<> for those differences. + +.Tombstone locations +[#tbl-tomb-storage] +[,cols="1,1,1"] |=== -|`enable_shared_bucket_access: false`|`enable_shared_bucket_access: true` +.2+^.>h| Type of data +// .2+^.>h| Activity +2+^.>h|Value of `enable_shared_bucket_access`` -2+a|*Mobile metadata storage location* +^.>|`false` +^.>|`true` +|Mobile metadata |Persisted on the document (`doc._sync`) |Persisted as system extended attributes (`xattr._sync`) -2+a|*Tombstone storage location* +|Tombstone |Persisted on the document |Persisted as system extended attributes (`xattr._sync`). -2+a|*Additional user properties on a tombstone* +|Additional user properties on a tombstone* |Persisted on the document -|*Not persisted* +|Not persisted -2+a|*Additional system properties on a tombstone* +|Additional system properties on a tombstone |Persisted on the document -|*Not persisted* +|Not persisted |=== -Document operations also have a different impact on tombstones when Shared Bucket Access is enabled/disabled. +=== Document Operations + +Document operations have a different impact on tombstones when Shared Bucket Access is enabled/disabled. +[,cols="1,1,1,1"] |=== -|`enable_shared_bucket_access: false`|`enable_shared_bucket_access: true` +.2+^.>h| Location +.2+^.>h| Activity +2+^.>h|Value of `enable_shared_bucket_access`` -2+a|*Deleting a document through Sync Gateway* +^.>|`false` +^.>|`true` + +.2+^.<|Sync Gateway +|Deleting a document |Creates a tombstone |Creates a tombstone -2+a|*Purging a document through Sync Gateway* +|Purging a document |Removes the document and metadata |Removes the document and metadata -2+a|*Deleting a document body in the bucket (SDK, N1QL, expiry)* +.2+^.<| Couchbase Server +|Deleting a document body in the bucket (SDK, N1QL, expiry) |Removes the document and metadata |Creates a tombstone -2+a|*Purging a document's metadata (on Couchbase Server)* +|Purging a document's metadata |N/A |Removes the tombstone metadata |=== +[#lbl-tomb-purge] +== Purging + +To remove tombstones, you need to purge them. +The table at <> shows when tombstones are purged automatically and how to manually purge them. + +[#tbl-tomb-purge] +.Purging tombstones +[,cols="1h,2,2"] +|=== + +.2+^.>h| +2+^.>h|Value of `enable_shared_bucket_access`` + +^.>h|`false` +^.>h|`true` + +|Automatic +|Tombstones are not automatically purged from the bucket. + +Tombstones can be purged by setting a server expiry on tombstone documents. +This can be easily automated via Sync Gateway. + +Use the {sync-function-api-expiry-cmd--xref} function in the Sync Function. + +Set the expiry time to be sufficient to allow for all other devices to sync and receive the delete notification -- perhaps a week, or a month. +|Tombstones are automatically purged from the bucket based on the server's metadata purge interval. + +|Manual +|Tombstones can be manually removed via Sync Gateway's {rest-api-admin--pfx}#/document/post\__db___purge[+/\{tkn-db}/_purge+] endpoint, or deleting documents directly in the bucket. +|Tombstones can be manually removed via Sync Gateway's {rest-api-admin--pfx}#/document/post\__db___purge[+/\{tkn-db}/_purge+] endpoint. +|=== + +Purging of tombstones is also required on Couchbase Lite. +For example, you might decide that if a document is deleted on a Couchbase Lite client, that you want to purge the document (on that device) as soon as the delete has been successfully replicated to Sync Gateway. + + +[#lbl-tomb-cache] +== Cache Ejection + +Deleted/expired tombstones aren't automatically ejected from Sync Gateway's in-memory channel caches. +See <>, which shows when channel caches are ejected. + + +[#tbl-tomb-cache] +.Flushing Sync Gateway channel caches +[,cols="1h,<.<2a,<.<2a"] +|=== + +.2+^.>| Tombstone + +Purged On +2+^.>|Value of `enable_shared_bucket_access`` + +^|`false` +^|`true` + +| Couchbase Server +| Restarting Sync Gateway will flush the cache +| * Restarting Sync Gateway will flush the cache +* Running the {rest-api-admin--pfx}#/database/post\__db___compact[+/\{tkn-db}/_compact+] endpoint will remove purged tombstones from the channel cache {fn-211} + +| Sync Gateway +a| * Restarting Sync Gateway will flush the cache. +* Starting in 2.1.1, this is done automatically. +a| * Restarting Sync Gateway will flush the cache. +* Starting in 2.1.1, this is done automatically. +|=== + + include::partial$block-related-content-api.adoc[] diff --git a/modules/ROOT/pages/release-notes.adoc b/modules/ROOT/pages/release-notes.adoc index bbca2fe67..c1557e2db 100644 --- a/modules/ROOT/pages/release-notes.adoc +++ b/modules/ROOT/pages/release-notes.adoc @@ -52,7 +52,7 @@ Quicklinks: <> *|* [#new-features-300] -== New Feature Highlights +== New Features === Centralized Persistent Modular Configuration include::partial$common-releasenotes.adoc[tag="new-300-centralized-cfg-summ", leveloffset=+1] @@ -96,9 +96,15 @@ xref:whatsnew.adoc#use-environment-variables-in-configuration-file[Read More ... [#improvements-300] -== Other Enhancements +== Enhancements // tag::enhancements-300[] +=== Compacting +Attachments added post 3.0 are automatically removed from the bucket upon reference removal, document delete or document purge. + +The {rest-api-admin--xref--database-management--compact} API includes an option to remove any redundant pre-3.0 attachments -- see: +{revisions--xref-compacting}. + +=== Other Enhancements // tag::Enhancements-3-0-0-beta[] include::partial$pn-issues-list.adoc[tags="Enhancements-3-0-0-beta"] @@ -140,7 +146,7 @@ include::partial$pn-issues-list.adoc[tags="Deprecated-3-0-0-beta"] include::partial$pn-issues-list.adoc[tags="Removed-3-0-0-beta"] -== API and Confiuration Changes +== API and Configuration Changes // – identify any REST API changes // tag::api-changes-300[] // tag::all-changed-300-api[] diff --git a/modules/ROOT/pages/revisions.adoc b/modules/ROOT/pages/revisions.adoc index ecd5c6f63..80212d624 100644 --- a/modules/ROOT/pages/revisions.adoc +++ b/modules/ROOT/pages/revisions.adoc @@ -1,6 +1,7 @@ = Revisions :page-edition: {release} :page-status: {prerelease} +:page-toclevels: 2@ :page-role: :page-content: conceptual :description: About Sync Gateway's use of Revisions, Revision Trees and Revision Caches. @@ -18,63 +19,66 @@ include::partial$block-abstract.adoc[] == Introduction +=== Generation + _Documents_ and _buckets_ (collections of, usually related, documents) are the basic units of data within Couchbase. -Remember that within Couchbase Mobile a document comprises: +Remember that within _Couchbase Mobile_, each document comprises: * A Document ID * A current revision ID * A JSON body * Metadata -Each change to a document (even its creation and deletion) is recorded as a _revision_. -The document's <> are contained within its _metadata_, which stores the -revision history as a <>. +Binary data such as images, audio and other multimedia objects are stored separately from the document in an entity known as a _blob_ (or _attachment_). -Note that binary data such images, audio and other multimedia objects are stored separately from the document, in an entity known as a _blob_ (or _attachment_). +Each change to a document (even its creation and deletion) is recorded as a <>. Changes to _blobs_ do not generate revisions. [#lbl-revs] -== Revisions +=== Format Couchbase creates a revision whenever a document is created, updated or deleted. -So, each document comprises a series of one or more revisions, a _revision tree_. - Each revision is given a unique _Revision ID_ in addition to the _Document ID_. -We use the 'revision id' to resolve conflicts arising when making concurrent changes to replicated copies of distributed data. +The _revisions_ are contained within a document's _metadata_, as a <>. + +Sync Gateway uses a _revision id_ to resolve conflicts arising when making concurrent changes to replicated copies of distributed data. It comprises two parts: -* a generation ID + -This is a sequential auto-incrementing number. It is specific to the database on which the document resides. +* A generation ID + +This is a sequential auto-incrementing number. +It is specific to the database on which the document resides. Couchbase Lite generates simple integers. Sync Gateway generates more complex long base64 values. + The contents of remote revision IDs are implementation dependent. Do not base any processing logic on their contents. -* a hash derived from the document contents +* A hash derived from the document contents [#lbl-revtree] -== Revision Trees +=== Structure -A document's _revision tree_ comprises each revision -- in sequence -- made to the document throughout its lifetime to date. -The tip of that tree, the _leaf_ node, is the _current revision_ -- the most recent version of the document. +The revisions for each document form a _revision tree_ within its metadata. + +This revision tree comprises all revisions made to the document throughout its lifetime to date, in sequence. +The _current revision_ (the most recent version of the document) being the tip of the tree, the _leaf_ node. A revision tree's growth is unlimited. -We periodically remove obsolete revisions to maintain performance levels. +So Couchbase periodically removes obsolete revisions to maintain performance levels. This process is known as <>. [#lbl-prune] -== Revision Tree Pruning +== Revision Pruning In the section:: <> | <> | <> | <> Pruning is the process of removing obsolete revisions. -It automatically runs when we add a revision. +It automatically runs whenever a new revision is generated. -Use the Admin Rest API endpoint for {rest-api-admin--xref--database-configuration} to provision any configuration changes to properties described in this content. +TIP: Use the Admin Rest API endpoint for {rest-api-admin--xref--database-configuration} to provision any configuration changes to properties described in this content. [#lbl-alg] @@ -88,7 +92,7 @@ The algorithm allows the branch to retain a configurable number of revisions (re [#lbl-rtctrl] === Controls -You can vary the number of retained revisions using the Configuration File's {configuration-schema-database--xref--revs-limit} setting. +You can vary the number of retained revisions using the Configuration File's {configuration-schema-database--xref--revs-limit} setting. So, for example, with a `revs_limit` of 1,000 the algorithm will keep the last 1,000 revisions in the shortest non-tombstoned branch and remove any others from that branch. @@ -113,7 +117,7 @@ To learn more about revision pruning and database size management in general see [#lbl-caching] -== Revision Caching +== Caching In this section:: <> | <> | <> | <> | <> @@ -153,7 +157,7 @@ IMPORTANT: Do not change the default xref:configuration-schema-database.adoc#dat [#lbl-deltasync] -=== Delta Sync and Revisions +=== Delta Sync include::partial$block-caveats.adoc[tags=ee-only-feature] When executing a write operation with delta_sync enabled the revision body is backed up in the bucket and retained for {configuration-schema-database--xref--delta-sync-max-age}, during which time it is available for the calculation of future revision deltas. @@ -179,7 +183,7 @@ Setting {configuration-schema-database--xref--delta-sync-max-age} to zero will g [#lbl-disable] -=== Disabling the Revision Cache +=== Disabling the Cache include::partial$block-caveats.adoc[tags=ee-only-feature] @@ -192,4 +196,23 @@ To disable the revision cache entirely, set {configuration-schema-database--xref Community Edition ignores a zero setting. +== Compacting + +Attachments added post 3.0 are automatically removed from the bucket upon reference removal, document delete or document purge. +This contrasts with the behavior of Legacy attachments, which can remain in the bucket even after their reference removal, document delete or document purge. + +The compaction garbage collection process (`/{db}/_compact`) can be used to remove these legacy attachments and reclaim the underlying storage. + +You can run the garbage collection process in one of two modes: + +* tombstone + +Purges the JSON bodies of non-leaf revisions. +* attachment + +Removes redundant legacy attachments. + +The legacy attachment compaction process scans all documents in the bucket, removing unreferenced attachments. + +See the REST API call endpoint {rest-api-admin--xref--database-management--compact}. + + + include::partial$block-related-content-data.adoc[] \ No newline at end of file diff --git a/modules/ROOT/pages/what-are-tombstones.adoc b/modules/ROOT/pages/what-are-tombstones.txt similarity index 100% rename from modules/ROOT/pages/what-are-tombstones.adoc rename to modules/ROOT/pages/what-are-tombstones.txt From 43a106287b980ee4f2be1f8b7e08b3fde72d75d3 Mon Sep 17 00:00:00 2001 From: ibsoln <52778946+ibsoln@users.noreply.github.com> Date: Mon, 20 Dec 2021 17:20:13 +0000 Subject: [PATCH 06/19] DOC-9394 -- Config Sanity Check https://issues.couchbase.com/browse/DOC-9394 DOC-9394 -- Config Sanity Check https://issues.couchbase.com/browse/DOC-9394 DOC-9394 -- Config Sanity Check (Xattrs) https://issues.couchbase.com/browse/DOC-9394 DOC-9394 -- Config Sanity Check (Xattrs sync tutorial) https://issues.couchbase.com/browse/DOC-9394 --- .../ROOT/assets/attachments/sg-bootstrap.yaml | 125 ++++++++++-------- .../ROOT/assets/attachments/sg-database.yaml | 5 +- modules/ROOT/pages/release-notes.adoc | 12 +- .../pages/sync-with-couchbase-server.adoc | 78 ++++++++--- 4 files changed, 140 insertions(+), 80 deletions(-) diff --git a/modules/ROOT/assets/attachments/sg-bootstrap.yaml b/modules/ROOT/assets/attachments/sg-bootstrap.yaml index 4917ff5d0..9c306bcf7 100644 --- a/modules/ROOT/assets/attachments/sg-bootstrap.yaml +++ b/modules/ROOT/assets/attachments/sg-bootstrap.yaml @@ -10,16 +10,6 @@ properties: description: |+ The ID of the configuration group to which this node belongs. - # buckets: - # type: array - # description: |+ - # A list of buckets holding config data - # items: - # bucket_name: - # type: string - # description: |+ - # Name of a bucket storing configuration data - config_update_frequency: type: string default: "10s" @@ -35,11 +25,63 @@ properties: description: |+ Sets the endpoint for the Couchbase Server holding (database) configuration details. + The value of the *server* property specifies the Hostname(s) to the Couchbase Server node(s) in the cluster. + + Sync Gateway supports the ability to specify multiple hosts in the configuration. + Sync Gateway supports both the `couchbase://` and `http://` schemes for specifying connection endpoints. + + Sync Gateway also supports *SSL* in the connection to Couchbase Server; use the `couchbases://` scheme for this. + As with the Couchbase Server SDKs, the `https://` scheme is **not** supported. + + Examples of valid `server` values for *IPv4* include: + - `couchbase://host1` + - `couchbases://host1` + - `couchbase://host1,host2` + - `couchbase://host1:11210,host2,` + - `couchbases://host1:11207,host2` + - `http://host1:8091` + - `http://host1,host2:8091` + - `http://foo:bar@host1:8091` + + Examples of valid `server` values for *IPv6* include: + - `http://[2001:db8::8811]:8091` *// single node IPv6 - http scheme with default server port* + - `couchbases://[2001:db8::8811]` *// single node SSL IPv6 - default port (omitted)* + - `couchbase://[2001:db8::8811],[2001:db8::8822]:888` *// node1 default port, node2 port 888* + + As with the SDK, when using the `couchbase://` or `couchbases://` schemes, the port is not required, but if specified should be the external/internal bucket ports (defaults are 11210 or 11207 respectively). Attempting to use the admin ports (8091/18091) will result in a startup error. + + **Alternate Addresses** + + On startup, Sync Gateway will try each hostname that is provided until it is able to connect successfully. + + By default, if a remote cluster has an external address set, then when SG connects it will apply a heuristic to determine whether to choose between external or default (internal) addresses. + + The choice is based on the host names supplied in the connection string. + - SG uses external networking only when none of the supplied host names match any of Couchbase Server's internal node addresses, and an external address is defined. + - In all other cases Sync Gateway uses the default (internal) networking. + + However, it is possible to override this behavior by adding a `network` parameter to the connection string. + + The `network` parameter can be -- + - auto -- this is the default value if no parameter is provided. In this case the heuristic described above is applied to determine the address used; so effectively there is no override. + - external -- to always force use of the external address + - default -- to always force use of the internal address + + For example: + ```"server": "couchbases://my-cbs-server?network=default"``` + + Will force the connection to ignore any alternative external addresses configured on the Couchbase Server node. + + **Lost Connections** + + If the connection to Couchbase Server is lost during normal operations, Sync Gateway will automatically re-connect to another node in the cluster. During that re-connection period, the Sync Gateway will appear offline -- see [Taking Databases Offline](./../database-offline.html) -- and documents will not be replicated to mobile clients. + username: type: string default: none description: |+ The username to be used when authenticating to the server. + password: type: string default: none @@ -209,14 +251,15 @@ properties: description: |+ List of allowed origins; use a wildcard character (*) to allow access from everywhere. - Note that the wildcard (*) cannot be used if you plan to authenticate users as well (by using the `withCredentials` flag on the client side). - In this case, the explicit domain(s) must be specified in the `origin` and `login_origin` properties of the configuration file. + **Note** that the wildcard (*) cannot be used if you plan to authenticate users as well (by using the `withCredentials` flag on the client side). + Instead specify the explicit domain(s) in the `origin` and `login_origin` properties of the configuration file. Change requires HTTP server restart items: origin: type: string description: An allowed origin array element + hide_product_version: type: boolean default: 'false' @@ -225,18 +268,12 @@ properties: This setting does not apply to the Admin REST API. This customization of the Sync Gateway response avoids revealing the version of the Sync Gateway to HTTP requests to the root path. + https: type: object description: Group in which to specify any API HTTPS configuration properties properties: - # allow_insecure_tls_connections: - # type: boolean - # default: 'false' - # description: |+ - # Secure TLS connections are used by default for all REST API dialogs. - - # If necessary, for testing purposes, you can disable this by setting this property to ```true```. - # *Note* tha insecure connections should NOT be used in production deployments. + tls_minimum_version: type: string default: 'tlsv1.2' @@ -305,44 +342,24 @@ properties: server_read_timeout: type: integer description: |+ - Maximum duration in seconds before timing out the read of an HTTP(S) request. This property only effects the HTTP connections on the Sync Gateway public and admin ports. Sync Gateway is written in the Go programming language, therefor the value set in the configuration file is passed to Go's server instance [https://golang.org/pkg/net/http/#Server](https://golang.org/pkg/net/http/#Server). + Maximum duration in seconds before timing out the read of an HTTP(S) request. + + This property only effects the HTTP connections on the Sync Gateway public and admin ports. + + Sync Gateway is written in the Go programming language, therefore the value set in the configuration file is passed to Go's server instance [https://golang.org/pkg/net/http/#Server](https://golang.org/pkg/net/http/#Server). Change requires HTTP server restart server_write_timeout: type: integer description: |+ - Maximum duration in seconds before timing out the write of an HTTP(S) response. This property only effects the HTTP connections on the Sync Gateway public and admin ports. Sync Gateway is written in the Go programming language, therefor the value set in the configuration file is passed to Go's server instance [https://golang.org/pkg/net/http/#Server](https://golang.org/pkg/net/http/#Server). + Maximum duration in seconds before timing out the write of an HTTP(S) response. + + This property only effects the HTTP connections on the Sync Gateway public and admin ports. + + Sync Gateway is written in the Go programming language, therefor the value set in the configuration file is passed to Go's server instance [https://golang.org/pkg/net/http/#Server](https://golang.org/pkg/net/http/#Server). Change requires HTTP server restart - # tls: - # type: object - # description: |+ - # Holding object for TLS settings - # properties: - # tls_minimum_version: - # type: string - # default: 'tlsv1.3' - # summary: The minimum allowable TLS version for the REST APIs - # description: |+ - # Enforce a minimum TLS version to be used in replications with Couchbase Lite. - - # Possible values are: - - # - "tlsv1" - # - "tlsv1.1" - # - "tlsv1.2" - # - "tlsv1.3" - - # tls_cert_path: - # type: string - # summary: The TLS certificate file to use for the REST APIs - # description: |+ - # Absolute or relative path on the filesystem to the TLS certificate file, if TLS is used to secure Sync Gateway connections, or "nil" for plaintext. A relative path is from the directory that contains the Sync Gateway executable file. - # tls_key_path: - # type: string - # summary: The TLS key file to use for the REST APIs - # description: |+ - # Absolute or relative path on the filesystem to the TLS private key file, if TLS is used to secure Sync Gateway connections, or "nil" for plaintext. A relative path is from the directory that contains the Sync Gateway executable file. + logging: type: object description: |+ @@ -792,7 +809,11 @@ properties: type: integer default: 6 description: |+ - This sets the 'deflate' compression level to use when compressing messages sent via the WebSocket protocol, where 0 means no compression, 1 means fastest (least) compression, and 9 means slowest (most) compression. + This sets the 'deflate' compression level to use when compressing messages sent via the WebSocket protocol, where: + + -- 0 means no compression, + -- 1 means fastest (least) compression + -- 9 means slowest (most) compression. max_heartbeat: type: integer default: 0 diff --git a/modules/ROOT/assets/attachments/sg-database.yaml b/modules/ROOT/assets/attachments/sg-database.yaml index 540e2fbaf..24684b692 100644 --- a/modules/ROOT/assets/attachments/sg-database.yaml +++ b/modules/ROOT/assets/attachments/sg-database.yaml @@ -693,7 +693,7 @@ properties: session_cookie_name: type: string description: |+ - Starting in Sync Gateway 2.0, it is possible to customize the session cookie name that is used for this database. + It is possible to customize the session cookie name used for this database. This property is mostly used by web applications interacting with multiple Sync Gateway databases. @@ -798,7 +798,8 @@ properties: Delta Sync does not apply to attachment contents. - Delta Sync is disabled by default on the Sync Gateway. You can enable it through the `enabled` property. + Delta Sync is disabled by default on the Sync Gateway. + You can enable it through the `enabled` property. If delta sync is enabled on Sync Gateway, then Couchbase Lite clients will switch to using delta sync automatically. Similarly, if delta sync is disabled on Sync Gateway, clients will switch to normal mode. diff --git a/modules/ROOT/pages/release-notes.adoc b/modules/ROOT/pages/release-notes.adoc index bbca2fe67..c7b115c0b 100644 --- a/modules/ROOT/pages/release-notes.adoc +++ b/modules/ROOT/pages/release-notes.adoc @@ -177,6 +177,8 @@ Old documents are automatically migrated to the `xattr` metadata format. === Deprecated +:legacy-config-2.8--xref: xref:2.8@sync-gateway::configuration-properties.adoc# + .Deprecated [#tbl-deprecated, cols="1a,1a", options="header"] |=== @@ -184,16 +186,16 @@ Old documents are automatically migrated to the `xattr` metadata format. .>| Link | allow_conflicts confg -| xref:2.8@sync-gateway:ROOT:configuration-properties.adoc#databases-this_db-allow_conflicts[allow_conflicts] +| {legacy-config-2.8--xref}databases-this_db-allow_conflicts[allow_conflicts] | enable_shared_bucket_access -- disabled option | | Facebook User Auth Config -| xref:2.8@sync-gateway:ROOT:configuration-properties.adoc#facebook[facebook] +| {legacy-config-2.8--xref}facebook[facebook] | Google User Auth Config -| xref:2.8@sync-gateway:ROOT:configuration-properties.adoc#facebook[Google] +| {legacy-config-2.8--xref}facebook[Google] | Logging API | @@ -211,10 +213,10 @@ Old documents are automatically migrated to the `xattr` metadata format. | | configServer property -| xref:2.8@sync-gateway:ROOT:configuration-properties.adoc#configServer[configserver] +| {legacy-config-2.8--xref}configServer[configserver] | databases.this_db.cache.channel_cache_expiry -| xref:2.8@sync-gateway:ROOT:configuration-properties.adoc#databases-this_db-cache-channel_cache_expiry[channel_cache_expiry] +| {legacy-config-2.8--xref}databases-this_db-cache-channel_cache_expiry[channel_cache_expiry] | databases.this_db.feed_type | xref:2.8@sync-gateway:ROOT:configuration-properties.adoc#databases-this_db-feed_type[feed_type] diff --git a/modules/ROOT/pages/sync-with-couchbase-server.adoc b/modules/ROOT/pages/sync-with-couchbase-server.adoc index c74e19320..245147fa4 100644 --- a/modules/ROOT/pages/sync-with-couchbase-server.adoc +++ b/modules/ROOT/pages/sync-with-couchbase-server.adoc @@ -1,5 +1,6 @@ = Sync with Couchbase Server :page-aliases: shared-bucket-access.adoc, sync-with-server.adoc +:page-toclevels: 2@ :page-edition: {release} :page-status: {prerelease} :page-role: @@ -30,7 +31,7 @@ include::partial$block-caveats.adoc[tags="cbs6.0ke-xattrs"] * Enable_Shared_Bucket_Access + -This setting ensures that both Sync Gateway and Couchbase Server can read and write to the same bucket simultaneously And that Sync Gateway can access Couchbase Server document XATTRS + +This setting ensures that both Sync Gateway and Couchbase Server can read and write to the same bucket simultaneously and that Sync Gateway can access Couchbase Server document XATTRS + See: <> and {configuration-schema-database--xref--enable-shared-bucket-access}. * Import Docs @@ -39,19 +40,54 @@ Setting this property true ensures that the {sgw} node performs import processin You can configure both these properties using the Admin Rest API {configuration-schema-database--xref} endpoint. +[#sgw-paths] +.Sync Gateway Data Access Paths +image::shared-bucket-access.png[] + [#sba-feature] == Shared Bucket Access -[#sgw-paths] -.Sync Gateway Data Access Paths -image::shared-bucket-access.png[] + +Mobile applications require additional metadata in order to manage security and replication. + +Sync Gateway stores this information using Couchbase Server XATTRs (see Couchbase Server documentation on {server-data-xattr-fundamentals--xref}). + + +=== Extended Attributes (XATTRs) + +A document can be associated with zero or more extended attributes. + +There are currently three types of XATTRS: User, System and Virtual. + +Extended attributes: + +* Are JSON objects that can be associated with Couchbase documents. + +* Are stored and replicated along with the associated document in both intra-cluster and XDCR replication. + +* Can be accessed via Couchbase Server SDKs using the sub-document API, via command-line tools, and via views. + +* Are accessible from N1QL in Couchbase Server using the `().xattrs`` property. + +For example, `SELECT meta().xattrs._sync from travel-sample where Meta().id = "user::demo"`;. + + +Both Sync Gateway and Couchbase Server use a System extended attribute, with the following characteristics to support mobile convergence (shared bucket access): + +* Shares lifetime with the document metadata - when a document is deleted, system xattrs are preserved with the tombstone. +* Allocated 1MB of storage, independent of the 20MB available for the document + +WARNING: The sync metadata is maintained internally by Sync Gateway and its structure can change at any time. +It should not be used to drive business logic of applications. +The direct use of the N1QL query is unsupported and must not be used in production environments. +The `_raw` endpoint (/db/_raw/{docid}) on Sync Gateway's Admin REST API returns both the document and its associated mobile metadata. === Documents With bucket-sharing enabled, Couchbase Server documents can be inserted directly (using _N1QL_ or _SDKs_) or by using Sync Gateway's {rest-api--xref}. -Sync Gateway {fn-sgw1x5} creates the metadata it needs by abstracting it from the SDK or N1QL applications reading and writing data directly to Couchbase Server buckets. It uses Couchbase Server XATTRs {fn-cbs5x0} to store that metadata into an external document fragment -- see {xref-svr-pg-xattrs}. +Sync Gateway {fn-sgw1x5} creates the metadata it needs by abstracting it from the SDK or N1QL applications reading and writing data directly to Couchbase Server buckets. +It uses Couchbase Server XATTRs {fn-cbs5x0} to store that metadata into an external document fragment -- see {xref-svr-pg-xattrs}. // The REST API will also include the following behavioral changes: @@ -91,7 +127,8 @@ Note that, with bucket-sharing enabled, {glos-term-tombstone-revision}s are *not To ensure tombstones are synced with clients, you should set the server's metadata purge interval based on your expected replication frequency -- see the {enable-sba-config-item} reference. === Accessing Sync Metadata -Mobile metadata is not kept in the document, but in a system extended attribute (XATTR) in Couchbase Server. + +As stated, mobile metadata is not kept in the document, but in a system extended attribute (XATTR) in Couchbase Server. The N1QL query language {fnref-cbs5x0} supports the ability to query these extended attributes (XATTRS) and hence the document's sync metadata -- see: <>. @@ -131,17 +168,11 @@ You can enable it without bringing down the entire Sync Gateway cluster -- see ==== -=== Reference - -Configuration file references: - -* {enable-sba-config-item} to enable convergence for a given database. -* {configuration-schema-database--pfx--db}-import_docs[$dbname.import_docs] to give a particular Sync Gateway node the role of importing the documents. -* {configuration-schema-database--pfx--db}-import_filter[$dbname.import_filter] to select which document(s) to make aware to mobile clients. [#import-process] == Import Processing + The *import process* is a key part of mobile convergence. It is the means by which Sync Gateway becomes aware of non-Sync Gateway data changes and obtains the mobile metadata it requires to replicate changes. @@ -232,16 +263,21 @@ image:workload-isolation.png[] // # Prior to Release 2.1 a value of 'continuous' was also allowed. This was deprecated at Release 2.1 and replaced with the boolean value True. There is no change to the behavior or functionality (that is, a value of 'continuous' was interpreted as True and had the same effect). -=== Reference +.Next Steps +**** + +* Check out our getting started tutorial for more on how to setup, configure and run Sync Gateway replications - xref:tutorials:userprofile-sync:userprofile_sync.adoc[Sync tutorial] + +* Further reading: +** Couchbase Server documentation on {server-data-xattr-fundamentals--xref} + +** Configuration file references: -The reference to the configuration properties can be found below. -// * link:config-properties.html#databases-this_db-enable_shared_bucket_access[$dbname.enable_shared_bucket_access] to enable convergence for a given database. -// * link:config-properties.html#databases-this_db-import_docs[$dbname.import_docs] to give a particular Sync Gateway node the role of importing the documents. -// * link:config-properties.html#databases-this_db-import_filter[$dbname.import_filter] to select which document(s) to make aware to mobile clients. +*** {enable-sba-config-item} to enable convergence for a given database. +*** {configuration-schema-database--pfx--db}-import_docs[$dbname.import_docs] to give a particular Sync Gateway node the role of importing the documents. +*** {configuration-schema-database--pfx--db}-import_filter[$dbname.import_filter] to select which document(s) to make aware to mobile clients. -* {configuration-schema-database--pfx--db}-enable_shared_bucket_access[$dbname.enable_shared_bucket_access] to enable convergence for a given database. -* {configuration-schema-database--pfx--db}-import_docs[$dbname.import_docs] to give a particular Sync Gateway node the role of importing the documents. -* {configuration-schema-database--pfx--db}-import_filter[$dbname.import_filter] to select which document(s) to make aware to mobile clients. +**** include::partial$block-related-content-api.adoc[] From 8b9d4dbafc08400dd06291d82e09a0371159f03b Mon Sep 17 00:00:00 2001 From: ibsoln <52778946+ibsoln@users.noreply.github.com> Date: Mon, 10 Jan 2022 10:35:55 +0000 Subject: [PATCH 07/19] DOC-7857 -- Resync API DOC-7857 -- Resync API https://issues.couchbase.com/browse/DOC-7857 DOC-7857 -- Resync API https://issues.couchbase.com/browse/DOC-7857 (cherry picked from commit a0e28e669805d08f4d69e6667a7fc7625dd041c9) DOC-7857 -- Resync API -- Feedback https://issues.couchbase.com/browse/DOC-7857 DOC-7857 -- Resync API -- Feedback 2 https://issues.couchbase.com/browse/DOC-7857 DOC-7857 -- Resync API -- Add response example https://issues.couchbase.com/browse/DOC-7857 DOC-7857 -- Resync API -- Tweak release note contents https://issues.couchbase.com/browse/DOC-7857 --- .../assets/attachments/rest-api-admin.yaml | 229 ++++++++++++++++-- modules/ROOT/pages/release-notes.adoc | 7 +- modules/ROOT/pages/resync.adoc | 82 +++++-- 3 files changed, 275 insertions(+), 43 deletions(-) diff --git a/modules/ROOT/assets/attachments/rest-api-admin.yaml b/modules/ROOT/assets/attachments/rest-api-admin.yaml index df29b0b05..ca260dfbd 100644 --- a/modules/ROOT/assets/attachments/rest-api-admin.yaml +++ b/modules/ROOT/assets/attachments/rest-api-admin.yaml @@ -1403,34 +1403,87 @@ paths: - $ref: '#/parameters/doc' responses: 200: - description: hello + description: OK schema: $ref: '#/definitions/DocMetadata' + /{db}/_resync: + get: + tags: + - 'Database Management' + summary: Show resync status + description: |+ + This request returns the status of the asynchronous `_resync` operation, including: + + - status + - docs processed + - docs changed + - last error (if any) + + **Sync Gateway Roles Required:** + + - Sync Gateway Architect + parameters: + - $ref: '#/parameters/db' + responses: + 200: + $ref: '#/responses/200-resync' + post: tags: - 'Database Management' - summary: Reprocess all documents by the database in the sync function. + summary: Start/stop the Resync process description: |+ - This request causes all documents to be reprocessed by the database sync function. The _resync operation should be called if the sync function for a database has been modified in such a way that the channel or access mappings for any existing document would change as a result. - When the sync function is invoked by _resync, the requireUser() and requireRole() calls will always return 'true'. + Use the _resync operation whenever you have modified the database's sync function such that the channel or access mappings for any existing document would change as a result. + + The request will start or stop the _resync process depending upon the ```action``` parameter provided. + If no ```action``` parameter is given then `start` is assumed. + + **```action=start```** + + The start action causes all documents to be reprocessed by the database's sync function. + This is an **asynchronous** operation. + + When the sync function is invoked by `_resync`, the requireUser() and requireRole() calls will always return 'true'. A _resync operation on a database that is not in the offline state will be rejected (503 Service Unavailable). - A _resync operation will block until all documents in the database have been processed. + **```action=stop```** + + The currently running resync operation is stopped. + + + **```regenerate_sequences=true```** + **Use this only when requested to do so by the Couchbase support team** + + This request will start a resync while regenerating sequences. + + The resync action is carried out **only** on the node that the POST is made to. + It is not cross-node aware. + + In a multi-node cluster, the resync must be only run on one node. + Users should bring other nodes offline before initiating this action. + Starting it on more than one node will result in multiple resyncs running, with undefined system behavior. + + **Sync Gateway Roles Required:** + + – Sync Gateway Architect + parameters: - $ref: '#/parameters/db' + - $ref: '#/parameters/resync-action' + - $ref: '#/parameters/resync-regenerate' + responses: 200: - description: OK – The _resync operation has completed - schema: - type: object - description: The number of documents that were successfully updated. - properties: - changes: - type: integer - description: The number of documents that were successfully updated + $ref: '#/responses/200-resync' + 400: + $ref: '#/responses/400-resync-post-stopped' + 503: + $ref: '#/responses/503-resync-post' + + /{db}/_revtree/{doc}: get: produces: @@ -1779,6 +1832,38 @@ responses: schema: $ref: '#/definitions/user' + '200-resync': + description: OK + schema: + $ref: '#/definitions/Resync-response' + example: + { + "status": "completed", + "start_time": "2022-01-05T15:05:27.521824Z", + "last_error": "", + "docs_changed": 0, + "docs_processed": 0 + } + + '400-resync-post-stopped': + description: 400 - Database _resync not running + # schema: + # $ref: '#/definitions/resync-post-error-response' + + # '503-resync-post-running': + # description: 503 - Database _resync already in progress + # schema: + # $ref: '#/definitions/resync-post-error-response' + + '503-resync-post': + description: |+ + 503 error code. The meaning varies depending on the action parameter: + + - action=start -- Database must be offline before calling _resync. + - action=stop -- Database _resync already in progress + # schema: + # $ref: '#/definitions/resync-post-error-response' + OK: description: 200 - OK - Operation successful @@ -1838,7 +1923,7 @@ definitions: ca_cert_path: type: string - summary: Root CA cert path for TLS connection + # summary: Root CA cert path for TLS connection description: |+ Absolute or relative path on the filesystem to the root CA certificate to verify the certificate chain and hostname of the Couchbase Server cluster. @@ -1857,7 +1942,7 @@ definitions: x509_cert_path: type: string - summary: Cert path (public key) for X.509 bucket auth + # summary: Cert path (public key) for X.509 bucket auth description: |+ Use x509_cert_path to define the absolute or relative path on the filesystem to the x509 certificate. @@ -1865,7 +1950,7 @@ definitions: x509_key_path: type: string - summary: Key path (private key) for X.509 bucket auth + # summary: Key path (private key) for X.509 bucket auth description: |+ Absolute or relative path on the filesystem to the X509 key. @@ -1888,7 +1973,6 @@ definitions: type: object description: |+ Holding object for API related settings. - properties: admin_interface: type: string @@ -1999,9 +2083,8 @@ definitions: Change requires HTTP server restart items: - origin: - type: string - description: An allowed origin array element + type: string + description: An allowed origin array element hide_product_version: type: boolean default: false @@ -2025,7 +2108,7 @@ definitions: tls_minimum_version: type: string default: 'tlsv1.2' - summary: The minimum allowable TLS version for the REST APIs + # summary: The minimum allowable TLS version for the REST APIs description: |+ Enforce a minimum TLS version to be used in replications with Couchbase Lite. @@ -2040,7 +2123,7 @@ definitions: tls_cert_path: type: string - summary: The TLS certificate file to use for the REST APIs + # summary: The TLS certificate file to use for the REST APIs description: |+ Absolute or relative path on the filesystem to the TLS certificate file, if TLS is used to secure Sync Gateway connections @@ -2051,7 +2134,7 @@ definitions: Change requires HTTP server restart tls_key_path: type: string - summary: The TLS key file to use for the REST APIs + # summary: The TLS key file to use for the REST APIs description: |+ Absolute or relative path on the filesystem to the TLS private key files. @@ -4789,6 +4872,80 @@ definitions: It comprises the replication definition as would be returned using a `GET` request to the `_replication` endpoint. # + Resync-response: + type: object + properties: + status: + type: string + description: |+ + Indicates the status of the resync operation. + + Possible values: + + -- running, + -- stopped, + -- stopping, + -- stopped on error + + start_time: + type: string + description: |+ + The `_resync` process start time in ISO 8601 format (for example: `2012-04-23T18:25:43.511Z`) + + + docs_changed: + type: integer + description: |+ + Shows the number of documents that have been changed as a result of the sync function. + + Docs are only changed if when run through the new sync function the resulting doc is different to the currently stored doc. + docs_procesed: + type: integer + description: |+ + Shows the number of documents that have been run through the sync function. + + last_error: + type: string + description: |+ + Will ONLY be present when status = “stopped on error” + + In the event of an error in the `_resync` process this field will contain error details. + Otherwise it is not visible. +# + + +# + resync-post-response: + type: object + properties: + status: + type: string + description: |+ + Indicates the status of the resync operation. + + For `start` this will return ```running``` status + For `stop`` this will return ```stopping``` status + + start_time: + type: string + description: |+ + The `_resync` process start time in ISO 8601 format (for example: `2012-04-23T18:25:43.511Z`) + + docs_changed: + type: integer + description: |+ + Shows the number of documents that have been changed as a result of the sync function. + + For `start` this will return ```0``` + For `stop`` this will return ```0``` status + + docs_procesed: + type: integer + description: |+ + Shows the number of documents that have been run through the sync function. + + For `start` this will return ```0``` + For `stop`` this will return ```0``` status # Server: type: object @@ -6046,6 +6203,32 @@ parameters: - **start** : Use this action to start a stopped replication - **stop** : Use this action to stop a started replication - **reset** : Use this action to reset a stopped replication. This will set the checkpoint to zero. For bidirectional replication, both push and pull checkpoints are reset to zero. + + resync-action: + in: query + name: action + type: string + default: "start" + required: false + description: |+ + The action query can be “start” or “stop”. + If neither is provided,“start” is used as the default. + + - Start will 'begin' the asynchrounous resync operation. + - Stop will stop the resync operation and will return + + resync-regenerate: + in: query + name: regenerate_sequences + type: string + default: none + required: false + description: |+ + **Use this only when requested to do so by the Couchbase support team** + + Set **```regenerate_sequences=true```** along with + ```action=start``` in order to begin a resync while regenerating sequences. + rev: name: rev in: query diff --git a/modules/ROOT/pages/release-notes.adoc b/modules/ROOT/pages/release-notes.adoc index bbca2fe67..9bd82235f 100644 --- a/modules/ROOT/pages/release-notes.adoc +++ b/modules/ROOT/pages/release-notes.adoc @@ -96,9 +96,14 @@ xref:whatsnew.adoc#use-environment-variables-in-configuration-file[Read More ... [#improvements-300] -== Other Enhancements +== Enhancements + // tag::enhancements-300[] +=== Resync +The `_resync` process has been enhanced to better handle large datasets, minimizing timeout and out-of-memory issues. +The process now runs asynchronously, uses query pagination and supports sequence regeneration. + // tag::Enhancements-3-0-0-beta[] include::partial$pn-issues-list.adoc[tags="Enhancements-3-0-0-beta"] diff --git a/modules/ROOT/pages/resync.adoc b/modules/ROOT/pages/resync.adoc index dd7a09c2d..15cdcd938 100644 --- a/modules/ROOT/pages/resync.adoc +++ b/modules/ROOT/pages/resync.adoc @@ -13,42 +13,80 @@ include::partial$_std-hdr-sgw.adoc[] :param-abstract: This content explains the resync feature include::partial$block-abstract.adoc[] +:tkn-db: pass:q,a[\{db\}] +:resync_api_post: {rest-api-admin--pfx}#/Database_Management/post__db___resync[/{tkn-db}/resync] +:resync_api_get: {rest-api-admin--pfx}#/Database_Management/get__db___resync[/{tkn-db}/resync] + + == Introduction + The _Sync Function_ computes both the document routing to channels and the user access to channels at document write time. If the Sync Function is changed, Sync Gateway needs to reprocess all existing documents in the bucket to recalculate the routing and access assignments. -To this end, the Admin REST API provides a resync endpoint that enables you to initiate the reprocessing of every document in the database again. +== Resync API + +The Admin REST API provides a {resync_api_post} endpoint that enables you to start or stop a resync operation. +Starting the resync will initiate the reprocessing of every document in the database again. + +There is also a 'support-only' option to regenerate sequences whilst resyncing. + +The resync action is carried out **only** on the node that the POST is made to. +It is not cross-node aware. + +In a multi-node cluster, the resync must be only run on one node. +Users should take other nodes offline before initiating this action. +Starting resync on more than one node will result in multiple instances running, with undefined system behavior. + +The resync operation is run asynchronously. +Use {resync_api_get} to establish the current status of a resync operation. + == Updating the Sync Function + To update the Sync Function and fully resync, you are recommended to follow the steps in <>. NOTE: This is an expensive operation because it requires every document in the database to be processed by the new function. -The database can accept no requests until this process is complete because no user's full access privileges are known until all documents have been scanned. -Therefore, the Sync Function update will result in application downtime whilst teh database is offline (that is, between the call to the `+/{tkn-db}/_offline+` and `+/{tkn-db}/_online+` endpoints in <>. +The database can accept no requests until resync is complete because no user's full access privileges are known until all documents have been scanned. +Therefore, the Sync Function update will result in application downtime whilst the database is offline (that is, between the call to the `/{tkn-db}/_offline` and `/{tkn-db}/_online` endpoints in <>. + +You won't need to run the resync operation, if either: + +* The modifications to the Sync Function only impact write security (and not routing/access), or, +* You only want changes to channel/access rules to apply to documents written after the change was made. + -[#steps-to-resync] .Steps to Update and Resync --- +[#steps-to-resync] + +**** . Update the configuration file of the Sync Gateway instance . Restart Sync Gateway . Take the database offline + -Use this Admin REST API endpoint: + -{rest-api-admin--pfx}#/Database_Management/post\__db___offline[+/{tkn-db}/_offline+] +Use this Admin REST API endpoint: +{rest-api-admin--pfx}#/Database_Management/post\__db___offline[/{tkn-db}/_offline] . Resync the database + -Use this Admin REST API endpoint: + -{rest-api-admin--pfx}#/Database_Management/post\/post__db___resync[+/{tkn-db}/resync+] +Use this Admin REST API endpoint: {resync_api_post} +. Monitor the resync status using {resync_api_get} to see when it completes. + The message body of the response contains the number of changes that were made as a result of calling resync . Bring the database back online + -Use this Admin REST API endpoint: + -{rest-api-admin--pfx}#/Database_Management/post\__db___online[+/{tkn-db}/_online+] --- +Use this Admin REST API endpoint: +{rest-api-admin--pfx}#/Database_Management/post\__db___online[/{tkn-db}/_online] +**** + + +== Running Resync + + +Resync is run asynchronously. +Its status can be monitored using {resync_api_get}. +Be sure to take the database offline using {rest-api-admin--pfx}#/Database_Management/post\__db___offline[/{tkn-db}/_offline] -== When To Run Resync? +=== Resync Context When running a resync operation, the context in the Sync Function is the admin user. For that reason, calling the methods `requireUser`, `requireAccess`, and `requireRole` will always succeed. @@ -56,19 +94,25 @@ It is very likely that you are using those functions in production to govern wri But in a resync operation, all the documents are already written to the database. For that reason, it is recommended to use resync for changing the assignment to channels only (i.e. reads). -If the modifications to the Sync Function only impact write security (and not routing/access), you won't need to run the resync operation. - -If you wish to change the channel/access rules, but only want those rules to apply to documents written after the change was made, then you don't need to run the resync operation. +=== Revoking Access If you change the sync function to revoke a user's access to a document, the access will only take effect once a new revision to that document is saved on Sync Gateway. Running a resync operation does not revoke access to that document. -If you need to ensure access to the database during the update, you can create a read-only backup of the Sync Gateway's bucket beforehand, then run a secondary Sync Gateway on the backup bucket, in read-only mode. -After the update is complete, switch to the main Gateway and bucket. +=== Availability + +If you need to ensure access to the database during a Sync function update and resync, you can create a read-only backup of the Sync Gateway's bucket beforehand, then run a secondary Sync Gateway on the backup bucket, in read-only mode. +Once you detect the resync is complete, switch back to the main Sync Gateway and bucket. + +=== Updating Clusters + +In a clustered environment with multiple Sync Gateway instances sharing the load, all the instances need to share the same configuration. +To ensure this happens, you must taken all instances offline using the {rest-api-admin--pfx}#/Database_Management/post\__db___offline[/{tkn-db}/_offline] endpoint. -In a clustered environment with multiple Sync Gateway instances sharing the load, all the instances need to share the same configuration, so they all need to be taken offline either by stopping the process or taking them offline using the {rest-api-admin--pfx}#/Database_Management/post\__db___offline[+/{tkn-db}/_offline+] endpoint. After the configuration is updated, *one* instance should be brought up so it can update the database--if more than one is running at this time, they'll conflict with each other. After the first instance finishes opening the database, the others can be started. + + include::partial$block-related-content-sync.adoc[] From 70abd0f556fddcdb7a4468d5b3447ee64d945b67 Mon Sep 17 00:00:00 2001 From: ibsoln <52778946+ibsoln@users.noreply.github.com> Date: Thu, 6 Jan 2022 09:09:53 +0000 Subject: [PATCH 08/19] DOC-9431 -- RBAC Roles https://issues.couchbase.com/browse/DOC-9431 DOC-9431 -- RBAC Roles https://issues.couchbase.com/browse/DOC-9431 DOC-9431 -- RBAC Roles https://issues.couchbase.com/browse/DOC-9431 DOC-9431 -- RBAC Roles (minor tweaks) https://issues.couchbase.com/browse/DOC-9431 --- .../assets/attachments/rest-api-admin.yaml | 546 ++++++++- .../assets/attachments/rest-api-metrics.yaml | 13 + .../ROOT/assets/attachments/sg-bootstrap.yaml | 6 +- modules/ROOT/assets/images/icons/no.png | Bin 0 -> 3984 bytes modules/ROOT/assets/images/icons/yes.png | Bin 0 -> 4058 bytes modules/ROOT/nav.adoc | 1 + modules/ROOT/pages/_partials/_page-index.adoc | 6 +- modules/ROOT/pages/checkme_resync.adoc | 108 ++ .../pages/rest-api-access-rbac-roles.adoc | 1069 +++++++++++++++++ modules/ROOT/pages/rest-api-access.adoc | 160 ++- modules/ROOT/pages/rest-api-admin.adoc | 4 + 11 files changed, 1847 insertions(+), 66 deletions(-) create mode 100644 modules/ROOT/assets/images/icons/no.png create mode 100644 modules/ROOT/assets/images/icons/yes.png create mode 100644 modules/ROOT/pages/checkme_resync.adoc create mode 100644 modules/ROOT/pages/rest-api-access-rbac-roles.adoc diff --git a/modules/ROOT/assets/attachments/rest-api-admin.yaml b/modules/ROOT/assets/attachments/rest-api-admin.yaml index df29b0b05..7d1ecdcf4 100644 --- a/modules/ROOT/assets/attachments/rest-api-admin.yaml +++ b/modules/ROOT/assets/attachments/rest-api-admin.yaml @@ -39,6 +39,10 @@ paths: summary: Get Server Configuration description: |+ Returns the Sync Gateway configuration of the running instance. This is a good method to check if a particular key was set correctly on the config file. + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Dev Ops responses: 200: description: Sync Gateway configuration of the running instance. @@ -52,6 +56,10 @@ paths: summary: Update bootstrap logging options without needing a restart description: |+ Update bootstrap logging options without needing a restart + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Dev Ops parameters: - $ref: '#/parameters/bootstrap-logging' responses: @@ -73,6 +81,12 @@ paths: This method can also be accessed using Sync Gateway's [Metrics REST API](./rest-api-metrics.html) **See** : [Sync Gateway Statistics Schema](./../stats-monitoring.html) for more details on the metrics collected and reported by Sync Gateway. + + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Dev Ops + -- External stats reader responses: 200: description: OK - indicates success @@ -87,6 +101,10 @@ paths: summary: Get Logging Tags description: |+ Get logging tags of running instance. + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Dev Ops responses: 200: description: |+ @@ -102,6 +120,10 @@ paths: Enabling logging for a tag provides additional diagnostic information for that logging area. The PUT request replaces all existing logging tags with the ones specified in the request body. + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Dev Ops parameters: - $ref: '#/parameters/level' - $ref: '#/parameters/logLevel' @@ -118,6 +140,10 @@ paths: Enabling logging for a tag provides additional diagnostic information for that logging area. The POST request only updates the tags specified in the request body. + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Dev Ops parameters: - $ref: '#/parameters/level' - $ref: '#/parameters/logLevel' @@ -132,6 +158,11 @@ paths: summary: Gets the status of sgcollect_info description: |+ Will return information about whether sgcollect_info is currently running or not. + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Dev Ops + responses: 200: description: The operation was successful @@ -143,6 +174,11 @@ paths: summary: Trigger sgcollect_info description: |+ Starting in Sync Gateway 2.1, sgcollect_info can be triggered using ths endpoint. + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Dev Ops + parameters: - $ref: '#/parameters/sgcollect_info' responses: @@ -154,6 +190,11 @@ paths: summary: Stops any currently running sgcollect_info description: |+ sgcollect_info can be cancelled using ths endpoint. + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Dev Ops + parameters: - $ref: '#/parameters/sgcollect_info' responses: @@ -178,6 +219,11 @@ paths: - After upgrading Sync Gateway -- see ([upgrade guide](upgrade.html#upgrade)). - After moving from *non-import-docs* to *import-docs* methods. That is, from `import-docs=False` to `import-docs=True` + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Dev Ops + parameters: - $ref: '#/parameters/upgrade_preview' responses: @@ -219,6 +265,25 @@ paths: description: 200 OK schema: $ref: '#/definitions/ReplicationResponse' + /_all_dbs: + get: + tags: + - Server + summary: List all databases + description: |+ + List all databases + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Dev Ops + responses: + 200: + description: Identify all available databases + schema: + type: array + items: + type: object + $ref: '#/definitions/AllDatabases' /_active_tasks: get: tags: @@ -253,6 +318,10 @@ paths: summary: Get DB Info description: |+ This request retrieves information about the database. + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Dev Ops parameters: - $ref: '#/parameters/db' responses: @@ -273,6 +342,10 @@ paths: You can either specify the document ID by including the _id in the request message body (the value must be a string), or let the software generate an ID. The maximum size allowed for a document is 20MB. + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Application parameters: - $ref: '#/parameters/db' - in: body @@ -304,6 +377,10 @@ paths: ``` By default the created database is brought online immediately, **unless** you include `"offline": true` in the configuration. + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Architect parameters: - $ref: '#/parameters/db' - $ref: '#/parameters/database_config_body' @@ -317,7 +394,13 @@ paths: tags: - 'Database Management' summary: Delete database - description: Delete database + description: |+ + Delete database + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Architect + parameters: - $ref: '#/parameters/db' responses: @@ -334,6 +417,10 @@ paths: This request enables you to add, update, or delete multiple documents to a database in a single request. To add new documents, you can either specify the ID (`_id`) or let the software create an ID. To update existing documents, you must provide the document ID, revision identifier (`_rev`), and new document values. To delete existing documents you must provide the document ID, revision identifier, and the deletion flag (`_deleted`). The JSON returned by the `_bulk_docs` operation consists of an array of JSON structures, one for each document in the original submission. The returned JSON structure should be examined to ensure that all of the documents submitted in the original request were successfully added to the database. + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Application parameters: - $ref: '#/parameters/db' - $ref: '#/parameters/bulkdocs' @@ -358,6 +445,12 @@ paths: Each enclosed body contains one requested document. The bodies appear in the same order as in the request, but can also be identified by their X-Doc-ID and X-Rev-ID headers. A body for a document with no attachments will have content type application/json and contain the document itself. A body for a document that has attachments will be written as a nested multipart/related body. Its first part will be the document's JSON, and the subsequent parts will be the attachments (each identified by a Content-Disposition header giving its attachment name.) + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Application + -- Sync Gateway Application Read Only + produces: - 'multipart/mixed' parameters: @@ -403,6 +496,12 @@ paths: summary: Get local doc description: |+ This request retrieves a local document. Local document IDs begin with _local/. Local documents are not replicated or indexed, don't support attachments, and don't save revision histories. In practice they are almost only used by Couchbase Lite's replicator, as a place to store replication checkpoint data. + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Application + -- Sync Gateway Application Read Only + parameters: - $ref: '#/parameters/db' - $ref: '#/parameters/local_doc' @@ -417,6 +516,11 @@ paths: summary: Create or update a local document description: |+ This request creates or updates a local document. Local document IDs begin with _local/. Local documents are not replicated or indexed, don't support attachments, and don't save revision histories. In practice they are almost only used by the client's replicator, as a place to store replication checkpoint data. + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Application + parameters: - $ref: '#/parameters/db' - $ref: '#/parameters/local_doc' @@ -431,6 +535,11 @@ paths: summary: Delete a local document description: |+ This request deletes a local document. Local document IDs begin with _local/. Local documents are not replicated or indexed, don't support attachments, and don't save revision histories. In practice they are almost only used by Couchbase Lite's replicator, as a place to store replication checkpoint data. + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Application + parameters: - $ref: '#/parameters/db' - $ref: '#/parameters/local_doc' @@ -462,6 +571,12 @@ paths: description: |+ This request retrieves a sorted list of changes made to documents in the database, in time order of application. Each document appears at most once, ordered by its most recent change, regardless of how many times it's been changed. This request can be used to listen for update and modifications to the database for post processing or synchronization. A continuously connected changes feed is a reasonable approach for generating a real-time log for most applications. + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Application + -- Sync Gateway Application Read Only + responses: 200: description: Request completed successfully @@ -477,11 +592,18 @@ paths: summary: Changes description: |+ Same as the GET /_changes request except the parameters are in the JSON body. + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Application + -- Sync Gateway Application Read Only + responses: 200: description: Request completed successfully schema: $ref: '#/definitions/Changes' + /{db}/_compact: post: tags: @@ -500,6 +622,11 @@ paths: 1.3-1.4 -- the parent revision is marked with a 5 minute expiry time, thus calling the `/{db}/_compact` endpoint is not necessary. 1.2 -- obsolete revision bodies have to be cleaned up by calling the `/{db}/_compact` endpoint. + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Architect + parameters: - $ref: '#/parameters/db' responses: @@ -518,6 +645,11 @@ paths: summary: Get Database Configuration description: |+ Returns the Sync Gateway configuration of the database specified in the URL. This is a good method to check if a particular key was set correctly on the config file. + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Architect + parameters: - $ref: '#/parameters/db' responses: @@ -538,6 +670,12 @@ paths: By default the updated database is brought online immediately, **unless** you include `"offline": true` in the configuration. `See: {rest-api-admin--xref}` for further information on this. + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Architect + -- Sync Gateway Application + parameters: - $ref: '#/parameters/db' - $ref: '#/parameters/database_config_body' @@ -547,6 +685,27 @@ paths: 401: $ref: '#/responses/Unauthorized' /{db}/_config/import_filter: + get: + operationId: "get_import_filter" + tags: + - 'Database Configuration' + summary: Get import_filter function + description: |+ + Use this convenience endpoint to get the content of the current `import_filter` + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Architect + + consumes: ['application/javascript'] + + parameters: + - $ref: '#/parameters/db' + responses: + 200: + $ref: '#/responses/200-import-filter' + 401: + $ref: '#/responses/Unauthorized' put: operationId: "update_import_filter" tags: @@ -557,6 +716,10 @@ paths: See the 'Model' below for more info + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Architect + consumes: ['application/javascript'] parameters: @@ -567,8 +730,50 @@ paths: $ref: '#/responses/200-import-filter' 401: $ref: '#/responses/Unauthorized' + delete: + operationId: "delete_import_filter" + tags: + - 'Database Configuration' + summary: Delete import_filter function + description: |+ + Use this convenience endpoint to remove an existing`import_filter`. + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Architect + + consumes: ['application/javascript'] + + parameters: + - $ref: '#/parameters/db' + responses: + 200: + $ref: '#/responses/200-import-filter' + 401: + $ref: '#/responses/Unauthorized' /{db}/_config/sync: + get: + operationId: "get_sync_function" + tags: + - 'Access Control' + - 'Database Configuration' + summary: Get current Sync Function + description: |+ + Get the content of the current Sync Function + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Architect + + consumes: ['application/javascript'] + parameters: + - $ref: '#/parameters/db' + responses: + 200: + $ref: '#/responses/200-sync' + 401: + $ref: '#/responses/Unauthorized' put: operationId: "update_sync_function" tags: @@ -580,6 +785,35 @@ paths: See the 'Model' below for more info + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Architect + + + consumes: ['application/javascript'] + parameters: + - $ref: '#/parameters/db' + - $ref: '#/parameters/sync_function_body' + responses: + 200: + $ref: '#/responses/200-sync' + 401: + $ref: '#/responses/Unauthorized' + delete: + operationId: "delete_sync_function" + tags: + - 'Access Control' + - 'Database Configuration' + summary: Update a Sync Function + description: |+ + Use this convenience endpoint to remove an existing `Sync` function + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Architect + + consumes: ['application/javascript'] parameters: - $ref: '#/parameters/db' @@ -594,6 +828,7 @@ paths: get: tags: - Document + parameters: - $ref: '#/parameters/db' - $ref: '#/parameters/doc' @@ -604,7 +839,14 @@ paths: - $ref: '#/parameters/revs' - $ref: '#/parameters/show_exp' summary: Get document - description: This request retrieves a document from a database. + description: + This request retrieves a document from a database. + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Application + -- Sync Gateway Application Read Only + responses: 200: description: The message body contains the following objects in a JSON document. @@ -629,6 +871,11 @@ paths: If the document specified by doc does not exist, a new document is created and assigned the identifier specified in doc. If the document already exists, the document is updated with the JSON document in the message body and given a new revision. The maximum size allowed for a document is 20MB. Since Sync Gateway 1.3, an expiry property (`_exp`) can also be specified to purge the document after a given time. If **convergence** is enabled (introduced in Sync Gateway 1.5), the behavior of the expiry feature changes in the following way: when the expiry value is reached, instead of getting purged, the **active** revision of the document is tombstoned. If there is another non-tombstoned revision for this document (i.e a conflict) it will become the active revision. The tombstoned revision will be purged when the server's metadata purge interval is reached. + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Application + responses: 200: description: The response is a JSON document that contains the following objects @@ -640,6 +887,11 @@ paths: summary: Delete document description: |+ This request deletes a document from the database. When a document is deleted, the revision number is updated so the database can track the deletion in synchronized copies. + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Application + parameters: - $ref: '#/parameters/db' - $ref: '#/parameters/doc' @@ -658,6 +910,12 @@ paths: This request retrieves a file attachment associated with the document. The raw data of the associated attachment is returned (just as if you were accessing a static file). The Content-Type response header is the same content type set when the document attachment was added to the database. To remove an attachment from a document, simply update the `_attachments` dictionary of the document in the PUT "/{db}/{id}" request. From then on, the attachment will not be replicated but will still reside in the Couchbase Server bucket (see open ticket [1648](https://github.com/couchbase/sync_gateway/issues/1648). + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Application + -- Sync Gateway Application Read Only + parameters: - $ref: '#/parameters/db' - $ref: '#/parameters/doc' @@ -685,6 +943,11 @@ paths: Uploading an attachment updates the corresponding document revision. Revisions are tracked for the parent document, not individual attachments. To remove an attachment from a document, simply update the `_attachments` dictionary of the document in the PUT "{db}/{id}" request. From then on, the attachment will not be replicated but will still reside in the Couchbase Server bucket (see open ticket [1648](https://github.com/couchbase/sync_gateway/issues/1648). + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Application + parameters: - $ref: '#/parameters/db' - $ref: '#/parameters/doc' @@ -706,6 +969,12 @@ paths: summary: Query a view description: |+ Query a view on a design document. + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Application + -- Sync Gateway Application Read Only + parameters: - $ref: '#/parameters/db' - $ref: '#/parameters/ddoc' @@ -795,6 +1064,11 @@ paths: summary: All docs description: |+ This request returns a built-in view of all the documents in the database. + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Application + -- Sync Gateway Application Read Only parameters: - $ref: '#/parameters/db' - $ref: '#/parameters/access' @@ -817,6 +1091,11 @@ paths: summary: All docs description: |+ This request retrieves specified documents from the database. + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Application + -- Sync Gateway Application Read Only parameters: - $ref: '#/parameters/db' - $ref: '#/parameters/access' @@ -997,6 +1276,11 @@ paths: You can cancel continuous replications by adding the cancel field to the JSON request object and setting the value to true. Note that the structure of the request must be identical to the original for the cancellation request to be honoured. For example, if you requested continuous replication, the cancellation request must also contain the continuous field. + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Replicator + parameters: - $ref: '#/parameters/db' - $ref: '#/parameters/db-local' @@ -1013,9 +1297,15 @@ paths: get: tags: - Replication - summary: Retrieve all replication definitions + summary: + Retrieve all replication definitions description: |+ Returns an array object containing all replication definitions + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Replicator + parameters: - $ref: '#/parameters/db' - $ref: '#/parameters/db-local' @@ -1034,6 +1324,11 @@ paths: summary: Retrieve a replication definition description: |+ Returns requested (**replicationID**) replication definition + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Replicator + parameters: - $ref: '#/parameters/db' - $ref: '#/parameters/db-local' @@ -1061,6 +1356,11 @@ paths: Note that the structure of the request must be identical to the original for the cancellation request to be honoured. For example, if you requested continuous replication, the cancellation request must also contain the continuous field. + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Replicator + parameters: - $ref: '#/parameters/db-local' - $ref: '#/parameters/replication_id-upsert' @@ -1083,6 +1383,11 @@ paths: - Removes persisted replication definition - Removes all checkpoints associated with the replication - Deletes all replication status information associated with the replication + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Replicator + parameters: - $ref: '#/parameters/db-local' - $ref: '#/parameters/replication_id-required' @@ -1120,6 +1425,11 @@ paths: http://localhost:4985/{db}/_replicationStatus?activeOnly=false&localOnly=false&includeError=true ``` + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Replicator + parameters: - $ref: '#/parameters/db' - in: query @@ -1169,6 +1479,11 @@ paths: summary: Returns information on specified replication description: |+ Returns the status of the requested (**replicationID**) replication + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Replicator + parameters: - $ref: '#/parameters/db' - $ref: '#/parameters/replication_id-required' @@ -1199,6 +1514,11 @@ paths: ``` http://localhost:4985/fred/_replicationStatus/{replicationID}?action=start ``` + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Replicator + parameters: - $ref: '#/parameters/db' - $ref: '#/parameters/replication_id-required' @@ -1214,7 +1534,13 @@ paths: tags: - 'Database Management' summary: Used by the replicator - description: Given a set of document/revision IDs, returns the subset of those that do not correspond to revisions stored in the database. + description: |+ + Given a set of document/revision IDs, returns the subset of those that do not correspond to revisions stored in the database. + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Application + parameters: - $ref: '#/parameters/db' - in: body @@ -1247,12 +1573,19 @@ paths: summary: Get Views of a design document description: |+ Query a design document. + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Application + -- Sync Gateway Application Read Only parameters: - $ref: '#/parameters/db' - $ref: '#/parameters/ddoc' responses: 200: - description: Views for design document + description: |+ + Views for design document + schema: type: object properties: @@ -1262,6 +1595,13 @@ paths: tags: - 'Design Documents' summary: Update views of a design document + description: |+ + Update views of a design document + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Application + parameters: - $ref: '#/parameters/db' - $ref: '#/parameters/ddoc' @@ -1282,6 +1622,11 @@ paths: summary: Delete design document description: |+ Delete a design document. + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Application + parameters: - $ref: '#/parameters/db' - $ref: '#/parameters/ddoc' @@ -1317,6 +1662,11 @@ paths: Taking a database offline that is in the progress of coming online will take the database offline after it comes online. For more information about taking a database offline and bringing it back online, see [this guide](../database-offline.html). + + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Architect parameters: - $ref: '#/parameters/db' responses: @@ -1343,6 +1693,10 @@ paths: - Making databases on several Sync Gateway instances available at the same time. For more information about taking a database offline and bringing it back online, see [this guide](../database-offline.html). + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Architect parameters: - $ref: '#/parameters/db' - in: body @@ -1369,6 +1723,11 @@ paths: The purge command provides a way to remove a document from the bucket itself. The operation removes all the revisions (active and tombstones) for the specified document(s). A common usage of this endpoint is to remove tombstone documents that are no longer needed, thus recovering storage space and reducing data replicated to clients. Other clients are not notified when a revision has been purged; so in order to purge a revision from the system it must be done from all databases (on Couchbase Lite and Sync Gateway). When **convergence** is enabled (introduced in Sync Gateway 1.5), this endpoint removes the document and its associated extended attributes. + + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Application parameters: - $ref: '#/parameters/db' - in: body @@ -1397,7 +1756,12 @@ paths: description: |+ Returns the document with the metadata. - Note: The direct use of this endpoint is unsupported. The sync metadata is maintained internally by Sync Gateway and its structure can change. It should not be used to drive business logic of applications since the response to the `/{db}/_raw/{id}` endpoint can change at any time. + Note: The direct use of this endpoint is unsupported. The sync metadata is maintained internally by Sync Gateway and its structure can change. It should not be used to drive business logic of applications since the response to the `/{db}/_raw/{id}` endpoint can change at any time.\ + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Application + -- Sync Gateway Application Read Only parameters: - $ref: '#/parameters/db' - $ref: '#/parameters/doc' @@ -1419,6 +1783,32 @@ paths: A _resync operation on a database that is not in the offline state will be rejected (503 Service Unavailable). A _resync operation will block until all documents in the database have been processed. + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Architect + parameters: + - $ref: '#/parameters/db' + responses: + 200: + description: OK – The _resync operation has completed + schema: + type: object + description: The number of documents that were successfully updated. + properties: + changes: + type: integer + description: The number of documents that were successfully updated + get: + tags: + - 'Database Management' + summary: Get resync status + description: |+ + Return resync status. + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Architect parameters: - $ref: '#/parameters/db' responses: @@ -1446,6 +1836,11 @@ paths: - Render a PNG by calling `dot -Tpng revtree.dot > revtree.png`. **Note:** This endpoint is useful for debugging purposes only. It is not officially supported. + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Application + -- Sync Gateway Application Read Only parameters: - $ref: '#/parameters/db' - $ref: '#/parameters/doc' @@ -1457,7 +1852,15 @@ paths: tags: - 'Database Security' summary: Get roles - description: This request returns all the roles in the specified database. + description: |+ + This request returns all the roles in the specified database. + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Architect + -- Sync Gateway Application + -- Sync Gateway Application Read Only + responses: 200: description: 200 OK – Returns the list of roles as an array of strings @@ -1473,7 +1876,13 @@ paths: tags: - 'Database Security' summary: Role - description: This request creates a new role + description: |+ + This request creates a new role + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Architect + -- Sync Gateway Application parameters: - $ref: '#/parameters/db' - $ref: '#/parameters/role' @@ -1489,7 +1898,16 @@ paths: tags: - 'Database Security' summary: Get role - description: Request a specific role by name. + description: |+ + Request a specific role by name. + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Architect + -- Sync Gateway Application + -- Sync Gateway Application Read Only + + Without `Application` or `Application Read Only` users will be unable to see dynamic user or role data. parameters: - $ref: '#/parameters/db' - $ref: '#/parameters/role_name' @@ -1522,7 +1940,12 @@ paths: - 'Database Security' summary: Upsert a Role description: |+ - Use this convenience endpoint to upsert a Sync Gateway role + Use this convenience endpoint to upsert a Sync Gateway role. + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Architect + -- Sync Gateway Application parameters: - $ref: '#/parameters/db' - $ref: '#/parameters/role_name' @@ -1538,7 +1961,14 @@ paths: tags: - 'Database Security' summary: Deletes the role - description: This request deletes the role with the specified name + description: |+ + This request deletes the role with the specified name. + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Architect + -- Sync Gateway Application + parameters: - $ref: '#/parameters/db' - $ref: '#/parameters/role_name' @@ -1551,7 +1981,15 @@ paths: - Session summary: Creates a new session description: |+ - If the credentials provided in the request body are valid, the session is created with an idle session timeout of 24 hours. An idle session timeout in the context of Sync Gateway is defined as the following: if 10% or more of the current expiration time has elapsed when a subsequent request with that session id is processed, the session's expiry time is automatically updated to 24 hours from that time. + If the credentials provided in the request body are valid, the session is created with an idle session timeout of 24 hours. + An idle session timeout in the context of Sync Gateway is defined as the following: + - If 10% or more of the current expiration time has elapsed when a subsequent request with that session id is processed, the session's expiry time is automatically updated to 24 hours from that time. + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Architect + -- Sync Gateway Application + parameters: - $ref: '#/parameters/db' - in: body @@ -1590,6 +2028,12 @@ paths: summary: Retrieves information about a session description: |+ This request retrieves information about a session. + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Architect + -- Sync Gateway Application + -- Sync Gateway Application Read Only parameters: - $ref: '#/parameters/db' - $ref: '#/parameters/sessionid' @@ -1616,6 +2060,11 @@ paths: summary: Deletes a single session description: |+ This request deletes a single session. + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Architect + -- Sync Gateway Application parameters: - $ref: '#/parameters/db' - $ref: '#/parameters/sessionid' @@ -1627,7 +2076,13 @@ paths: tags: - Session summary: Deletes all user sessions - description: This request delete the session for the specified user. + description: |+ + This request delete the session for the specified user. + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Architect + -- Sync Gateway Application parameters: - $ref: '#/parameters/db' - $ref: '#/parameters/name' @@ -1639,7 +2094,13 @@ paths: tags: - Session summary: Deletes a specific user session - description: This request delete the specified session for the specified user. + description: |+ + This request delete the specified session for the specified user. + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Architect + -- Sync Gateway Application parameters: - $ref: '#/parameters/db' - $ref: '#/parameters/name' @@ -1652,7 +2113,14 @@ paths: tags: - 'Database Security' summary: Retrieves all users - description: This request returns all users + description: |+ + This request returns all users + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Architect + -- Sync Gateway Application + -- Sync Gateway Application Read Only parameters: - $ref: '#/parameters/db' responses: @@ -1669,7 +2137,13 @@ paths: tags: - 'Database Security' summary: Create a new user - description: This request creates a new user + description: |+ + This request creates a new user + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Architect + -- Sync Gateway Application` parameters: - $ref: '#/parameters/db' - $ref: '#/parameters/user' @@ -1686,7 +2160,16 @@ paths: tags: - 'Database Security' summary: Retrieve a User - description: This request returns information about the specified user. + description: |+ + This request returns information about the specified user. + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Architect + -- Sync Gateway Application + -- Sync Gateway Application Read Only + + Without `Application` or `Application Read Only` users will be unable to see dynamc user or role data. parameters: - $ref: '#/parameters/db' - $ref: '#/parameters/name' @@ -1706,6 +2189,11 @@ paths: summary: Upsert a User description: |+ Use this method to create or update a user + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Architect + -- Sync Gateway Application parameters: - $ref: '#/parameters/db' - $ref: '#/parameters/name' @@ -1722,7 +2210,13 @@ paths: tags: - 'Database Security' summary: Delete a User - description: This request deletes the user with the specified name + description: |+ + This request deletes the user with the specified name + + *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* + + -- Sync Gateway Architect + -- Sync Gateway Application parameters: - $ref: '#/parameters/db' - $ref: '#/parameters/name' @@ -1929,10 +2423,10 @@ definitions: By default the Metrics API requires Couchbase Server RBAC authentication. The user must provide credentials to an existing user with an appropriate Sync Gateway role. - enable_advanced_auth_dp: - type: boolean - description: |+ - Whether to enable the DP permissions check feature of admin auth + # enable_advanced_auth_dp: + # type: boolean + # description: |+ + # Whether to enable the DP permissions check feature of admin auth profile_interface: type: string @@ -4072,6 +4566,14 @@ definitions: description: Role name + AllDatabases: + type: array + description: List of available datasese in cluster + items: + type: string + description: Database name + + ActiveTaskResponseBody: type: object properties: diff --git a/modules/ROOT/assets/attachments/rest-api-metrics.yaml b/modules/ROOT/assets/attachments/rest-api-metrics.yaml index b304373f8..7bab665d5 100644 --- a/modules/ROOT/assets/attachments/rest-api-metrics.yaml +++ b/modules/ROOT/assets/attachments/rest-api-metrics.yaml @@ -37,6 +37,13 @@ paths: **See** : [Sync Gateway Statistics Schema](./../stats-monitoring.html) for more details on the metrics collected and reported by Sync Gateway. + *Sync Gateway Roles Required:* + + -- Sync Gateway Dev Ops + -- External Stats Reader + + + responses: 200: description: OK - indicates success @@ -56,6 +63,12 @@ paths: - For more details on the metrics collected and reported by Sync Gateway -- see: [Sync Gateway Statistics Schema](./../stats-monitoring.html). - For more details on Monitoring Sync Gateway using the ```_metrics``` feed -- see: our blog on [Monitoring and Visualization of Couchbase Sync Gateway with Prometheus and Grafana](https://blog.couchbase.com/monitoring-and-visualization-of-couchbase-sync-gateway-with-prometheus-and-grafana/) + *Sync Gateway Roles Required:* + + -- Sync Gateway Dev Ops + -- External Stats Reader + + responses: 200: description: OK - indicates success diff --git a/modules/ROOT/assets/attachments/sg-bootstrap.yaml b/modules/ROOT/assets/attachments/sg-bootstrap.yaml index 4917ff5d0..42c6edf8b 100644 --- a/modules/ROOT/assets/attachments/sg-bootstrap.yaml +++ b/modules/ROOT/assets/attachments/sg-bootstrap.yaml @@ -40,6 +40,7 @@ properties: default: none description: |+ The username to be used when authenticating to the server. + password: type: string default: none @@ -144,11 +145,6 @@ properties: By default the Metrics API requires Couchbase Server RBAC authentication. The user must provide credentials to an existing user with an appropriate Sync Gateway role. - enable_advanced_auth_dp: - type: boolean - description: |+ - Whether to enable the DP permissions check feature of admin auth - profile_interface: type: string description: |+ diff --git a/modules/ROOT/assets/images/icons/no.png b/modules/ROOT/assets/images/icons/no.png new file mode 100644 index 0000000000000000000000000000000000000000..c8b49d660b304ce3852b83374b2e7a4a96024b64 GIT binary patch literal 3984 zcmZuz2{@Ep`yWj9Yzd)EvSgc)tt>N^!I&sSWo%pbV2`}}_QegE!rU(fZ#7+pu4WaeiE001YEdfGRR zX3pcmNPqNJ#Uu6r0A@`b9Bzb!!$C%#?hZItEC8T)GW!w1)MSJwnoPP(`p6{=65Zs# z%LMwQs&^V_9D@usqK%3W^VL3~%grfq%ii=o4I*0DPKTT2UbyWr({~P|wkBh3o$1kd z7p7IB;>K9kK|5-EWVU8_#BnufxDH_SGaUHA+l(euAr{8kHZ30q4VxLw zdy0bt5V508JMfbP&CD#;YpdE?0f*Yxf0b@D67w253`r8c3>TpXFzXB|sRfJiPSd8E zRJERwI|O!Zrb);}U6SL;V|w;NnA%d|x>YnIRo|JBE;g0NkLo@1P9Z10-e@dKl#(A0 z%(Ki8op8(#WWbV4ky(K0?Th{WJ5LM%vfP>Io>{Rx*BCh+?lUVf-)RAisV&OyJlW!Q zm7Q_`eua)xvA`IlZ6W7y25x$;!(nf|%4FB}l2mH*HOhTI1M+4y>jPQd&rY8n5MiiTm=EXp8!;kJ=r)HP3_50+yP)yq_EH-qjeTyq(#- zvVTjpkXJqI0`jyxR%g1fs8C7%A%m0=w3T@I;IrmCq@dXK6mDdc2=5IMiOlLSQ>3%7l^9fvbUvk1#UA0w zhtjY%EEmZIp+(t~)s0dwig6oW71YrhxvqTmt%kpbKfK_^$zrzwv(k*ZY;!}BcF@%z z2qHy3eIuRPNlYnAa!FfE4-hp>9Zn~tqrti2=<^|0|1A7jOKaSu(PR>qUwJD}ms0%! z8i~}&dX{E;-!{uO#`fN%Vym&}yX3Is8ZN^Ujrqz?q6O#qwfYPEKh;)Wt5*4f{UUo7 zaryavf69F8rqCQ|lL;$|wV1v*EjZ0TUDb7i{)4Q|j{J=?1@S5I_3?=t3NvrXRPtA) z3Y_)fJBhSiNjJ&BG~qOdG@7);QiGfBgWQAJrT9|A0a<4;XN>cR^Zp>XEP-4^CghN_ z(F%uCKcg2a>tgQK?m7QxUVtv7@MrNi@Sowo$)B#!rg$dHEvqwYI%`&;z1qo~5zFD~wn3V8*$`+~a_3#CbAeUka+`KoPK z?B3joU58OE#42O5k;%w}&TA&02gXco>d4h(R+kwkF@-Y4`u1m)-%zL*x1YL->yC{O+Mdh!XIZAEsdOVdu zJV5+qKeA{%8`Ue(d$Kp5g_U=WcR+^Ev+oY2R?ssEY!8k{`+4LI-29qGHDBE8xi*|I z>)V2F8T||$IjG&2V%KL+Ld3PF7NyMclUc0qr&rugx?NF|yluPcyjlcPfyKZQV5b^< z8_I$pJD3C71K+*Tjp4P~z2SXB;1%Etra9*4KwaQ11{jMR6W0kJU~>~qQ+>D)nGedQjJNG)#~(~7av$!;f2_ef9*}bU_Sy-##Tog-cqlZ*zu_Y5tqQD&qL7d zM6~J*BChEK=%nlDr<+Nms-|?~&Er9ZP#z(H(*YvBo+aC#M)jkqOOwph6|lVJqpGDZ zp0B4%y2<4a(M_m3lIH}3&W>{&#+>?4GHp=4iGE9%1`emxNAD-kwn@zUsk*ASVT0_m(6F#rd-@~R#QXi(~OURe>mHdH=sNSjW*Am6VR!UjP zL&ZsuW`%rNcwHB6aOLKyXBvG;1{b|h4)qxi{xtZZ7ccTy^d5?(%K6opBLbV-W!%F# zvpJPD<<@<+bE9)VSkXa|;N#ff`)Ab8CdCyOHe%#Zx#icl*9lflb(9|si-~v;UTcJmS1X(mgGCF^7sB`xvt~#O0X56nU)sM8H;&^&`e_pAS{Y#H zxCP&ZbZi^B5H<0wm~WI9&E&;r3w4c-A?Oh8Wxe$zG9nUD(EcIOXHa!u_;T^(RHY9I z$!#yGciP<#CVs#JPL<6Y$>+b_0bV(;ygu2!Bea^ssy5;u8&oT=X4C-t6w@>n^S5d2-MEpk0BhBsQ} zwl}PVw_0}r zK}3+_cjHIzzT9kG>yA(Fr$#nP{P|`(t*-p7VL-jI6?yeYJMt5OFY&a z1M{11F1MB7P>T|3Jc3Dmh^8bwgBp7<)ut&xDMY!}E|99Iz@n-)kz~7C(32Knzg8r?* zf8E|M>(TYWn2)slyA@!}lSp}qqsDoM)Yde;!bvn8*EiMVJ6P$ly2eD*k+m!N1}qqr zkusKIwa}as9aRisx?74^e2J)Oe|q>d=dQO4X^#sS$&HQGotKPIm$c&Q6cJS*tbUtU zh1WanerE8R?d?&X?F}5ybm`00J;d3a z!yg+9s@_?684`jUo*6#fwc8CPzD9suz9zRyQ!Ffa3!9Ic(q{tbvdrhz^s-> zSS#*}7fRowziVI7%j~`0#mdU9R}Z8Yv|a^qmMZy~K<(&=UBr$2)Yyn}MXBvw`HD%`6nCG+^p~)mi0txl&iTIY{LlY;uj_f==l#9+{rmmy`+2VSdZKjiBAFR^836zQGfG44-pP~g zbkNhD+;8KN`v3r=GEP-h7p1BS)^&HW#W`UC01f8s$6f~dW1Nu`@=fyla}cn=7OyV@ z_`_|D^B}z_RIn~EA`I%OMx)NbCUoD%pp^<439&|SFg*&zj57RS)$MB2Q$x&+$2u~s z5oI&R+^AxgoGq#9z*^M$V^A2({}OvbyDw>bm(jzFS?(nNjfK%q&tx*FjWu>$}@c; z@YSxspAJhlKxG2vcCHN$?mpE9h;w9Eyjy_gIYmh#IC#EC{Qv^!Q#)jv+*xAwWbJbR z-bHq^(V!?4rig9y32tt&$98|CMt=_@aXt0TovGivwJBS*XX3@Vf-7AfBd7$>_ze4` zRU+T&Dtctzey?S0@=~DwkwTB}f#C*pg_5Hjn}eQoT6rNx<^*i>8)sdtX-+c))Z%HC z=B8fgtbqYPXaKbnPd6_`IGHDROrH^Cidk84@}SCfgk4{}d5|0G^0p;Hb|<6n`@#L& zMO=y@S5fDsu!y;$;vy}zckj-yq*H8;c36*RT4iy+_r4K%n%l~?5x!`sx0uQh7G+Ng zmk%*YgxN5L1r1LHao-T6;|a`m0-0>apy00*s@KLTC{k5%2~qer&)eO2>5|CEla z_4AZwJtv%{uAOV@!a6`C+@d{&Ua5zkdO+QX{=$ZuN}>@z726fZBuF8!6p@+8Qh1>u zP9w=}mYOy)&*}*`XBW>*Bsz8qbKhzNqbWZ8#QMp7ZLawnwyaVid!f%U!!L`B1Yan6 zGTdOxiWBX)Z<%0eQkDLa`lHp#Z9bOnR-S1-*T8yiQ%Pr;3Q*nI(O6RO@*CzU=!SQb z@C3(N=-D=pb&UU&X2u}Cpi7epm%Ca76B&#_j-h9-JO=YS@f)!6(l5{-g|W3u>xGo) z5Fin(J{_hQp_lO=m77p}(7P!ds0eaymK{g@6oo4TkcBT<9QyN5=)9r*p!}cpv+J{->AfyA2$i5 z?Fl;z`=>$DY}2UH63Vm-4=;bhN~b#4IZH z*7D$bxy0PU7G#S_(A(Dc;7^t@%2{nCdC_?-RykG$Q`T3@lFA2!3yceHcipmn?H0WO zpD}?}MP;LsQE|O@^gj+w7+5w^YAI(N=k1}=ePd;AN0vi7bs zDa07XWOI&lT8ONQ=!-6kTt*9_X^il-->UZCeCo(_G_wxqj&PWgB89G5f!Iy)m z;>m1uzfeDOe*x1Ou63>(E}aOEzk>wMaDvqI_N$foJo@59L+<}n>MO8Qs`x|4;K8UL!3aB zLsidkc?Ov?X6N@kxM3pFFQ6+v^@iSo-d-S43_?w{gQStr^PvYB6UV8=>80L_>_iMB z?;!jT=?JZKBN24Xta_|*EVxL4^YVrBe*B*9r8^(SwIXL$rWt3x!=y|f*Q|VUe>GRy zN2y4(XhXXRU%GJl;w0;F6nlH=oOZ>QMT6HIXf%Zsd62x&b$uaj!)zCOm;_1>s}37b zOYbm?vPM;)&ZB04I?AuUKCHI*5i(nvnwVN3Bvm?4`a3SHcDHs=MZhY$>bjYff*@J! zjdX#yYU5kn@OMM@e5HXT?Q0%rThf#GU)n!4V)?TK9-*0P9I7Ymkl5U}dhgigw`MbE zo%=5KZuTAo%GkxJ*^|~ zC3$%g9q?dp{M~lgD*5^L^8>H1p7dT{#+Mp5jWRH3^Rf38U(JYf?|$U}s3SdCX})h| z;%0dkmtd1nD_K%a)~s|u4i|qb{1(ESkU3BO=2y3x{i*x&Xv-u%Xpkz7x|0rmiG!~x zsAoslk*JLCwE8mj;tgdv|65~=U64hP+N#Dz5(OEKeBRxj@NoF{(CE#Qo2fV2c?Kbq$^d>unW3%MRsGld-w8M&KdbJpXh+HCBdWI?bq*(qmA=MzKle@ zF1&&B)ApNO3Leb9*nd$}G3(fWD|S00v*xXx7A2|w{L?JiT(7_%DqZ0lF;QHRat{db z#@g8r*%eh46MZ4+mF61_?xml}2Zx5~<#rXaX14>f1IVipM{y&UNI8!!RswNLuh#J7 zCD)px$1}wEW}1M7eX|3xiS5RKx%lJk3)C^R``=;Be#hot6qW)ejt1yT&zdW~^SyOs ze`LKflP}1qBb-yFNIV+e9knebZ>>BVwWQSiW|t6AuPSz&wpXe1hK5o~xvpNT{tZb) zQeyXF$9-RJb*}ftrVq}9w+Q`uy^}Ujo*U?OK(@p5cC0%NEN3WcPLwpu?vHHa7i<=1 z2fc7>Ma9t*<;{xQAxC)!)?3|4ODj6NI%&CaieCNnvvFj$y3-t`0x0LXjGolNmqf)&^s z@8s+u=dA$w10i=ZKMjjPz<)ppjtUT?JGx+17k4aJ1||&?hrk)ZV6eQqjjh~0HTA#f zCvOT6dji2#PE5?p%M0cu1#@w?6O)jYl@$}06qA$`Jwb?i_&5`+yhWWouKtdOX3TuTYF41WNDIV-aR||`66Dr= zCW1@&n+tz`m(|cByEEaD+qx!`FYsMSm7dxBv#5t%TJmb5FoS^By|Ro?7-!zAD$0%_ zB-SaJ8AQ)}5Iuah`iBLr%xsk_1byq}y4&spBDlnmiTIe?tUl-WNI#NWA)Do*>Byr7 zq{h%r+jZ(@yY2RX&F8$}!K9Ky2a-mr){F`DSRlLgG~!yEP*`xI!Q~s#a2ib|llg2j zfaI5qom9D$s?ePzb-LwFw=X?Ev%FIxUjGPJ=I8aKa^0qOf86Si&a1luvDmU*sVgo_ zP^+#S?vThS<(B1UX~GwVCE^0zigm3R#e*AG0pwEpuEwk+0^V&yjog&ZX;d;4A+rqm za=5ZreKBB^Z`Yys!8w^Y=!5Aj+IV)05>WjoZsq1;o}X^fv%bGx{#LP+FE^`>{p!bM zlYy7#jIqMi6gk&5di%q|=ZFBj!8+ahYC7*d9J85z`AVqnCDP8L4bOgc_lhzJwN_%h zG$y`7UwAQNH{KCx_GQgkS<*R@5el!&^KhUMeaLyEl#m_uc`Hd2q&d%QOQooLrI2)T zL~Q>Q-?0OzWT;nB+N5H-;6DmNZxx-Bo_2a>D_MeZYJkw?ieL(~k**J)I<-#ONH+x{ zTA$y%t|3VOHGc2q@j2;dLk{Yp_j4+J!<{5y-7$f#n`0175?EDSrrwF8BLld0hj$AB z5EPcV=%jvyP);plTxH$U8RlDWJgf@hK|sU%Q6sI_EZ13DpS@BU!Xk!B+zxWAFB(r2 zTT3a%{PH*K8?3+vtOGOEpXE#l@z97+U8UyJmi;IaPe*+_{>aW#h1IUO)VRyNQ{RmN zyI=i)y2z5lvRtiovWC6vK&q3a_~Qb{O}T-U*X-flI$EAofi$0Xm4uM`oPZGR(Ea>!yi9*~}t5C5F{TEw|SGNEF literal 0 HcmV?d00001 diff --git a/modules/ROOT/nav.adoc b/modules/ROOT/nav.adoc index aa77aaa75..8576c5f58 100644 --- a/modules/ROOT/nav.adoc +++ b/modules/ROOT/nav.adoc @@ -71,6 +71,7 @@ * xref:rest-api-admin.adoc[Admin REST API] * xref:rest-api-metrics.adoc[Metrics REST API] * xref:rest-api.adoc[Public REST API] + * xref:rest-api-access-rbac-roles.adoc[RBAC Role - Endpoint Cross-Reference] .Sync * xref:sync-with-couchbase-server.adoc[Sync with Server] diff --git a/modules/ROOT/pages/_partials/_page-index.adoc b/modules/ROOT/pages/_partials/_page-index.adoc index 7ee74e67c..216ad6c5f 100644 --- a/modules/ROOT/pages/_partials/_page-index.adoc +++ b/modules/ROOT/pages/_partials/_page-index.adoc @@ -79,9 +79,11 @@ endif::xref--pfx-sgw[] :server-collections-named--xref: {svr--xref-7x0}{server-collections--page}#naming-for-scopes-and-collections[Named Collections] :server-security-auth-overview--page: learn:security/authorization-overview.adoc - :server-security-auth-overview--xref: {svr--xref}{server-security-auth-overview--page}[Security Authorization Overview] +:server-security-roles--page: learn:security/roles.adoc +:server-security-roles--xref: {svr--xref}{server-security-roles--page}[Couchbase Server Authorization Roles] + :server-transactions--page: learn:data/transactions.adoc :server-transactions--xref: {svr--xref}{server-transactions--page}[Couchbase Transactions] @@ -234,6 +236,8 @@ endif::xref--pfx-sgw[] :rest-api-access--page: rest-api-access.adoc :rest-api-access--xref: {sgw--xref}{rest-api-access--page}[REST API Access] +:rest-api-access-rbac-roles--xref: {sgw--xref}rest-api-access-rbac-roles.adoc[RBAC Role - Endpoint Cross-Reference] + :get-started-configure-server--page: get-started-configure-server.adoc :get-started-configure-server--xref: {sgw--xref}{get-started-configure-server--page}[Configure Server for Sync Gateway] :get-started-install--page: get-started-install.adoc diff --git a/modules/ROOT/pages/checkme_resync.adoc b/modules/ROOT/pages/checkme_resync.adoc new file mode 100644 index 000000000..c9ec801be --- /dev/null +++ b/modules/ROOT/pages/checkme_resync.adoc @@ -0,0 +1,108 @@ += Resync +:page-edition: {release} +:page-status: {prerelease} +:page-role: +:description: Recalculating routing and data access following Sync Function changes +:idprefix: +:idseparator: - + +include::partial$_std-hdr-sgw.adoc[] + +:topic-group: sync +:param-related: {rest-api-admin--xref} | {configuration-schema-database--xref} | {configuration-schema-database--xref--sync} | {configuration-properties-legacy--xref} +:param-abstract: This content explains the resync feature +include::partial$block-abstract.adoc[] + +:tkn-db: pass:q,a[\{db\}] +:resync_api_put: {rest-api-admin--pfx}#/Database_Management/post__db___resync[/{tkn-db}/resync] +:resync_api_get: {rest-api-admin--pfx}#/Database_Management/get__db___resync[/{tkn-db}/resync] + + +== Introduction + + +The _Sync Function_ computes both the document routing to channels and the user access to channels at document write time. + +If the Sync Function is changed, Sync Gateway needs to reprocess all existing documents in the bucket to recalculate the routing and access assignments. + +== Resync API + +The Admin REST API provides a {resync_api_put} endpoint that enables you to start or stop a resync operation. +Starting the resync will initiate the reprocessing of every document in the database again. + +There is also a 'support-only' option to regenerate sequences whilst resyncing. + +The resync action is carried out **only** on the node that the POST is made to. +It is not cross-node aware. + +In a multi-node cluster, the resync must be only run on one node. +Users should bring other nodes offline before initiating this action. +Starting it on more than one node will result in multiple resyncs running, with undefined system behavior. + +A _resync operation will block until all documents in the database have been processed. + +You can use {resync_api_get} to establish the status of a running resync operation. + +== Updating the Sync Function +To update the Sync Function and fully resync, you are recommended to follow the steps in <>. + +NOTE: This is an expensive operation because it requires every document in the database to be processed by the new function. + +The database can accept no requests until this process is complete because no user's full access privileges are known until all documents have been scanned. +Therefore, the Sync Function update will result in application downtime whilst the database is offline (that is, between the call to the `/{tkn-db}/_offline` and `/{tkn-db}/_online` endpoints in <>. + +[#steps-to-resync] +.Steps to Update and Resync +-- +. Update the configuration file of the Sync Gateway instance +. Restart Sync Gateway +. Take the database offline + +Use this Admin REST API endpoint: + +{rest-api-admin--pfx}#/Database_Management/post\__db___offline[/{tkn-db}/_offline] +. Resync the database + +Use this Admin REST API endpoint: + +{resync_api_post} ++ +The message body of the response contains the number of changes that were made as a result of calling resync +. Bring the database back online + +Use this Admin REST API endpoint: + +{rest-api-admin--pfx}#/Database_Management/post\__db___online[/{tkn-db}/_online] +-- + + +== Running Resync + +If the modifications to the Sync Function only impact write security (and not routing/access), you won't need to run the resync operation. + +If you wish to change the channel/access rules, but only want those rules to apply to documents written after the change was made, then you don't need to run the resync operation. + +=== Resync Context + + +When running a resync operation, the context in the Sync Function is the admin user. +For that reason, calling the methods `requireUser`, `requireAccess`, and `requireRole` will always succeed. +It is very likely that you are using those functions in production to govern write operations. +But in a resync operation, all the documents are already written to the database. +For that reason, it is recommended to use resync for changing the assignment to channels only (i.e. reads). + + +=== Revoking Access + +If you change the sync function to revoke a user's access to a document, the access will only take effect once a new revision to that document is saved on Sync Gateway. +Running a resync operation does not revoke access to that document. + +=== Availability + +If you need to ensure access to the database during the update, you can create a read-only backup of the Sync Gateway's bucket beforehand, then run a secondary Sync Gateway on the backup bucket, in read-only mode. +After the update is complete, switch to the main Gateway and bucket. + +=== Clusters + +In a clustered environment with multiple Sync Gateway instances sharing the load, all the instances need to share the same configuration, so they all need to be taken offline either by stopping the process or taking them offline using the {rest-api-admin--pfx}#/Database_Management/post\__db___offline[/{tkn-db}/_offline] endpoint. +After the configuration is updated, *one* instance should be brought up so it can update the database--if more than one is running at this time, they'll conflict with each other. +After the first instance finishes opening the database, the others can be started. + + + +include::partial$block-related-content-sync.adoc[] + diff --git a/modules/ROOT/pages/rest-api-access-rbac-roles.adoc b/modules/ROOT/pages/rest-api-access-rbac-roles.adoc new file mode 100644 index 000000000..ce3efbfcb --- /dev/null +++ b/modules/ROOT/pages/rest-api-access-rbac-roles.adoc @@ -0,0 +1,1069 @@ += RBAC Role -- Endpoint Cross-reference +:page-partials: +:page-edition: {release} +:page-status: {prerelease} +:page-role: +:page-content: Reference +:description: Server RBAC Role -- Rest API endpoint cross reference tabley + +include::partial$_std-hdr-sgw.adoc[] + +:param-abstract!: Shows how to access Sync Gateway APIs +:param-related: {rest-api--xref} | {rest-api-admin--xref} | {rest-api-metrics--xref} +:topic-group: REST API +include::partial$block-abstract.adoc[] + +:xref--pfx: {sgw--xref}: +:tls-encryption--xref: {sgw--xref}{secure-sgw-access--page}[enforcing TLS encryption] + + +== Admin + +The table below identifies the RBAC roles required by Sync Gateway to execute endpoint actions. +*Couchbase Server 7.0.2 Developer Preview* introduces new roles offering fine grained access control; existing roles will remain available. + +For more on RBAC roles, see the Couchbase Server documentation: {server-security-roles--xref} + + +.REST API Admin Endpoints +[#tbl-endpoint-role-xref, cols="1,1,1,2,2", options="header"] +|=== + +3+^| Rest API Endpoint +2+^| Couchbase Server Roles + +.>h| Scope +.>h| Endpoint +.>h| Method +.>h| All Versions +h| 7.0.2 + +Developer Preview + +| Cluster +| /_all_dbs +| GET / HEAD +a| Cluster Admin Role, +Full Admin Role, +Read Only Admin, +| Sync Gateway Dev Ops +| Cluster +| /_config +| GET +| Cluster Admin Role, +Full Admin Role, +Read Only Admin, +| Sync Gateway Dev Ops + +| Cluster +| /_config +| PUT +| Cluster Admin Role, +Full Admin Role, +| Sync Gateway Dev Ops| Cluster +| /_debug/fgprof +| GET +| Cluster Admin Role, +Full Admin Role, +Read Only Admin, +| Sync Gateway Dev Ops + +| Cluster +| /_debug/fgprof +| POST +| Cluster Admin Role, +Full Admin Role, +| Sync Gateway Dev Ops + +| Cluster +| /_debug/pprof/block +| GET +| Cluster Admin Role, +Full Admin Role, +Read Only Admin, +| Sync Gateway Dev Ops + +| Cluster +| /_debug/pprof/block +| POST +| Cluster Admin Role, +Full Admin Role, +| Sync Gateway Dev Ops + +| Cluster +| /_debug/pprof/cmdline +| GET +| Cluster Admin Role, +Full Admin Role, +Read Only Admin, +| Sync Gateway Dev Ops + +| Cluster +| /_debug/pprof/cmdline +| POST +| Cluster Admin Role, +Full Admin Role, +| Sync Gateway Dev Ops + +| Cluster +| /_debug/pprof/goroutine +| GET +| Cluster Admin Role, +Full Admin Role, +Read Only Admin, +| Sync Gateway Dev Ops + +| Cluster +| /_debug/pprof/goroutine +| POST +| Cluster Admin Role, +Full Admin Role, +| Sync Gateway Dev Ops + +| Cluster +| /_debug/pprof/heap +| GET +| Cluster Admin Role, +Full Admin Role, +Read Only Admin, +| Sync Gateway Dev Ops + +| Cluster +| /_debug/pprof/heap +| POST +| Cluster Admin Role, +Full Admin Role, +| Sync Gateway Dev Ops + +| Cluster +| /_debug/pprof/mutex +| GET +| Cluster Admin Role, +Full Admin Role, +Read Only Admin, +| Sync Gateway Dev Ops + +| Cluster +| /_debug/pprof/mutex +| POST +| Cluster Admin Role, +Full Admin Role, +| Sync Gateway Dev Ops + +| Cluster +| /_debug/pprof/profile +| GET +| Cluster Admin Role, +Full Admin Role, +Read Only Admin, +| Sync Gateway Dev Ops + +| Cluster +| /_debug/pprof/profile +| POST +| Cluster Admin Role, +Full Admin Role, +| Sync Gateway Dev Ops + +| Cluster +| /_debug/pprof/symbol +| GET +| Cluster Admin Role, +Full Admin Role, +Read Only Admin, +| Sync Gateway Dev Ops + +| Cluster +| /_debug/pprof/symbol +| POST +| Cluster Admin Role, +Full Admin Role, +| Sync Gateway Dev Ops + +| Cluster +| /_debug/pprof/threadcreate +| GET +| Cluster Admin Role, +Full Admin Role, +Read Only Admin, +| Sync Gateway Dev Ops + +| Cluster +| /_debug/pprof/threadcreate +| POST +| Cluster Admin Role, +Full Admin Role, +| Sync Gateway Dev Ops + +| Cluster +| /_debug/pprof/trace +| GET +| Cluster Admin Role, +Full Admin Role, +Read Only Admin, +| Sync Gateway Dev Ops + +| Cluster +| /_debug/pprof/trace +| POST +| Cluster Admin Role, +Full Admin Role, +| Sync Gateway Dev Ops + +| Cluster +| /_expvar +| GET +| Cluster Admin Role, +Full Admin Role, +Read Only Admin, +| Sync Gateway Dev Ops, +External Stats Reader + +| Cluster +| /_heap +| POST +| Cluster Admin Role, +Full Admin Role, +| Sync Gateway Dev Ops + +| Cluster +| /_logging +| GET +| Cluster Admin Role, +Full Admin Role, +Read Only Admin, +| Sync Gateway Dev Ops + +| Cluster +| /_logging +| PUT / POST +| Cluster Admin Role, +Full Admin Role, +| Sync Gateway Dev Ops + +| Cluster +| /_post_upgrade +| POST +| Cluster Admin Role, +Full Admin Role, +| Sync Gateway Dev Ops + +| Cluster +| /_profile +| POST +| Cluster Admin Role, +Full Admin Role, +| Sync Gateway Dev Ops + +| Cluster +| /_profile/{profilename} +| POST +| Cluster Admin Role, +Full Admin Role, +| Sync Gateway Dev Ops + +| Cluster +| /_sgcollect_info +| DELETE +| Cluster Admin Role, +Full Admin Role, +| Sync Gateway Dev Ops + +| Cluster +| /_sgcollect_info +| GET +| Cluster Admin Role, +Full Admin Role, +Read Only Admin, +| Sync Gateway Dev Ops + +| Cluster +| /_sgcollect_info +| POST +| Cluster Admin Role, +Full Admin Role, +| Sync Gateway Dev Ops + +| Cluster +| /_stats +| GET +| Cluster Admin Role, +Full Admin Role, +Read Only Admin, +| Sync Gateway Dev Ops, +External Stats Reader + + + + +| Cluster +| /_status +| GET +| Cluster Admin Role, +Full Admin Role, +Read Only Admin, +| Sync Gateway Dev Ops + +| Cluster +| /{db}/ +| DELETE +| Cluster Admin Role, +Full Admin Role, +| Sync Gateway Architect + + + +| Cluster +| /{db}/ +| PUT +| Cluster Admin Role, +Full Admin Role, +| Sync Gateway Architect + + + +| DB +| /_compact +| POST +| Sync Gateway Role +Bucket Admin +Bucket Application Access +Full Admin +| Sync Gateway Architect + + + +| DB +| /_config +| GET +| Sync Gateway Role +Bucket Admin +Bucket Application Access +Full Admin +| Sync Gateway Architect + + + +| DB +| /_config +| PUT +| Sync Gateway Role +Bucket Admin +Bucket Application Access +Full Admin +| Sync Gateway Architect +Sync Gateway Application + + + +| DB +| /_config/import_filter +| DELETE +| Sync Gateway Role +Bucket Admin +Bucket Application Access +Full Admin +| Sync Gateway Architect + + + +| DB +| /_config/import_filter +| GET +| Sync Gateway Role +Bucket Admin +Bucket Application Access +Full Admin +| Sync Gateway Architect + + + +| DB +| /_config/import_filter +| PUT +| Sync Gateway Role +Bucket Admin +Bucket Application Access +Full Admin +| Sync Gateway Architect + + + +| DB +| /_config/sync +| DELETE +| Sync Gateway Role +Bucket Admin +Bucket Application Access +Full Admin +| Sync Gateway Architect + + + +| DB +| /_config/sync +| GET +| Sync Gateway Role +Bucket Admin +Bucket Application Access +Full Admin +| Sync Gateway Architect + + + +| DB +| /_config/sync +| PUT +| Sync Gateway Role +Bucket Admin +Bucket Application Access +Full Admin +| Sync Gateway Architect + + + +| DB +| /_dump/{view} +| GET +| Sync Gateway Role +Bucket Admin +Bucket Application Access +Full Admin +| Sync Gateway Application +Sync Gateway Application Read Only + + + +| DB +| /_dumpchannel/{channel} +| GET +| Sync Gateway Role +Bucket Admin +Bucket Application Access +Full Admin +| Sync Gateway Application +Sync Gateway Application Read Only + + + +| DB +| /_flush +| POST +| Sync Gateway Role +Bucket Admin +Bucket Application Access +Full Admin +| Sync Gateway Dev Ops + +| DB +| /_offline +| POST +| Sync Gateway Role +Bucket Admin +Bucket Application Access +Full Admin +| Sync Gateway Architect + + + +| DB +| /_online +| POST +| Sync Gateway Role +Bucket Admin +Bucket Application Access +Full Admin +| Sync Gateway Architect + + + +| DB +| /_purge +| POST +| Sync Gateway Role +Bucket Admin +Bucket Application Access +Full Admin +| Sync Gateway Application + + + +| DB +| /_raw/{docid} +| GET / HEAD +| Sync Gateway Role +Bucket Admin +Bucket Application Access +Full Admin +| Sync Gateway Application +Sync Gateway Application Read Only + + + +| DB +| /_repair +| POST +| Sync Gateway Role +Bucket Admin +Bucket Application Access +Full Admin +| Sync Gateway Architect + + + +| DB +| /_replication/ +| GET / HEAD +| Sync Gateway Role +Bucket Admin +Bucket Application Access +Full Admin +| Sync Gateway Replicator + + + +| DB +| /_replication/ +| POST +| Sync Gateway Role +Bucket Admin +Bucket Application Access +Full Admin +| Sync Gateway Replicator + + + +| DB +| /_replication/{replicationID} +| DELETE +| Sync Gateway Role +Bucket Admin +Bucket Application Access +Full Admin +| Sync Gateway Replicator + + + +| DB +| /_replication/{replicationID} +| GET / HEAD +| Sync Gateway Role +Bucket Admin +Bucket Application Access +Full Admin +| Sync Gateway Replicator + + + +| DB +| /_replication/{replicationID} +| PUT +| Sync Gateway Role +Bucket Admin +Bucket Application Access +Full Admin +| Sync Gateway Replicator + + + +| DB +| /_replicationStatus +| GET / HEAD +| Sync Gateway Role +Bucket Admin +Bucket Application Access +Full Admin +| Sync Gateway Replicator + + + +| DB +| /_replicationStatus/{replicationID} +| GET / HEAD +| Sync Gateway Role +Bucket Admin +Bucket Application Access +Full Admin +| Sync Gateway Replicator + + + +| DB +| /_replicationStatus/{replicationID} +| PUT +| Sync Gateway Role +Bucket Admin +Bucket Application Access +Full Admin +| Sync Gateway Replicator + + + +| DB +| /_resync +| GET +| Sync Gateway Role +Bucket Admin +Bucket Application Access +Full Admin +| Sync Gateway Architect + + + +| DB +| /_resync +| POST +| +| Sync Gateway Architect + + + + +| DB +| /_revtree/{docid} +| GET +| Sync Gateway Role +Bucket Admin +Bucket Application Access +Full Admin +| Sync Gateway Application +Sync Gateway Application Read Only + + + +| DB +| /_role/ +| GET / HEAD +| Sync Gateway Role +Bucket Admin +Bucket Application Access +Full Admin +| Sync Gateway Architect +Sync Gateway Application +Sync Gateway Application Read Only + + + +| DB +| /_role/ +| POST +| Sync Gateway Role +Bucket Admin +Bucket Application Access +Full Admin +| Sync Gateway Architect +Sync Gateway Application + + + +| DB +| /_role/{name} +| DELETE +| Sync Gateway Role +Bucket Admin +Bucket Application Access +Full Admin +| Sync Gateway Architect +Sync Gateway Application + + + +| DB +| /_role/{name} +| GET / HEAD +| Sync Gateway Role +Bucket Admin +Bucket Application Access +Full Admin +| Sync Gateway Architect +Sync Gateway Application +Sync Gateway Application Read Only + + + +| DB +| /_role/{name} +| PUT +| Sync Gateway Role +Bucket Admin +Bucket Application Access +Full Admin +| Sync Gateway Architect +Sync Gateway Application + + + +| DB +| /_session +| POST +| Sync Gateway Role +Bucket Admin +Bucket Application Access +Full Admin +| Sync Gateway Architect +Sync Gateway Application + + + +| DB +| /_session/{sessionid} +| DELETE +| Sync Gateway Role +Bucket Admin +Bucket Application Access +Full Admin +| Sync Gateway Architect +Sync Gateway Application + + + +| DB +| /_session/{sessionid} +| GET +| Sync Gateway Role +Bucket Admin +Bucket Application Access +Full Admin +| Sync Gateway Architect +Sync Gateway Application +Sync Gateway Application Read Only + + + +| DB +| /_user/ +| GET / HEAD +| Sync Gateway Role +Bucket Admin +Bucket Application Access +Full Admin +| Sync Gateway Architect +Sync Gateway Application +Sync Gateway Application Read Only + + + +| DB +| /_user/ +| POST +| Sync Gateway Role +Bucket Admin +Bucket Application Access +Full Admin +| Sync Gateway Architect +Sync Gateway Application + + + +| DB +| /_user/{name} +| DELETE +| Sync Gateway Role +Bucket Admin +Bucket Application Access +Full Admin +| Sync Gateway Architect +Sync Gateway Application + + + +| DB +| /_user/{name} +| GET / HEAD +| Sync Gateway Role +Bucket Admin +Bucket Application Access +Full Admin +| Sync Gateway Architect +Sync Gateway Application +Sync Gateway Application Read Only + + + +| DB +| /_user/{name} +| PUT +| Sync Gateway Role +Bucket Admin +Bucket Application Access +Full Admin +| Sync Gateway Architect +Sync Gateway Application + + + +| DB +| /_user/{name}/_session +| DELETE +| Sync Gateway Role +Bucket Admin +Bucket Application Access +Full Admin +| Sync Gateway Architect +Sync Gateway Application + + + +| DB +| /_user/{name}/_session/{sessionid} +| DELETE +| Sync Gateway Role +Bucket Admin +Bucket Application Access +Full Admin +| Sync Gateway Architect +Sync Gateway Application + + + +| DB +| /_view/{view} +| GET +| Sync Gateway Role +Bucket Admin +Bucket Application Access +Full Admin +| Sync Gateway Application +Sync Gateway Application Read Only + +|=== + + +== Common Endpoints +.Common Endpoints (with Admin) +[#tbl-endpoint-role-xref2, cols="1,1,1,2,2", options="header"] +|=== + + +3+^| Rest API Endpoint +2+| Couchbase Server Release +| Scope | Endpoint | Method | Pre 7.0.2 | 7.0.2+ + +| Cluster +| /{db}/ +| GET / HEAD +| Cluster Admin Role, +Full Admin Role +Read Only Admin +| Sync Gateway Dev Ops + + + +| Cluster +| /{db}/ +| POST +| Cluster Admin Role, +Full Admin Role +| Sync Gateway Application + +| DB +| /_all_docs +| GET / HEAD / POST +| Sync Gateway Role, +Bucket Admin, +Bucket Application Access, +Full Admin +| Sync Gateway Application, Sync Gateway Application Read Only + + + +| DB +| /_bulk_docs +| POST +| Sync Gateway Role, +Bucket Admin, +Bucket Application Access, +Full Admin +| Sync Gateway Application + +| DB +| /_bulk_get +| POST +| Sync Gateway Role, +Bucket Admin, +Bucket Application Access, +Full Admin +| Sync Gateway Application, Sync Gateway Application Read Only + + + +| DB +| /_changes +| GET / HEAD / POST +| Sync Gateway Role, +Bucket Admin, +Bucket Application Access, +Full Admin +| Sync Gateway Application, Sync Gateway Application Read Only + + + +| DB +| /_design/{ddoc} +| GET / HEAD +| Sync Gateway Role, +Bucket Admin, +Bucket Application Access, +Full Admin +| Sync Gateway Application, Sync Gateway Application Read Only + + + +| DB +| /_design/{ddoc} +| PUT +| Sync Gateway Role, +Bucket Admin, +Bucket Application Access, +Full Admin +| Sync Gateway Application + +| DB +| /_design/{ddoc} +| DELETE +| Sync Gateway Role, +Bucket Admin, +Bucket Application Access, +Full Admin +| Sync Gateway Application + +| DB +| /_design/{ddoc}/_view/{view} +| GET +| Sync Gateway Role, +Bucket Admin, +Bucket Application Access, +Full Admin +| Sync Gateway Application, Sync Gateway Application Read Only + + + +| DB +| /_ensure_full_commit +| POST +| Sync Gateway Role, +Bucket Admin, +Bucket Application Access, +Full Admin +| Sync Gateway Application, Sync Gateway Application Read Only + + + +| DB +| /_revs_diff +| POST +| Sync Gateway Role, +Bucket Admin, +Bucket Application Access, +Full Admin +| Sync Gateway Application + +| DB +| /_local/{docid} +| GET / HEAD +| Sync Gateway Role, +Bucket Admin, +Bucket Application Access, +Full Admin +| Sync Gateway Application, Sync Gateway Application Read Only + + + +| DB +| /_local/{docid} +| PUT +| Sync Gateway Role, +Bucket Admin, +Bucket Application Access, +Full Admin +| Sync Gateway Application + +| DB +| /_local/{docid} +| DELETE +| Sync Gateway Role, +Bucket Admin, +Bucket Application Access, +Full Admin +| Sync Gateway Application + +| DB +| /{docid} +| GET / HEAD +| Sync Gateway Role, +Bucket Admin, +Bucket Application Access, +Full Admin +| Sync Gateway Application, Sync Gateway Application Read Only + + + +| DB +| /{docid} +| PUT +| Sync Gateway Role, +Bucket Admin, +Bucket Application Access, +Full Admin +| Sync Gateway ApplicationSync Gateway Application + +| DB +| /{docid} +| DELETE +| Sync Gateway Role, +Bucket Admin, +Bucket Application Access, +Full Admin +| Sync Gateway Application + +| DB +| /{docid}/{attach} +| GET / HEAD +| Sync Gateway Role, +Bucket Admin, +Bucket Application Access, +Full Admin +| Sync Gateway Application, Sync Gateway Application Read Only + + + +| DB +| /{docid}/{attach} +| PUT +| Sync Gateway Role, +Bucket Admin, +Bucket Application Access, +Full Admin +| Sync Gateway Application + +| DB +| /_blipsync +| GET +| Sync Gateway Role, +Bucket Admin, +Bucket Application Access, +Full Admin +| Sync Gateway Application + +|=== + + +== Metrics Endpoints +.REST API Admin Endpoints +[#tbl-endpoint-role-xref, cols="1,1,1,2,2", options="header"] +|=== + +3+^| Rest API Endpoint +2+| Couchbase Server Release +| Scope | Endpoint | Method | Pre 7.0.2 | 7.0.2+ + +| Cluster +| /_metrics +| GET +| Cluster Admin Role, +Full Admin Role, +Read Only Admin +| Sync Gateway Dev Ops, +External Stats Reader +|=== + +include::partial$block-related-content-api.adoc[] \ No newline at end of file diff --git a/modules/ROOT/pages/rest-api-access.adoc b/modules/ROOT/pages/rest-api-access.adoc index 542e92579..3d2fa4941 100644 --- a/modules/ROOT/pages/rest-api-access.adoc +++ b/modules/ROOT/pages/rest-api-access.adoc @@ -28,16 +28,16 @@ Sync Gateway provides secure access to its REST APIs, namely the: Each REST API is accessed through a different, <>, TCP port. This makes it easy to control their physical exposure, perhaps to keep the Admin REST API secure behind your firewall. -{sgw-s} 3.0 BETA brings additional optional but default layers of security through {tls-encryption--xref} for all API traffic and Couchbase Server Role-Based Access Control (RBAC) authorization and authentication for all <>. +{sgw-s} {version-full} brings additional optional but default layers of security through {tls-encryption--xref} for all API traffic and Couchbase Server Role-Based Access Control (RBAC) authorization and authentication for all <>. RBAC user authentication enables <> of {sgw} clusters. This is critical in cloud native deployments. -It provides secure and fine-grained access control. +The use of different RBAC roles for uses also provides secure and fine-grained access control -- for more on the available roles see <> == TLS -TLS is enforced by default for all Couchbase Server connections in 3.0 BETA. +TLS is enforced by default for all Couchbase Server connections in 3.0. For more on TLS, see: {tls-encryption--xref}. // It uses credentials provided with the request for authentication. // The only exception to this is the use of the Public REST API's _GUEST_ mode; which is for use in testing and-or development environments only. @@ -45,6 +45,8 @@ For more on TLS, see: {tls-encryption--xref}. [#lbl-secure-users] == Secure Administration + + // tag::secremacc[] Secure Administration is *on* by default. @@ -56,53 +58,134 @@ Authenticated users will have access to Admin and-or Metrics API functionality, // end::secremacc[] -The access-level will depend on the selected role. Currently available roles may vary depending on the Couchbase Server release version -- see <>. + + +[#lbl-rbac-roles] +== Sync Gateway RBAC Roles + +Couchbase Server makes a number of RBAC roles available for Sync Gateway use. +Each user's access-level will depend on its allocated role. + +The currently available roles will vary depending on the Couchbase Server release version -- see: +<>. + + +When referencing the {rest-api-admin--xref} you will see that each endpoint states the role (or roles) able to use it -- you can find a cross-reference of endpoints and required roles in {rest-api-access-rbac-roles--xref}. + +Note that the only role available for community-edition users is the *Full Admin* role. + .{sgw-s} role availability by release -[#tbl-ee-svr-sgw-roles,cols="2,^1,^1,^1,^1",options="header"] +[#tbl-ee-svr-sgw-roles,cols="2,2,^1,^1,^1,^1",options="header"] |=== -1.1+|Couchbase Server -3+|{enterprise} Versions -|{community} Versions - -h|Available Roles -h|6.1 - 7.0 -h|5.5 - 6.0 -h|5.1 -h|All Versions - -|sync-gateway role -|y -|- -|- -|- - -|application-access -|y -|y -|- -|- - -|bucket-full-access -|y -|y -|y -|- - -|Full Admin -|y -|y -|y -|y +h| Role +h| Capability +h| 7.02 DP +h| 6.1 - 7.0 +h| 5.5 - 6.0 +h| 5.1 + + +h| Sync Gateway Architect +| Can manage Sync Gateway databases and users, and access Sync Gateway's metrics endpoint. +This user cannot read application data. +| image:yes.png[] +| image:no.png[] +| image:no.png[] +| image:no.png[] + +h| Sync Gateway Application +| Can manage Sync Gateway users and roles, and read and write application data through Sync Gateway. +| image:yes.png[] +| image:no.png[] +| image:no.png[] +| image:no.png[] + +h| Sync Gateway Application Read Only +| Can read Sync Gateway users and roles, and read application data through Sync Gateway. +| image:yes.png[] +| image:no.png[] +| image:no.png[] +| image:no.png[] + +h| Sync Gateway Replicator +| Can manage Inter-Sync Gateway Replications. + +This user cannot read application data. +| image:yes.png[] +| image:no.png[] +| image:no.png[] +| image:no.png[] + +h| Sync Gateway Dev Ops +| Can manage Sync Gateway node-level configuration, and access Sync Gateway's /metrics endpoint for Prometheus integration. +| image:yes.png[] +| image:no.png[] +| image:no.png[] +| image:no.png[] + +h| Sync-Gateway Role +| Can access DB / bucket scoped operations +| image:no.png[] +| image:yes.png[] +| image:no.png[] +| image:no.png[] + +h| Application Access +| Can access DB / bucket scoped operations +| image:no.png[] +| image:yes.png[] +| image:yes.png[] +| image:no.png[] + +h| Bucket Full Access +| Can access DB / bucket scoped operations +| image:no.png[] +| image:yes.png[] +| image:yes.png[] +| image:yes.png[] + +h| Full Admin +| Can access all operations +| image:no.png[] +| image:yes.png[] +| image:yes.png[] +| image:yes.png[] |=== For more on creating Couchbase Server users see the Couchbase Server content here {server-manage-security-users-and-roles--xref}. +// Eventually replace this table with link to https://docs.couchbase.com/server/current/learn/security/roles.html +// .Couchbase Server RBAC roles in 7.0.2 (Developer Preview) +// [#tbl-role-capabilities, cols="3,7, options="header"] +// |=== +// |Role Name |Capabilities + +// | Sync Gateway Architect +// | Can manage Sync Gateway databases and users, and access Sync Gateway's metrics endpoint. +// This user cannot read application data. + +// | Sync Gateway Application +// | Can manage Sync Gateway users and roles, and read and write application data through Sync Gateway. + +// | Sync Gateway Application Read Only +// | Can read Sync Gateway users and roles, and read application data through Sync Gateway. + +// | Sync Gateway Replicator +// | Can manage Inter-Sync Gateway Replications. + +// This user cannot read +// application data. + +// | Sync Gateway Dev Ops, +// | Can manage Sync Gateway node-level configuration, and access Sync | Gateway's /metrics endpoint for Prometheus integration. + +// |=== + + [#lbl-optout] == Secure Administration Opt-out + + You can choose to disable Secure Administration by using these bootstrap configuration settings or CLI flags: * {configuration-schema-bootstrap--xref} @@ -197,4 +280,5 @@ include::partial$sgw-network-port-reqs.adoc[] For more on configuration see {bootstrap-schema--xref--api-admin-interface} + include::partial$block-related-content-api.adoc[] \ No newline at end of file diff --git a/modules/ROOT/pages/rest-api-admin.adoc b/modules/ROOT/pages/rest-api-admin.adoc index 0ef153d86..d9758c72e 100644 --- a/modules/ROOT/pages/rest-api-admin.adoc +++ b/modules/ROOT/pages/rest-api-admin.adoc @@ -29,6 +29,10 @@ Calls to `requireUser`, `requireAccess` and `requireRole` will be no-ops, and wi The API explorer below groups all the endpoints by functionality. You can click on a label to expand the list of endpoints and also generate a curl request for each endpoint. +Each endpoint description specifies its RBAC role requirements, but see +xref:rest-api-access-rbac-roles.adoc[RBAC Roles] and the Couchbase Server documentation here +{server-security-roles--xref} +if further information is required. swagger_ui::{attachmentsdir}/rest-api-admin.yaml[] From 539a924fa11dbae32731691f52c340e8de34e03e Mon Sep 17 00:00:00 2001 From: ibsoln <52778946+ibsoln@users.noreply.github.com> Date: Mon, 10 Jan 2022 13:31:17 +0000 Subject: [PATCH 09/19] QF220110-5 -- Fix mis-spelt include statement --- modules/ROOT/pages/configuration-schema-import-filter.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/ROOT/pages/configuration-schema-import-filter.adoc b/modules/ROOT/pages/configuration-schema-import-filter.adoc index 1c695c347..a5bb6c766 100644 --- a/modules/ROOT/pages/configuration-schema-import-filter.adoc +++ b/modules/ROOT/pages/configuration-schema-import-filter.adoc @@ -7,7 +7,7 @@ include::partial$_std-hdr-sgw.adoc[] -include::partial$block_caveats.adoc[tags="legacy-config-equivalents"] +include::partial$block-caveats.adoc[tags="legacy-config-equivalents"] == Upsert Import Filter Function From e19b816ec8617f83010cc25a54a166b052eff5b2 Mon Sep 17 00:00:00 2001 From: ibsoln <52778946+ibsoln@users.noreply.github.com> Date: Fri, 4 Feb 2022 11:08:33 +0000 Subject: [PATCH 10/19] QF220128-3 -- Fix broken links (#628) --- .../pages/_partials/_attributes-local.adoc | 2 - modules/ROOT/pages/_partials/_page-index.adoc | 5 +- .../pages/_partials/incpg-icr-conflict.adoc | 3 +- .../topic-group-inter-syncgateway.adoc | 2 +- modules/ROOT/pages/logging.adoc | 17 ++- modules/ROOT/pages/release-notes.adoc | 33 +++-- .../pages/rest-api-access-rbac-roles.adoc | 121 +----------------- .../sync-inter-syncgateway-overview.adoc | 5 +- 8 files changed, 46 insertions(+), 142 deletions(-) diff --git a/modules/ROOT/pages/_partials/_attributes-local.adoc b/modules/ROOT/pages/_partials/_attributes-local.adoc index a9f0bb449..cea6d33ec 100644 --- a/modules/ROOT/pages/_partials/_attributes-local.adoc +++ b/modules/ROOT/pages/_partials/_attributes-local.adoc @@ -107,8 +107,6 @@ :couchbase-tutorials--mobile-workshop--xref: {url-tutorial-mobile-workshop}[Couchbase Mobile Workshop] - - :url-downloads-all: {url-cb-pfx}downloads :downloads-all--xref: {url-downloads-all}[Get Started with Couchbase Today] :url-downloads-mobile: {url-downloads-all}#extend-with-mobile diff --git a/modules/ROOT/pages/_partials/_page-index.adoc b/modules/ROOT/pages/_partials/_page-index.adoc index d9b7dc3a5..a54e157d5 100644 --- a/modules/ROOT/pages/_partials/_page-index.adoc +++ b/modules/ROOT/pages/_partials/_page-index.adoc @@ -510,7 +510,7 @@ endif::xref--pfx-sgw[] :configuration-properties-legacy--page: configuration-properties-legacy.adoc :configuration-properties-legacy--pfx: {sgw--xref}{configuration-properties-legacy--page} -:configuration-properties-legacy--pfx--db: {sgw--xref}{configuration-properties-legacy--page}#databases +:configuration-properties-legacy--pfx--db: {configuration-properties-legacy--pfx}#databases :configuration-properties-legacy--pfx--db-rep: {configuration-properties-legacy--pfx--db}-this_db-replications-this_rep- :configuration-properties-legacy--pfx--eventhandlers: {configuration-properties-legacy--pfx--db}-this_db-event_handlers @@ -763,12 +763,13 @@ endif::xref--pfx-sgw[] :sync-inter-syncgateway-conflict-resolution--page: sync-inter-syncgateway-conflict-resolution.adoc :sync-inter-syncgateway-conflict-resolution--xref: {sgw--xref}{sync-inter-syncgateway-conflict-resolution--page}[Inter Sync Gateway Sync - Conflict Resolution] +:sync-inter-syncgateway-conflict-resolution--custom-conflict-resolution: {sgw--xref}{sync-inter-syncgateway-conflict-resolution--page}#custom-conflict-resolution-ee[Inter Sync Gateway Sync - Custom Conflict Resolution] :sync-inter-syncgateway-manage--page: sync-inter-syncgateway-manage.adoc :sync-inter-syncgateway-manage--xref: {sgw--xref}{sync-inter-syncgateway-manage--page}[Inter Sync Gateway Sync - Manage] :sync-inter-syncgateway-monitor--page: sync-inter-syncgateway-monitor.adoc :sync-inter-syncgateway-monitor--xref: {sgw--xref}{sync-inter-syncgateway-monitor--page}[Inter Sync Gateway Sync - Monitor] :sync-inter-syncgateway-overview--page: sync-inter-syncgateway-overview.adoc -:sync-inter-syncgateway-overview--xref: {sgw--xref}{sync-inter-syncgateway-overview--page}[Inter Sync Gateway Sync - Overview] +:sync-inter-syncgateway-overview--xref: {sgw--xref}{sync-inter-syncgateway-overview--page}[Inter Sync Gateway Sync - Overview] :sync-inter-syncgateway-run--page: sync-inter-syncgateway-run.adoc :sync-inter-syncgateway-run--xref: {sgw--xref}{sync-inter-syncgateway-run--page}[Inter Sync Gateway Sync - Run] diff --git a/modules/ROOT/pages/_partials/incpg-icr-conflict.adoc b/modules/ROOT/pages/_partials/incpg-icr-conflict.adoc index 023978264..d53610640 100644 --- a/modules/ROOT/pages/_partials/incpg-icr-conflict.adoc +++ b/modules/ROOT/pages/_partials/incpg-icr-conflict.adoc @@ -32,8 +32,7 @@ _Alternatively_: Run the replicator from the other side; flipping the direction See also -- our blog post: {url-blog-doc-how-conflicts-work} -- -For {enterprise}, a custom conflict resolver policy is available, providing additional flexibility by allowing users to provide their own conflict resolution logic -- see: {xref-sgw-pg-icr-conflict-resolution-custom}. - +For {enterprise}, a custom conflict resolver policy is available, providing additional flexibility by allowing users to provide their own conflict resolution logic -- see: {sync-inter-syncgateway-conflict-resolution--custom-conflict-resolution}{ // end::overview-full[] [#configure-conflict-resolution] diff --git a/modules/ROOT/pages/_partials/topic-group-inter-syncgateway.adoc b/modules/ROOT/pages/_partials/topic-group-inter-syncgateway.adoc index c5f85d3e5..0f6efcb48 100644 --- a/modules/ROOT/pages/_partials/topic-group-inter-syncgateway.adoc +++ b/modules/ROOT/pages/_partials/topic-group-inter-syncgateway.adoc @@ -19,7 +19,7 @@ ifdef::param-title[:this-title: {param-title}] :title-5: Conflict // Set the pages for the xrefs to link to (we are using attributes from _page-index.adoc here) -:topic-1: {sync-inter-syncgateway-overview--xref} +:topic-1: {sync-inter-syncgateway-overview--page} :topic-2: {sync-inter-syncgateway-run--page} :topic-3: {sync-inter-syncgateway-manage--page} :topic-4: {sync-inter-syncgateway-monitor--page} diff --git a/modules/ROOT/pages/logging.adoc b/modules/ROOT/pages/logging.adoc index 79ca6c431..00d89b69e 100644 --- a/modules/ROOT/pages/logging.adoc +++ b/modules/ROOT/pages/logging.adoc @@ -48,6 +48,7 @@ include::partial$block-caveats.adoc[tags=logfilefolderuse] // BEGIN Content == Overview + Sync Gateway provides a robust <>{fn-clog} solution that delivers flexibility in terms of how logs are generated and retained, whilst also maintaining the level of logging required by Couchbase Support for investigation of issues. Its logs are written to <> filtered by log level, with each log level supporting individual retention policies. You control what is logged using the {configuration-schema-bootstrap--xref} {bootstrap-schema--xref--logging} properties @@ -57,8 +58,10 @@ In addition to the log files, you can also independently configure and control < With _console logging_, system administrators can easily fine-tune diagnostic output to suit specific debug scenarios. All without interfering with the logging required by Couchbase Support for the investigation of issues. + == Configuration + You configure _continuous_ and _console_ logging requirements in the {configuration-schema-bootstrap--xref} file, using the {bootstrap-schema--xref--logging} properties {fn-legacy-pre-3-0} -- see: <>. [#sample-log-cfg] @@ -109,14 +112,20 @@ You configure _continuous_ and _console_ logging requirements in the {configurat See: {configuration-schema-bootstrap--xref} for more information on these settings {fnref-legacy-pre-3-0}. ==== + [#lbl-log-redaction] == Log Redaction + + All log outputs -- _console_ or _continuous_ -- can optionally be redacted, which will remove any user-data considered private. You enable this feature by setting the {bootstrap-schema--xref--logging-redaction-level} property {fnref-legacy-pre-3-0}. + [#lbl-console-logs] == Console Logging + + *In this section*: <> | <> | <> | <> | <> TIP: By default only HTTP logging is enabled @@ -153,7 +162,7 @@ The console log will show the following after this command: 2021-01-08T13:26:23.884Z [INF] HTTP: #110: POST /_logging?logLevel=trace (as ADMIN) 2021-01-08T13:26:23.885Z [INF] Setting log level to: trace 2021-01-08T13:26:23.885Z [INF] Setting log keys to: [DCP Replicate WS WSFrame] ---- +---- ==== @@ -222,9 +231,11 @@ a|This wildcard log key, enables all log keys [source, console] ---- + curl --location --request PUT 'http://localhost:4985/_logging?logLevel=trace' \ --header 'Content-Type: application/json' \ --data-raw '{"*": true}' + ---- |none @@ -334,6 +345,8 @@ logcollector my_sg_logs.txt [#lbl-continuous-logging] == Continuous Logging + + *In this section*: <> | <> _Continuous logging_ produces a set of log files aimed primarily at providing appropriate diagnostic information for the Couchbase Support team should their intervention be required. @@ -392,7 +405,7 @@ h|Minimum max_age |1 Day |=== -TIP: Each log level and its parameters are defined using the (xref-sgw-bmk-config-properties-log-level) property. +TIP: Each log level and its parameters are defined using the {bootstrap-schema--xref--logging-console-log-level} property. [#lbl-logrotate] === Log File Rotation diff --git a/modules/ROOT/pages/release-notes.adoc b/modules/ROOT/pages/release-notes.adoc index 3ec0f4bbc..f4f29196a 100644 --- a/modules/ROOT/pages/release-notes.adoc +++ b/modules/ROOT/pages/release-notes.adoc @@ -33,6 +33,7 @@ include::partial$block-abstract.adoc[] :xref-sgw-bmk-cfg-dbsvr: xref:{configuration-properties-legacy--page}#databases-this_db-server[Couchbase Server Connection String] :xref-sgw-bmk-cfg-hideprodvn: xref:{configuration-properties-legacy--page}#hide_product_version[Hide Product Version in Headers] +:legacy-config--xref: {:configuration-properties-legacy--pfx}# // END DO NOT REMOVE @@ -178,7 +179,7 @@ The change _ought to be_ transparent to the user, *if*: Old documents are automatically migrated to the `xattr` metadata format. -| xref:2.8@sync-gateway:ROOT:configuration-properties.adoc#databases-this_db-enable_shared_bucket_access[enable_shared_bucket_access] +| {legacy-config--xref}databases-this_db-enable_shared_bucket_access[enable_shared_bucket_access] | Enforce TLS by default | xref:secure-sgw-access.html#lbl-cbs-comms[Couchbase Server Connection] @@ -187,8 +188,6 @@ Old documents are automatically migrated to the `xattr` metadata format. === Deprecated -:legacy-config-2.8--xref: xref:2.8@sync-gateway::configuration-properties.adoc# - .Deprecated [#tbl-deprecated, cols="1a,1a", options="header"] |=== @@ -196,16 +195,16 @@ Old documents are automatically migrated to the `xattr` metadata format. .>| Link | allow_conflicts confg -| {legacy-config-2.8--xref}databases-this_db-allow_conflicts[allow_conflicts] +| {legacy-config--xref}databases-this_db-allow_conflicts[allow_conflicts] | enable_shared_bucket_access -- disabled option | | Facebook User Auth Config -| {legacy-config-2.8--xref}facebook[facebook] +| {legacy-config--xref}facebook[facebook] | Google User Auth Config -| {legacy-config-2.8--xref}facebook[Google] +| {legacy-config--xref}facebook[Google] | Logging API | @@ -223,43 +222,43 @@ Old documents are automatically migrated to the `xattr` metadata format. | | configServer property -| {legacy-config-2.8--xref}configServer[configserver] +| {legacy-config--xref}configServer[configserver] | databases.this_db.cache.channel_cache_expiry -| {legacy-config-2.8--xref}databases-this_db-cache-channel_cache_expiry[channel_cache_expiry] +| {legacy-config--xref}databases-this_db-cache-channel_cache_expiry[channel_cache_expiry] | databases.this_db.feed_type -| xref:2.8@sync-gateway:ROOT:configuration-properties.adoc#databases-this_db-feed_type[feed_type] +| {legacy-config--xref}databases-this_db-feed_type[feed_type] | logging.default config section | xref:legacy-logging-pre2-1.adoc[Legacy - Pre-2.1 Logging] | old cache config values :databases.this_db.cache.channel_cache_max_length -| xref:2.8@sync-gateway:ROOT:configuration-properties.adoc#databases-this_db-cache-channel_cache_max_length[channel_cache_max_length] +| {legacy-config--xref}databases-this_db-cache-channel_cache_max_length[channel_cache_max_length] | old cache config values :databases.this_db.cache.channel_cache_min_length -| xref:2.8@sync-gateway:ROOT:configuration-properties.adoc#databases-this_db-cache-channel_cache_min_length[channel_cache_min_length] +| {legacy-config--xref}databases-this_db-cache-channel_cache_min_length[channel_cache_min_length] | old cache config values :databases.this_db.cache.enable_star_channel -| xref:2.8@sync-gateway:ROOT:configuration-properties.adoc#databases-this_db-cache-enable_star_channel[enable_star_channel] +| {legacy-config--xref}databases-this_db-cache-enable_star_channel[enable_star_channel] | old cache config values :databases.this_db.cache.max_num_pending -| xref:2.8@sync-gateway:ROOT:configuration-properties.adoc#databases-this_db-cache-max_num_pending[max_num_pending] +| {legacy-config--xref}databases-this_db-cache-max_num_pending[max_num_pending] | old cache config values :databases.this_db.cache.max_wait_pending -| xref:2.8@sync-gateway:ROOT:configuration-properties.adoc#databases-this_db-cache-max_wait_pending[db-cache-max_wait_pending] +| {legacy-config--xref}databases-this_db-cache-max_wait_pending[db-cache-max_wait_pending] | old cache config values :databases.this_db.cache.max_wait_skipped -| xref:2.8@sync-gateway:ROOT:configuration-properties.adoc#databases-this_db-cache-max_wait_skipped[max_num_skipped] +| {legacy-config--xref}databases-this_db-cache-max_wait_skipped[max_num_skipped] | old cache config values: databases.this_db.rev_cache_size -| xref:2.8@sync-gateway:ROOT:configuration-properties.adoc#databases-this_db-rev_cache_size[rev_cache_size] +| {legacy-config--xref}databases-this_db-rev_cache_size[rev_cache_size] | SG-Replicate | xref:2.8@sync-gateway:ROOT:legacy-sg-replicate.adoc[Legacy -- SG-Replicate] | walrus (should not be default database mode) -| xref:2.8@sync-gateway:ROOT:configuration-properties.adoc#databases-this_db-server[server] +| {legacy-config--xref}databases-this_db-server[server] | Dropped |=== diff --git a/modules/ROOT/pages/rest-api-access-rbac-roles.adoc b/modules/ROOT/pages/rest-api-access-rbac-roles.adoc index ce3efbfcb..329ccf880 100644 --- a/modules/ROOT/pages/rest-api-access-rbac-roles.adoc +++ b/modules/ROOT/pages/rest-api-access-rbac-roles.adoc @@ -19,6 +19,7 @@ include::partial$block-abstract.adoc[] == Admin + The table below identifies the RBAC roles required by Sync Gateway to execute endpoint actions. *Couchbase Server 7.0.2 Developer Preview* introduces new roles offering fine grained access control; existing roles will remain available. @@ -26,7 +27,7 @@ For more on RBAC roles, see the Couchbase Server documentation: {server-security .REST API Admin Endpoints -[#tbl-endpoint-role-xref, cols="1,1,1,2,2", options="header"] +[#tbl-endpoint-role-crossref, cols="1,1,1,2,2", options="header"] |=== 3+^| Rest API Endpoint @@ -292,9 +293,6 @@ Read Only Admin, | Sync Gateway Dev Ops, External Stats Reader - - - | Cluster | /_status | GET @@ -311,7 +309,6 @@ Full Admin Role, | Sync Gateway Architect - | Cluster | /{db}/ | PUT @@ -319,8 +316,6 @@ Full Admin Role, Full Admin Role, | Sync Gateway Architect - - | DB | /_compact | POST @@ -330,8 +325,6 @@ Bucket Application Access Full Admin | Sync Gateway Architect - - | DB | /_config | GET @@ -341,8 +334,6 @@ Bucket Application Access Full Admin | Sync Gateway Architect - - | DB | /_config | PUT @@ -353,8 +344,6 @@ Full Admin | Sync Gateway Architect Sync Gateway Application - - | DB | /_config/import_filter | DELETE @@ -364,8 +353,6 @@ Bucket Application Access Full Admin | Sync Gateway Architect - - | DB | /_config/import_filter | GET @@ -375,8 +362,6 @@ Bucket Application Access Full Admin | Sync Gateway Architect - - | DB | /_config/import_filter | PUT @@ -386,8 +371,6 @@ Bucket Application Access Full Admin | Sync Gateway Architect - - | DB | /_config/sync | DELETE @@ -397,8 +380,6 @@ Bucket Application Access Full Admin | Sync Gateway Architect - - | DB | /_config/sync | GET @@ -408,8 +389,6 @@ Bucket Application Access Full Admin | Sync Gateway Architect - - | DB | /_config/sync | PUT @@ -419,8 +398,6 @@ Bucket Application Access Full Admin | Sync Gateway Architect - - | DB | /_dump/{view} | GET @@ -431,8 +408,6 @@ Full Admin | Sync Gateway Application Sync Gateway Application Read Only - - | DB | /_dumpchannel/{channel} | GET @@ -443,8 +418,6 @@ Full Admin | Sync Gateway Application Sync Gateway Application Read Only - - | DB | /_flush | POST @@ -463,8 +436,6 @@ Bucket Application Access Full Admin | Sync Gateway Architect - - | DB | /_online | POST @@ -474,8 +445,6 @@ Bucket Application Access Full Admin | Sync Gateway Architect - - | DB | /_purge | POST @@ -485,8 +454,6 @@ Bucket Application Access Full Admin | Sync Gateway Application - - | DB | /_raw/{docid} | GET / HEAD @@ -497,8 +464,6 @@ Full Admin | Sync Gateway Application Sync Gateway Application Read Only - - | DB | /_repair | POST @@ -508,8 +473,6 @@ Bucket Application Access Full Admin | Sync Gateway Architect - - | DB | /_replication/ | GET / HEAD @@ -519,8 +482,6 @@ Bucket Application Access Full Admin | Sync Gateway Replicator - - | DB | /_replication/ | POST @@ -530,8 +491,6 @@ Bucket Application Access Full Admin | Sync Gateway Replicator - - | DB | /_replication/{replicationID} | DELETE @@ -541,8 +500,6 @@ Bucket Application Access Full Admin | Sync Gateway Replicator - - | DB | /_replication/{replicationID} | GET / HEAD @@ -552,8 +509,6 @@ Bucket Application Access Full Admin | Sync Gateway Replicator - - | DB | /_replication/{replicationID} | PUT @@ -563,8 +518,6 @@ Bucket Application Access Full Admin | Sync Gateway Replicator - - | DB | /_replicationStatus | GET / HEAD @@ -574,8 +527,6 @@ Bucket Application Access Full Admin | Sync Gateway Replicator - - | DB | /_replicationStatus/{replicationID} | GET / HEAD @@ -585,8 +536,6 @@ Bucket Application Access Full Admin | Sync Gateway Replicator - - | DB | /_replicationStatus/{replicationID} | PUT @@ -596,8 +545,6 @@ Bucket Application Access Full Admin | Sync Gateway Replicator - - | DB | /_resync | GET @@ -607,17 +554,12 @@ Bucket Application Access Full Admin | Sync Gateway Architect - - | DB | /_resync | POST | | Sync Gateway Architect - - - | DB | /_revtree/{docid} | GET @@ -628,8 +570,6 @@ Full Admin | Sync Gateway Application Sync Gateway Application Read Only - - | DB | /_role/ | GET / HEAD @@ -641,8 +581,6 @@ Full Admin Sync Gateway Application Sync Gateway Application Read Only - - | DB | /_role/ | POST @@ -653,8 +591,6 @@ Full Admin | Sync Gateway Architect Sync Gateway Application - - | DB | /_role/{name} | DELETE @@ -665,8 +601,6 @@ Full Admin | Sync Gateway Architect Sync Gateway Application - - | DB | /_role/{name} | GET / HEAD @@ -678,8 +612,6 @@ Full Admin Sync Gateway Application Sync Gateway Application Read Only - - | DB | /_role/{name} | PUT @@ -690,8 +622,6 @@ Full Admin | Sync Gateway Architect Sync Gateway Application - - | DB | /_session | POST @@ -702,8 +632,6 @@ Full Admin | Sync Gateway Architect Sync Gateway Application - - | DB | /_session/{sessionid} | DELETE @@ -714,8 +642,6 @@ Full Admin | Sync Gateway Architect Sync Gateway Application - - | DB | /_session/{sessionid} | GET @@ -727,8 +653,6 @@ Full Admin Sync Gateway Application Sync Gateway Application Read Only - - | DB | /_user/ | GET / HEAD @@ -740,8 +664,6 @@ Full Admin Sync Gateway Application Sync Gateway Application Read Only - - | DB | /_user/ | POST @@ -752,8 +674,6 @@ Full Admin | Sync Gateway Architect Sync Gateway Application - - | DB | /_user/{name} | DELETE @@ -764,8 +684,6 @@ Full Admin | Sync Gateway Architect Sync Gateway Application - - | DB | /_user/{name} | GET / HEAD @@ -777,8 +695,6 @@ Full Admin Sync Gateway Application Sync Gateway Application Read Only - - | DB | /_user/{name} | PUT @@ -789,8 +705,6 @@ Full Admin | Sync Gateway Architect Sync Gateway Application - - | DB | /_user/{name}/_session | DELETE @@ -801,8 +715,6 @@ Full Admin | Sync Gateway Architect Sync Gateway Application - - | DB | /_user/{name}/_session/{sessionid} | DELETE @@ -813,8 +725,6 @@ Full Admin | Sync Gateway Architect Sync Gateway Application - - | DB | /_view/{view} | GET @@ -830,7 +740,7 @@ Sync Gateway Application Read Only == Common Endpoints .Common Endpoints (with Admin) -[#tbl-endpoint-role-xref2, cols="1,1,1,2,2", options="header"] +[#tbl-endpoint-role-crossref2, cols="1,1,1,2,2", options="header"] |=== @@ -846,8 +756,6 @@ Full Admin Role Read Only Admin | Sync Gateway Dev Ops - - | Cluster | /{db}/ | POST @@ -864,8 +772,6 @@ Bucket Application Access, Full Admin | Sync Gateway Application, Sync Gateway Application Read Only - - | DB | /_bulk_docs | POST @@ -884,8 +790,6 @@ Bucket Application Access, Full Admin | Sync Gateway Application, Sync Gateway Application Read Only - - | DB | /_changes | GET / HEAD / POST @@ -895,8 +799,6 @@ Bucket Application Access, Full Admin | Sync Gateway Application, Sync Gateway Application Read Only - - | DB | /_design/{ddoc} | GET / HEAD @@ -906,8 +808,6 @@ Bucket Application Access, Full Admin | Sync Gateway Application, Sync Gateway Application Read Only - - | DB | /_design/{ddoc} | PUT @@ -935,8 +835,6 @@ Bucket Application Access, Full Admin | Sync Gateway Application, Sync Gateway Application Read Only - - | DB | /_ensure_full_commit | POST @@ -946,8 +844,6 @@ Bucket Application Access, Full Admin | Sync Gateway Application, Sync Gateway Application Read Only - - | DB | /_revs_diff | POST @@ -966,8 +862,6 @@ Bucket Application Access, Full Admin | Sync Gateway Application, Sync Gateway Application Read Only - - | DB | /_local/{docid} | PUT @@ -995,8 +889,6 @@ Bucket Application Access, Full Admin | Sync Gateway Application, Sync Gateway Application Read Only - - | DB | /{docid} | PUT @@ -1024,8 +916,6 @@ Bucket Application Access, Full Admin | Sync Gateway Application, Sync Gateway Application Read Only - - | DB | /{docid}/{attach} | PUT @@ -1048,8 +938,10 @@ Full Admin == Metrics Endpoints + + .REST API Admin Endpoints -[#tbl-endpoint-role-xref, cols="1,1,1,2,2", options="header"] +[#tbl-endpoint-role-crossref, cols="1,1,1,2,2", options="header"] |=== 3+^| Rest API Endpoint @@ -1066,4 +958,5 @@ Read Only Admin External Stats Reader |=== + include::partial$block-related-content-api.adoc[] \ No newline at end of file diff --git a/modules/ROOT/pages/sync-inter-syncgateway-overview.adoc b/modules/ROOT/pages/sync-inter-syncgateway-overview.adoc index 84856e845..861222e3d 100644 --- a/modules/ROOT/pages/sync-inter-syncgateway-overview.adoc +++ b/modules/ROOT/pages/sync-inter-syncgateway-overview.adoc @@ -11,7 +11,6 @@ include::partial$_std-hdr-sgw.adoc[] :param-topic-group: inter-syncgateway :param-related: {configuration-properties-legacy--xref} | {rest-api-admin--xref} -// {sync-inter-syncgateway-overview--xref} | :param-abstract: pass:q[_Inter-Sync Gateway_ replication supports resilient, secure, scalable bidirectional synchronization of data cloud-to-edge.] include::partial$block-abstract.adoc[] @@ -77,6 +76,7 @@ image::icr-active-mobile-sync200713.svg[,600] == Replication Characteristics _In this section_: <> | <> | <> | <> | <> | <> + === Context Sync Gateway supports the ability to run replications between Sync Gateway clusters using a new websockets based protocol, with the {glos-term-active-replicator} {glos-term-synchronizing} changes between two {glos-term-sync-gateway-databases}. @@ -210,9 +210,10 @@ include::partial$incpg-icr-availability.adoc[leveloffset=+1] == Conflict Resolution + include::partial$incpg-icr-conflict.adoc[tags=overview-full, leveloffset=+1] -For more on conflict resolution -- see: {xref-sgw-pg-icr-conflict-resolution} +For more on conflict resolution -- see: {sync-inter-syncgateway-conflict-resolution--custom-conflict-resolution} // == Replication Initialization From 4c28f37d96b07e41354b4e1b45fbe3f39766f89d Mon Sep 17 00:00:00 2001 From: ibsoln <52778946+ibsoln@users.noreply.github.com> Date: Fri, 4 Feb 2022 11:09:37 +0000 Subject: [PATCH 11/19] QF220128-4 -- set toc level to 2 by default (#629) --- antora.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/antora.yml b/antora.yml index 57bed9381..5f1107154 100644 --- a/antora.yml +++ b/antora.yml @@ -15,4 +15,5 @@ asciidoc: minor: 0 maintenance: 0 base: 0 - releasetag: + page-toclevels: 2@ + # releasetag: From 93a7308016d130ff855a21053d65c5b0b11a0c38 Mon Sep 17 00:00:00 2001 From: ibsoln <52778946+ibsoln@users.noreply.github.com> Date: Fri, 4 Feb 2022 11:11:53 +0000 Subject: [PATCH 12/19] DOC-9324 -- GA Release Notes (#630) https://issues.couchbase.com/browse/DOC-9324 --- modules/ROOT/nav.adoc | 2 +- modules/ROOT/pages/_partials/_page-index.adoc | 2 +- .../ROOT/pages/_partials/pn-issues-list.adoc | 52 +++++++++---------- modules/ROOT/pages/release-notes.adoc | 28 +++++----- 4 files changed, 42 insertions(+), 42 deletions(-) diff --git a/modules/ROOT/nav.adoc b/modules/ROOT/nav.adoc index 054398ecc..df4186889 100644 --- a/modules/ROOT/nav.adoc +++ b/modules/ROOT/nav.adoc @@ -131,7 +131,7 @@ .Legacy Features * xref:legacy-sg-replicate.adoc[SG Replicate] - * xref:legacy-sgreplicate-resolving-conflicts.adoc[SG Replicate - Resolving Conflicts (depr)] + * xref:legacy-sgreplicate-resolving-conflicts.adoc[SG Replicate - Resolving Conflicts] * xref:legacy-logging-pre2-1.adoc[Legacy Pre-2.1 Logging] // list divider diff --git a/modules/ROOT/pages/_partials/_page-index.adoc b/modules/ROOT/pages/_partials/_page-index.adoc index a54e157d5..92cad3da3 100644 --- a/modules/ROOT/pages/_partials/_page-index.adoc +++ b/modules/ROOT/pages/_partials/_page-index.adoc @@ -589,7 +589,7 @@ endif::xref--pfx-sgw[] :legacy-logging-pre2-1--page: legacy-logging-pre2-1.adoc :legacy-logging-pre2-1--xref: {sgw--xref}{legacy-logging-pre2-1--page}[Legacy Logging Pre2 1] :legacy-sg-replicate--page: legacy-sg-replicate.adoc -:legacy-sg-replicate--xref: {sgw--xref}{legacy-sg-replicate--page}[SG-Replicate] +:legacy-sg-replicate--xref: {sgw--xref}{legacy-sg-replicate--page}[Legacy SG Replicate] :legacy-sgreplicate-resolving-conflicts--page: legacy-sgreplicate-resolving-conflicts.adoc :legacy-sgreplicate-resolving-conflicts--xref: {sgw--xref}{legacy-sgreplicate-resolving-conflicts--page}[SG-Replicate - Resolving Conflicts (depr)] diff --git a/modules/ROOT/pages/_partials/pn-issues-list.adoc b/modules/ROOT/pages/_partials/pn-issues-list.adoc index b317232c4..baa8b4d7e 100644 --- a/modules/ROOT/pages/_partials/pn-issues-list.adoc +++ b/modules/ROOT/pages/_partials/pn-issues-list.adoc @@ -1,13 +1,14 @@ -= Release Note issues for SG - -// tag::issues-3-0-0-beta[] - += Release Note Issues +// tag::issues-3-0-0[] == Fixed -// tag::Fixed-3-0-0-beta[] +// tag::Fixed-3-0-0[] +* https://issues.couchbase.com//browse/CBG-1439[CBG-1439] -- https://issues.couchbase.com//browse/CBG-1439[database.abandoned_seqs stat is unused] * https://issues.couchbase.com//browse/CBG-1438[CBG-1438] -- https://issues.couchbase.com//browse/CBG-1438[SgwIntStat.SetIfMax incorrectly sums old and new values] +* https://issues.couchbase.com//browse/CBG-1428[CBG-1428] -- https://issues.couchbase.com//browse/CBG-1428[ISGR should ignore _removed:true bodies when purgeOnRemoval is disabled] +* https://issues.couchbase.com//browse/CBG-1427[CBG-1427] -- https://issues.couchbase.com//browse/CBG-1427[ISGR should not try sending a delta when deltaSrc is a tombstone] * https://issues.couchbase.com//browse/CBG-1412[CBG-1412] -- https://issues.couchbase.com//browse/CBG-1412[JSON strings in some responses not being correctly escaped] * https://issues.couchbase.com//browse/CBG-1388[CBG-1388] -- https://issues.couchbase.com//browse/CBG-1388[sg_collect does not package archived log files (*.log.gz)] * https://issues.couchbase.com//browse/CBG-1376[CBG-1376] -- https://issues.couchbase.com//browse/CBG-1376[Some Delta Sync errors logged at WARN level should be DEBUG] @@ -22,24 +23,23 @@ * https://issues.couchbase.com//browse/CBG-1161[CBG-1161] -- https://issues.couchbase.com//browse/CBG-1161[DefaultPurgeInterval specified in days and used as though in hours] * https://issues.couchbase.com//browse/CBG-1113[CBG-1113] -- https://issues.couchbase.com//browse/CBG-1113[CBL1.x/Websocket based changes feeds leak goroutine on disconnect] * https://issues.couchbase.com//browse/CBG-789[CBG-789] -- https://issues.couchbase.com//browse/CBG-789[Updating a blob with new data does not update SG's metadata on sync] -// end::Fixed-3-0-0-beta[] +// end::Fixed-3-0-0[] -== Enhancements +== Enhancements -// tag::Enhancements-3-0-0-beta[] +// tag::Enhancements-3-0-0[] +* https://issues.couchbase.com//browse/CBG-1760[CBG-1760] -- https://issues.couchbase.com//browse/CBG-1760[Error upfront when the configured logFilePath is not writable] * https://issues.couchbase.com//browse/CBG-1705[CBG-1705] -- https://issues.couchbase.com//browse/CBG-1705[Release 'view op' on results close] -* https://issues.couchbase.com//browse/CBG-1679[CBG-1679] -- https://issues.couchbase.com//browse/CBG-1679[Apply standardised timeout and retry for all bootstrap connection ops] * https://issues.couchbase.com//browse/CBG-1672[CBG-1672] -- https://issues.couchbase.com//browse/CBG-1672[Return 422 status for unprocessible deltas instead of 404 to use non-delta retry handling] * https://issues.couchbase.com//browse/CBG-1664[CBG-1664] -- https://issues.couchbase.com//browse/CBG-1664[Validate javascript syntax in DbConfig.validate()] -* https://issues.couchbase.com//browse/CBG-1659[CBG-1659] -- https://issues.couchbase.com//browse/CBG-1659[SGCollect - Ensure it works / change for admin auth] -* https://issues.couchbase.com//browse/CBG-1650[CBG-1650] -- https://issues.couchbase.com//browse/CBG-1650[sgcollect should get information from new endpoints (with include_runtime parameter, etc.)] * https://issues.couchbase.com//browse/CBG-1646[CBG-1646] -- https://issues.couchbase.com//browse/CBG-1646[Add a flag to non-active leaf revisions indicating whether they include v2 attachments] * https://issues.couchbase.com//browse/CBG-1643[CBG-1643] -- https://issues.couchbase.com//browse/CBG-1643[Add additional context for gocb errors when using self-signed cert] * https://issues.couchbase.com//browse/CBG-1642[CBG-1642] -- https://issues.couchbase.com//browse/CBG-1642[Detect legacy sg-replicate config and log accordingly] * https://issues.couchbase.com//browse/CBG-1635[CBG-1635] -- https://issues.couchbase.com//browse/CBG-1635[TestBucketPool V2 should close cluster when releasing/obtaining buckets] * https://issues.couchbase.com//browse/CBG-1590[CBG-1590] -- https://issues.couchbase.com//browse/CBG-1590[Retrieve existing doc metadata prior to calling downloadOrVerifyAttachments] +* https://issues.couchbase.com//browse/CBG-1558[CBG-1558] -- https://issues.couchbase.com//browse/CBG-1558[panic after failed unmarshal in GetDeepMutableBody] * https://issues.couchbase.com//browse/CBG-1473[CBG-1473] -- https://issues.couchbase.com//browse/CBG-1473[Enable log redaction by default] * https://issues.couchbase.com//browse/CBG-1424[CBG-1424] -- https://issues.couchbase.com//browse/CBG-1424[discoverInterfaceName should resolve hostnames before trying to find network interface stats using IP addresses] * https://issues.couchbase.com//browse/CBG-1391[CBG-1391] -- https://issues.couchbase.com//browse/CBG-1391[Treat existing cbgt index as recoverable error] @@ -51,6 +51,7 @@ * https://issues.couchbase.com//browse/CBG-1326[CBG-1326] -- https://issues.couchbase.com//browse/CBG-1326[Log if channels expand to a smaller set than requested] * https://issues.couchbase.com//browse/CBG-1301[CBG-1301] -- https://issues.couchbase.com//browse/CBG-1301[Persistent Config] * https://issues.couchbase.com//browse/CBG-1299[CBG-1299] -- https://issues.couchbase.com//browse/CBG-1299[[Lithium Port] - Implement network connstr flag for cbdatasource alt address shims] +* https://issues.couchbase.com//browse/CBG-1284[CBG-1284] -- https://issues.couchbase.com//browse/CBG-1284[Mobile Attachment Cleanup] * https://issues.couchbase.com//browse/CBG-1282[CBG-1282] -- https://issues.couchbase.com//browse/CBG-1282[XATTRS Access Grants] * https://issues.couchbase.com//browse/CBG-1280[CBG-1280] -- https://issues.couchbase.com//browse/CBG-1280[Channel Access Revocation] * https://issues.couchbase.com//browse/CBG-1273[CBG-1273] -- https://issues.couchbase.com//browse/CBG-1273[Add Prometheus alert examples] @@ -68,32 +69,31 @@ * https://issues.couchbase.com//browse/CBG-715[CBG-715] -- https://issues.couchbase.com//browse/CBG-715[High CPU usage in high volume basic auth scenarios] * https://issues.couchbase.com//browse/CBG-641[CBG-641] -- https://issues.couchbase.com//browse/CBG-641[Admin API Auth] * https://issues.couchbase.com//browse/CBG-551[CBG-551] -- https://issues.couchbase.com//browse/CBG-551[Avoid storing _removed:true revision bodies in the revision cache] -// end::Enhancements-3-0-0-beta[] +// end::Enhancements-3-0-0[] -== KI +== KI -// tag::KI-3-0-0-beta[] +// tag::KI-3-0-0[] * https://issues.couchbase.com//browse/CBG-798[CBG-798] -- https://issues.couchbase.com//browse/CBG-798[Sync Gateway requires Couchbase Server nodes to use the same SSL memcached port] -* https://issues.couchbase.com//browse/CBG-1754[CBG-1754] -- https://issues.couchbase.com//browse/CBG-1754[Guest user not enabled during legacy config migration] -* https://issues.couchbase.com//browse/CBG-1751[CBG-1751] -- https://issues.couchbase.com//browse/CBG-1751[Install legacy config principals prior to upgrade] -// end::KI-3-0-0-beta[] +// end::KI-3-0-0[] + +== Deprecated -== Deprecated +// tag::Deprecated-3-0-0[] +None at this release. -// tag::Deprecated-3-0-0-beta[] -No issues at this release -// end::Deprecated-3-0-0-beta[] +// end::Deprecated-3-0-0[] -== Removed +== Removed -// tag::Removed-3-0-0-beta[] -No issues at this release +// tag::Removed-3-0-0[] +None at this release. -// end::Removed-3-0-0-beta[] +// end::Removed-3-0-0[] -// end::issues-3-0-0-beta[] +// end::issues-3-0-0[] diff --git a/modules/ROOT/pages/release-notes.adoc b/modules/ROOT/pages/release-notes.adoc index f4f29196a..dfdda507f 100644 --- a/modules/ROOT/pages/release-notes.adoc +++ b/modules/ROOT/pages/release-notes.adoc @@ -33,19 +33,19 @@ include::partial$block-abstract.adoc[] :xref-sgw-bmk-cfg-dbsvr: xref:{configuration-properties-legacy--page}#databases-this_db-server[Couchbase Server Connection String] :xref-sgw-bmk-cfg-hideprodvn: xref:{configuration-properties-legacy--page}#hide_product_version[Hide Product Version in Headers] -:legacy-config--xref: {:configuration-properties-legacy--pfx}# +:legacy-config--xref: {configuration-properties-legacy--pfx}# // END DO NOT REMOVE .One Way Upgrade [CAUTION] -- -The migration to 3.0 BETA configuration is a ONE WAY process -- see: {upgrading--xref} for more. +The migration to 3.0 configuration is a ONE WAY process -- see: {upgrading--xref} for more. -- [#lbl-rel300] -== Release {version-full} -- October 2021 += Release {version-full} -- February 2022 Quicklinks: <> *|* <> *|* <> *|* @@ -110,10 +110,10 @@ The `_resync` process has been enhanced to better handle large datasets, minimiz The process now runs asynchronously, uses query pagination and supports sequence regeneration. === Other Enhancements -// tag::Enhancements-3-0-0-beta[] -include::partial$pn-issues-list.adoc[tags="Enhancements-3-0-0-beta"] +// tag::Enhancements-3-0-0[] +include::partial$pn-issues-list.adoc[tags="Enhancements-3-0-0"] -// end::Enhancements-3-0-0-beta[] +// end::Enhancements-3-0-0[] // end::enhancements-300[] [#issues-and-resolutions-300] @@ -123,7 +123,7 @@ include::partial$pn-issues-list.adoc[tags="Enhancements-3-0-0-beta"] // tag::known-300[] // .List of issues outstanding at this release -include::partial$pn-issues-list.adoc[tags="KI-3-0-0-beta"] +include::partial$pn-issues-list.adoc[tags="KI-3-0-0"] @@ -131,9 +131,9 @@ include::partial$pn-issues-list.adoc[tags="KI-3-0-0-beta"] === Fixed Issues // tag::fixed-300[] -// tag::Fixed-3-0-0-beta[] -include::partial$pn-issues-list.adoc[tags="Fixed-3-0-0-beta"] -// end::Fixed-3-0-0-beta[] +// tag::Fixed-3-0-0[] +include::partial$pn-issues-list.adoc[tags="Fixed-3-0-0"] +// end::Fixed-3-0-0[] // end::fixed-300[] // tag::api-changed-300[] @@ -145,10 +145,10 @@ include::partial$pn-issues-list.adoc[tags="Fixed-3-0-0-beta"] // end::cfg-changed-300[] === Deprecated -include::partial$pn-issues-list.adoc[tags="Deprecated-3-0-0-beta"] +include::partial$pn-issues-list.adoc[tags="Deprecated-3-0-0"] === Removed -include::partial$pn-issues-list.adoc[tags="Removed-3-0-0-beta"] +include::partial$pn-issues-list.adoc[tags="Removed-3-0-0"] == API and Configuration Changes @@ -255,9 +255,9 @@ Old documents are automatically migrated to the `xattr` metadata format. | {legacy-config--xref}databases-this_db-rev_cache_size[rev_cache_size] | SG-Replicate -| xref:2.8@sync-gateway:ROOT:legacy-sg-replicate.adoc[Legacy -- SG-Replicate] +| {legacy-sg-replicate--xref} -| walrus (should not be default database mode) +| walrus | {legacy-config--xref}databases-this_db-server[server] | Dropped |=== From 1d9b174a20e2a355cba1393cf312e31c4e6312a4 Mon Sep 17 00:00:00 2001 From: ibsoln <52778946+ibsoln@users.noreply.github.com> Date: Fri, 4 Feb 2022 13:40:26 +0000 Subject: [PATCH 13/19] DOC-9324 -- GA Release Notes (fix toc) (#631) https://issues.couchbase.com/browse/DOC-9324 --- modules/ROOT/pages/release-notes.adoc | 51 +++++++++++++-------------- 1 file changed, 24 insertions(+), 27 deletions(-) diff --git a/modules/ROOT/pages/release-notes.adoc b/modules/ROOT/pages/release-notes.adoc index dfdda507f..e08c31582 100644 --- a/modules/ROOT/pages/release-notes.adoc +++ b/modules/ROOT/pages/release-notes.adoc @@ -2,7 +2,6 @@ :page-aliases: prodnotes/pn-releasenotes.adoc, prodnotes/pn-release-notes.adoc, releasenotes.adoc, pn-release-notes.adoc ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] -:page-role: :description: Couchbase Sync Gateway :keywords: edge nosql api synchronization replication // End of Page Attribute Statements @@ -45,7 +44,7 @@ The migration to 3.0 configuration is a ONE WAY process -- see: {upgrading--xref [#lbl-rel300] -= Release {version-full} -- February 2022 +== Release {version-full} -- February 2022 Quicklinks: <> *|* <> *|* <> *|* @@ -53,43 +52,43 @@ Quicklinks: <> *|* [#new-features-300] -== New Features +=== New Features -=== Centralized Persistent Modular Configuration +==== Centralized Persistent Modular Configuration include::partial$common-releasenotes.adoc[tag="new-300-centralized-cfg-summ", leveloffset=+1] xref:whatsnew.adoc#centralized-persistent-modular-configuration[Read More ...] -=== Secure Administration +==== Secure Administration include::partial$common-releasenotes.adoc[tag="new-300-secure-admin-summ", leveloffset=+1] xref:whatsnew.adoc#secure-administration[Read More ...] -=== TLS Encryption Enabled by Default +==== TLS Encryption Enabled by Default include::partial$common-releasenotes.adoc[tag="new-300-tls-summ", leveloffset=+1] xref:whatsnew.adoc#tls-encryption-enabled-by-default[Read More ...] -=== User Defined Extended Attributes(XAttrs) for Access Control +==== User Defined Extended Attributes(XAttrs) for Access Control include::partial$common-releasenotes.adoc[tag="new-300-xattrs-summ", leveloffset=+1] xref:whatsnew.adoc#user-defined-extended-attributesxattrs-for-access-control[Read More ...] -=== Auto-Purge on Channel Access Revocation in Inter-Sync Gateway Replication +==== Auto-Purge on Channel Access Revocation in Inter-Sync Gateway Replication include::partial$common-releasenotes.adoc[tag="new-300-auto-purge-summ", leveloffset=+1] xref:whatsnew.adoc#auto-purge-on-channel-access-revocation-in-inter-sync-gateway-replication[Read More ...] -=== Use Environment Variables in Configuration File +==== Use Environment Variables in Configuration File include::partial$common-releasenotes.adoc[tag="new-300-environment-vars-summ", leveloffset=+1] @@ -97,19 +96,19 @@ xref:whatsnew.adoc#use-environment-variables-in-configuration-file[Read More ... [#improvements-300] -== Enhancements +=== Enhancements // tag::enhancements-300[] -=== Compacting +==== Compacting Attachments added post 3.0 are automatically removed from the bucket upon reference removal, document delete or document purge. + The {rest-api-admin--xref--database-management--compact} API includes an option to remove any redundant pre-3.0 attachments -- see: {revisions--xref-compacting}. -=== Resync +==== Resync The `_resync` process has been enhanced to better handle large datasets, minimizing timeout and out-of-memory issues. The process now runs asynchronously, uses query pagination and supports sequence regeneration. -=== Other Enhancements +==== Other Enhancements // tag::Enhancements-3-0-0[] include::partial$pn-issues-list.adoc[tags="Enhancements-3-0-0"] @@ -117,19 +116,17 @@ include::partial$pn-issues-list.adoc[tags="Enhancements-3-0-0"] // end::enhancements-300[] [#issues-and-resolutions-300] -== Issues and Resolutions +=== Issues and Resolutions -=== Known Issues +==== Known Issues // tag::known-300[] // .List of issues outstanding at this release include::partial$pn-issues-list.adoc[tags="KI-3-0-0"] - - // end::known-300[] -=== Fixed Issues +==== Fixed Issues // tag::fixed-300[] // tag::Fixed-3-0-0[] include::partial$pn-issues-list.adoc[tags="Fixed-3-0-0"] @@ -144,14 +141,14 @@ include::partial$pn-issues-list.adoc[tags="Fixed-3-0-0"] // tbd // end::cfg-changed-300[] -=== Deprecated +==== Deprecated include::partial$pn-issues-list.adoc[tags="Deprecated-3-0-0"] -=== Removed +==== Removed include::partial$pn-issues-list.adoc[tags="Removed-3-0-0"] +=== API and Configuration Changes -== API and Configuration Changes // – identify any REST API changes // tag::api-changes-300[] // tag::all-changed-300-api[] @@ -159,7 +156,7 @@ This release introduces significant configuration and persistent API changes; so <> | <>. -=== Breaks compatibility +==== Breaks compatibility .Breaks compatibility [#tbl-breaking, cols="1a,1a", options="header"] @@ -186,7 +183,7 @@ Old documents are automatically migrated to the `xattr` metadata format. |=== -=== Deprecated +==== Deprecated .Deprecated [#tbl-deprecated, cols="1a,1a", options="header"] @@ -211,7 +208,7 @@ Old documents are automatically migrated to the `xattr` metadata format. | Deprecated |=== -=== Dropped or removed +==== Dropped or removed .Dropped or removed [#tbl-dropped, cols="1a,1a", options="header"] |=== @@ -268,10 +265,10 @@ Old documents are automatically migrated to the `xattr` metadata format. // end::api-changes-300[] [#support-notices-300] -== Support Notices +=== Support Notices This section documents any support-related notes, constraints and changes -=== Deprecation Notices +==== Deprecation Notices Items (features and-or functionality) are marked as deprecated when a more current, and usually enhanced, alternative is available. Whilst the deprecated item will remain usable, it is no longer supported, and will be removed in a future release. @@ -329,7 +326,7 @@ You should plan to move to an alternative, supported, solution as soon as practi // ===== Support is added for: -=== Upgrading +==== Upgrading // tag::upgrading[] From 29ba7eedb5d03a641d662c82d3e9fc4844c1a1bb Mon Sep 17 00:00:00 2001 From: ibsoln <52778946+ibsoln@users.noreply.github.com> Date: Fri, 4 Feb 2022 14:31:58 +0000 Subject: [PATCH 14/19] DOC-9537 -- Remove reference to Static/Dynamic from Bootstrap config page (#632) https://issues.couchbase.com/browse/DOC-9537 --- .../ROOT/assets/attachments/sg-bootstrap.yaml | 30 +++++++++++++------ .../pages/configuration-schema-bootstrap.adoc | 7 ----- 2 files changed, 21 insertions(+), 16 deletions(-) diff --git a/modules/ROOT/assets/attachments/sg-bootstrap.yaml b/modules/ROOT/assets/attachments/sg-bootstrap.yaml index c72d81a83..134e10031 100644 --- a/modules/ROOT/assets/attachments/sg-bootstrap.yaml +++ b/modules/ROOT/assets/attachments/sg-bootstrap.yaml @@ -358,7 +358,12 @@ properties: logging: type: object description: |+ - Holding object for all logging-related settings + Holding object for all logging-related settings. + + Note that in addition to setting these logging values here in the bootstrap configuration file, you can also use the ADMIN Rest API to set or change the values without requiring a full reload. + A full logging initalization will be required. + + See: [Rest Admin API](rest-api-admin.html) tags: - dynamic @@ -373,14 +378,17 @@ properties: type: string default: none description: |+ - Optionally, log files can be redacted. This means that user-data, considered to be private, is removed. Such data includes: + Optionally, log files can be redacted. + This means that user-data, considered to be private, is removed. + Such data includes: - Key/value pairs in JSON documents - Usernames - Query-fields that reference key/value pairs and/or usernames - Names and email addresses retrieved during product registration - Extended attributes - This redaction of user-data is referred to as partial redaction. To enable it, the value must be `"partial"` in the configuration file: + This redaction of user-data is referred to as partial redaction. + To enable it, the value must be `"partial"` in the configuration file: ```json { @@ -399,7 +407,8 @@ properties: rotation: type: object description: |+ - The log file may be rotated by defining a "rotation" sub document. See details in the table below. + The log file may be rotated by defining a "rotation" sub document. + See details in the table below. properties: max_size: type: integer @@ -407,10 +416,14 @@ properties: default: 100 max_age: type: integer - description: The maximum number of days to retain old log files. This can't be set below the minimum allowed value for the given level. + description: |+ + The maximum number of days to retain old log files. + This can't be set below the minimum allowed value for the given level. localtime: type: boolean - description: If true, it uses the computer's local time to format the backup timestamp. False uses UTC. + description: |+ + If true, it uses the computer's local time to format the backup timestamp. + False uses UTC. default: 'false' rotated_logs_size_limit: type: integer @@ -484,7 +497,8 @@ properties: Changes require full logging re-initialization error: description: |+ - The level of logging as a key. Log levels accumulate as you read down the table (i.e log entries at WARN will also be included in the INFO and DEBUG logs). + The level of logging as a key. + Log levels accumulate as you read down the table (i.e log entries at WARN will also be included in the INFO and DEBUG logs). | Level| Description| Minimum max_age| Log File Name| | :---| :---| :---| :---| @@ -847,8 +861,6 @@ properties: default: 'false' description: - - tags: - name: static description: Static diff --git a/modules/ROOT/pages/configuration-schema-bootstrap.adoc b/modules/ROOT/pages/configuration-schema-bootstrap.adoc index fc9fb803f..3ab2b8808 100644 --- a/modules/ROOT/pages/configuration-schema-bootstrap.adoc +++ b/modules/ROOT/pages/configuration-schema-bootstrap.adoc @@ -41,13 +41,6 @@ sync_gateway sync-gateway-bootstrap.json == Bootstrap Configuration Schema This schema identifies all the configurable properties. -Note that these properties are either: - -* `static` -- changes require a {sgw} reload. -* `dynamic` -- these changes can be applied through the REST endpoint and do not need a SGW restart. -Currently this includes only changes in the `logging` category. -Changes to these properties are not persisted beyond a {sgw} restart. - .Configuration Schema From 51f746c5e116be237028262474ab1256028deb49 Mon Sep 17 00:00:00 2001 From: ibsoln <52778946+ibsoln@users.noreply.github.com> Date: Fri, 11 Feb 2022 09:37:08 +0000 Subject: [PATCH 15/19] DOC-9537 -- Remove reference to Static/Dynamic from Bootstrap config page (#633) https://issues.couchbase.com/browse/DOC-9537 From fd2beb3c25fc23b4cff5aab919157c7a10dc3e39 Mon Sep 17 00:00:00 2001 From: ibsoln <52778946+ibsoln@users.noreply.github.com> Date: Fri, 11 Feb 2022 09:38:31 +0000 Subject: [PATCH 16/19] DOC-9324-F2 -- GA Release Notes Feedback https://issues.couchbase.com/browse/DOC-9324 (#634) --- modules/ROOT/nav.adoc | 2 +- .../ROOT/pages/_partials/pn-issues-list.adoc | 36 +++++++++---------- 2 files changed, 17 insertions(+), 21 deletions(-) diff --git a/modules/ROOT/nav.adoc b/modules/ROOT/nav.adoc index df4186889..0c9f4c57f 100644 --- a/modules/ROOT/nav.adoc +++ b/modules/ROOT/nav.adoc @@ -30,7 +30,7 @@ * xref:configuration-schema-access-control.adoc[Access Control] * xref:configuration-schema-import-filter.adoc[Import Filter] * xref:configuration-schema-isgr.adoc[Inter-Sync{nbsp}Gateway Replication] - * xref:configuration-properties-legacy.adoc[Legacy Pre-3.0{nbsp}BETA Configuration] + * xref:configuration-properties-legacy.adoc[Legacy Pre-3.0 Configuration] * xref:configuration-javascript-functions.adoc[Javascript Functions] * xref:configuration-environment-variables.adoc[Environment Variables] diff --git a/modules/ROOT/pages/_partials/pn-issues-list.adoc b/modules/ROOT/pages/_partials/pn-issues-list.adoc index baa8b4d7e..95cd1bbb9 100644 --- a/modules/ROOT/pages/_partials/pn-issues-list.adoc +++ b/modules/ROOT/pages/_partials/pn-issues-list.adoc @@ -1,6 +1,8 @@ -= Release Note Issues += Release Note issues for + // tag::issues-3-0-0[] + == Fixed // tag::Fixed-3-0-0[] @@ -23,10 +25,10 @@ * https://issues.couchbase.com//browse/CBG-1161[CBG-1161] -- https://issues.couchbase.com//browse/CBG-1161[DefaultPurgeInterval specified in days and used as though in hours] * https://issues.couchbase.com//browse/CBG-1113[CBG-1113] -- https://issues.couchbase.com//browse/CBG-1113[CBL1.x/Websocket based changes feeds leak goroutine on disconnect] * https://issues.couchbase.com//browse/CBG-789[CBG-789] -- https://issues.couchbase.com//browse/CBG-789[Updating a blob with new data does not update SG's metadata on sync] -// end::Fixed-3-0-0[] +// end::Fixed-3-0-0[] total items = 18 -== Enhancements +== Enhancements // tag::Enhancements-3-0-0[] @@ -34,10 +36,7 @@ * https://issues.couchbase.com//browse/CBG-1705[CBG-1705] -- https://issues.couchbase.com//browse/CBG-1705[Release 'view op' on results close] * https://issues.couchbase.com//browse/CBG-1672[CBG-1672] -- https://issues.couchbase.com//browse/CBG-1672[Return 422 status for unprocessible deltas instead of 404 to use non-delta retry handling] * https://issues.couchbase.com//browse/CBG-1664[CBG-1664] -- https://issues.couchbase.com//browse/CBG-1664[Validate javascript syntax in DbConfig.validate()] -* https://issues.couchbase.com//browse/CBG-1646[CBG-1646] -- https://issues.couchbase.com//browse/CBG-1646[Add a flag to non-active leaf revisions indicating whether they include v2 attachments] * https://issues.couchbase.com//browse/CBG-1643[CBG-1643] -- https://issues.couchbase.com//browse/CBG-1643[Add additional context for gocb errors when using self-signed cert] -* https://issues.couchbase.com//browse/CBG-1642[CBG-1642] -- https://issues.couchbase.com//browse/CBG-1642[Detect legacy sg-replicate config and log accordingly] -* https://issues.couchbase.com//browse/CBG-1635[CBG-1635] -- https://issues.couchbase.com//browse/CBG-1635[TestBucketPool V2 should close cluster when releasing/obtaining buckets] * https://issues.couchbase.com//browse/CBG-1590[CBG-1590] -- https://issues.couchbase.com//browse/CBG-1590[Retrieve existing doc metadata prior to calling downloadOrVerifyAttachments] * https://issues.couchbase.com//browse/CBG-1558[CBG-1558] -- https://issues.couchbase.com//browse/CBG-1558[panic after failed unmarshal in GetDeepMutableBody] * https://issues.couchbase.com//browse/CBG-1473[CBG-1473] -- https://issues.couchbase.com//browse/CBG-1473[Enable log redaction by default] @@ -47,10 +46,8 @@ * https://issues.couchbase.com//browse/CBG-1359[CBG-1359] -- https://issues.couchbase.com//browse/CBG-1359[Increase default minimum TLS version TLS1.2] * https://issues.couchbase.com//browse/CBG-1343[CBG-1343] -- https://issues.couchbase.com//browse/CBG-1343[Increase initial wait time for index creation retry] * https://issues.couchbase.com//browse/CBG-1342[CBG-1342] -- https://issues.couchbase.com//browse/CBG-1342[Avoid retry on 'duplicate index name' index creation error] -* https://issues.couchbase.com//browse/CBG-1337[CBG-1337] -- https://issues.couchbase.com//browse/CBG-1337[Add an option to skip SSL certificates verification while loading JavaScript from HTTPS endpoints] * https://issues.couchbase.com//browse/CBG-1326[CBG-1326] -- https://issues.couchbase.com//browse/CBG-1326[Log if channels expand to a smaller set than requested] * https://issues.couchbase.com//browse/CBG-1301[CBG-1301] -- https://issues.couchbase.com//browse/CBG-1301[Persistent Config] -* https://issues.couchbase.com//browse/CBG-1299[CBG-1299] -- https://issues.couchbase.com//browse/CBG-1299[[Lithium Port] - Implement network connstr flag for cbdatasource alt address shims] * https://issues.couchbase.com//browse/CBG-1284[CBG-1284] -- https://issues.couchbase.com//browse/CBG-1284[Mobile Attachment Cleanup] * https://issues.couchbase.com//browse/CBG-1282[CBG-1282] -- https://issues.couchbase.com//browse/CBG-1282[XATTRS Access Grants] * https://issues.couchbase.com//browse/CBG-1280[CBG-1280] -- https://issues.couchbase.com//browse/CBG-1280[Channel Access Revocation] @@ -58,9 +55,6 @@ * https://issues.couchbase.com//browse/CBG-1253[CBG-1253] -- https://issues.couchbase.com//browse/CBG-1253[Add USE INDEX to index readiness queries] * https://issues.couchbase.com//browse/CBG-1251[CBG-1251] -- https://issues.couchbase.com//browse/CBG-1251[Support Apple (M1) Silicon] * https://issues.couchbase.com//browse/CBG-1245[CBG-1245] -- https://issues.couchbase.com//browse/CBG-1245[Include channel name in validfrom logging] -* https://issues.couchbase.com//browse/CBG-1240[CBG-1240] -- https://issues.couchbase.com//browse/CBG-1240[Remove couchbase/ns_server dependency] -* https://issues.couchbase.com//browse/CBG-1239[CBG-1239] -- https://issues.couchbase.com//browse/CBG-1239[Remove couchbase/retriever dependency] -* https://issues.couchbase.com//browse/CBG-1232[CBG-1232] -- https://issues.couchbase.com//browse/CBG-1232[Add support for loading webhook filter JavaScript from external file or URL] * https://issues.couchbase.com//browse/CBG-1217[CBG-1217] -- https://issues.couchbase.com//browse/CBG-1217[Ensure change listener goroutines terminates (both Tap and DCP feeds) before the server is stopped] * https://issues.couchbase.com//browse/CBG-1170[CBG-1170] -- https://issues.couchbase.com//browse/CBG-1170[Upgrade to go 1.15] * https://issues.couchbase.com//browse/CBG-1127[CBG-1127] -- https://issues.couchbase.com//browse/CBG-1127[Treat resurrected tombstones as non-conflict when no shared history] @@ -69,31 +63,33 @@ * https://issues.couchbase.com//browse/CBG-715[CBG-715] -- https://issues.couchbase.com//browse/CBG-715[High CPU usage in high volume basic auth scenarios] * https://issues.couchbase.com//browse/CBG-641[CBG-641] -- https://issues.couchbase.com//browse/CBG-641[Admin API Auth] * https://issues.couchbase.com//browse/CBG-551[CBG-551] -- https://issues.couchbase.com//browse/CBG-551[Avoid storing _removed:true revision bodies in the revision cache] -// end::Enhancements-3-0-0[] +// end::Enhancements-3-0-0[] total items = 31 -== KI +== KI // tag::KI-3-0-0[] * https://issues.couchbase.com//browse/CBG-798[CBG-798] -- https://issues.couchbase.com//browse/CBG-798[Sync Gateway requires Couchbase Server nodes to use the same SSL memcached port] -// end::KI-3-0-0[] +// end::KI-3-0-0[] total items = 1 -== Deprecated +== Deprecated // tag::Deprecated-3-0-0[] -None at this release. -// end::Deprecated-3-0-0[] +None for this release. +// end::Deprecated-3-0-0[] total items = 0 -== Removed + +== Removed // tag::Removed-3-0-0[] -None at this release. -// end::Removed-3-0-0[] +None for this release. + +// end::Removed-3-0-0[] total items = 0 // end::issues-3-0-0[] From a18ff02db2669466894c8fa6e030cd5b0c85b7cb Mon Sep 17 00:00:00 2001 From: ibsoln <52778946+ibsoln@users.noreply.github.com> Date: Fri, 11 Feb 2022 09:39:31 +0000 Subject: [PATCH 17/19] QF220211-1 -- Sweep to remove beta references (#635) --- .../attachments/configuration-properties-legacy.yaml | 8 ++++---- modules/ROOT/pages/_partials/_page-index.adoc | 4 ++-- modules/ROOT/pages/_partials/_related-content.adoc | 2 +- modules/ROOT/pages/_partials/_stats-item-names.adoc | 2 +- modules/ROOT/pages/_partials/block-caveats.adoc | 4 ++-- .../ROOT/pages/_partials/common-cfg-ext-javascript.adoc | 4 ++-- modules/ROOT/pages/_partials/common-releasenotes.adoc | 2 +- modules/ROOT/pages/_partials/compatibility-cbl-sgw.adoc | 4 ++-- modules/ROOT/pages/_partials/concepts/sync-function.adoc | 2 +- .../definitions/database_configuration_model.adoc | 4 ++-- .../_partials/howto/how-to-assign-users-to-roles.adoc | 2 +- .../_partials/howto/how-to-control-document-access.adoc | 8 ++++---- .../ROOT/pages/_partials/howto/how-to-create-roles.adoc | 2 +- .../ROOT/pages/_partials/howto/how-to-create-users.adoc | 2 +- .../howto/how-to-use-xattrs-for-access-grants.adoc | 2 +- modules/ROOT/pages/_partials/sgw-svr-compatibility.adoc | 6 +++--- modules/ROOT/pages/_partials/sync-function-ovw.adoc | 2 +- .../access-control-how-use-xattrs-for-access-grants.adoc | 2 +- modules/ROOT/pages/access-control-how.adoc | 4 ++-- modules/ROOT/pages/configuration-overview.adoc | 4 ++-- modules/ROOT/pages/configuration-properties-legacy.adoc | 8 ++++---- modules/ROOT/pages/configuration-schema-database.adoc | 2 +- modules/ROOT/pages/configuration-schema-db-security.adoc | 2 +- modules/ROOT/pages/configuration-schema-isgr.adoc | 2 +- modules/ROOT/pages/get-started-install.adoc | 6 ++---- modules/ROOT/pages/logging.adoc | 2 +- modules/ROOT/pages/secure-sgw-access.adoc | 2 +- modules/ROOT/pages/upgrading.adoc | 8 ++++---- 28 files changed, 50 insertions(+), 52 deletions(-) diff --git a/modules/ROOT/assets/attachments/configuration-properties-legacy.yaml b/modules/ROOT/assets/attachments/configuration-properties-legacy.yaml index 941eb04f0..955f8aef0 100644 --- a/modules/ROOT/assets/attachments/configuration-properties-legacy.yaml +++ b/modules/ROOT/assets/attachments/configuration-properties-legacy.yaml @@ -7,7 +7,7 @@ properties: type: boolean default: 'true' description: |+ - Use `admin_interface_authentication=false` to turn of the secure remote administration feature introduced in 3.0 BETA. + Use `admin_interface_authentication=false` to turn of the secure remote administration feature introduced in 3.0. This is on by default and requires Couchbase Server RBAC-users to authenticate Admin API access. adminUI: @@ -30,7 +30,7 @@ properties: type: boolean default: 'true' description: |+ - Use `metrics_interface_authentication=false` to turn of the secure remote administration feature introduced in 3.0 BETA. + Use `metrics_interface_authentication=false` to turn of the secure remote administration feature introduced in 3.0. This is on by default and requires Couchbase Server RBAC-users to authenticate Metrics API access. @@ -893,7 +893,7 @@ properties: **Options** - Your replications can be one of two available types -- see [replication types](./../learn/icr-replication-types.html) (not available in beta) + Your replications can be one of two available types -- see [replication types](./../learn/icr-replication-types.html - Persistent -- the replication survives node restarts. These replications can also be launched dynamically using the Rest API `_replication` endpoint (see -- [Admin Rest API](./../refer/rest-api-admin.html)) @@ -1340,7 +1340,7 @@ properties: type: boolean default: 'false' description: |+ - Set to true to disable the persistent configuration handling introduced in 3.0 BETA + Set to true to disable the persistent configuration handling introduced in 3.0 facebook: description: Configuration for Facebook Login authentication. type: object diff --git a/modules/ROOT/pages/_partials/_page-index.adoc b/modules/ROOT/pages/_partials/_page-index.adoc index 92cad3da3..0c6c6bf20 100644 --- a/modules/ROOT/pages/_partials/_page-index.adoc +++ b/modules/ROOT/pages/_partials/_page-index.adoc @@ -445,7 +445,7 @@ endif::xref--pfx-sgw[] :configuration-schema-database--pfx--oidc: {configuration-schema-database--pfx--db}-oidc :configuration-schema-database--pfx--eventhandlers-doc-changed: {configuration-schema-database--pfx--eventhandlers}-document_changed -// :configuration-schema-database--xref: {configuration-schema-database--pfx}[Legacy Pre-3.0 BETA Configuration] +// :configuration-schema-database--xref: {configuration-schema-database--pfx}[Legacy Pre-3.0 Configuration] :configuration-schema-database--xref--allow-conflicts: {configuration-schema-database--pfx--db}-allow_conflicts[allow_conflicts] :configuration-schema-database--xref--bucket: {configuration-schema-database--pfx--db}-bucket[database_bucket] @@ -520,7 +520,7 @@ endif::xref--pfx-sgw[] :configuration-properties-legacy--pfx--databases-oidc: {configuration-properties-legacy--pfx--db}-this_db-oidc :configuration-properties-legacy--pfx--eventhandlers-doc-changed: {configuration-properties-legacy--pfx--eventhandlers}-document_changed -:configuration-properties-legacy--xref: {configuration-properties-legacy--pfx}[Legacy Pre-3.0 BETA Configuration] +:configuration-properties-legacy--xref: {configuration-properties-legacy--pfx}[Legacy Pre-3.0 Configuration] // :configuration-properties-legacy--xref-use_tls_sever: {configuration-properties-legacy--pfx}#use_tls_sever[use_tls_sever] :configuration-properties-legacy--xref-disable-persistent-config: {configuration-properties-legacy--pfx}#disable_persistent_config[disable-persistent-config] diff --git a/modules/ROOT/pages/_partials/_related-content.adoc b/modules/ROOT/pages/_partials/_related-content.adoc index 91b17b9d3..e5fe2d4c1 100644 --- a/modules/ROOT/pages/_partials/_related-content.adoc +++ b/modules/ROOT/pages/_partials/_related-content.adoc @@ -53,7 +53,7 @@ * xref:configuration-schema-access-control.adoc[Access Control] * xref:configuration-schema-import-filter.adoc[Import Filter] * xref:configuration-schema-isgr.adoc[Inter-Sync{nbsp}Gateway Replication] - * xref:configuration-properties-legacy.adoc[Legacy Pre-3.0 BETA Configuration] + * xref:configuration-properties-legacy.adoc[Legacy Pre-3.0 Configuration] // end::reference-config[] diff --git a/modules/ROOT/pages/_partials/_stats-item-names.adoc b/modules/ROOT/pages/_partials/_stats-item-names.adoc index 871d9672b..988b6565f 100644 --- a/modules/ROOT/pages/_partials/_stats-item-names.adoc +++ b/modules/ROOT/pages/_partials/_stats-item-names.adoc @@ -151,7 +151,7 @@ :sgr_docs_checked_sent: {xref-cb-config}sgr_docs_checked_sent[sgr_docs_checked_sent] // end::sgr1-replication-stats[] -// Pre beta values, no longer included in sgr2 and-or renamed +// Pre values, no longer included in sgr2 and-or renamed :sgr_num_attachment_bytes_transferred: {xref-cb-config}sgr_num_attachment_bytes_transferred[sgr_num_attachment_bytes_transferred] :sgr_num_attachments_transferred: {xref-cb-config}sgr_num_attachments_transferred[sgr_num_attachments_transferred] diff --git a/modules/ROOT/pages/_partials/block-caveats.adoc b/modules/ROOT/pages/_partials/block-caveats.adoc index 5a5415912..3950614bd 100644 --- a/modules/ROOT/pages/_partials/block-caveats.adoc +++ b/modules/ROOT/pages/_partials/block-caveats.adoc @@ -137,10 +137,10 @@ Do not use the `logs` directory as a storage location for files that should not ifndef::no-admonition[] [{caveat-level}] -- -Persistent Configuration is enabled by default from 3.0 BETA. +Persistent Configuration is enabled by default from 3.0. endif::no-admonition[] -To continue using legacy Pre-3.0 BETA configuration you should start {sgw} with {configuration-properties-legacy--xref-disable-persistent-config} set `true` either in the configuration file or in {command-line-options--xref}. +To continue using legacy Pre-3.0 configuration you should start {sgw} with {configuration-properties-legacy--xref-disable-persistent-config} set `true` either in the configuration file or in {command-line-options--xref}. ifndef::no-admonition[] -- diff --git a/modules/ROOT/pages/_partials/common-cfg-ext-javascript.adoc b/modules/ROOT/pages/_partials/common-cfg-ext-javascript.adoc index 9d12c7432..ae8179736 100644 --- a/modules/ROOT/pages/_partials/common-cfg-ext-javascript.adoc +++ b/modules/ROOT/pages/_partials/common-cfg-ext-javascript.adoc @@ -8,7 +8,7 @@ // Requires -- partial$_page-index.adoc attributes // End -- Inclusion Definition // Begin -- Inclusion Content -:fn-3x0: footnote:fn30[Commencing with release 3.0 BETA] +:fn-3x0: footnote:fn30[Commencing with release 3.0] :fnref-3x0: footnote:fn30:[] == Introduction @@ -43,7 +43,7 @@ Inline or external Javascript functions can be provided for any or all of the fo // tag::config-full[] NOTE: {sgw-s} 3.+ configuration of Javascript functions is done using the {rest-api-admin--xref}; specifically the {rest-api-admin--xref--access-control} and {rest-api-admin--xref--import-filter} endpoints. -Before 3.0 BETA, configuration was done within the database configuration -- see: <> +Before 3.0, configuration was done within the database configuration -- see: <> * Inline Javascript functions provided within the database configuration must be enclosed by a backtick pair (``). diff --git a/modules/ROOT/pages/_partials/common-releasenotes.adoc b/modules/ROOT/pages/_partials/common-releasenotes.adoc index 125df72d0..9010a03fa 100644 --- a/modules/ROOT/pages/_partials/common-releasenotes.adoc +++ b/modules/ROOT/pages/_partials/common-releasenotes.adoc @@ -61,7 +61,7 @@ Additional Detail:: * The ability to securely administer the Sync Gateway cluster using the admin REST endpoint enables programmatic control and simplifies remote administration in cloud deployments without relying on options like SSH-tunneling. * Maintaining a monolithic file is difficult especially if the configuration is complex. Multiple sync gateway databases may be defined in a single config file. This has potentially undesirable consequences in multi-tenant applications where database changes made for one tenant would require a restart of the node impacting all tenants. * A simple migration path ensures that existing JSON configurations are automatically converted to the new persistent modular configuration format on start-up. -Users can opt-out of this should they wish to continue working in legacy Pre-3.0 BETA configuration mode. +Users can opt-out of this should they wish to continue working in legacy Pre-3.0 configuration mode. // end::new-300-centralized-cfg-extended[] // tag::new-300-centralized-cfg[] diff --git a/modules/ROOT/pages/_partials/compatibility-cbl-sgw.adoc b/modules/ROOT/pages/_partials/compatibility-cbl-sgw.adoc index f21a9e8c3..4bdb0d837 100644 --- a/modules/ROOT/pages/_partials/compatibility-cbl-sgw.adoc +++ b/modules/ROOT/pages/_partials/compatibility-cbl-sgw.adoc @@ -36,7 +36,7 @@ The table below summarizes the compatible versions of Couchbase Lite with Sync G | 2.0 | 2.1 | 2.5 - 2.8 -| 3.0.0 (beta) +| 3.0.0 () | 1.4 *{fn-eos-sgw}* and 1.5 *{fn-eol-sgw}* | âś” @@ -68,7 +68,7 @@ with delta sync enabled | âś” | âś” -| 3.0.0 (beta) +| 3.0.0 | âś– | âś” | âś” diff --git a/modules/ROOT/pages/_partials/concepts/sync-function.adoc b/modules/ROOT/pages/_partials/concepts/sync-function.adoc index 4ff65a45a..0b40ceec0 100644 --- a/modules/ROOT/pages/_partials/concepts/sync-function.adoc +++ b/modules/ROOT/pages/_partials/concepts/sync-function.adoc @@ -112,7 +112,7 @@ If the document is being deleted, it will have a `_deleted` property with the v Your implementation of the sync function can omit the oldDoc parameter if you do not need it (JavaScript ignores extra parameters passed to a function). |Meta (optional) -|From 3.0 BETA the Sync Function includes support for a new `meta` argument. +|From 3.0 the Sync Function includes support for a new `meta` argument. This argument references the user defined XATTR that you are using to hold access grant data. diff --git a/modules/ROOT/pages/_partials/configuration/definitions/database_configuration_model.adoc b/modules/ROOT/pages/_partials/configuration/definitions/database_configuration_model.adoc index 247143923..6b76aff40 100644 --- a/modules/ROOT/pages/_partials/configuration/definitions/database_configuration_model.adoc +++ b/modules/ROOT/pages/_partials/configuration/definitions/database_configuration_model.adoc @@ -155,7 +155,7 @@ This property is intended to minimize accumulation of obsolete replication check The default is `7776000` seconds (90 days).|integer |**enable_shared_bucket_access** + -__optional__|*Deprecated at 3.0 BETA* +__optional__|*Deprecated at 3.0* use the `enable_shared_bucket_access` property to define whether to use extended attributes to store sync metadata; this is required to enable mobile-to-server data sync (_mobile convergence_). @@ -216,7 +216,7 @@ document.cookie = cookie1String; __optional__|This flag disallows cookies from being used by Javascript; by default javascript CAN use them + **Default** : `false`|boolean |**allow_conflicts** + -__optional__|**Deprecated at 3.0 * BETA* +__optional__|**Deprecated at 3.0 ** Use `allow_conflict` to define whether Sync Gateway will handle conflicts. diff --git a/modules/ROOT/pages/_partials/howto/how-to-assign-users-to-roles.adoc b/modules/ROOT/pages/_partials/howto/how-to-assign-users-to-roles.adoc index 8423fe9f4..84e320b8e 100644 --- a/modules/ROOT/pages/_partials/howto/how-to-assign-users-to-roles.adoc +++ b/modules/ROOT/pages/_partials/howto/how-to-assign-users-to-roles.adoc @@ -32,7 +32,7 @@ Admin REST API:: + -- -NOTE: The recommended method from 3.0 BETA +NOTE: The recommended method from 3.0 Assign a user to a role by sending a PUT request to the Admin REST API `_user` endpoint ({rest-api-admin-user-put--xref} ). diff --git a/modules/ROOT/pages/_partials/howto/how-to-control-document-access.adoc b/modules/ROOT/pages/_partials/howto/how-to-control-document-access.adoc index 53962ea9d..b37c8a079 100644 --- a/modules/ROOT/pages/_partials/howto/how-to-control-document-access.adoc +++ b/modules/ROOT/pages/_partials/howto/how-to-control-document-access.adoc @@ -25,9 +25,9 @@ You grant roles and-or users access to channels using: Using admin_channels property using the admin REST API endpoint -- see {rest-api-admin-user-put--xref} * Dynamically via Sync Function  +  Programmatically within the sync function using the exposed helper function access() — see {sync-function-api--xref} -* Configuration File (pre 3.0 BETA) + +* Configuration File (pre 3.0) + Using the appropriate `admin_channels` property in the {configuration-properties-legacy--xref}. + -*Note:* This option is disabled by default in 3.0 BETA; to use it, set the `disable_persistent_config` CLI or configuration file property flag to `true` and provide a full configuration +*Note:* This option is disabled by default in 3.0; to use it, set the `disable_persistent_config` CLI or configuration file property flag to `true` and provide a full configuration [#ex-read-access] .Allow Access @@ -66,7 +66,7 @@ In the case where channel assignment is done dynamically via the sync function, * The user/role can be derived or specified as a property within the document body. In this case, the document content itself is used to govern access and routing -* From 3.0 BETA, the role can be specified within a special user-defined XATTR associated with the document -- see: {access-control-how-use-xattrs-for-access-grants--xref}. +* From 3.0, the role can be specified within a special user-defined XATTR associated with the document -- see: {access-control-how-use-xattrs-for-access-grants--xref}. [{tabs}] @@ -186,7 +186,7 @@ It does so by requiring that the current user is the one recorded as an owner on Version 3.x:: + -- -This example makes use of channel data stored in XATTRS, an option introduced in 3.0 BETA -- see {access-control-how-use-xattrs-for-access-grants--xref} for more on this topic. +This example makes use of channel data stored in XATTRS, an option introduced in 3.0 -- see {access-control-how-use-xattrs-for-access-grants--xref} for more on this topic. [source, javascript] ---- diff --git a/modules/ROOT/pages/_partials/howto/how-to-create-roles.adoc b/modules/ROOT/pages/_partials/howto/how-to-create-roles.adoc index 72debf9f8..0c1ee8068 100644 --- a/modules/ROOT/pages/_partials/howto/how-to-create-roles.adoc +++ b/modules/ROOT/pages/_partials/howto/how-to-create-roles.adoc @@ -17,7 +17,7 @@ You can create and-or manage roles using the following options * Admin REST API: + Roles are created via the Sync Gateway Admin REST API -- see: {rest-api-admin--xref}. -* File-based Configuration Properties ( PRE 3.0 BETA) + +* File-based Configuration Properties ( PRE 3.0) + Configure roles in the xref:configuration-properties-legacy.adoc[Legacy Configuration Properties] file. + include::partial$block-caveats.adoc[tags=disable-persistent-config] diff --git a/modules/ROOT/pages/_partials/howto/how-to-create-users.adoc b/modules/ROOT/pages/_partials/howto/how-to-create-users.adoc index 7318ca87d..03117eb94 100644 --- a/modules/ROOT/pages/_partials/howto/how-to-create-users.adoc +++ b/modules/ROOT/pages/_partials/howto/how-to-create-users.adoc @@ -16,7 +16,7 @@ You create and-or manage users using the following options -- as shown in <> for the file contents. include::partial$block-caveats.adoc[tags=disable-persistent-config] diff --git a/modules/ROOT/pages/configuration-schema-database.adoc b/modules/ROOT/pages/configuration-schema-database.adoc index 4940f9dc1..4bfa217f5 100644 --- a/modules/ROOT/pages/configuration-schema-database.adoc +++ b/modules/ROOT/pages/configuration-schema-database.adoc @@ -20,7 +20,7 @@ include::partial$block-caveats.adoc[tags="legacy-config-equivalents"] == Introduction -From {sgw-te} 3.0 BETA you can use the Admin REST API to provision persistent configuration changes. +From {sgw-te} 3.0 you can use the Admin REST API to provision persistent configuration changes. This content introduces the <> and <> endpoints for convenience -- see {rest-api-admin--xref--database-configuration} for a full description of the endpoints available. diff --git a/modules/ROOT/pages/configuration-schema-db-security.adoc b/modules/ROOT/pages/configuration-schema-db-security.adoc index 40e03104d..5ec4cbf5d 100644 --- a/modules/ROOT/pages/configuration-schema-db-security.adoc +++ b/modules/ROOT/pages/configuration-schema-db-security.adoc @@ -21,7 +21,7 @@ include::partial$block-caveats.adoc[tags="legacy-config-equivalents"] == Introduction -In 3.0 BETA we use the Admin REST API `_user` and `_role` endpoints to provision and manage {sgw} users through persistent configuration changes. +In 3.0 we use the Admin REST API `_user` and `_role` endpoints to provision and manage {sgw} users through persistent configuration changes. This content introduces the <> and <> endpoints for convenience -- see {rest-api-admin--xref--database-security} for a full description of the endpoints available. diff --git a/modules/ROOT/pages/configuration-schema-isgr.adoc b/modules/ROOT/pages/configuration-schema-isgr.adoc index 65883c21a..4357d96c9 100644 --- a/modules/ROOT/pages/configuration-schema-isgr.adoc +++ b/modules/ROOT/pages/configuration-schema-isgr.adoc @@ -21,7 +21,7 @@ include::partial$block-caveats.adoc[tags="legacy-config-equivalents"] == Introduction -In 3.0 BETA we use the Admin REST API to provision persistent configuration changes. +In 3.0 we use the Admin REST API to provision persistent configuration changes. This content introduces the <> endpoint for convenience -- see {rest-api-admin--xref--replication} for a full description of the endpoints available. diff --git a/modules/ROOT/pages/get-started-install.adoc b/modules/ROOT/pages/get-started-install.adoc index 0bdcfa52e..a863b9d9d 100644 --- a/modules/ROOT/pages/get-started-install.adoc +++ b/modules/ROOT/pages/get-started-install.adoc @@ -63,12 +63,9 @@ NOTE: Ensure you have read -- and acted-upon -- the information in {get-started- include::partial$_get-started-topic-group.adoc[] -== Beta Release Only -{sgw-te} 3.0.0 (beta)01 is available for all xref:supported-environments.adoc[supported operating systems] as a direct download from here -- {downloads-mobile--xref}. +== Installation Process -Unpack the download to an appropriate location and install from there. -== Installation Process You can install Sync Gateway on any of the xref:supported-environments.adoc[supported operating systems]. On completion of this topic you should have a working Sync Gateway that you can extend and configure to meet your business needs. @@ -82,6 +79,7 @@ It is intended primarily to verify the success of the installation by proving a == Configuration + Sync Gateway's initial setup uses configuration details from a file its install script creates (`sync_gateway.json`, or `serviceconfig.json` on Windows). To provide your own configuration to Sync Gateway, you can either: diff --git a/modules/ROOT/pages/logging.adoc b/modules/ROOT/pages/logging.adoc index 00d89b69e..07c7970f1 100644 --- a/modules/ROOT/pages/logging.adoc +++ b/modules/ROOT/pages/logging.adoc @@ -35,7 +35,7 @@ include::partial$block-abstract.adoc[] :fn-clog: footnote:fn-clog[Introduced in Sync Gateway version 2.1] :fn-dep-cfg: footnote:fn-dep-cfg[The pre-2.1 logging configuration method, using 'logging.default` is deprecated. If upgrading from a pre2.1 Sync Gateway version, then will observer warnings on startup stating what is required to update your configuration -- see also: {legacy-logging-pre2-1--xref} ] -:fn-legacy-text: pass:q,a[For legacy Pre-3.0 BETA see xref:configuration-properties-legacy.adoc[legacy Pre-3.0 BETA configuration]] +:fn-legacy-text: pass:q,a[For legacy Pre-3.0 see xref:configuration-properties-legacy.adoc[legacy Pre-3.0 configuration]] :fn-legacy-pre-3-0: footnote:fnleg3-0[{fn-legacy-text}] :fnref-legacy-pre-3-0: footnote:fnleg3-0[] diff --git a/modules/ROOT/pages/secure-sgw-access.adoc b/modules/ROOT/pages/secure-sgw-access.adoc index 603162ccf..ad343662c 100644 --- a/modules/ROOT/pages/secure-sgw-access.adoc +++ b/modules/ROOT/pages/secure-sgw-access.adoc @@ -16,7 +16,7 @@ include::partial$block-abstract.adoc[] == Overview -From {sgw-te} 3.0 BETA, TLS is required by default for all communications with Couchbase Server. +From {sgw-te} 3.0, TLS is required by default for all communications with Couchbase Server. TLS v1.3 is supported as the default protocol. This approach means that that all endpoints communicating with {sgw} must also be encrypted, including: diff --git a/modules/ROOT/pages/upgrading.adoc b/modules/ROOT/pages/upgrading.adoc index fdce065e4..f540a1c5f 100644 --- a/modules/ROOT/pages/upgrading.adoc +++ b/modules/ROOT/pages/upgrading.adoc @@ -50,11 +50,11 @@ At a high level, a rolling upgrade consists of the following steps: Those steps are then repeated for each node in the {sgw} cluster. -== Upgrade to 3.0 BETA +== Upgrade to 3.0 === Using Persistent Configuration -The use of 3.0 BETA's Persistent Configuration feature is strongly recommended. +The use of 3.0's Persistent Configuration feature is strongly recommended. It is the default operational mode when starting {sgw}. The feature provides a smooth upgrade path for existing users by automatically converting their existing configuration files to the new persistent configuration format. @@ -62,7 +62,7 @@ The feature provides a smooth upgrade path for existing users by automatically c .One Way Upgrade [CAUTION] -- -The migration to 3.0 BETA configuration is a ONE WAY process; to continue using legacy-mode configuration see: <> +The migration to 3.0 configuration is a ONE WAY process; to continue using legacy-mode configuration see: <> -- Just startup a {sgw} node using your existing configuration properties file. @@ -105,7 +105,7 @@ Failing to do so may result in the configuration being overridden by one configu [#lbl-3-0-config-tls] === Secure Server Connection -Secure TLS Connection to Couchbase Server is enabled out-of-the-box in 3.0 BETA. +Secure TLS Connection to Couchbase Server is enabled out-of-the-box in 3.0. If you wish to use non-secure connection, perhaps in a test environment, you need to run {sgw} with {bootstrap-schema--xref--bootstrap-use-tls-server} set to `false` -- see: {secure-sgw-access--xref} From e6b6591397395690b8fdacc044540d4606c3569d Mon Sep 17 00:00:00 2001 From: ibsoln <52778946+ibsoln@users.noreply.github.com> Date: Fri, 11 Feb 2022 18:16:09 +0000 Subject: [PATCH 18/19] QF220211-3-SnagsList -- Tidy-up (#636) QF220211-3-SnagsList -- Tidy-up pt 2 --- .../assets/attachments/rest-api-admin.yaml | 9 +- .../assets/attachments/rest-api-metrics.yaml | 2 +- .../ROOT/assets/attachments/sg-bootstrap.yaml | 2 +- modules/ROOT/assets/images/no.png | Bin 0 -> 3984 bytes modules/ROOT/assets/images/yes.png | Bin 0 -> 4058 bytes .../pages/_partials/_attributes-local.adoc | 58 ++-- .../_partials/_block-related-content.adoc | 3 +- modules/ROOT/pages/_partials/_page-index.adoc | 9 +- .../pages/_partials/_related-content.adoc | 1 + .../ROOT/pages/_partials/block-caveats.adoc | 6 +- .../_partials/common-cfg-ext-javascript.adoc | 4 +- .../ROOT/pages/_partials/incpg-icr-admin.adoc | 2 +- .../_partials/incpg-icr-availability.adoc | 2 +- .../pages/_partials/incpg-icr-conflict.adoc | 10 +- .../_partials/incpg-icr-initialization.adoc | 4 +- .../pages/_partials/incpg-icr-monitoring.adoc | 2 +- modules/ROOT/pages/authentication-users.adoc | 91 +++--- modules/ROOT/pages/changes-feed.adoc | 20 +- .../ROOT/pages/configuration-schema-isgr.adoc | 2 + modules/ROOT/pages/deployment.adoc | 3 + .../pages/get-started-verify-install.adoc | 127 +++++--- modules/ROOT/pages/glossary.adoc | 2 +- modules/ROOT/pages/index copy.xadoc | 2 +- modules/ROOT/pages/index.adoc | 2 +- modules/ROOT/pages/introduction.adoc | 2 +- modules/ROOT/pages/load-balancer.adoc | 30 +- modules/ROOT/pages/os-level-tuning.adoc | 14 +- modules/ROOT/pages/release-notes.adoc | 14 +- .../pages/rest-api-access-rbac-roles.adoc | 308 +++++++++--------- .../ROOT/pages/server-compatibility-xdcr.adoc | 10 +- modules/ROOT/pages/stats-prometheus.adoc | 4 + .../ROOT/pages/supported-environments.adoc | 20 +- .../sync-inter-syncgateway-overview.adoc | 24 +- .../pages/sync-with-couchbase-server.adoc | 60 ++-- modules/ROOT/pages/webhooks.adoc | 12 +- 35 files changed, 475 insertions(+), 386 deletions(-) create mode 100644 modules/ROOT/assets/images/no.png create mode 100644 modules/ROOT/assets/images/yes.png diff --git a/modules/ROOT/assets/attachments/rest-api-admin.yaml b/modules/ROOT/assets/attachments/rest-api-admin.yaml index 712ab3238..0bc561018 100644 --- a/modules/ROOT/assets/attachments/rest-api-admin.yaml +++ b/modules/ROOT/assets/attachments/rest-api-admin.yaml @@ -78,9 +78,9 @@ paths: description: |+ The ```Expvar```method returns a number of runtime variables that you can view for debugging or performance monitoring purposes. - This method can also be accessed using Sync Gateway's [Metrics REST API](./rest-api-metrics.html) + This method can also be accessed using Sync Gateway's [Metrics REST API](rest-api-metrics.html) - **See** : [Sync Gateway Statistics Schema](./../stats-monitoring.html) for more details on the metrics collected and reported by Sync Gateway. + **See** : [Sync Gateway Statistics Schema](stats-monitoring.html) for more details on the metrics collected and reported by Sync Gateway. *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* @@ -108,7 +108,8 @@ paths: responses: 200: description: |+ - The response is a set of key-value pairs. The key is a log tag and the value is a boolean to indicate whether this tag is enabled. + The response is a set of key-value pairs. + The key is a log tag and the value is a boolean to indicate whether this tag is enabled. schema: $ref: '#/definitions/LogTags' put: @@ -173,7 +174,7 @@ paths: - Server summary: Trigger sgcollect_info description: |+ - Starting in Sync Gateway 2.1, sgcollect_info can be triggered using ths endpoint. + Starting in Sync Gateway 2.1, sgcollect_info can be triggered using this endpoint. *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* diff --git a/modules/ROOT/assets/attachments/rest-api-metrics.yaml b/modules/ROOT/assets/attachments/rest-api-metrics.yaml index 7bab665d5..7165bdeda 100644 --- a/modules/ROOT/assets/attachments/rest-api-metrics.yaml +++ b/modules/ROOT/assets/attachments/rest-api-metrics.yaml @@ -35,7 +35,7 @@ paths: The ```Expvars``` method returns Sync Gateways' numerous statistics, and other runtime variables, in JSON format. Making them readily available for debugging or performance monitoring purposes. - **See** : [Sync Gateway Statistics Schema](./../stats-monitoring.html) for more details on the metrics collected and reported by Sync Gateway. + **See** : [Sync Gateway Statistics Schema](stats-monitoring.html) for more details on the metrics collected and reported by Sync Gateway. *Sync Gateway Roles Required:* diff --git a/modules/ROOT/assets/attachments/sg-bootstrap.yaml b/modules/ROOT/assets/attachments/sg-bootstrap.yaml index 134e10031..0e7a5896c 100644 --- a/modules/ROOT/assets/attachments/sg-bootstrap.yaml +++ b/modules/ROOT/assets/attachments/sg-bootstrap.yaml @@ -361,7 +361,7 @@ properties: Holding object for all logging-related settings. Note that in addition to setting these logging values here in the bootstrap configuration file, you can also use the ADMIN Rest API to set or change the values without requiring a full reload. - A full logging initalization will be required. + A full logging initialization will be required. See: [Rest Admin API](rest-api-admin.html) diff --git a/modules/ROOT/assets/images/no.png b/modules/ROOT/assets/images/no.png new file mode 100644 index 0000000000000000000000000000000000000000..c8b49d660b304ce3852b83374b2e7a4a96024b64 GIT binary patch literal 3984 zcmZuz2{@Ep`yWj9Yzd)EvSgc)tt>N^!I&sSWo%pbV2`}}_QegE!rU(fZ#7+pu4WaeiE001YEdfGRR zX3pcmNPqNJ#Uu6r0A@`b9Bzb!!$C%#?hZItEC8T)GW!w1)MSJwnoPP(`p6{=65Zs# z%LMwQs&^V_9D@usqK%3W^VL3~%grfq%ii=o4I*0DPKTT2UbyWr({~P|wkBh3o$1kd z7p7IB;>K9kK|5-EWVU8_#BnufxDH_SGaUHA+l(euAr{8kHZ30q4VxLw zdy0bt5V508JMfbP&CD#;YpdE?0f*Yxf0b@D67w253`r8c3>TpXFzXB|sRfJiPSd8E zRJERwI|O!Zrb);}U6SL;V|w;NnA%d|x>YnIRo|JBE;g0NkLo@1P9Z10-e@dKl#(A0 z%(Ki8op8(#WWbV4ky(K0?Th{WJ5LM%vfP>Io>{Rx*BCh+?lUVf-)RAisV&OyJlW!Q zm7Q_`eua)xvA`IlZ6W7y25x$;!(nf|%4FB}l2mH*HOhTI1M+4y>jPQd&rY8n5MiiTm=EXp8!;kJ=r)HP3_50+yP)yq_EH-qjeTyq(#- zvVTjpkXJqI0`jyxR%g1fs8C7%A%m0=w3T@I;IrmCq@dXK6mDdc2=5IMiOlLSQ>3%7l^9fvbUvk1#UA0w zhtjY%EEmZIp+(t~)s0dwig6oW71YrhxvqTmt%kpbKfK_^$zrzwv(k*ZY;!}BcF@%z z2qHy3eIuRPNlYnAa!FfE4-hp>9Zn~tqrti2=<^|0|1A7jOKaSu(PR>qUwJD}ms0%! z8i~}&dX{E;-!{uO#`fN%Vym&}yX3Is8ZN^Ujrqz?q6O#qwfYPEKh;)Wt5*4f{UUo7 zaryavf69F8rqCQ|lL;$|wV1v*EjZ0TUDb7i{)4Q|j{J=?1@S5I_3?=t3NvrXRPtA) z3Y_)fJBhSiNjJ&BG~qOdG@7);QiGfBgWQAJrT9|A0a<4;XN>cR^Zp>XEP-4^CghN_ z(F%uCKcg2a>tgQK?m7QxUVtv7@MrNi@Sowo$)B#!rg$dHEvqwYI%`&;z1qo~5zFD~wn3V8*$`+~a_3#CbAeUka+`KoPK z?B3joU58OE#42O5k;%w}&TA&02gXco>d4h(R+kwkF@-Y4`u1m)-%zL*x1YL->yC{O+Mdh!XIZAEsdOVdu zJV5+qKeA{%8`Ue(d$Kp5g_U=WcR+^Ev+oY2R?ssEY!8k{`+4LI-29qGHDBE8xi*|I z>)V2F8T||$IjG&2V%KL+Ld3PF7NyMclUc0qr&rugx?NF|yluPcyjlcPfyKZQV5b^< z8_I$pJD3C71K+*Tjp4P~z2SXB;1%Etra9*4KwaQ11{jMR6W0kJU~>~qQ+>D)nGedQjJNG)#~(~7av$!;f2_ef9*}bU_Sy-##Tog-cqlZ*zu_Y5tqQD&qL7d zM6~J*BChEK=%nlDr<+Nms-|?~&Er9ZP#z(H(*YvBo+aC#M)jkqOOwph6|lVJqpGDZ zp0B4%y2<4a(M_m3lIH}3&W>{&#+>?4GHp=4iGE9%1`emxNAD-kwn@zUsk*ASVT0_m(6F#rd-@~R#QXi(~OURe>mHdH=sNSjW*Am6VR!UjP zL&ZsuW`%rNcwHB6aOLKyXBvG;1{b|h4)qxi{xtZZ7ccTy^d5?(%K6opBLbV-W!%F# zvpJPD<<@<+bE9)VSkXa|;N#ff`)Ab8CdCyOHe%#Zx#icl*9lflb(9|si-~v;UTcJmS1X(mgGCF^7sB`xvt~#O0X56nU)sM8H;&^&`e_pAS{Y#H zxCP&ZbZi^B5H<0wm~WI9&E&;r3w4c-A?Oh8Wxe$zG9nUD(EcIOXHa!u_;T^(RHY9I z$!#yGciP<#CVs#JPL<6Y$>+b_0bV(;ygu2!Bea^ssy5;u8&oT=X4C-t6w@>n^S5d2-MEpk0BhBsQ} zwl}PVw_0}r zK}3+_cjHIzzT9kG>yA(Fr$#nP{P|`(t*-p7VL-jI6?yeYJMt5OFY&a z1M{11F1MB7P>T|3Jc3Dmh^8bwgBp7<)ut&xDMY!}E|99Iz@n-)kz~7C(32Knzg8r?* zf8E|M>(TYWn2)slyA@!}lSp}qqsDoM)Yde;!bvn8*EiMVJ6P$ly2eD*k+m!N1}qqr zkusKIwa}as9aRisx?74^e2J)Oe|q>d=dQO4X^#sS$&HQGotKPIm$c&Q6cJS*tbUtU zh1WanerE8R?d?&X?F}5ybm`00J;d3a z!yg+9s@_?684`jUo*6#fwc8CPzD9suz9zRyQ!Ffa3!9Ic(q{tbvdrhz^s-> zSS#*}7fRowziVI7%j~`0#mdU9R}Z8Yv|a^qmMZy~K<(&=UBr$2)Yyn}MXBvw`HD%`6nCG+^p~)mi0txl&iTIY{LlY;uj_f==l#9+{rmmy`+2VSdZKjiBAFR^836zQGfG44-pP~g zbkNhD+;8KN`v3r=GEP-h7p1BS)^&HW#W`UC01f8s$6f~dW1Nu`@=fyla}cn=7OyV@ z_`_|D^B}z_RIn~EA`I%OMx)NbCUoD%pp^<439&|SFg*&zj57RS)$MB2Q$x&+$2u~s z5oI&R+^AxgoGq#9z*^M$V^A2({}OvbyDw>bm(jzFS?(nNjfK%q&tx*FjWu>$}@c; z@YSxspAJhlKxG2vcCHN$?mpE9h;w9Eyjy_gIYmh#IC#EC{Qv^!Q#)jv+*xAwWbJbR z-bHq^(V!?4rig9y32tt&$98|CMt=_@aXt0TovGivwJBS*XX3@Vf-7AfBd7$>_ze4` zRU+T&Dtctzey?S0@=~DwkwTB}f#C*pg_5Hjn}eQoT6rNx<^*i>8)sdtX-+c))Z%HC z=B8fgtbqYPXaKbnPd6_`IGHDROrH^Cidk84@}SCfgk4{}d5|0G^0p;Hb|<6n`@#L& zMO=y@S5fDsu!y;$;vy}zckj-yq*H8;c36*RT4iy+_r4K%n%l~?5x!`sx0uQh7G+Ng zmk%*YgxN5L1r1LHao-T6;|a`m0-0>apy00*s@KLTC{k5%2~qer&)eO2>5|CEla z_4AZwJtv%{uAOV@!a6`C+@d{&Ua5zkdO+QX{=$ZuN}>@z726fZBuF8!6p@+8Qh1>u zP9w=}mYOy)&*}*`XBW>*Bsz8qbKhzNqbWZ8#QMp7ZLawnwyaVid!f%U!!L`B1Yan6 zGTdOxiWBX)Z<%0eQkDLa`lHp#Z9bOnR-S1-*T8yiQ%Pr;3Q*nI(O6RO@*CzU=!SQb z@C3(N=-D=pb&UU&X2u}Cpi7epm%Ca76B&#_j-h9-JO=YS@f)!6(l5{-g|W3u>xGo) z5Fin(J{_hQp_lO=m77p}(7P!ds0eaymK{g@6oo4TkcBT<9QyN5=)9r*p!}cpv+J{->AfyA2$i5 z?Fl;z`=>$DY}2UH63Vm-4=;bhN~b#4IZH z*7D$bxy0PU7G#S_(A(Dc;7^t@%2{nCdC_?-RykG$Q`T3@lFA2!3yceHcipmn?H0WO zpD}?}MP;LsQE|O@^gj+w7+5w^YAI(N=k1}=ePd;AN0vi7bs zDa07XWOI&lT8ONQ=!-6kTt*9_X^il-->UZCeCo(_G_wxqj&PWgB89G5f!Iy)m z;>m1uzfeDOe*x1Ou63>(E}aOEzk>wMaDvqI_N$foJo@59L+<}n>MO8Qs`x|4;K8UL!3aB zLsidkc?Ov?X6N@kxM3pFFQ6+v^@iSo-d-S43_?w{gQStr^PvYB6UV8=>80L_>_iMB z?;!jT=?JZKBN24Xta_|*EVxL4^YVrBe*B*9r8^(SwIXL$rWt3x!=y|f*Q|VUe>GRy zN2y4(XhXXRU%GJl;w0;F6nlH=oOZ>QMT6HIXf%Zsd62x&b$uaj!)zCOm;_1>s}37b zOYbm?vPM;)&ZB04I?AuUKCHI*5i(nvnwVN3Bvm?4`a3SHcDHs=MZhY$>bjYff*@J! zjdX#yYU5kn@OMM@e5HXT?Q0%rThf#GU)n!4V)?TK9-*0P9I7Ymkl5U}dhgigw`MbE zo%=5KZuTAo%GkxJ*^|~ zC3$%g9q?dp{M~lgD*5^L^8>H1p7dT{#+Mp5jWRH3^Rf38U(JYf?|$U}s3SdCX})h| z;%0dkmtd1nD_K%a)~s|u4i|qb{1(ESkU3BO=2y3x{i*x&Xv-u%Xpkz7x|0rmiG!~x zsAoslk*JLCwE8mj;tgdv|65~=U64hP+N#Dz5(OEKeBRxj@NoF{(CE#Qo2fV2c?Kbq$^d>unW3%MRsGld-w8M&KdbJpXh+HCBdWI?bq*(qmA=MzKle@ zF1&&B)ApNO3Leb9*nd$}G3(fWD|S00v*xXx7A2|w{L?JiT(7_%DqZ0lF;QHRat{db z#@g8r*%eh46MZ4+mF61_?xml}2Zx5~<#rXaX14>f1IVipM{y&UNI8!!RswNLuh#J7 zCD)px$1}wEW}1M7eX|3xiS5RKx%lJk3)C^R``=;Be#hot6qW)ejt1yT&zdW~^SyOs ze`LKflP}1qBb-yFNIV+e9knebZ>>BVwWQSiW|t6AuPSz&wpXe1hK5o~xvpNT{tZb) zQeyXF$9-RJb*}ftrVq}9w+Q`uy^}Ujo*U?OK(@p5cC0%NEN3WcPLwpu?vHHa7i<=1 z2fc7>Ma9t*<;{xQAxC)!)?3|4ODj6NI%&CaieCNnvvFj$y3-t`0x0LXjGolNmqf)&^s z@8s+u=dA$w10i=ZKMjjPz<)ppjtUT?JGx+17k4aJ1||&?hrk)ZV6eQqjjh~0HTA#f zCvOT6dji2#PE5?p%M0cu1#@w?6O)jYl@$}06qA$`Jwb?i_&5`+yhWWouKtdOX3TuTYF41WNDIV-aR||`66Dr= zCW1@&n+tz`m(|cByEEaD+qx!`FYsMSm7dxBv#5t%TJmb5FoS^By|Ro?7-!zAD$0%_ zB-SaJ8AQ)}5Iuah`iBLr%xsk_1byq}y4&spBDlnmiTIe?tUl-WNI#NWA)Do*>Byr7 zq{h%r+jZ(@yY2RX&F8$}!K9Ky2a-mr){F`DSRlLgG~!yEP*`xI!Q~s#a2ib|llg2j zfaI5qom9D$s?ePzb-LwFw=X?Ev%FIxUjGPJ=I8aKa^0qOf86Si&a1luvDmU*sVgo_ zP^+#S?vThS<(B1UX~GwVCE^0zigm3R#e*AG0pwEpuEwk+0^V&yjog&ZX;d;4A+rqm za=5ZreKBB^Z`Yys!8w^Y=!5Aj+IV)05>WjoZsq1;o}X^fv%bGx{#LP+FE^`>{p!bM zlYy7#jIqMi6gk&5di%q|=ZFBj!8+ahYC7*d9J85z`AVqnCDP8L4bOgc_lhzJwN_%h zG$y`7UwAQNH{KCx_GQgkS<*R@5el!&^KhUMeaLyEl#m_uc`Hd2q&d%QOQooLrI2)T zL~Q>Q-?0OzWT;nB+N5H-;6DmNZxx-Bo_2a>D_MeZYJkw?ieL(~k**J)I<-#ONH+x{ zTA$y%t|3VOHGc2q@j2;dLk{Yp_j4+J!<{5y-7$f#n`0175?EDSrrwF8BLld0hj$AB z5EPcV=%jvyP);plTxH$U8RlDWJgf@hK|sU%Q6sI_EZ13DpS@BU!Xk!B+zxWAFB(r2 zTT3a%{PH*K8?3+vtOGOEpXE#l@z97+U8UyJmi;IaPe*+_{>aW#h1IUO)VRyNQ{RmN zyI=i)y2z5lvRtiovWC6vK&q3a_~Qb{O}T-U*X-flI$EAofi$0Xm4uM`oPZGR(Ea>!yi9*~}t5C5F{TEw|SGNEF literal 0 HcmV?d00001 diff --git a/modules/ROOT/pages/_partials/_attributes-local.adoc b/modules/ROOT/pages/_partials/_attributes-local.adoc index cea6d33ec..92ddcae65 100644 --- a/modules/ROOT/pages/_partials/_attributes-local.adoc +++ b/modules/ROOT/pages/_partials/_attributes-local.adoc @@ -23,6 +23,27 @@ :version_caoFull: 2.0.0 // Couchbase Components +:sgw: pass:q,a[sync{nbsp}gateway] +:sgw-s: pass:q,a[Sync{nbsp}gateway] +:sgw-t: pass:q,a[Sync{nbsp}Gateway] +:sgw-te: pass:q,a[_{sgw-t}_] + +:cbl: pass:q,a[Couchbase{nbsp}Lite] +:cbl-s: pass:q,a[{cbl}] +:cbl-t: pass:q,a[{cbl}] +:cbl-te: pass:q,a[_{cbl-t}_] + +:cbm: pass:q,a[Couchbase{nbsp}Mobile] +:cbm-s: pass:q,a[{cbm}] +:cbm-t: pass:q,a[{cbm}] +:cbm-te: pass:q,a[_{cbm-t}_] + +:cbs: pass:q,a[Couchbase{nbsp}Server] +:cbs-s: pass:q,a[{cbs}] +:cbs-t: pass:q,a[{cbs}] +:cbs-te: pass:q,a[_{cbs-t}_] + + :component-cao: operator :component-cbl: couchbase-lite :component-sgw: sync-gateway @@ -30,10 +51,11 @@ :component-tut: tutorials :component-title-cao: Couchbase Autonomous Operator -:component-title-cbl: Couchbase Lite -:component-title-sgw: Sync Gateway -:component-title-svr: Couchbase Server -:component-title-tut: Couchbase Tutorials +:component-title-cbl: {cbl} +:component-title-sgw: {sgw} +:component-title-svr: {cbs} +:component-title-tut: pass:q,a[Couchbase{nbsp}Tutorials] +:component-title-mob: {cbm} :component-sgw-status: :component-cbl-status: @@ -41,17 +63,6 @@ :component-svr-status: :component-cao-status: -:sgw: pass:q,a[sync{nbsp}gateway] -:sgw-s: pass:q,a[Sync{nbsp}gateway] -:sgw-t: pass:q,a[Sync{nbsp}Gateway] -:sgw-te: pass:q,a[_{sgw-t}_] - -:cbl: pass:q,a[Couchbase{nbsp}Lite] -:cbl-s: pass:q,a[{cbl}] -:cbl-t: pass:q,a[{cbl}] -:cbl-te: pass:q,a[_{cbl-t}_] - -:component-title-mob: pass:q,a[_Couchbase{nbsp}Mobile_] :cao: {component-title-cao} @@ -78,6 +89,10 @@ // Set global switches :is-initialized: +:is_deep_toc!: +ifeval::["{page-toclevels}" == "2"] +:is_deep_toc: true +endif::[] // Set global switches :concepts: partial$concepts/ @@ -91,7 +106,8 @@ :url-cb-issues-sync: https://github.com/couchbase/sync_gateway/issues :url-mobile-downloads: {url-cb-pfx}downloads/?family=mobile :url-cb-package-downloads: http://packages.couchbase.com/releases/couchbase-sync-gateway -:url-cb-blog: https://blog.couchbase.com/category/couchbase-mobile/?ref=blog-menu +:url-cb-blog: https://blog.couchbase.com/ +:url-cb-blog--mobile: https://blog.couchbase.com/category/couchbase-mobile/?ref=blog-menu :url-cb-forum: https://forums.couchbase.com/ :url-cb-forum-mobile: https://forums.couchbase.com/c/mobile/14 :url-cb-support-policy: {url-cb-pfx}support-policy[Couchbase Support Policy] @@ -101,6 +117,7 @@ :couchbase-blog--xref: {url-cb-blog}[Blog] +:couchbase-blog-mobile--xref: {url-cb-blog--mobile}[Blog (Mobile)] :couchbase-forum--xref: {url-cb-forum}[Forum] :couchbase-mobile-forum--xref: {url-cb-forum-mobile}[Mobile Forum] :couchbase-tutorials--xref: {url-tutorials}[Tutorials] @@ -136,7 +153,7 @@ :url-blog-doc-how-conflicts-work: {url-cb-blog}document-conflicts-couchbase-mobile/[Document Conflicts & Resolution in Couchbase Mobile] -:url-blog-prometheus: {url-cb-blog}monitoring-and-visualization-of-couchbase-sync-gateway-with-prometheus-and-grafana/[Monitoring and Visualization of Couchbase Sync Gateway with Prometheus and Grafana] +:url-blog-prometheus: {url-cb-blog}monitoring-sync-gateway-prometheus-grafana/[Monitoring Couchbase Sync Gateway with Prometheus and Grafana] :url-blog-dbsizemng-ref: {url-cb-blog}database-sizes-and-conflict-resolution/ :url-blog-dbsizemng: {url-blog-dbsizemng-ref}[Managing Database Sizes in Couchbase Mobile] @@ -155,7 +172,7 @@ :example-restapi: example$configuration/sync-gateway-restapi.adoc :examples-lib: example$examples-library.adoc -:examples-code-csharp: example$code/csharp/cbsSdkUserXattrKeySol/cbsSdkUserXattrKeyProj/Program.cs +:examples-code-csharp: example$/code/csharp/cbsSdkUserXattrKeySol/cbsSdkUserXattrKeyProj/Program.cs :examples-code-js: example$/code/javascript/javasnippets.js // Define a standard snippet / terminal header @@ -220,8 +237,6 @@ ifdef::releasetag[:tag: -{releasetag}] :tg-sgw-api: Sync Gateway REST API :tg-ref-info: Reference Information -:cbm: Couchbase for Mobile and Edge - // Page constraints :page-width: 1440 :img-max: 1024 @@ -241,11 +256,10 @@ ifdef::releasetag[:tag: -{releasetag}] :fn_post270: footnote:fnpost270[Since 2.7] :fnref_post270: footnote:fnpost270[] -:fn_legacy: footnote:fnlegacy[For Pre-3.0 legacy configuration see: xref:configuration-properties-legacy.adoc[Configuration Pproperties (legacy Pre3.0)] +:fn_legacy: footnote:fnlegacy[For Pre-3.0 legacy configuration see: xref:configuration-properties-legacy.adoc[Configuration Properties (legacy Pre3.0)]] :fnref_legacy: footnote:fnlegacy[] - // END GLOBAL FOOTNOTES diff --git a/modules/ROOT/pages/_partials/_block-related-content.adoc b/modules/ROOT/pages/_partials/_block-related-content.adoc index 340b6ca61..af2607bd2 100644 --- a/modules/ROOT/pages/_partials/_block-related-content.adoc +++ b/modules/ROOT/pages/_partials/_block-related-content.adoc @@ -43,7 +43,8 @@ endif::[] --- // empty header to prevent encroachment of div on preceding text, especially links which became hard to select because of overlap -== {empty} +[discrete] +===== {empty} ifdef::is-initialized[] == {param-section-title} diff --git a/modules/ROOT/pages/_partials/_page-index.adoc b/modules/ROOT/pages/_partials/_page-index.adoc index 0c6c6bf20..b7ac0a70d 100644 --- a/modules/ROOT/pages/_partials/_page-index.adoc +++ b/modules/ROOT/pages/_partials/_page-index.adoc @@ -101,15 +101,10 @@ endif::xref--pfx-sgw[] :server-transactions--page: learn:data/transactions.adoc :server-transactions--xref: {svr--xref}{server-transactions--page}[Couchbase Transactions] -:server-xdcr--page: learn:clusters-and-availability/xdcr-overview.adoc -:server-xdcr--xref: {svr--xref}{server-xdcr--page}[Couchbase Server Cross Data Center Replication] - - -:server-data--page: learn/data/data.html +:server-data--page: learn:data/data.adoc :server-data--xref: {svr--xref}{server-data--page}[Data] :server-data--xref-metadata: {svr--xref}{server-data--page}#metadata[Metadata] - -:server-data-xattr-fundamentals--page: learn/data/extended-attributes-fundamentals.html +:server-data-xattr-fundamentals--page: learn:data/extended-attributes-fundamentals.adoc :server-data-xattr-fundamentals--xref: {svr--xref}{server-data-xattr-fundamentals--page}[Extended Attributes] // END -- SERVER PAGES ACCESSED BY SYNC GATEWAY PAGES diff --git a/modules/ROOT/pages/_partials/_related-content.adoc b/modules/ROOT/pages/_partials/_related-content.adoc index e5fe2d4c1..8161ee749 100644 --- a/modules/ROOT/pages/_partials/_related-content.adoc +++ b/modules/ROOT/pages/_partials/_related-content.adoc @@ -3,6 +3,7 @@ //* Community {couchbase-mobile-forum--xref} | {couchbase-blog--xref} | +{couchbase-blog-mobile--xref} | {couchbase-tutorials--xref} // end::community-std[] diff --git a/modules/ROOT/pages/_partials/block-caveats.adoc b/modules/ROOT/pages/_partials/block-caveats.adoc index 3950614bd..d4cd000a8 100644 --- a/modules/ROOT/pages/_partials/block-caveats.adoc +++ b/modules/ROOT/pages/_partials/block-caveats.adoc @@ -103,7 +103,7 @@ Refer to xref:server:developer-preview:preview-mode.adoc[Developer Preview Mode] .Couchbase Server Bucket Types [{caveat-level}] -Use only *Couchbase* bucket types in _Couchbase for Mobile and Edge_. +Use only *Couchbase* bucket types in _Couchbase Mobile_. We do not support the use of Couchbase Server's *Ephemeral* or *Memcached* bucket types -- for more on bucket types see: Couchbase Server xref:server:learn:buckets-memory-and-storage/buckets.adoc[bucket types]. // end::ephemeral-buckets[] @@ -149,9 +149,9 @@ endif::[] // tag::legacy-config-equivalents[] -.Pre-3.0-beta02 Legacy Configuration Equivalents +.Pre-3.0 Legacy Configuration Equivalents [{caveat-level}] -- -This content describes configuration for Sync Gateway 3.0-beta02 and higher -- for legacy configuration, see: {configuration-properties-legacy--xref} +This content describes configuration for Sync Gateway 3.0 and higher -- for legacy configuration, see: {configuration-properties-legacy--xref} -- // end::legacy-config-equivalents[] diff --git a/modules/ROOT/pages/_partials/common-cfg-ext-javascript.adoc b/modules/ROOT/pages/_partials/common-cfg-ext-javascript.adoc index ae8179736..f7c9f0ff2 100644 --- a/modules/ROOT/pages/_partials/common-cfg-ext-javascript.adoc +++ b/modules/ROOT/pages/_partials/common-cfg-ext-javascript.adoc @@ -41,9 +41,9 @@ Inline or external Javascript functions can be provided for any or all of the fo == Configuration // tag::config-full[] -NOTE: {sgw-s} 3.+ configuration of Javascript functions is done using the {rest-api-admin--xref}; specifically the {rest-api-admin--xref--access-control} and {rest-api-admin--xref--import-filter} endpoints. +NOTE: {sgw-s} 3.x configuration of Javascript functions is done using the {rest-api-admin--xref}; specifically the {rest-api-admin--xref--access-control} and {rest-api-admin--xref--import-filter} endpoints. -Before 3.0, configuration was done within the database configuration -- see: <> +Prior to this, configuration was done within the database configuration file -- see: <> * Inline Javascript functions provided within the database configuration must be enclosed by a backtick pair (``). diff --git a/modules/ROOT/pages/_partials/incpg-icr-admin.adoc b/modules/ROOT/pages/_partials/incpg-icr-admin.adoc index 2668d621d..063883910 100644 --- a/modules/ROOT/pages/_partials/incpg-icr-admin.adoc +++ b/modules/ROOT/pages/_partials/incpg-icr-admin.adoc @@ -1,6 +1,6 @@ // = ICR Administration and Management // tag::in-this-section[] -*_In this Section_*: <> | <> | <> +ifndef::is_deep_toc[*_In this Section_*: <> | <> | <>] // end::in-this-section[] diff --git a/modules/ROOT/pages/_partials/incpg-icr-availability.adoc b/modules/ROOT/pages/_partials/incpg-icr-availability.adoc index 1fa686cf3..6c0ff313c 100644 --- a/modules/ROOT/pages/_partials/incpg-icr-availability.adoc +++ b/modules/ROOT/pages/_partials/incpg-icr-availability.adoc @@ -1,7 +1,7 @@ // = High-Availability Replication // tag::in-this-section[] -*_In this section_*: <> | <> | <> | <> | <> +ifndef::is_deep_toc[*_In this section_*: <> | <> | <> | <> | <>] // end::in-this-section[] == Overview diff --git a/modules/ROOT/pages/_partials/incpg-icr-conflict.adoc b/modules/ROOT/pages/_partials/incpg-icr-conflict.adoc index d53610640..b97101bae 100644 --- a/modules/ROOT/pages/_partials/incpg-icr-conflict.adoc +++ b/modules/ROOT/pages/_partials/incpg-icr-conflict.adoc @@ -5,8 +5,10 @@ // *_In this Section_*: <> | <> | <> | <> + == Automatic Conflict Resolution + // tag::overview-full[] // tag::overview[] Inter-Sync Gateway *pull* replications support automatic conflict resolution by default (no conflict mode). @@ -32,11 +34,15 @@ _Alternatively_: Run the replicator from the other side; flipping the direction See also -- our blog post: {url-blog-doc-how-conflicts-work} -- -For {enterprise}, a custom conflict resolver policy is available, providing additional flexibility by allowing users to provide their own conflict resolution logic -- see: {sync-inter-syncgateway-conflict-resolution--custom-conflict-resolution}{ +For {enterprise}, a custom conflict resolver policy is available, providing additional flexibility by allowing users to provide their own conflict resolution logic -- see: {sync-inter-syncgateway-conflict-resolution--custom-conflict-resolution} + // end::overview-full[] + [#configure-conflict-resolution] == Configure Conflict Resolution + + Invoke automatic conflict resolution by specifying the required _conflict resolver policy_ in the {glos-term-replication-definition}. The specified policy is applied whenever a conflict is detected. @@ -139,7 +145,7 @@ remoteWins:: // Build a Conflict Resolution Strategy // tag::in-this-section[] -_In this section_: <> | <> | <> | <> +ifndef::is_deep_toc[_In this section_: <> | <> | <> | <>] include::partial$block-caveats.adoc[tags=ee-only-feature] diff --git a/modules/ROOT/pages/_partials/incpg-icr-initialization.adoc b/modules/ROOT/pages/_partials/incpg-icr-initialization.adoc index 3dcef7b7d..cfa0c27d5 100644 --- a/modules/ROOT/pages/_partials/incpg-icr-initialization.adoc +++ b/modules/ROOT/pages/_partials/incpg-icr-initialization.adoc @@ -5,11 +5,11 @@ :fnref-repdef-both: footnote:fn-repdef-both[] // tag::in-this-section[] - -*_In this Section_*: <> | <> | <> +ifndef::is_deep_toc[*_In this Section_*: <> | <> | <>] // end::in-this-section[] + == Introduction // tag::introduction[] Replications are initialized by submitting a {glos-term-replication-definition} using either: diff --git a/modules/ROOT/pages/_partials/incpg-icr-monitoring.adoc b/modules/ROOT/pages/_partials/incpg-icr-monitoring.adoc index e84dd21d5..a75ab6127 100644 --- a/modules/ROOT/pages/_partials/incpg-icr-monitoring.adoc +++ b/modules/ROOT/pages/_partials/incpg-icr-monitoring.adoc @@ -1,7 +1,7 @@ // = Replication Monitoring and Statistics include::partial$_stats-item-names.adoc[] // tag::in-this-section[] -*_In this Section_*: <> | <> +ifndef::is_deep_toc[*_In this Section_*: <> | <>] // end::in-this-section[] // tag::overview[] diff --git a/modules/ROOT/pages/authentication-users.adoc b/modules/ROOT/pages/authentication-users.adoc index edeadbfb8..3db23fc1e 100644 --- a/modules/ROOT/pages/authentication-users.adoc +++ b/modules/ROOT/pages/authentication-users.adoc @@ -2,13 +2,14 @@ :page-aliases: learn/authentication.adoc, authentication.adoc ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] -:description: Access Sync Gateway securely to sync from cloud to edge +:description: Access {sgw} securely to sync from cloud to edge +:keywords: 'user authentication' 'sync gateway' sync replication edge cloud mobile include::partial$_std-hdr-sgw.adoc[] :topic-group: Security :param-related: {authentication-certs--xref} | {xref-sgw-pg-sync-function} | {import-filter--xref} | {xref-sgw-pg-read-access} | {xref-sgw-pg-write-access} -:param-abstract: This content explains how to implement user authentication in Sync Gateway +:param-abstract: This content explains how to implement user authentication in {sgw} include::partial$block-abstract.adoc[] :idprefix: @@ -17,22 +18,22 @@ include::partial$block-abstract.adoc[] == Introduction Authentication is the process of verifying the identity of a user. -Sync Gateway supports the following authentication methods: +{sgw-te} supports the following authentication methods: <>:: -Sync Gateway does not allow anonymous or guest access by default, but it can be enabled by editing the configuration file or by using the Admin REST API. +{sgw} does not allow anonymous or guest access by default, but it can be enabled by editing the configuration file or by using the Admin REST API. <>:: Provide a username and password to authenticate users. <>:: -Sync Gateway provides a turn-key solution to authenticate with Facebook or Google. + +{sgw} provides a turn-key solution to authenticate with Facebook or Google. + For other providers we recommend to use Custom Authentication or OpenID Connect. + -- * <> -Use an App Server to handle the authentication yourself and create user sessions on the Sync Gateway Admin REST API. +Use an App Server to handle the authentication yourself and create user sessions on the {sgw} Admin REST API. * <> Use OpenID Connect providers (Google+, Paypal, etc.) to authenticate users. -Static providers: Sync Gateway currently supports authentication endpoints for Facebook, Google+ and OpenID Connect providers +Static providers: {sgw} currently supports authentication endpoints for Facebook, Google+ and OpenID Connect providers -- == Anonymous Access @@ -54,24 +55,21 @@ $ curl -X PUT localhost:4985/$DB/_user/GUEST --data \ == Basic Authentication -Once the user has been created on Sync Gateway, you can provide the same **username**/**password** to the `BasicAuthenticator` class of Couchbase Lite. +Once the user has been created on {sgw}, you can provide the same **username**/**password** to the `BasicAuthenticator` class of {cbl-te}. Under the hood, the replicator will send the credentials in the first request to retrieve a `SyncGatewaySession` cookie and use it for all subsequent requests during the replication. This is the recommended way of using basic authentication. -Example: +:param-page: replication +:param-bookmark: basic-authentication +include::{root-partials}blocklinks-cbl.adoc[] -* xref:couchbase-lite:swift:learn/swift-replication.adoc#basic-authentication[Swift] -* xref:couchbase-lite:java:learn/java-replication.adoc#basic-authentication[Java] -* xref:couchbase-lite:android:learn/java-android-replication.adoc#basic-authentication[Java (Android)] -* xref:couchbase-lite:csharp:learn/csharp-replication.adoc#basic-authentication[C#] -* xref:couchbase-lite:objc:learn/objc-replication.adoc#basic-authentication[Objective-C] == Auth Providers -Sync Gateway provides a turn-key solution to authenticate with Facebook or Google. +{sgw} provides a turn-key solution to authenticate with Facebook or Google. -The app is responsible for retrieving the auth provider token and must send it to Sync Gateway which will return a session ID. -The session ID can be used to configure the Couchbase Lite replicator or for other HTTP requests to the Sync Gateway REST API. +The app is responsible for retrieving the auth provider token and must send it to {sgw} which will return a session ID. +The session ID can be used to configure the {cbl} replicator or for other HTTP requests to the {sgw} REST API. The following diagram describes the sequence of steps. @@ -86,11 +84,11 @@ For other providers we recommend to use Custom Authentication or OpenID Connect. == Custom Authentication -It's possible for an application server associated with a remote Couchbase Sync Gateway to provide its own custom form of authentication. +It's possible for an application server associated with a remote Couchbase {sgw} to provide its own custom form of authentication. Generally this will involve a particular URL that the app needs to post some form of credentials to; -the App Server will verify those, then tell the Sync Gateway to create a new session for the corresponding user, and return session credentials in its response to the client app. +the App Server will verify those, then tell the {sgw} to create a new session for the corresponding user, and return session credentials in its response to the client app. -The following diagram shows an example architecture to support Google SignIn in a Couchbase Mobile application, the client sends an access token to the App Server where a server side validation is done with the Google API and a corresponding Sync Gateway user is then created if it's the first time the user logs in. +The following diagram shows an example architecture to support Google SignIn in a Couchbase Mobile application, the client sends an access token to the App Server where a server side validation is done with the Google API and a corresponding {sgw} user is then created if it's the first time the user logs in. The last request creates a session. image::custom-auth-flow.png[] @@ -114,24 +112,21 @@ The HTTP response body contains the credentials of the session. * *name* corresponds to the `cookie_name` * *value* corresponds to the `session_id` -* *path* is the hostname of the Sync Gateway +* *path* is the hostname of the {sgw} * *expirationDate* corresponds to the cookie's expiration time. The endpoint's {rest-api-admin--pfx}#/session/post\__db___session[API reference] contains more information about how the expiration time is automatically extended according to the user session activity. * *secure* Whether the cookie should only be sent using a secure protocol (e.g. HTTPS) * *httpOnly* Whether the cookie should only be used when transmitting HTTP, or HTTPS, requests thus restricting access from other, non-HTTP APIs It is recommended to return the session details to the client application in the same form and to use the `SessionAuthenticator` class to authenticate with that session id. -Example: +:param-page: replication +:param-bookmark: session-authentication +include::{root-partials}blocklinks-cbl.adoc[] -* xref:couchbase-lite:swift:learn/swift-replication.adoc#session-authentication[Swift] -* xref:couchbase-lite:objc:learn/objc-replication.adoc#session-authentication[Objective-C] -* xref:couchbase-lite:java:learn/java-replication.adoc#session-authentication[Java] -* xref:couchbase-lite:android:learn/java-android-replication.adoc#session-authentication[Android (Java)] -* xref:couchbase-lite:csharp:learn/csharp-replication.adoc#session-authentication[C#] == OpenID Connect -Sync Gateway supports OpenID Connect. +{sgw} supports OpenID Connect. This allows your application to use Couchbase for data synchronization and delegate the authentication to a 3rd party server (known as the Provider). There are two implementation methods available with OpenID Connect: @@ -139,22 +134,22 @@ There are two implementation methods available with OpenID Connect: With this method, the retrieval of the ID token takes place on the device. You can then create a user session using the POST `+/\{tkn-db}/_session+` endpoint on the Public REST API with the ID token. <>:: -This method relies on Sync Gateway to retrieve the ID token. +This method relies on {sgw} to retrieve the ID token. === Implicit Flow -{url-openid}#ImplicitFlowAuth[Implicit Flow] has the key feature of allowing clients to obtain their own Open ID token and use it to authenticate against Sync Gateway. -The implicit flow with Sync Gateway is as follows: +{url-openid}#ImplicitFlowAuth[Implicit Flow] has the key feature of allowing clients to obtain their own Open ID token and use it to authenticate against {sgw}. +The implicit flow with {sgw} is as follows: . The client obtains a *signed* Open ID token directly from an OpenID Connect provider. Note that only signed tokens are supported. To verify that the Open ID token being sent is indeed signed, you can use the https://jwt.io/#debugger-io[jwt.io Debugger]. -In the algorithm dropdown, make sure to select `RS256` as the signing algorithm (other options such as `HS256` are not yet supported by Sync Gateway). -. The client includes the Open ID token as an `Authorization: Bearer ` header on requests made against the Sync Gateway REST API. -. Sync Gateway matches the token to a provider in its configuration file based on the issuer and audience in the token. -. Sync Gateway validates the token, based on the provider definition. -. Upon successful validation, Sync Gateway authenticates the user based on the subject and issuer in the token. +In the algorithm dropdown, make sure to select `RS256` as the signing algorithm (other options such as `HS256` are not yet supported by {sgw}). +. The client includes the Open ID token as an `Authorization: Bearer ` header on requests made against the {sgw} REST API. +. {sgw} matches the token to a provider in its configuration file based on the issuer and audience in the token. +. {sgw} validates the token, based on the provider definition. +. Upon successful validation, {sgw} authenticates the user based on the subject and issuer in the token. -Since Open ID tokens are typically large, the usual approach is to use the Open ID token to obtain a Sync Gateway session id (using the xref:rest-api.adoc#/session/post\__db___session[POST /db/_session] endpoint), and then use the returned session id for subsequent authentication requests. +Since Open ID tokens are typically large, the usual approach is to use the Open ID token to obtain a {sgw} session id (using the xref:rest-api.adoc#/session/post\__db___session[POST /db/_session] endpoint), and then use the returned session id for subsequent authentication requests. ==== @@ -168,32 +163,32 @@ Configuration File:: + -- -Here is a sample Sync Gateway config file, configured to use the Implicit Flow. +Here is a sample {sgw} config file, configured to use the Implicit Flow. include::{examples-lib}[tags="oidc-config-simple"] -- -<.> Use `register` to auto-register a Sync Gateway user on successful completion of the validation +<.> Use `register` to auto-register a {sgw} user on successful completion of the validation ==== ==== Client Authentication -With the implicit flow, the mechanism to refresh the token and Sync Gateway session must be handled in the application code. +With the implicit flow, the mechanism to refresh the token and {sgw} session must be handled in the application code. On launch, the application should check if the token has expired. If it has then you must request a new token (Google SignIn for iOS has a method called `signInSilently` for this purpose). -By doing this, the application can then use the token to create a Sync Gateway session. +By doing this, the application can then use the token to create a {sgw} session. image::client-auth.png[] . The Google SignIn SDK prompts the user to login and if successful it returns an ID token to the application. -. The ID token is used to create a Sync Gateway session by sending a POST `+/\{tkn-db}/_session+` request. -. Sync Gateway returns a cookie session in the response header. -. The Sync Gateway cookie session is used on the replicator object. +. The ID token is used to create a {sgw} session by sending a POST `+/\{tkn-db}/_session+` request. +. {sgw} returns a cookie session in the response header. +. The {sgw} cookie session is used on the replicator object. -Sync Gateway sessions also have an expiration date. -The replication `lastError` property will return a *401 Unauthorized* when it's the case and then the application must retrieve create a new Sync Gateway session and set the new cookie on the replicator. +{sgw} sessions also have an expiration date. +The replication `lastError` property will return a *401 Unauthorized* when it's the case and then the application must retrieve create a new {sgw} session and set the new cookie on the replicator. A complete tutorial is available https://docs.couchbase.com/tutorials/openid-connect-implicit-flow/index.html[here] for your reference. @@ -201,5 +196,5 @@ You can configure your application for Google SignIn by following https://develo === Authorization Code Flow -Whilst Sync Gateway supports {url-openid}#CodeFlowAuth[Authorization Code Flow], there is considerable work involved to implement the *Authorization Code Flow* on the client side. -Couchbase Lite 1.x has an API to hide this complexity called `OpenIDConnectAuthenticator` but since it is not available in the 2.0 API we recommend to use the *Implicit Flow*. +Whilst {sgw} supports {url-openid}#CodeFlowAuth[Authorization Code Flow], there is considerable work involved to implement the *Authorization Code Flow* on the client side. +{cbl} 1.x has an API to hide this complexity called `OpenIDConnectAuthenticator` but since it is not available in the 2.0 API we recommend to use the *Implicit Flow*. diff --git a/modules/ROOT/pages/changes-feed.adoc b/modules/ROOT/pages/changes-feed.adoc index b78e990a6..5d323a431 100644 --- a/modules/ROOT/pages/changes-feed.adoc +++ b/modules/ROOT/pages/changes-feed.adoc @@ -15,32 +15,42 @@ include::partial$block-abstract.adoc[] :url-couchdb: http://guide.couchdb.org/draft/notifications.html + == Introduction -Sync Gateway provides the ability to extend the replication process and build responsive services that react to changes in documents, adding value to the end to end process. + +{sgw-te} provides the ability to extend the replication process and build responsive services that react to changes in documents, adding value to the end to end process. For example, you can initiate the sending of notifications, or specialist audit processes, when certain document changes are detected. This can be done using either the changes feed or {webhooks--xref}-- see <> for a comparison of these scenarios. include::partial$server-integration-scenario-table.adoc[] + == Changes Feed + + The changes-feed for the reliever returns a sorted list of changes made to documents in the database. -This article describes how to use the changes feed API to integrate Sync Gateway with other backend processes. +This article describes how to use the changes feed API to integrate {sgw} with other backend processes. For instance if you have a channel called "needs-email" you could have a bot that sends an email and then saves the document back with a flag to keep it out of the "needs-email" channel. + [#lbl-endpoint] == Endpoint + The changes feed API is a REST API endpoint (xref:rest-api.adoc#/database/get\__db___changes[`+/\{tkn-db}/_changes+`]) that returns a sorted list of changes made to documents in the database. It permits applications to implement business logic that reacts to changes in documents. + [#lbl-methods] == Methods + + There are several methods of connecting to the changes feed (also know as the feed type). The first three methods (`polling`, `longpoll` and `continuous`) are based on the CouchDB API. -The last method (`websocket`) is specific to Sync Gateway. +The last method (`websocket`) is specific to {sgw}. {url-couchdb}#polling[polling^] (default):: Returns the list of changes immediately. @@ -49,13 +59,15 @@ A new request must be sent to get the next set of changes. In addition to regular polling, if the request is sent with a special `last_seq` parameter, it will stay open until a new change occurs and is posted. {url-couchdb}#continuous[continuous^]:: The continuous changes API allows you to receive change notifications as they come, in a single HTTP connection. -You make a request to the continuous changes API and both you and Sync Gateway will hold the connection open “forever.” +You make a request to the continuous changes API and both you and {sgw} will hold the connection open “forever.” <>:: The WebSocket mode is conceptually the same as continuous mode but it should avoid issues with proxy servers and gateways that cause continuous mode to fail in many real-world mobile use cases. + [#lbl-websockets] == WebSockets + In this section:: <> | <> | <> diff --git a/modules/ROOT/pages/configuration-schema-isgr.adoc b/modules/ROOT/pages/configuration-schema-isgr.adoc index 4357d96c9..d13326d21 100644 --- a/modules/ROOT/pages/configuration-schema-isgr.adoc +++ b/modules/ROOT/pages/configuration-schema-isgr.adoc @@ -19,8 +19,10 @@ include::partial$block-abstract.adoc[] include::partial$block-caveats.adoc[tags="legacy-config-equivalents"] + == Introduction + In 3.0 we use the Admin REST API to provision persistent configuration changes. This content introduces the <> endpoint for convenience -- see {rest-api-admin--xref--replication} for a full description of the endpoints available. diff --git a/modules/ROOT/pages/deployment.adoc b/modules/ROOT/pages/deployment.adoc index be6a010a0..8e81d7e4f 100644 --- a/modules/ROOT/pages/deployment.adoc +++ b/modules/ROOT/pages/deployment.adoc @@ -14,12 +14,15 @@ include::partial$block-abstract.adoc[] == Where to Host + Whether hosting on-premise or in the cloud, you will want to have your Sync Gateway and Couchbase Server sit close to each other for optimal performance between these two systems. In a production environment, they are expected to be deployed on separate machines. This is because the Sync Gateway is typically deployed to be internet-facing and sits in the "Application tier" whilst Couchbase Server is deployed in the "Database tier". + == Sizing and Scaling + Your physical machine, container or VM, determines how many active concurrent users you can comfortably support for a single Sync Gateway. Alternatively, instead of scaling vertically, you can also scale horizontally by running Sync Gateway nodes as a cluster. diff --git a/modules/ROOT/pages/get-started-verify-install.adoc b/modules/ROOT/pages/get-started-verify-install.adoc index f92c3114c..4d17307f8 100644 --- a/modules/ROOT/pages/get-started-verify-install.adoc +++ b/modules/ROOT/pages/get-started-verify-install.adoc @@ -21,7 +21,7 @@ include::partial$_std-hdr-sgw.adoc[] // BEGIN - Page Heading :topic-group: Start Here! :param-related: {introduction--xref} | {get-started-prepare--xref} | {get-started-install--xref} -:param-abstract: pass:q[This is *Step 4* in the _Start Here!_ topic group. Here we will verify that you can connect your _Sync Gateway_ to a _Couchbase Server_ and synchronize changes whether made in Couchbase Server or through Sync Gateway's REST API.] +:param-abstract: pass:q,a[This is *Step 4* in the _Start Here!_ topic group. Here we will verify that you can connect your _{sgw}_ to a _Couchbase Server_ and synchronize changes whether made in Couchbase Server or through {sgw}'s REST API.] include::partial$block-abstract.adoc[] // END - Page Heading @@ -33,29 +33,35 @@ NOTE: Ensure you have read, and acted-upon, the information and steps in {get-st :param-page: {page-relative-src-path} include::partial$_get-started-topic-group.adoc[] -In this final step of the Getting Started topic we will look to link your Sync Gateway to a Couchbase Server bucket and verify that sync is taking place by executing a CRUD cycle. -You will need to edit the configuration file used in the {get-started-install--xref} step to point to a bucket on your Couchbase Server -- see <>. -On completion of this topic you will have a working Sync Gateway instance that you know syncs with a Couchbase Server. +== Introduction + + +In this final step of the Getting Started topic we will look to link your {sgw-te} to a {cbs-te} bucket and verify that sync is taking place by executing a CRUD cycle. +You will need to edit the configuration file used in the {get-started-install--xref} step to point to a bucket on your {cbs} -- see <>. + +On completion of this topic you will have a working {sgw} instance that you know syncs with a {cbs}. You will have successfully completed installation and can now build on this with confidence. [#lbl-config] == Bootstrap Sync Gateway -To configure Sync Gateway to connect to a Couchbase Server: +To configure {sgw} to connect to a {cbs}: -. Ensure your Sync Gateway service is stopped/unloaded +. Ensure your {sgw} service is stopped/unloaded . Edit the configuration file you used in {get-started-install--xref} and replace the contents with those shown in <>. + -The configuration points to your Couchbase Server cluster, which we will use to verify that you can synchronize changes made through the Sync Gateway API with those made through Couchbase Server. -. Ensure you start Couchbase Server -. Restart/Load your Sync Gateway to pick-up the changed configuration +The configuration points to your {cbs} cluster, which we will use to verify that you can synchronize changes made through the {sgw} API with those made through {cbs}. +. Ensure you start {cbs} +. Restart/Load your {sgw} to pick-up the changed configuration + [#sample-cfg] .Simple Sync Gateway Bootstrap Config ==== -[source,json] + +[source, json] ---- { @@ -77,20 +83,28 @@ The configuration points to your Couchbase Server cluster, which we will use to ---- + About the Configuration Properties:: -<.> Here we point to the Couchbase Server cluster using secure connection. Server ships with self signed certs that work out of the box, as long as `server_tls_skip_verify` is set, as it is below. -<.> Here we provide the credentials for the RBAC user that you created on the Couchbase Server Admin Console -- see {get-started-prepare--config-server--xref} + +<.> Here we point to the {cbs} cluster using secure connection. Server ships with self signed certs that work out of the box, as long as `server_tls_skip_verify` is set, as it is below. + +<.> Here we provide the credentials for the RBAC user that you created on the {cbs} Admin Console -- see {get-started-prepare--config-server--xref} + <.> Here we opt to ignore CA Cert verification of the certificate presented by the server; allowing for example use of self-signed certificate. The connection is unverified but encrypted. + <.> Optionally, you can choose to run without TLS, by setting this value `false`. In that case you should also use the plaintext URI `couchbase://localhost` to connect. + <.> Define your logging requirements: + Here we set general diagnostic console logs on. If you're having issues then refer to {logging--xref} for how to tune diagnostics to provide additional troubleshooting help + ==== .Start Sync Gateway Run the following in a terminal: +[source, bash] ---- bin/sync_gateway - sgwconfig.json // <.> ---- @@ -99,14 +113,16 @@ bin/sync_gateway - sgwconfig.json // <.> == Add a Database Configuration + We can now use the Admin REST API to add a database to our {sgw} cluster. -The `curl` command shown in <> requires basic authentication using the `api_admin` Couchbase Server RBAC user's credentials we created in <>. -It adds a `traveldb` database pointing to the Couchbase Server's `travel-sample` bucket. +The `curl` command shown in <> requires basic authentication using the `api_admin` {cbs} RBAC user's credentials we created in Step 2 of {get-started-prepare--xref--create-rbac-users}. +It adds a `traveldb` database pointing to the {cbs}'s `travel-sample` bucket. [#ex-add-sgw-db] .Add a Sync Gateway Database ==== +[source] ---- curl --location --request PUT 'http://127.0.0.1:4985/traveldb/' \ // <.> --header 'Authorization: Basic c3luY19nYXRld2F5OnBhc3N3b3Jk' \ @@ -117,25 +133,26 @@ curl --location --request PUT 'http://127.0.0.1:4985/traveldb/' \ // <.> } ---- <.> Here we specify the name of the {sgw} database -- `traveldb` -<.> Now we point `traveldb` at the Couchbase Server bucket `travel-sample`, which we created in {get-started-prepare--config-server--xref} +<.> Now we point `traveldb` at the {cbs} bucket `travel-sample`, which we created in {get-started-prepare--config-server--xref} <.> Set to zero for this example database // <.> Here we specify the {sgw} `users` able to access the databaseintroduces a guest user with access to all channels and all documents ==== - - == Add a Sync Gateway User + We can now create a {sgw} user and role to allow secure access during replication on this {sgw} cluster. === Add a role -The `curl` command shown in <> requires basic authentication using the `api_admin` Couchbase Server RBAC user's credentials we created in <>. + +The `curl` command shown in <> requires basic authentication using the `api_admin` {cbs} RBAC user's credentials we created in Step 2 of {get-started-prepare--xref--create-rbac-users}. It adds a role called `stdrole`. -[#ex-add-sgw-db] +[#ex-add-role] .Add a Sync Gateway Role ==== +[source, bash] ---- curl --location --request PUT 'http://127.0.0.1:4985/traveldb/_role/stdrole' \ // <.> --header 'Authorization: Basic c3luY19nYXRld2F5OnBhc3N3b3Jk' \ @@ -146,20 +163,24 @@ curl --location --request PUT 'http://127.0.0.1:4985/traveldb/_role/stdrole' \ / }' ---- + <.> Here we identify the name of the {sgw} database -- `traveldb` + The action, `_role` and + The role's name `stdrole` + <.> Now we identify the channels accessible to users assigned this role; these will be used by the Sync Function to control access. ==== === Add the user -The `curl` command shown in <> requires basic authentication using the `api_admin` Couchbase Server RBAC user's credentials we created in <>. + +The `curl` command shown in <> requires basic authentication using the `api_admin` {cbs} RBAC user's credentials we created in Step 2 of {get-started-prepare--xref--create-rbac-users}. It adds a user called `sgwuser1`. -[#ex-add-sgw-db] -.Add a Sync Gateway Role +[#ex-add-user] +.Add a Sync Gateway User ==== +[source, bash] ---- curl --location --request PUT 'http://127.0.0.1:4985/traveldb/_user/sgwuser1' \ // <.> --header 'Authorization: Basic c3luY19nYXRld2F5OnBhc3N3b3Jk' \ @@ -182,9 +203,11 @@ The user's name `sgwuser1` == Connect to Sync Gateway + + TIP: You can use {xref-sgw-bmk-logging-console} to aid diagnosis of connection issues -. With Sync Gateway and Couchbase Server started, point your browser to the Sync Gateway url, typically on port 4984, but this can be changed -- see: {rest-api-access--xref}. +. With {sgw} and {cbs} started, point your browser to the {sgw} url, typically on port 4984, but this can be changed -- see: {rest-api-access--xref}. + So, for example: + @@ -197,26 +220,30 @@ http://localhost:4984 + [{snippet-header}] ---- -{"couchdb":"Welcome","vendor":{"name":"Couchbase Sync Gateway","version":"{version}"},"version":"Couchbase Sync Gateway/\{version-full}(376;e2e7d42) EE"} +{"couchdb":"Welcome","vendor":{"name":"Couchbase Sync Gateway","version":"{version}"},"version":"Couchbase {sgw}/\{version-full}(376;e2e7d42) EE"} ---- + If there are issues then check the {xref-sgw-bmk-logging-console} for more information. Where necessary you can redirect console output to a file -- see: {xref-sgw-bmk-logging-console-redirect}. -TIP: If Sync Gateway is behind a load balancer then check the websockets configuration -- see {load-balancer--xref}. +TIP: If {sgw} is behind a load balancer then check the websockets configuration -- see {load-balancer--xref}. == Verify the CRUD Cycle -Here we will use CURL and Sync Gateway's REST API to +Here we will use CURL and {sgw}'s REST API to -. <> Use the API to add a document and check the document on Couchbase Server -. <> Read the document back from Couchbase Server using the Sync Gateway API -. <> Update the newly created document and observe the changes in Couchbase Server -. <> Update the document in Couchase Server and check the change in Sync Gateway -. <> Delete our document and check its state on Couchbase Server and Sync Gateway. +. <> Use the API to add a document and check the document on {cbs} -Remember to use the credentials of the Couchbase Server RBAC user for authentication. +. <> Read the document back from {cbs} using the {sgw} API + +. <> Update the newly created document and observe the changes in {cbs} + +. <> Update the document in Couchase Server and check the change in {sgw} + +. <> Delete our document and check its state on {cbs} and {sgw}. + +Remember to use the credentials of the {cbs} RBAC user for authentication. [#ex-sync] @@ -224,7 +251,7 @@ Remember to use the credentials of the Couchbase Server RBAC user for authentica [#lbl-crud-crt] === Create a New Document: -Within a terminal use CURL to issue the following POST request, which adds a new document to the Couchbase Server bucket `get-started-bucket` by way of the Sync Gateway database `get-started-bucket` we configured in <> +Within a terminal use CURL to issue the following POST request, which adds a new document to the {cbs} bucket `get-started-bucket` by way of the {sgw} database `get-started-bucket` we configured in <> .Request [{snippet-header}] @@ -254,7 +281,7 @@ curl --location --request PUT 'http://localhost:4985/traveldb/hotel_88801' \ [#lbl-check-cbs, reftext=Check Document on Couchbase Server] .Check -View the document in Couchbase Server Admin Console to verify it syncs from Sync Gateway database. +View the document in {cbs} Admin Console to verify it syncs from {sgw} database. . Within the Admin Console, select *Buckets* and hit the btn:[Documents] button to open the _Document Editor_ tab. @@ -266,7 +293,7 @@ View the document in Couchbase Server Admin Console to verify it syncs from Sync .. kbd:[Enter] + You will see the response shown in <>. -The document should include any changes made through Sync Gateway, including the initial create. +The document should include any changes made through {sgw}, including the initial create. + [#img-cbs-view] .Couchbase Server Document Editor @@ -342,9 +369,9 @@ Does the document contain the changed _data_ value? [#lbl-crud-upd-svr] === Sync a Couchbase Server Change -This will show that changes made using Couchbase Server are replicated to Sync Gateway. +This will show that changes made using {cbs} are replicated to {sgw}. -. Within the Couchbase Server Document Editor +. Within the {cbs} Document Editor .. Retrieve `88801` if it is not currently displayed + Use `meta().id="hotel_88801"` as query @@ -353,7 +380,7 @@ Use `meta().id="hotel_88801"` as query .. btn:[Save] the change. + . In your terminal, use the API to get the document again -- see <> + -You should see the change you made in Couchbase Server reflected in the response. For example: +You should see the change you made in {cbs} reflected in the response. For example: + [{snippet-header}] ---- @@ -362,7 +389,7 @@ You should see the change you made in Couchbase Server reflected in the response ---- <.> Note that the revision sequence is now 3, up from the 2 returned in our <> -<.> Note that the _email_ and _name_ fielda now contains both the change made in Sync Gateway and the amendment made in Couchbase Server ("reception") +<.> Note that the _email_ and _name_ fielda now contains both the change made in {sgw} and the amendment made in {cbs} ("reception") [#lbl-crud-del] @@ -401,29 +428,31 @@ Assuming the delete worked you should see the following response: == Ways to Verify Sync -To verify that document changes have been replicated, you can: -* Monitor the Sync Gateway revision number returned by the database endpoint (xref:{rest-api--page}#/database/get\__db__[GET /\{tkn-db}/]). -The revision number increments for every change that happens on the Sync Gateway database. -* Query a document by ID on the Sync Gateway REST API as shown in <>. Use (xref:{rest-api--page}#/document/get\__db___doc_[GET /\{tkn-db}/\{id}]) -- see: {rest-api-access--xref} for more. -* Query a document from the Query Workbench on the Couchbase Server Console. +To verify that document changes have been replicated, you can: + +* Monitor the {sgw} revision number returned by the database endpoint (xref:{rest-api--page}#/database/get\__db__[GET /\{tkn-db}/]). +The revision number increments for every change that happens on the {sgw} database. +* Query a document by ID on the {sgw} REST API as shown in <>. Use (xref:{rest-api--page}#/document/get\__db___doc_[GET /\{tkn-db}/\{id}]) -- see: {rest-api-access--xref} for more. +* Query a document from the Query Workbench on the {cbs} Console. -== Next Steps -Now you know Sync Gateway is deployed and operational. +.Next Steps +**** +Now you know {sgw} is deployed and operational. So, you can explore more complex scenarios with confidence. -Maybe you want to learn more about Sync Gateway's {configuration-schema-bootstrap--xref} or how to {sync-with-couchbase-server--xref}. Or perhaps you want to explore how to: +Maybe you want to learn more about {sgw}'s {configuration-schema-bootstrap--xref} or how to {sync-with-couchbase-server--xref}. Or perhaps you want to explore how to: * Implement access controls for users and data -- see: {users--xref}, {roles--xref} and the {sync-function--xref} that ties it all together. * Implement secure connectivity using TLS/SSL, which is described in {authentication-users--xref} and {authentication-certs--xref} * Build more complex syncs, such as those that sync with: -** Other Sync Gateway nodes, for which see {sync-inter-syncgateway-overview--xref} +** Other {sgw} nodes, for which see {sync-inter-syncgateway-overview--xref} ** Apps on mobile devices using Couchbase Lite -- see {sync-using-app--xref} - +**** // BEGIN -- Page Footer include::partial$block-related-content-deploy.adoc[] diff --git a/modules/ROOT/pages/glossary.adoc b/modules/ROOT/pages/glossary.adoc index 0dde01535..7f539a0e6 100644 --- a/modules/ROOT/pages/glossary.adoc +++ b/modules/ROOT/pages/glossary.adoc @@ -1,5 +1,5 @@ = Glossary -:page-aliases: sgw-glossary, refer/refer-sgw-glossary.adoc +:page-aliases: sgw-glossary, refer/refer-sgw-glossary.adoc, refer-sgw-glossary.adoc :page-partial: ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] diff --git a/modules/ROOT/pages/index copy.xadoc b/modules/ROOT/pages/index copy.xadoc index 4d319fd53..d109f6028 100644 --- a/modules/ROOT/pages/index copy.xadoc +++ b/modules/ROOT/pages/index copy.xadoc @@ -3,7 +3,7 @@ :page-status: :page-edition: :page-role: tiles, -toc -:description: Start your Couchbase for Mobile and Edge adventure, get up and running with Sync Gateway +:description: Start your Couchbase Mobile adventure, get up and running with Sync Gateway :!sectids: [discrete] diff --git a/modules/ROOT/pages/index.adoc b/modules/ROOT/pages/index.adoc index 5e269934e..0290d43f3 100644 --- a/modules/ROOT/pages/index.adoc +++ b/modules/ROOT/pages/index.adoc @@ -4,7 +4,7 @@ :page-status: :page-edition: :page-role: tiles, -toc -:description: Start your Couchbase for Mobile and Edge adventure, get up and running with Sync Gateway +:description: Start your Couchbase Mobile adventure, get up and running with Sync Gateway :!sectids: = Sync Gateway Quickstart diff --git a/modules/ROOT/pages/introduction.adoc b/modules/ROOT/pages/introduction.adoc index 094a79212..70b2e4b60 100644 --- a/modules/ROOT/pages/introduction.adoc +++ b/modules/ROOT/pages/introduction.adoc @@ -23,7 +23,7 @@ include::partial$block-abstract.adoc[] include::partial$_get-started-topic-group.adoc[] // tag::intro[] -Sync Gateway is the synchronization server in a Couchbase for Mobile and Edge deployment. +Sync Gateway is the synchronization server in a Couchbase Mobile deployment. It is designed to provide data synchronization for large-scale interactive web, mobile, and IoT applications // end::intro[] -- see: <>. diff --git a/modules/ROOT/pages/load-balancer.adoc b/modules/ROOT/pages/load-balancer.adoc index 1e523f0b7..29397546d 100644 --- a/modules/ROOT/pages/load-balancer.adoc +++ b/modules/ROOT/pages/load-balancer.adoc @@ -1,7 +1,7 @@ = Load Balancer ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] -:page-role: +:page-toclevels: 1@ :description: Load balancing replications :keywords: sync, load-balance, proxy, nginx @@ -15,35 +15,48 @@ include::partial$block-abstract.adoc[] :fn-2-8: footnote:fn28[Commencing with release 2.8.4 of Couchbase Lite] :fnref-2-8: footnote:fn28[] + == Introduction + This guide covers various aspects to consider when using a Load Balancer in a Couchbase Mobile deployment. In particular, when using NGINX or AWS Elastic Load Balancer (ELB). + == When to Use a Reverse Proxy + * A reverse proxy can hide the existence of a Sync Gateway server or servers. This can help to secure the Sync gateway instances when your service is exposed to the internet. + * A reverse proxy can provide application firewall features that protect against common web-based attacks. + * A reverse proxy can offload ssl termination from the Sync Gateway instances, this can be a significant overhead when supporting large numbers of mobile devices. + * A reverse proxy can distribute the load from incoming requests to several Sync Gateway instances. + * A reverse proxy may rewrite the URL of each incoming request in order to match the relevant internal location of the requested resource. For Sync Gateway the reverse proxy may map the Internet facing port 80 to the standard Sync Gateway public REST API port 4984. + == WebSocket Connection + To keep a WebSocket connection open, the replicator sends a WebSocket PING message (also known as heartbeat) every 300 seconds (5 minutes). This heartbeat is required to keep the connection alive between Couchbase Lite and Sync Gateway. To support the heartbeat's effective operation, the keep-alive timeout interval of any intervening load balancer must be longer than the heartbeat interval. This can be achieved either by changing the websocket proxy settings for the load balancer to align with the heartbeat interval -- see <>. -Or alternatively, by configuring the replicator heartbeat interval using Couchbase Lite {fn-2-8} +Or alternatively, by configuring the replicator heartbeat interval using Couchbase Lite {fn-2-8}. :param-page: replication :param-bookmark: lbl-cfg-keep-alive include::partial$blocklinks-cbl.adoc[] + == NGINX + + This section demonstrates how to change the websocket heartbeat interval on NGINX. . Connect to the server running Sync Gateway and install the nginx server: @@ -84,7 +97,7 @@ If you installed nginx using the instructions above, then you will create your s [#ex-nginx-cfg] .NGINX configuration sample ==== -[source] +[source, text] ---- upstream sync_gateway { // <.> server 127.0.0.1:4984; @@ -115,16 +128,25 @@ In this example it is the sync_gateway running on the same server as nginx and l Change these values if your sync_gateway is configured differently <.> The `listen` directive instructs nginx to listen on port 80 for incoming traffic. + <.> The `server_name` directive instructs nginx to check that the HTTP `Host:` header value matches `myservice.example.org` (change this value to your domain). + <.> The `client_max_body_size` directive instructs nginx to accept request bodies up to 21MBytes, this is necessary to support attachments being sync'd to Sync Gateway. <.> The `location` block specifies directives for all URL paths below the root path `/`. + <.> The `proxy_pass` directive instructs nginx to forward all incoming traffic to servers defined in the sync_gateway `upstream` block. + <.> The two `proxy_pass_header` directives instruct nginx to pass `Accept:` and `Server:` headers on inbound and outbound traffic, these headers allow CouchbaseLite and sync_gateway to optimize data transfer, e.g. by using gzip compression and multipart/mixed if it is supported. + <.> The `keepalive_requests` directive instructs nginx to allow up to one thousand requests on the same connection, this is useful when getting a `_changes` feed using longpoll. + <.> The `keepalive_timeout` directive instructs nginx to keep connection open for 360 seconds from the last request, this value is longer than the default (300 seconds) value for the heartbeat on the `_changes` feed using longpoll. + <.> The `proxy_read_timeout` directive instructs nginx to keep connection open for 360 seconds from the last server response, this value is longer than the default (300 seconds) value for the heartbeat on the `_changes` feed using longpoll. + <.> The two `proxy_set_header` directives enable support for WebSocket connections, which are used by Couchbase Lite for a pull replication's `_changes` feed. + ==== . We now need to enable the `sync_gateway` site. + @@ -225,7 +247,7 @@ sudo openssl req -x509 -nodes -days 1095 -newkey rsa:2048 -keyout /etc/nginx/ssl Whichever way you generated the certificate, you should now have two files, a certificate and a private key. We will assume they are at */etc/nginx/ssl/nginx.crt* and */etc/nginx/ssl/nginx.key*. -. Add a new server section (see: <>) to the nginx configuration file to support SSL termination:= +. Add a new server section (see: <>) to the nginx configuration file to support SSL termination: + [#ex-cfg-ssl-term] .Configure for SSL termination diff --git a/modules/ROOT/pages/os-level-tuning.adoc b/modules/ROOT/pages/os-level-tuning.adoc index 0c49d0395..dc052ddec 100644 --- a/modules/ROOT/pages/os-level-tuning.adoc +++ b/modules/ROOT/pages/os-level-tuning.adoc @@ -1,7 +1,7 @@ = OS Level Tuning ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] -:page-role: +:page-toclevels: 1@ :description: pass:q[OS level parameters you can use to tune _Couchbase Sync Gateway] @@ -32,8 +32,8 @@ The instructions here are geared towards CentOS deployments. == Operating System File Descriptor Limits -Increase the max number of file descriptors available to *all processes*. +Increase the max number of file descriptors available to *all processes*. Set the number of system wide file descriptors:: @@ -56,6 +56,7 @@ $ sysctl -p // <.> == Sync Gateway File Descriptor Limits + Configure the maximum number of open files descriptors in Sync Gateway in line with the above changes. See the {bootstrap-schema--xref--max-file-descriptors} and <>. @@ -77,6 +78,7 @@ See the {bootstrap-schema--xref--max-file-descriptors} and <>. == Service File Descriptor Limits + For systemd config:: The `/usr/lib/systemd/system/sync_gateway.service` has a hardcoded limit specified by `LimitNOFILE=65535`. @@ -181,13 +183,19 @@ $ sysctl -p See {url-keepalive}/usingkeepalive.html[Using TCP keepalive under Linux] for more details on setting these parameters. -=== References +.Further Reading +**** * {url-keepalive}/overview.html[TCP Keepalive HOWTO] + * https://stackoverflow.com/questions/5907527/application-control-of-tcp-retransmission-on-linux[Application control of TCP retransmission on Linux] + * https://groups.google.com/forum/#!msg/golang-nuts/rRu6ibLNdeI/0bjSmO5fN_8J[Proactively closing longpoll connections for endpoints that disappear from the network] + * https://linux.die.net/man/7/tcp[TCP man page] + * https://github.com/couchbase/sync_gateway/issues/742[Sync Gateway Issue 742] +**** // BEGIN -- Page Footer diff --git a/modules/ROOT/pages/release-notes.adoc b/modules/ROOT/pages/release-notes.adoc index e08c31582..3f6f03263 100644 --- a/modules/ROOT/pages/release-notes.adoc +++ b/modules/ROOT/pages/release-notes.adoc @@ -230,22 +230,22 @@ Old documents are automatically migrated to the `xattr` metadata format. | logging.default config section | xref:legacy-logging-pre2-1.adoc[Legacy - Pre-2.1 Logging] -| old cache config values :databases.this_db.cache.channel_cache_max_length +| databases.this_db.cache.channel_cache_max_length | {legacy-config--xref}databases-this_db-cache-channel_cache_max_length[channel_cache_max_length] -| old cache config values :databases.this_db.cache.channel_cache_min_length +| databases.this_db.cache.channel_cache_min_length | {legacy-config--xref}databases-this_db-cache-channel_cache_min_length[channel_cache_min_length] -| old cache config values :databases.this_db.cache.enable_star_channel +| databases.this_db.cache.enable_star_channel | {legacy-config--xref}databases-this_db-cache-enable_star_channel[enable_star_channel] -| old cache config values :databases.this_db.cache.max_num_pending +| databases.this_db.cache.max_num_pending | {legacy-config--xref}databases-this_db-cache-max_num_pending[max_num_pending] -| old cache config values :databases.this_db.cache.max_wait_pending +| databases.this_db.cache.max_wait_pending | {legacy-config--xref}databases-this_db-cache-max_wait_pending[db-cache-max_wait_pending] -| old cache config values :databases.this_db.cache.max_wait_skipped +| databases.this_db.cache.max_wait_skipped | {legacy-config--xref}databases-this_db-cache-max_wait_skipped[max_num_skipped] | old cache config values: databases.this_db.rev_cache_size @@ -254,7 +254,7 @@ Old documents are automatically migrated to the `xattr` metadata format. | SG-Replicate | {legacy-sg-replicate--xref} -| walrus +| walrus mode | {legacy-config--xref}databases-this_db-server[server] | Dropped |=== diff --git a/modules/ROOT/pages/rest-api-access-rbac-roles.adoc b/modules/ROOT/pages/rest-api-access-rbac-roles.adoc index 329ccf880..0ef9ed6ec 100644 --- a/modules/ROOT/pages/rest-api-access-rbac-roles.adoc +++ b/modules/ROOT/pages/rest-api-access-rbac-roles.adoc @@ -319,238 +319,234 @@ Full Admin Role, | DB | /_compact | POST -| Sync Gateway Role -Bucket Admin -Bucket Application Access +| Sync Gateway Role. Bucket Admin, +Bucket Application Access, Full Admin | Sync Gateway Architect | DB | /_config | GET -| Sync Gateway Role -Bucket Admin -Bucket Application Access +| Sync Gateway Role, +Bucket Admin, +Bucket Application Access, Full Admin | Sync Gateway Architect | DB | /_config | PUT -| Sync Gateway Role -Bucket Admin -Bucket Application Access +| Sync Gateway Role, +Bucket Admin, +Bucket Application Access, Full Admin -| Sync Gateway Architect +| Sync Gateway Architect, Sync Gateway Application | DB | /_config/import_filter | DELETE -| Sync Gateway Role -Bucket Admin -Bucket Application Access +| Sync Gateway Role, +Bucket Admin, +Bucket Application Access, Full Admin | Sync Gateway Architect | DB | /_config/import_filter | GET -| Sync Gateway Role -Bucket Admin -Bucket Application Access +| Sync Gateway Role, +Bucket Admin, +Bucket Application Access, Full Admin | Sync Gateway Architect | DB | /_config/import_filter | PUT -| Sync Gateway Role -Bucket Admin -Bucket Application Access +| Sync Gateway Role, +Bucket Admin, +Bucket Application Access, Full Admin | Sync Gateway Architect | DB | /_config/sync | DELETE -| Sync Gateway Role -Bucket Admin -Bucket Application Access +| Sync Gateway Role, +Bucket Admin, +Bucket Application Access, Full Admin | Sync Gateway Architect | DB | /_config/sync | GET -| Sync Gateway Role -Bucket Admin -Bucket Application Access +| Sync Gateway Role, +Bucket Admin, +Bucket Application Access, Full Admin | Sync Gateway Architect | DB | /_config/sync | PUT -| Sync Gateway Role -Bucket Admin -Bucket Application Access +| Sync Gateway Role, +Bucket Admin, +Bucket Application Access, Full Admin | Sync Gateway Architect | DB | /_dump/{view} | GET -| Sync Gateway Role -Bucket Admin -Bucket Application Access +| Sync Gateway Role, +Bucket Admin, +Bucket Application Access, Full Admin -| Sync Gateway Application +| Sync Gateway Application, Sync Gateway Application Read Only | DB | /_dumpchannel/{channel} | GET -| Sync Gateway Role -Bucket Admin -Bucket Application Access +| Sync Gateway Role, +Bucket Admin, +Bucket Application Access, Full Admin -| Sync Gateway Application +| Sync Gateway Application, Sync Gateway Application Read Only | DB | /_flush | POST -| Sync Gateway Role -Bucket Admin -Bucket Application Access -Full Admin +| image:Sync%20Gateway%20Role%2C%20Bucket%20Admin%2C%20%0ABucket%20Application%20Access%2C%20%0AFull%20Admin.png[] | Sync Gateway Dev Ops | DB | /_offline | POST -| Sync Gateway Role -Bucket Admin -Bucket Application Access +| Sync Gateway Role, +Bucket Admin, +Bucket Application Access, Full Admin | Sync Gateway Architect | DB | /_online | POST -| Sync Gateway Role -Bucket Admin -Bucket Application Access +| Sync Gateway Role, +Bucket Admin, +Bucket Application Access, Full Admin | Sync Gateway Architect | DB | /_purge | POST -| Sync Gateway Role -Bucket Admin -Bucket Application Access +| Sync Gateway Role, +Bucket Admin, +Bucket Application Access, Full Admin | Sync Gateway Application | DB | /_raw/{docid} | GET / HEAD -| Sync Gateway Role -Bucket Admin -Bucket Application Access +| Sync Gateway Role, +Bucket Admin, +Bucket Application Access, Full Admin -| Sync Gateway Application +| Sync Gateway Application, Sync Gateway Application Read Only | DB | /_repair | POST -| Sync Gateway Role -Bucket Admin -Bucket Application Access +| Sync Gateway Role, +Bucket Admin, +Bucket Application Access, Full Admin | Sync Gateway Architect | DB | /_replication/ | GET / HEAD -| Sync Gateway Role -Bucket Admin -Bucket Application Access +| Sync Gateway Role, +Bucket Admin, +Bucket Application Access, Full Admin | Sync Gateway Replicator | DB | /_replication/ | POST -| Sync Gateway Role -Bucket Admin -Bucket Application Access +| Sync Gateway Role, +Bucket Admin, +Bucket Application Access, Full Admin | Sync Gateway Replicator | DB | /_replication/{replicationID} | DELETE -| Sync Gateway Role -Bucket Admin -Bucket Application Access +| Sync Gateway Role, +Bucket Admin, +Bucket Application Access, Full Admin | Sync Gateway Replicator | DB | /_replication/{replicationID} | GET / HEAD -| Sync Gateway Role -Bucket Admin -Bucket Application Access +| Sync Gateway Role, +Bucket Admin, +Bucket Application Access, Full Admin | Sync Gateway Replicator | DB | /_replication/{replicationID} | PUT -| Sync Gateway Role -Bucket Admin -Bucket Application Access +| Sync Gateway Role, +Bucket Admin, +Bucket Application Access, Full Admin | Sync Gateway Replicator | DB | /_replicationStatus | GET / HEAD -| Sync Gateway Role -Bucket Admin -Bucket Application Access +| Sync Gateway Role, +Bucket Admin, +Bucket Application Access, Full Admin | Sync Gateway Replicator | DB | /_replicationStatus/{replicationID} | GET / HEAD -| Sync Gateway Role -Bucket Admin -Bucket Application Access +| Sync Gateway Role, +Bucket Admin, +Bucket Application Access, Full Admin | Sync Gateway Replicator | DB | /_replicationStatus/{replicationID} | PUT -| Sync Gateway Role -Bucket Admin -Bucket Application Access +| Sync Gateway Role, +Bucket Admin, +Bucket Application Access, Full Admin | Sync Gateway Replicator | DB | /_resync | GET -| Sync Gateway Role -Bucket Admin -Bucket Application Access +| Sync Gateway Role, +Bucket Admin, +Bucket Application Access, Full Admin | Sync Gateway Architect @@ -563,176 +559,176 @@ Full Admin | DB | /_revtree/{docid} | GET -| Sync Gateway Role -Bucket Admin -Bucket Application Access +| Sync Gateway Role, +Bucket Admin, +Bucket Application Access, Full Admin -| Sync Gateway Application +| Sync Gateway Application, Sync Gateway Application Read Only | DB | /_role/ | GET / HEAD -| Sync Gateway Role -Bucket Admin -Bucket Application Access +| Sync Gateway Role, +Bucket Admin, +Bucket Application Access, Full Admin -| Sync Gateway Architect -Sync Gateway Application +| Sync Gateway Architect, +Sync Gateway Application, Sync Gateway Application Read Only | DB | /_role/ | POST -| Sync Gateway Role -Bucket Admin -Bucket Application Access +| Sync Gateway Role, +Bucket Admin, +Bucket Application Access, Full Admin -| Sync Gateway Architect +| Sync Gateway Architect, Sync Gateway Application | DB | /_role/{name} | DELETE -| Sync Gateway Role -Bucket Admin -Bucket Application Access +| Sync Gateway Role, +Bucket Admin, +Bucket Application Access, Full Admin -| Sync Gateway Architect +| Sync Gateway Architect, Sync Gateway Application | DB | /_role/{name} | GET / HEAD -| Sync Gateway Role -Bucket Admin -Bucket Application Access +| Sync Gateway Role, +Bucket Admin, +Bucket Application Access, Full Admin -| Sync Gateway Architect -Sync Gateway Application +| Sync Gateway Architect, +Sync Gateway Application, Sync Gateway Application Read Only | DB | /_role/{name} | PUT -| Sync Gateway Role -Bucket Admin -Bucket Application Access +| Sync Gateway Role, +Bucket Admin, +Bucket Application Access, Full Admin -| Sync Gateway Architect +| Sync Gateway Architect, Sync Gateway Application | DB | /_session | POST -| Sync Gateway Role -Bucket Admin -Bucket Application Access +| Sync Gateway Role, +Bucket Admin, +Bucket Application Access, Full Admin -| Sync Gateway Architect +| Sync Gateway Architect, Sync Gateway Application | DB | /_session/{sessionid} | DELETE -| Sync Gateway Role -Bucket Admin -Bucket Application Access +| Sync Gateway Role, +Bucket Admin, +Bucket Application Access, Full Admin -| Sync Gateway Architect +| Sync Gateway Architect, Sync Gateway Application | DB | /_session/{sessionid} | GET -| Sync Gateway Role -Bucket Admin -Bucket Application Access +| Sync Gateway Role, +Bucket Admin, +Bucket Application Access, Full Admin -| Sync Gateway Architect -Sync Gateway Application +| Sync Gateway Architect, +Sync Gateway Application, Sync Gateway Application Read Only | DB | /_user/ | GET / HEAD -| Sync Gateway Role -Bucket Admin -Bucket Application Access +| Sync Gateway Role, +Bucket Admin, +Bucket Application Access, Full Admin -| Sync Gateway Architect -Sync Gateway Application +| Sync Gateway Architect, +Sync Gateway Application, Sync Gateway Application Read Only | DB | /_user/ | POST -| Sync Gateway Role -Bucket Admin -Bucket Application Access +| Sync Gateway Role, +Bucket Admin, +Bucket Application Access, Full Admin -| Sync Gateway Architect +| Sync Gateway Architect, Sync Gateway Application | DB | /_user/{name} | DELETE -| Sync Gateway Role -Bucket Admin -Bucket Application Access +| Sync Gateway Role, +Bucket Admin, +Bucket Application Access, Full Admin -| Sync Gateway Architect +| Sync Gateway Architect, Sync Gateway Application | DB | /_user/{name} | GET / HEAD -| Sync Gateway Role -Bucket Admin -Bucket Application Access +| Sync Gateway Role, +Bucket Admin, +Bucket Application Access, Full Admin -| Sync Gateway Architect -Sync Gateway Application +| Sync Gateway Architect, +Sync Gateway Application, Sync Gateway Application Read Only | DB | /_user/{name} | PUT -| Sync Gateway Role -Bucket Admin -Bucket Application Access +| Sync Gateway Role, +Bucket Admin, +Bucket Application Access, Full Admin -| Sync Gateway Architect +| Sync Gateway Architect, Sync Gateway Application | DB | /_user/{name}/_session | DELETE -| Sync Gateway Role -Bucket Admin -Bucket Application Access +| Sync Gateway Role, +Bucket Admin, +Bucket Application Access, Full Admin -| Sync Gateway Architect +| Sync Gateway Architect, Sync Gateway Application | DB | /_user/{name}/_session/{sessionid} | DELETE -| Sync Gateway Role -Bucket Admin -Bucket Application Access +| Sync Gateway Role, +Bucket Admin, +Bucket Application Access, Full Admin -| Sync Gateway Architect +| Sync Gateway Architect, Sync Gateway Application | DB | /_view/{view} | GET -| Sync Gateway Role -Bucket Admin -Bucket Application Access +| Sync Gateway Role, +Bucket Admin, +Bucket Application Access, Full Admin -| Sync Gateway Application +| Sync Gateway Application, Sync Gateway Application Read Only |=== diff --git a/modules/ROOT/pages/server-compatibility-xdcr.adoc b/modules/ROOT/pages/server-compatibility-xdcr.adoc index 46d9cfe03..69dc411e1 100644 --- a/modules/ROOT/pages/server-compatibility-xdcr.adoc +++ b/modules/ROOT/pages/server-compatibility-xdcr.adoc @@ -32,14 +32,15 @@ Couchbase Server provides the backing data store for Sync Gateway. TIP: See: {compatibility--xref} for version compatibility information. -Both Couchbase mobile and {server-xdcr--xref} (XDCR) provide for efficient and secure replication of data, albeit using different replication technologies. +Both {cbm-te} and {server-xdcr--xref} (XDCR) provide for efficient and secure replication of data, albeit using different replication technologies. -Here we provide details on how {server-xdcr--xref} (XDCR) feature relates to the Couchbase mobile ecosystem. +Here we provide details on how XDCR feature relates to the {cbm} ecosystem. [#lbl-isgr] == Inter Sync Gateway Replication + If you need to sync mobile clusters, you should use Inter-Sync Gateway replication -- see: {sync-inter-syncgateway-overview--xref}. It was designed to keep mobile clusters in different data centers in sync. The ideal use-case being the need to replicate edge clusters containing active Sync{nbsp}Gateway nodes between geographically separate cloud-based Sync Gateway deployments. @@ -62,10 +63,11 @@ image::{image-icr-active-mobile-sync}[,std-image-size] [#lbl-xdcr] == Cross Data Center Replication (XDCR) -Like inter-Sync Gateway Replication, Couchbase Server's Cross Data Center Replication (xref:server:manage:manage-xdcr/xdcr-management-overview.adoc[XDCR]) can be used to replicate between Couchbase Mobile clusters. + +Like inter-Sync Gateway Replication, Couchbase Server's Cross Data Center Replication (xref:server:manage:manage-xdcr/xdcr-management-overview.adoc[XDCR]) can be used to replicate between {cbm} clusters. XDCR replicates all of Sync Gateway’s metadata (_sync xattr) along with associated documents. -Your default preference for the replication of Couchbase Mobile changes should always be to use inter-Sync{nbsp}Gateway replication. +Your default preference for the replication of {cbm} changes should always be to use inter-Sync{nbsp}Gateway replication. XDCR can be useful though in use-cases where the entire dataset from a source bucket is replicated to a target bucket. This could include categories such as active standby, disaster recovery, data migration and _lift-and-shift_ cases in hybrid cloud. diff --git a/modules/ROOT/pages/stats-prometheus.adoc b/modules/ROOT/pages/stats-prometheus.adoc index c35b1c954..289b52d19 100644 --- a/modules/ROOT/pages/stats-prometheus.adoc +++ b/modules/ROOT/pages/stats-prometheus.adoc @@ -11,17 +11,21 @@ include::partial$_std-hdr-sgw.adoc[] :param-abstract: This content explains how to integrate Sync Gateway and Prometheus to provide effective monitoring and alerts for Sync Gateway events include::partial$block-abstract.adoc[] + == Introduction Sync Gateway's Metrics REST API exposes stats in a {glos-term-prometheus} compatible and JSON formats. + [#lbl-prom-act] == Configuration + include::partial$prometheus-activation.adoc[] == Integration + You will need to integrate Sync Gateway's metrics feed with your Prometheus deployment. Couchbase provide both a configuration file and a sample rules file to make this integration with Prometheus easier. diff --git a/modules/ROOT/pages/supported-environments.adoc b/modules/ROOT/pages/supported-environments.adoc index 6f215f82e..795bc2e9b 100644 --- a/modules/ROOT/pages/supported-environments.adoc +++ b/modules/ROOT/pages/supported-environments.adoc @@ -21,26 +21,27 @@ ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] :page-role: -:description: Couchbase Sync Gateway's Supported Operating System and Cloud environments -:keywords: edge nosql api synchronization replication +:description: Sync Gateway's Supported Operating System and Cloud environments +:keywords: edge nosql api synchronization replication couchbsae 'sync gateway' // End of Page Definition Statements include::ROOT:partial$_std-hdr-sgw.adoc[] -:param-abstract: Couchbase Sync Gateway is supported on several popular operating systems and virtual environments. +:param-abstract: Sync Gateway is supported on several popular operating systems and virtual environments. :param-related: {xref-sgw-pg-whatsnew} | {compatibility--xref} | {xref-sgw-pg-release-notes} include::partial$block-abstract.adoc[] + == Supported Versions -Make sure that your chosen operating system or cloud environment is listed in one of the following tables before you install Sync Gateway. + +Make sure that your chosen operating system or cloud environment is listed in one of the following tables before you install {sgw-te}. See the <> section for information about platform support changes, including deprecated platforms. -IMPORTANT: Sync Gateway clusters on mixed platforms are not supported. -Nodes in a Sync Gateway cluster should all be running on the same OS, and every effort should be made to apply the same OS patches across the entire cluster. +IMPORTANT: {sgw} clusters on mixed platforms are not supported. +Nodes in a {sgw} cluster should all be running on the same OS, and every effort should be made to apply the same OS patches across the entire cluster. include::partial$sgw-supported-os.adoc[tag=supported] - .Developer Preview Versions [NOTE] -- @@ -56,14 +57,17 @@ https://packages.couchbase.com/releases/couchbase-sync-gateway/{version-full}/co == Deprecated Versions + Deprecated versions will be removed in a future release and we recommend that you plan to migrate away from the deprecated OS versions. include::partial$sgw-supported-os.adoc[tags=deprecated] + == End of Life -Support for Couchbase Sync Gateway on these operating systems is removed at the current major release +Support for {sgw} on these operating systems is removed at the current major release + include::partial$sgw-supported-os.adoc[tags=removed] diff --git a/modules/ROOT/pages/sync-inter-syncgateway-overview.adoc b/modules/ROOT/pages/sync-inter-syncgateway-overview.adoc index 861222e3d..980a59c0e 100644 --- a/modules/ROOT/pages/sync-inter-syncgateway-overview.adoc +++ b/modules/ROOT/pages/sync-inter-syncgateway-overview.adoc @@ -23,6 +23,8 @@ include::partial$block-caveats.adoc[tags=sgr2-only] == Introduction + + // tag::intro-full[] // tag::intro[] Couchbase Sync Gateway's _{glos-term-inter-sync-gateway-replication}_ feature supports _{glos-term-cloud-to-edge} synchronization_ use cases, where data changes must be synchronized between a centralized cloud cluster and a large number of edge clusters whilst still enforcing fine grained access control. @@ -43,9 +45,8 @@ image::icr-replication-overview.svg[] == Use Cases -// tag::use-cases[] - +// tag::use-cases[] === Cloud-to-edge synchronization In this multi-cloud deployment mode large numbers of multiple edge clusters sync with one or more clusters in cloud data centers. Each edge can operate autonomously without network connectivity to the cloud data centers {fn-arch}. @@ -74,7 +75,9 @@ image::icr-active-mobile-sync200713.svg[,600] == Replication Characteristics -_In this section_: <> | <> | <> | <> | <> | <> + + +ifndef::is_deep_toc[_In this section_: <> | <> | <> | <> | <> | <>] === Context @@ -89,7 +92,7 @@ All replications take place at the document level (but see also, <>) Sync Gateway nodes can opt-out of participating in the replication process using the database-level parameter {configuration-schema-database--xref--sgr-enabled}. -_Related configuration elements_: {configuration-schema-database--xref} | {configuration-schema-database--xref--db-replications} | {configuration-schema-database--xref--db-rep-remote} | {configuration-schema-database--xref--sgr-enabled} +_Related configuration elements_: {configuration-schema-database--xref} | {configuration-schema-database--xref--db-replications} | {configuration-schema-database--xref--db-rep-remote} | {configuration-schema-database--xref--sgr-enabled} + For legacy versions see: {configuration-properties-legacy--xref} @@ -213,19 +216,6 @@ include::partial$incpg-icr-availability.adoc[leveloffset=+1] include::partial$incpg-icr-conflict.adoc[tags=overview-full, leveloffset=+1] -For more on conflict resolution -- see: {sync-inter-syncgateway-conflict-resolution--custom-conflict-resolution} - -// == Replication Initialization - -// include::partial$incpg-icr-initialization.adoc[leveloffset=+1] - -// == Replication Management - -// include::partial$incpg-icr-admin.adoc[leveloffset=+1] - -// == Replication Monitoring - -// include::partial$incpg-icr-monitoring.adoc[leveloffset=+1, tags=!overview] include::partial$block-related-content-icr.adoc[] diff --git a/modules/ROOT/pages/sync-with-couchbase-server.adoc b/modules/ROOT/pages/sync-with-couchbase-server.adoc index 4ef6a7231..6902e7a45 100644 --- a/modules/ROOT/pages/sync-with-couchbase-server.adoc +++ b/modules/ROOT/pages/sync-with-couchbase-server.adoc @@ -25,13 +25,15 @@ include::partial$block-standard-footnotes.adoc[tags=sgw1x5;cbs5x0] include::partial$block-caveats.adoc[tags="cbs6.0ke-xattrs"] + == Introduction -{sgw-t} will automatically sync database changes if {configuration-schema-database--xref--import-docs} and {configuration-schema-database--xref--enable-shared-bucket-access} are set 'true'. + +{sgw-te} will automatically sync database changes if {configuration-schema-database--xref--import-docs} and {configuration-schema-database--xref--enable-shared-bucket-access} are set 'true'. * Enable_Shared_Bucket_Access + -This setting ensures that both Sync Gateway and Couchbase Server can read and write to the same bucket simultaneously and that Sync Gateway can access Couchbase Server document XATTRS + +This setting ensures that both {sgw} and {cbs-te} can read and write to the same bucket simultaneously and that {sgw} can access {cbs} document XATTRS + See: <> and {configuration-schema-database--xref--enable-shared-bucket-access}. * Import Docs @@ -51,7 +53,7 @@ image::shared-bucket-access.png[] Mobile applications require additional metadata in order to manage security and replication. -Sync Gateway stores this information using Couchbase Server XATTRs (see Couchbase Server documentation on {server-data-xattr-fundamentals--xref}). +{sgw} stores this information using {cbs} XATTRs (see {cbs} documentation on {server-data-xattr-fundamentals--xref}). === Extended Attributes (XATTRs) @@ -66,28 +68,28 @@ Extended attributes: * Are stored and replicated along with the associated document in both intra-cluster and XDCR replication. -* Can be accessed via Couchbase Server SDKs using the sub-document API, via command-line tools, and via views. +* Can be accessed via {cbs} SDKs using the sub-document API, via command-line tools, and via views. -* Are accessible from N1QL in Couchbase Server using the `().xattrs`` property. + +* Are accessible from N1QL in {cbs} using the `().xattrs`` property. + For example, `SELECT meta().xattrs._sync from travel-sample where Meta().id = "user::demo"`;. -Both Sync Gateway and Couchbase Server use a System extended attribute, with the following characteristics to support mobile convergence (shared bucket access): +Both {sgw} and {cbs} use a System extended attribute, with the following characteristics to support mobile convergence (shared bucket access): * Shares lifetime with the document metadata - when a document is deleted, system xattrs are preserved with the tombstone. * Allocated 1MB of storage, independent of the 20MB available for the document -WARNING: The sync metadata is maintained internally by Sync Gateway and its structure can change at any time. +WARNING: The sync metadata is maintained internally by {sgw} and its structure can change at any time. It should not be used to drive business logic of applications. The direct use of the N1QL query is unsupported and must not be used in production environments. -The `_raw` endpoint (/db/_raw/{docid}) on Sync Gateway's Admin REST API returns both the document and its associated mobile metadata. +The `_raw` endpoint (/db/_raw/{docid}) on {sgw}'s Admin REST API returns both the document and its associated mobile metadata. === Documents -With bucket-sharing enabled, Couchbase Server documents can be inserted directly (using _N1QL_ or _SDKs_) or by using Sync Gateway's {rest-api--xref}. +With bucket-sharing enabled, {cbs} documents can be inserted directly (using _N1QL_ or _SDKs_) or by using {sgw}'s {rest-api--xref}. -Sync Gateway {fn-sgw1x5} creates the metadata it needs by abstracting it from the SDK or N1QL applications reading and writing data directly to Couchbase Server buckets. -It uses Couchbase Server XATTRs {fn-cbs5x0} to store that metadata into an external document fragment -- see {xref-svr-pg-xattrs}. +{sgw} {fn-sgw1x5} creates the metadata it needs by abstracting it from the SDK or N1QL applications reading and writing data directly to {cbs} buckets. +It uses {cbs} XATTRs {fn-cbs5x0} to store that metadata into an external document fragment -- see {xref-svr-pg-xattrs}. // The REST API will also include the following behavioral changes: @@ -97,8 +99,8 @@ It uses Couchbase Server XATTRs {fn-cbs5x0} to store that metadata into an exter === Blobs and Attachments .Couchbase Server SDK/N1QL -Use Sync Gateway's REST API's {xref-sgw-ep-public-api-attachment} endpoints to -manage attachments and blob data; you cannot use Couchbase Server SDKs to do this +Use {sgw}'s REST API's {xref-sgw-ep-public-api-attachment} endpoints to +manage attachments and blob data; you cannot use {cbs} SDKs to do this directly. Standard practice would be to create the document using the SDK and then associate its blobs/attachments using the {xref-sgw-ep-public-api-attachment-put} endpoint. @@ -108,17 +110,11 @@ https://blog.couchbase.com/store-sync-binary-data-attachments-blobs-couchbase-mo .Couchbase Lite Apps Couchbase Lite apps seamlessly handle blobs and attachments, see the appropriate platform examples here: -:param-path: learn :param-page: blob include::partial$blocklinks-cbl.adoc[] -// * xref:couchbase-lite:swift:learn/swift-blob.adoc[Swift] -// * xref:couchbase-lite:objc:learn/objc-blob.adoc[Objective-C] -// * xref:couchbase-lite:java:learn/java-blob.adoc[Java] -// * xref:couchbase-lite:android:learn/java-android-blob.adoc[Android (Java)] -// * xref:couchbase-lite:csharp:learn/csharp-blob.adoc[C#] .Using a WebApp -Attachments can be accessed through Sync Gateway's REST API using the xref:rest-api.adoc#/attachment/GetAttachment_[+/{tkn-db}/{doc}/{attachment}+] endpoint. +Attachments can be accessed through {sgw}'s REST API using the xref:rest-api.adoc#/attachment/GetAttachment_[+/{tkn-db}/{doc}/{attachment}+] endpoint. === Tombstone Revisions @@ -128,7 +124,7 @@ To ensure tombstones are synced with clients, you should set the server's metada === Accessing Sync Metadata -As stated, mobile metadata is not kept in the document, but in a system extended attribute (XATTR) in Couchbase Server. +As stated, mobile metadata is not kept in the document, but in a system extended attribute (XATTR) in {cbs}. The N1QL query language {fnref-cbs5x0} supports the ability to query these extended attributes (XATTRS) and hence the document's sync metadata -- see: <>. @@ -141,13 +137,13 @@ SELECT meta().xattrs._sync FROM `travel-sample` WHERE meta().id = "mydocId" ---- ==== -WARNING: The sync metadata is maintained internally by Sync Gateway and its structure can change at any time. +WARNING: The sync metadata is maintained internally by {sgw} and its structure can change at any time. It should not be used to drive business logic of applications. The direct use of the N1QL query is *unsupported* and must not be used in production environments. === Enable Shared Bucket Access Shared bucket access is an opt-in feature. -You can enable it without bringing down the entire Sync Gateway cluster -- see <>. +You can enable it without bringing down the entire {sgw} cluster -- see <>. [#enable-sba] .Enable Bucket-Sharing @@ -164,7 +160,7 @@ You can enable it without bringing down the entire Sync Gateway cluster -- see } } ---- -<.> The `import_docs` property is used to specify that a Sync Gateway node participates (exclusively) in {xref-sgw-pg-import-process}. The mechanism by which Sync Gateway incorporates changes to data buckets it shares with Couchbase Server -- see: <>. +<.> The `import_docs` property is used to specify that a {sgw} node participates (exclusively) in {xref-sgw-pg-import-process}. The mechanism by which {sgw} incorporates changes to data buckets it shares with {cbs} -- see: <>. ==== @@ -174,14 +170,14 @@ You can enable it without bringing down the entire Sync Gateway cluster -- see The *import process* is a key part of mobile convergence. -It is the means by which Sync Gateway becomes aware of non-Sync Gateway data changes and obtains the mobile metadata it requires to replicate changes. +It is the means by which {sgw} becomes aware of non-{sgw} data changes and obtains the mobile metadata it requires to replicate changes. image::shared-bucket-access.png[] -Any non-Sync Gateway change is eligible for import. +Any non-{sgw} change is eligible for import. The document is first run through the Sync Function to compute read security and routing, with the following differences: -* The import is processed with an admin user context in the Sync Function, similar to writes made through the Sync Gateway Admin API. +* The import is processed with an admin user context in the Sync Function, similar to writes made through the {sgw} Admin API. This means that `requireAccess`, `requireUser` and `requireRole` calls in the Sync Function are treated as no-ops. * During import, `oldDoc` is `nil` when the Sync Function is executed. @@ -237,7 +233,7 @@ The following table describes the key behavior differences between Community Edi |=== === High Availability -In _Enterprise Edition_, import processing work is sharded across all Sync Gateway nodes with import enabled. +In _Enterprise Edition_, import processing work is sharded across all {sgw} nodes with import enabled. This implies that if one of the nodes fail, the failed shard is automatically picked up by the remaining nodes in the cluster. This way, you get High Availability of import processing. @@ -250,7 +246,7 @@ As described in the table above, if `import_docs` is set to `false`, the node wi This configuration is specifically recommended for workload isolation: to isolate import nodes from the client-facing nodes. Workload isolation may be preferable in deployments with high write throughput. -The following diagram shows an example architecture of two Sync Gateway nodes handling the incoming client connections (`import_docs: false`) and two nodes sharing the import processing (`import_docs: true`). +The following diagram shows an example architecture of two {sgw} nodes handling the incoming client connections (`import_docs: false`) and two nodes sharing the import processing (`import_docs: true`). image:workload-isolation.png[] @@ -266,15 +262,15 @@ image:workload-isolation.png[] .Next Steps **** -* Check out our getting started tutorial for more on how to setup, configure and run Sync Gateway replications - xref:tutorials:userprofile-sync:userprofile_sync.adoc[Sync tutorial] +* Check out our getting started tutorial for more on how to setup, configure and run {sgw} replications - xref:tutorials:userprofile-sync:userprofile_sync.adoc[Sync tutorial] * Further reading: -** Couchbase Server documentation on {server-data-xattr-fundamentals--xref} +** {cbs} documentation on {server-data-xattr-fundamentals--xref} ** Configuration file references: *** {enable-sba-config-item} to enable convergence for a given database. -*** {configuration-schema-database--pfx--db}-import_docs[$dbname.import_docs] to give a particular Sync Gateway node the role of importing the documents. +*** {configuration-schema-database--pfx--db}-import_docs[$dbname.import_docs] to give a particular {sgw} node the role of importing the documents. *** {configuration-schema-database--pfx--db}-import_filter[$dbname.import_filter] to select which document(s) to make aware to mobile clients. **** diff --git a/modules/ROOT/pages/webhooks.adoc b/modules/ROOT/pages/webhooks.adoc index 497f0938e..c996b9d1d 100644 --- a/modules/ROOT/pages/webhooks.adoc +++ b/modules/ROOT/pages/webhooks.adoc @@ -1,6 +1,7 @@ = Webhooks ifdef::show_edition[:page-edition: {release}] ifdef::prerelease[:page-status: {prerelease}] +:page-toclevels: 1@ :description: Introducing Sync Gateway events and event handling with Webhooks include::partial$_std-hdr-sgw.adoc[] @@ -20,6 +21,7 @@ Consider the security implications. == Introduction + Sync Gateway provides the ability to extend the replication process and build responsive services that react to changes in documents, adding value to the end to end process. For example, by initiating the sending of notifications, or specialist audit processes, when certain document changes are detected. @@ -33,8 +35,10 @@ In addition to providing the opportunity to integrate with external systems, thi * The performance impact on Sync Gateway's regular processing * The amount of Sync Gateway node CPU resources consumed by slow response times from the HTTP POST operations. + == Behavior + Webhooks work on the push-cycle of a replication. If a _webhook_ event handler is defined: @@ -54,8 +58,10 @@ HTTP/HTTPS is used to POST the document changes selected by the filter to the de include::partial$server-integration-scenario-table.adoc[] + == Definition + You can define _Webhooks_ using the Admin Rest API {rest-api-admin--xref--database-configuration} endpoints. For Pre-3.0 Legacy configurations, see the {configuration-properties-legacy--xref} at the database level. @@ -180,8 +186,6 @@ The `filter` function in the second handler recognizes documents with `doc.type` ==== ===== - - === Event Processing Properties Limited Concurrent Processes:: @@ -209,11 +213,15 @@ Any events arriving whilst the queue is full are then immediately discarded -- s -- + [#lbl-evlog] == Logging + + Sync Gateway creates a log whenever an event is discarded, and not added to the event queue. You can configure the console logging of events using the configuration file and-or the ADMIN Rest API -- see {xref-sgw-pg-logging}. The `log_key` you need to include is `Event`; or `Events+` for more verbose output. + include::partial$block-related-content-api.adoc[] From bc087fe167b4e8b81938268475a2761e68c0810b Mon Sep 17 00:00:00 2001 From: ibsoln <52778946+ibsoln@users.noreply.github.com> Date: Mon, 21 Feb 2022 12:00:23 +0000 Subject: [PATCH 19/19] QF220221-1 -- Fix Links from API (#637) --- .../assets/attachments/rest-api-admin.yaml | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/modules/ROOT/assets/attachments/rest-api-admin.yaml b/modules/ROOT/assets/attachments/rest-api-admin.yaml index 0bc561018..8074ad6e6 100644 --- a/modules/ROOT/assets/attachments/rest-api-admin.yaml +++ b/modules/ROOT/assets/attachments/rest-api-admin.yaml @@ -696,7 +696,7 @@ paths: - 'Database Configuration' summary: Update Database Configuration description: |+ - Use this endpoint to update the configuration of an existing Sync Gatewat database. + Use this endpoint to update the configuration of an existing Sync Gateway database. Provide the database name in the URL path. Provide the required database configuration settings as a JSON object in the request body. @@ -704,8 +704,6 @@ paths: By default the updated database is brought online immediately, **unless** you include `"offline": true` in the configuration. - `See: {rest-api-admin--xref}` for further information on this. - *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* -- Sync Gateway Architect @@ -1728,7 +1726,7 @@ paths: Taking a database offline that is in the progress of coming online will take the database offline after it comes online. - For more information about taking a database offline and bringing it back online, see [this guide](../database-offline.html). + For more information about taking a database offline and bringing it back online, see [this guide](database-offline.html). *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* @@ -1759,7 +1757,7 @@ paths: - Making a database available for Couchbase Mobile clients at a specific time. - Making databases on several Sync Gateway instances available at the same time. - For more information about taking a database offline and bringing it back online, see [this guide](../database-offline.html). + For more information about taking a database offline and bringing it back online, see [this guide](database-offline.html). *Sync Gateway Roles Required (CBS 7.0.2 Developer Preview):* @@ -3403,7 +3401,7 @@ definitions: description: |+ This property defines the maximum depth to which a document's revision tree can grow; its value governs the point at which to prune a document's revision tree. - The default and minimum values of `revs_limit` are dependent on whether [allow_conflicts](config-properties.html#databases-this_db-allow_conflicts) is set True or False -- see the *Default and Minimum Values* table below. + The default and minimum values of `revs_limit` are dependent on whether [allow_conflicts](configuration-schema-database.html#database-allow_conflicts) is set True or False -- see the *Default and Minimum Values* table below. The process to remove obsolete revisions is called pruning and runs automatically every time a revision is added. Although fundamentally the same, the pruning algorithm works slightly differently between Sync Gateway and Couchbase Lite. On Sync Gateway, the pruning algorithm is applied to the shortest, non-tombstoned branch in the revision tree. @@ -3436,8 +3434,8 @@ definitions: - `revs_limit` minimum = 20 See also: - - Sync Gateway purge endpoint [/{db}/_purge](admin-rest-api.html#/document/post__db___purge). - - Sync Gateway [document TTLs](admin-rest-api.html#/document/put__db___doc_). + - Sync Gateway purge endpoint [/{db}/_purge](rest-api-admin.html#/Document/post__db___purge). + - Sync Gateway [document TTLs](rest-api-admin.html#/document/put__db___doc_). minimum -- see Default and Minimum Values table in description @@ -3492,7 +3490,8 @@ definitions: You can configure Sync Gateway to log information about event handling, by including either the log key ```Event``` or ```Events+``` in the `Log` property in your Sync Gateway configuration file. `Events+` is more verbose. - See also: {webhooks--xref} + See also: + [Webhook](webhooks.html).. properties: document_changed: @@ -5039,7 +5038,7 @@ definitions: per_db: type: array description: |+ - This array contains stats for all databases declared in the config file -- see the [Sync Gateway Statistics Schema](./../stats-monitoring.html) for more details on the metrics collected and reported by Sync Gateway. + This array contains stats for all databases declared in the config file -- see the [Sync Gateway Statistics Schema](stats-monitoring.html) for more details on the metrics collected and reported by Sync Gateway. The statistics for each {$db_name} database are grouped into: