Database Configuration
Using Sync Gateway’s Admin REST API to configure and manage databases
Related topics: Overview | Bootstrap | Database | Database Security | Access Control | Import | Inter-Sync Gateway Replication
Pre-3.0 Legacy Configuration Equivalents
This content describes configuration for Sync Gateway 3.0 and higher — for legacy configuration, see: Legacy Pre-3.0 Configuration |
Introduction
From Sync Gateway 3.0 you can use the Admin REST API to provision persistent configuration changes. This content introduces the Create Database and Configure Database endpoints for convenience — see Database Configuration for a full description of the endpoints available.
Create Database
PUT {url}/{dbname}/
Use this method to create a new Sync Gateway database.
The database name is taken from the URL path. Pass the required database configuration settings as a JSON object in the request body.
{ "name": "todo_db" "bucket": "todo_app" }
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
Type | Name | Description | Schema |
---|---|---|---|
Path |
db |
Database name |
string |
Body |
database configuration details |
Provision the database configuration details as JSON object in request body |
Responses
HTTP Code | Description | Schema |
---|---|---|
201 |
201 - OK - Create Operation successful |
No Content |
401 |
401 - Unauthorized - Error validating credentials |
No Content |
Example
Here we create a new sync gateway database.
-
Curl
-
HTTP
curl --location --request PUT 'http://127.0.0.1:4985/traveldb/' \ (1)
--header 'Authorization: Basic c3luY19nYXRld2F5OnBhc3N3b3Jk' \ (2)
--header 'Content-Type: application/json' \
--data-raw '{
"bucket": "todo", (3)
"num_index_replicas": 0}'
PUT /traveldb/ HTTP/1.1 (1)
Host: 127.0.0.1:4985
Authorization: Basic c3luY19nYXRld2F5OnBhc3N3b3Jk (2)
Content-Type: application/json
Content-Length: 44
{
"bucket": "todo", (3)
"num_index_replicas": 0}
1 | Here we create a sync gateway database called traveldb |
2 | Note we are using Basic Authentication here to authenticate against an existing Couchbase Server RBAC user |
3 | Here we point to the Couchbase Server bucket called todo |
Configure Database
PUT {url}/{db}/_config
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.
By default the updated 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
-
Sync Gateway Application
Parameters
Type | Name | Description | Schema |
---|---|---|---|
Path |
db |
Database name |
string |
Body |
database configuration details |
Provision the database configuration details as JSON object in request body |
Responses
HTTP Code | Description | Schema |
---|---|---|
200 |
200 - OK - Operation successful |
No Content |
401 |
401 - Unauthorized - Error validating credentials |
No Content |
Example
Here we configure an existing sync gateway database.
-
Curl
-
HTTP
curl --location --request PUT 'http://127.0.0.1:4985/traveldb/_config/' \ (1)
--header 'Authorization: Basic c3luY19nYXRld2F5OnBhc3N3b3Jk' \ (2)
--header 'Content-Type: application/json' \
--data-raw '{
"enable_shared_bucket_access": true,
"import_docs": true
}' (3)
PUT /traveldb/_config/ HTTP/1.1 (1)
Host: 127.0.0.1:4985
Authorization: Basic c3luY19nYXRld2F5OnBhc3N3b3Jk (2)
Content-Type: application/json
Content-Length: 120
{
"enable_shared_bucket_access": true,
"import_docs": true
} (3)
1 | Here we choose to configure (_config ) a sync gateway database called traveldb |
2 | Note we are using Basic Authentication here to authenticate against an existing Couchbase Server RBAC user |
3 | Here we toggle a couple of database properties |
Schema
This section shows Sync Gateway’s database configuration settings in schema format for convenience in constructing JSON models for use in the Admin REST API.
The configuration settings described here are provisioned through the Database Configuration endpoints.