You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Add new features to release notes
* Highlight future changes to Enable Shared Bucket Access
* Highlight future changes to Disable All Public Docs
* Fix broken attributes
Sync Gateway 3.3 introduces support for partitioned indexes.
8
+
Partitioned indexes offer horizontal scalability for large deployments by sharding indexes across multiple nodes.
9
+
10
+
=== Disable the Public All Docs Endpoint
11
+
12
+
Sync Gateway 3.3 introduces an option to disable the xref:rest_api_public.adoc#tag/Document/operation/get_keyspace-_all_docs[`GET /{keyspace}/_all_docs`] operation in the Public REST API.
13
+
14
+
=== Interactive Admin Credentials for SG Collect Info
15
+
16
+
In Sync Gateway 3.3 and later, the `sgcollect_info` tool provides an interactive password prompt so that you can enter administrative credentials.
6
17
7
18
For more information on new features and enhancements in this release, see xref:whatsnew.adoc[].
:fn-sgw: footnote:fn-sgw[Prior to Release 2.5, Server 5.0 all writes had to go through Sync Gateway, or had to use bucket shadowing to ensure that the security and replication metadata needed by mobile applications was preserved.]
{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'.
33
+
{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'.
33
34
34
-
* Enable_Shared_Bucket_Access
35
-
+
36
-
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 +
35
+
enable_shared_bucket_access::
36
+
This setting ensures that both {sgw-t} and {cbs-t} can read and write to the same bucket simultaneously and that {sgw-t} can access {cbs} document XATTRS +
37
37
See: <<sgw-paths>> and {configuration-schema-database--xref--enable-shared-bucket-access}.
38
-
39
-
* Import Docs
40
38
+
41
-
Setting this property true ensures that the {sgw} node performs import processing, obtaining the mobile metadata it requires to replicate changes -- see: <<import-process>>.
39
+
Setting this property to `true` will be required in a future release, and `false` will not be supported.
40
+
41
+
import_docs::
42
+
Setting this property true ensures that the {sgw-t} node performs import processing, obtaining the mobile metadata it requires to replicate changes -- see: <<import-process>>.
42
43
43
44
You can configure both these properties using the Admin Rest API {configuration-schema-database--xref} endpoint.
Mobile applications require additional metadata in order to manage security and replication.
55
56
56
-
{sgw} stores this information using {cbs} XATTRs (see {cbs} documentation on {server-data-xattr-fundamentals--xref}).
57
+
{sgw-t} stores this information using {cbs} XATTRs (see {cbs} documentation on {server-data-xattr-fundamentals--xref}).
57
58
58
59
59
60
=== Extended Attributes (XATTRs)
@@ -71,24 +72,24 @@ Extended attributes:
71
72
* Can be accessed via {cbs} SDKs using the sub-document API, via command-line tools, and via views.
72
73
73
74
* Are accessible from {sqlpp} in {cbs} using the `().xattrs` property. +
74
-
For example, `SELECT meta().xattrs._sync from travel-sample where Meta().id = "user::demo"`;.
75
+
For example, `SELECT meta().xattrs._sync from travel-sample where Meta().id = "user::demo";`.
75
76
76
77
77
-
Both {sgw} and {cbs} use a System extended attribute, with the following characteristics to support mobile convergence (shared bucket access):
78
+
Both {sgw-t} and {cbs} use a System extended attribute, with the following characteristics to support mobile convergence (shared bucket access):
78
79
79
80
* Shares lifetime with the document metadata - when a document is deleted, system xattrs are preserved with the tombstone.
80
81
* Allocated 1MB of storage, independent of the 20MB available for the document
81
82
82
-
WARNING: The sync metadata is maintained internally by {sgw} and its structure can change at any time.
83
+
WARNING: The sync metadata is maintained internally by {sgw-t} and its structure can change at any time.
83
84
It should not be used to drive business logic of applications.
84
85
The direct use of the {sqlpp} query is unsupported and must not be used in production environments.
85
-
The `_raw` endpoint (/db/_raw/{docid}) on {sgw}'s Admin REST API returns both the document and its associated mobile metadata.
86
+
The `_raw` endpoint (/db/_raw/{docid}) on {sgw-t}'s Admin REST API returns both the document and its associated mobile metadata.
86
87
87
88
=== Documents
88
89
89
-
With bucket-sharing enabled, {cbs} documents can be inserted directly (using _{sqlpp}_ or _SDKs_) or by using {sgw}'s {rest-api--xref}.
90
+
With bucket-sharing enabled, {cbs} documents can be inserted directly (using {sqlpp} or SDKs) or by using {sgw-t}'s {rest-api--xref}.
90
91
91
-
{sgw} {fn-sgw1x5} creates the metadata it needs by abstracting it from the SDK or {sqlpp} applications reading and writing data directly to {cbs} buckets.
92
+
{sgw-t} {fn-sgw1x5} creates the metadata it needs by abstracting it from the SDK or {sqlpp} applications reading and writing data directly to {cbs} buckets.
92
93
It uses {cbs} XATTRs {fn-cbs5x0} to store that metadata into an external document fragment -- see {xref-svr-pg-xattrs}.
93
94
94
95
// The REST API will also include the following behavioral changes:
@@ -99,7 +100,7 @@ It uses {cbs} XATTRs {fn-cbs5x0} to store that metadata into an external documen
99
100
=== Blobs and Attachments
100
101
101
102
.Couchbase Server SDK/{sqlpp}
102
-
Use {sgw}'s REST API's {xref-sgw-ep-public-api-attachment} endpoints to
103
+
Use {sgw-t}'s REST API's {xref-sgw-ep-public-api-attachment} endpoints to
103
104
manage attachments and blob data; you cannot use {cbs} SDKs to do this
104
105
directly.
105
106
@@ -114,7 +115,7 @@ Couchbase Lite apps seamlessly handle blobs and attachments, see the appropriate
114
115
include::partial$blocklinks-cbl.adoc[]
115
116
116
117
.Using a WebApp
117
-
Attachments can be accessed through {sgw}'s REST API using the xref:rest_api_public.adoc#tag/Document-Attachment/operation/get_keyspace-docid-attach[+/{keyspace}/{docid}/{attach}+] endpoint.
118
+
Attachments can be accessed through {sgw-t}'s REST API using the xref:rest_api_public.adoc#tag/Document-Attachment/operation/get_keyspace-docid-attach[+/{keyspace}/{docid}/{attach}+] endpoint.
118
119
119
120
=== Tombstone Revisions
120
121
@@ -131,19 +132,19 @@ The {sqlpp} query language {fnref-cbs5x0} supports the ability to query these ex
131
132
[#simple-query]
132
133
.Querying XATTRS-bsed sync metadata
133
134
====
134
-
[source,sql]
135
+
[source,sqlpp]
135
136
----
136
137
SELECT meta().xattrs._sync FROM scope.collection WHERE meta().id = "mydocId"
137
138
----
138
139
====
139
140
140
-
WARNING: The sync metadata is maintained internally by {sgw} and its structure can change at any time.
141
+
WARNING: The sync metadata is maintained internally by {sgw-t} and its structure can change at any time.
141
142
It should not be used to drive business logic of applications. The direct use of the {sqlpp} query is *unsupported* and must not be used in production environments.
142
143
143
144
=== Enable Shared Bucket Access
144
145
145
146
Shared bucket access is an opt-in feature.
146
-
You can enable it without bringing down the entire {sgw} cluster -- see <<enable-sba>>.
147
+
You can enable it without bringing down the entire {sgw-t} cluster -- see <<enable-sba>>.
147
148
148
149
[#enable-sba]
149
150
.Enable Bucket-Sharing
@@ -160,7 +161,7 @@ You can enable it without bringing down the entire {sgw} cluster -- see <<enabl
160
161
}
161
162
}
162
163
----
163
-
<.> The `import_docs` property is used to specify that a {sgw} node participates (exclusively) in {import-process--xref}. The mechanism by which {sgw} incorporates changes to data buckets it shares with {cbs} -- see: <<import-process>>.
164
+
<.> The `import_docs` property is used to specify that a {sgw-t} node participates (exclusively) in {import-process--xref}. The mechanism by which {sgw-t} incorporates changes to data buckets it shares with {cbs} -- see: <<import-process>>.
164
165
165
166
====
166
167
@@ -170,30 +171,37 @@ You can enable it without bringing down the entire {sgw} cluster -- see <<enabl
170
171
171
172
172
173
The *import process* is a key part of mobile convergence.
173
-
It is the means by which {sgw} becomes aware of non-{sgw} data changes and obtains the mobile metadata it requires to replicate changes.
174
+
It is the means by which {sgw-t} becomes aware of non-{sgw-t} data changes and obtains the mobile metadata it requires to replicate changes.
174
175
175
176
image::shared-bucket-access.png[]
176
177
177
-
Any non-{sgw} change is eligible for import.
178
+
Any non-{sgw-t} change is eligible for import.
178
179
The document is first run through the Sync Function to compute read security and routing, with the following differences:
179
180
180
-
* The import is processed with an admin user context in the Sync Function, similar to writes made through the {sgw} Admin API.
181
+
* The import is processed with an admin user context in the Sync Function, similar to writes made through the {sgw-t} Admin API.
181
182
This means that `requireAccess`, `requireUser` and `requireRole` calls in the Sync Function are treated as no-ops.
182
183
* During import, `oldDoc` is `nil` when the Sync Function is executed.
183
184
184
-
You can specify a filter function using the {configuration-schema-database--pfx--db}_import_filter[import_filter] property, which will only import specific documents.
185
+
You can specify a filter function using the {configuration-schema-database--pfx}#import_filter[import_filter] property, which will only import specific documents.
185
186
186
187
TIP: Use the {bootstrap-schema--xref--logging-console-log-keys} log key to troubleshoot import processing issues in the logs.
187
188
188
189
=== Configuration
189
190
190
191
Note that `import_docs` only takes effect if the `enabled_shared_bucket_access` is set to `true`.
191
192
192
-
{enterprise}::
193
+
****
194
+
[.edition]#{enterprise}#
195
+
193
196
The `import_docs` parameter defaults to `true`, implying that, by default, all nodes in a cluster participate in import processing.
194
197
To exclude a node, set `"import_docs": false`.
195
-
{community}::
196
-
The `import_docs` parameter defaults to false and must be explicitly set to `true`.
198
+
199
+
'''
200
+
201
+
[.edition]#{community}#
202
+
203
+
The `import_docs` parameter defaults to `false` and must be explicitly set to `true`.
204
+
****
197
205
198
206
The following table describes the key behavior differences between Community Edition and Enterprise Edition when `import_docs` is enabled, disabled or not set at all.
199
207
@@ -233,7 +241,7 @@ The following table describes the key behavior differences between Community Edi
233
241
|===
234
242
235
243
=== High Availability
236
-
In _Enterprise Edition_, import processing work is sharded across all {sgw} nodes with import enabled.
244
+
In _Enterprise Edition_, import processing work is sharded across all {sgw-t} nodes with import enabled.
237
245
This implies that if one of the nodes fail, the failed shard is automatically picked up by the remaining nodes in the cluster.
238
246
This way, you get High Availability of import processing.
239
247
@@ -246,7 +254,7 @@ As described in the table above, if `import_docs` is set to `false`, the node wi
246
254
This configuration is specifically recommended for workload isolation: to isolate import nodes from the client-facing nodes.
247
255
Workload isolation may be preferable in deployments with high write throughput.
248
256
249
-
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`).
257
+
The following diagram shows an example architecture of two {sgw-t} nodes handling the incoming client connections (`import_docs: false`) and two nodes sharing the import processing (`import_docs: true`).
* 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]
273
+
* Check out our getting started tutorial for more on how to setup, configure and run {sgw-t} replications - xref:tutorials:userprofile-sync:userprofile_sync.adoc[Sync tutorial]
266
274
267
275
* Further reading:
268
276
** {cbs} documentation on {server-data-xattr-fundamentals--xref}
269
277
270
278
** Configuration file references:
271
279
272
280
*** {enable-sba-config-item} to enable convergence for a given database.
273
-
*** {configuration-schema-database--pfx--db}-import_docs[$dbname.import_docs] to give a particular {sgw} node the role of importing the documents.
274
-
*** {configuration-schema-database--pfx--db}-import_filter[$dbname.import_filter] to select which document(s) to make aware to mobile clients.
281
+
*** {configuration-schema-database--pfx}#import_docs[$dbname.import_docs] to give a particular {sgw-t} node the role of importing the documents.
282
+
*** {configuration-schema-database--pfx}#import_filter[$dbname.import_filter] to select which document(s) to make aware to mobile clients.
Copy file name to clipboardExpand all lines: modules/ROOT/pages/whatsnew.adoc
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -44,7 +44,7 @@ With a large number of documents, it may lead to timeouts and out-of-memory cond
44
44
In any sizeable setup, it is recommended that you should instead use the xref:rest_api_public.adoc#tag/Database-Management/operation/get_keyspace-_changes[`GET /{keyspace}/_changes`] operation to get all documents for a user, or the xref:rest_api_public.adoc#tag/Document/operation/post_keyspace-_bulk_docs[`POST /{keyspace}/_bulk_docs`] operation to return any number of documents.
45
45
46
46
To disable the xref:rest_api_public.adoc#tag/Document/operation/get_keyspace-_all_docs[`GET /{keyspace}/_all_docs`] operation in the Public REST API, set xref:configuration-schema-database.adoc#disable_public_all_docs[`disable_public_all_docs`] to `true` in the database configuration.
47
-
This option is set to `false` by default.
47
+
This option is set to `false` by default; it will be set to `true` by default in a future release.
48
48
49
49
==== Interactive Admin Credentials for SG Collect Info
0 commit comments