Synctos Functionality


Can anyone tell me that how do we use channels in the sync function to give access?
I have certain channels in the document.
When I am trying to update something, error says;
“error”: “Forbidden”,
“reason”: “missing channel access”
Do anyone knows how to use synctos?
I have inserted the generated sync function into Sync_gateway.json.
But Can you please elaborate on this topic.


when document changed, you can route document to some channel,and assign channel to user by the property of the changed document.


Hi @atom_yang

I have generated the sync function using it but it’s not working.
Can you tell me how to create document type definition file for synctos.
What’s the format? May be I am wrong somewhere there.


I didn’t use synctos ,I think README is clear


Hi @atom_yang and @OldSneerJaw
I have already read and implemented as it says-

Have a look at my doc-definition file:
Document Name or type -DocumentType
DocumentID- _id

channels: function(doc, oldDoc) {
var DocumentType = getDocumentType(doc, oldDoc);
return {
view: toSyncChannel(id, ‘DocumentType’),
write: ‘DocumentType’
authorizedRoles: defaultAuthorizedRoles,
authorizedUsers: defaultAuthorizedUsers,
typeFilter: function(doc, oldDoc) {
return /^DocumentType.[A-Za-z0-9
immutable: true,
propertyValidators: {
type: typeIdValidator,
_id: {
type: ‘string’,
required: true,
immutable: true
type: {
type: ‘string’,
required: true,
immutable: true
RegisteredDate :
type: ‘string’,
required: true,
immutable: true
IssueDate :
type: ‘string’,
required: true,
immutable: true

Sync function has been created using this js File and I inserted it in the sync_gateway.json but not getting implemented.
Whenever I update any document, it says:

“error”: “Internal Server Error”,
“reason”: “Exception in JS sync function”

Need Help in understanding.
Anyone can also help.


Hi @jens
Can you go through this problem and let me know where am I getting wrong in generating sync function?


using sync function might be easier. can you show your ACL requirements and routing requirements and document design?


Sorry, I don’t know anything about synctos.


Hi @atom_yang,
This is all what I have done-
Steps to create synctos sync function on ubuntu server:

apt-get install npm
mkdir /home/tanu
npm install synctos
doc-definition.js (File has to be created in the project directory)
apt-get install node
apt-get install nodejs-legacy
cd /home/tanu/node_modules/synctos
./make-sync-function /home/tanu/node_modules/synctos/doc-definition.js /home/tanu/node_modules/synctos/generated-sync-function.js

(Append the contents of generated file in the sync_gateway.json)

And you can see the doc-definition file above as shown.

And my document design is like this-
“RegisteredDate “: “2017-09-22T15:03:04Z”,
“IssueDate “: “2017-09-25”,
”_id”: “DocumentType::0002218D-C485-4C7B-8A6C-F7D10F880568”,
”_rev”: “42-f797cc6661c7b3f818f1171db0d46e11”,
“channels”: [
“type”: “DocumentType”

I have validated each field in sync function but still not getting implemented.