Skip to content

Instantly share code, notes, and snippets.

@joenoon
Last active August 29, 2015 14:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save joenoon/7cc8e0aa2db7d51cc9d2 to your computer and use it in GitHub Desktop.
Save joenoon/7cc8e0aa2db7d51cc9d2 to your computer and use it in GitHub Desktop.
CBL/SG pull replication issue
+ db=myapp
+ doc_id=555d735d4a6f7317a8730000
+ user_id=555d72b04a6f73175d050000
+ '[' == prod ']'
++ echo tcp://192.168.59.103:2376
++ awk '-F[/:]' '{print $4}'
+ btdip=192.168.59.103
+ http=https://192.168.59.103:4985
+ echo 'Checking db myapp for doc_id 555d735d4a6f7317a8730000 and user_id 555d72b04a6f73175d050000'
Checking db myapp for doc_id 555d735d4a6f7317a8730000 and user_id 555d72b04a6f73175d050000
+ http --verify=no --cert-key=/Users/jnoon/apps/myapp-couchbase-ops/certs/509/509.key --cert=/Users/jnoon/apps/myapp-couchbase-ops/certs/509/509.crt 'https://192.168.59.103:4985/myapp/_all_docs?channels=true&access=true&update_seq=true' 'keys:=["555d735d4a6f7317a8730000"]'
/usr/local/Cellar/httpie/0.9.0/libexec/vendor/lib/python2.7/site-packages/requests/packages/urllib3/connectionpool.py:734: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.org/en/latest/security.html
InsecureRequestWarning)
HTTP/1.1 200 OK
Connection: keep-alive
Content-Encoding: gzip
Content-Length: 162
Content-Type: application/json
Date: Thu, 21 May 2015 07:20:27 GMT
Server: Couchbase Sync Gateway/1.1.0
{
"rows": [
{
"id": "555d735d4a6f7317a8730000",
"key": "555d735d4a6f7317a8730000",
"value": {
"channels": [
"Place-555d735d4a6f7317a8730000"
],
"rev": "1-6799eaabed29de20497f916b67db7095"
}
}
],
"total_rows": 1,
"update_seq": 350
}
+ http --verify=no --cert-key=/Users/jnoon/apps/myapp-couchbase-ops/certs/509/509.key --cert=/Users/jnoon/apps/myapp-couchbase-ops/certs/509/509.crt 'https://192.168.59.103:4985/myapp/_all_docs?channels=true&access=true&update_seq=true' 'keys:=["Want-555d72b04a6f73175d050000-555d735d4a6f7317a8730000"]'
/usr/local/Cellar/httpie/0.9.0/libexec/vendor/lib/python2.7/site-packages/requests/packages/urllib3/connectionpool.py:734: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.org/en/latest/security.html
InsecureRequestWarning)
HTTP/1.1 200 OK
Connection: keep-alive
Content-Encoding: gzip
Content-Length: 200
Content-Type: application/json
Date: Thu, 21 May 2015 07:20:27 GMT
Server: Couchbase Sync Gateway/1.1.0
{
"rows": [
{
"id": "Want-555d72b04a6f73175d050000-555d735d4a6f7317a8730000",
"key": "Want-555d72b04a6f73175d050000-555d735d4a6f7317a8730000",
"value": {
"access": {
"555d72b04a6f73175d050000": [
"Place-555d735d4a6f7317a8730000"
]
},
"channels": [
"Account-555d72b04a6f73175d050000"
],
"rev": "1-31e903631e3d4a4604c0887e014e53e4"
}
}
],
"total_rows": 1,
"update_seq": 350
}
+ http --verify=no --cert-key=/Users/jnoon/apps/myapp-couchbase-ops/certs/509/509.key --cert=/Users/jnoon/apps/myapp-couchbase-ops/certs/509/509.crt https://192.168.59.103:4985/myapp/Want-555d72b04a6f73175d050000-555d735d4a6f7317a8730000
/usr/local/Cellar/httpie/0.9.0/libexec/vendor/lib/python2.7/site-packages/requests/packages/urllib3/connectionpool.py:734: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.org/en/latest/security.html
InsecureRequestWarning)
HTTP/1.1 200 OK
Connection: keep-alive
Content-Length: 226
Content-Type: application/json
Date: Thu, 21 May 2015 07:20:27 GMT
Etag: "1-31e903631e3d4a4604c0887e014e53e4"
Server: Couchbase Sync Gateway/1.1.0
{
"_id": "Want-555d72b04a6f73175d050000-555d735d4a6f7317a8730000",
"_rev": "1-31e903631e3d4a4604c0887e014e53e4",
"tsms": 1432187742000,
"type": "Want",
"want_id": "555d735d4a6f7317a8730000",
"want_type": "Place"
}
+ http --verify=no --cert-key=/Users/jnoon/apps/myapp-couchbase-ops/certs/509/509.key --cert=/Users/jnoon/apps/myapp-couchbase-ops/certs/509/509.crt https://192.168.59.103:4985/myapp/_user/555d72b04a6f73175d050000
/usr/local/Cellar/httpie/0.9.0/libexec/vendor/lib/python2.7/site-packages/requests/packages/urllib3/connectionpool.py:734: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.org/en/latest/security.html
InsecureRequestWarning)
HTTP/1.1 200 OK
Connection: keep-alive
Content-Encoding: gzip
Content-Length: 593
Content-Type: text/plain; charset=utf-8
Date: Thu, 21 May 2015 07:20:27 GMT
Server: Couchbase Sync Gateway/1.1.0
{"name":"555d72b04a6f73175d050000","admin_channels":["555d72b04a6f73175d050000"],"all_channels":["!","555d72b04a6f73175d050000","Account-555d72b04a6f73175d050000","Place-555d73024a6f7317a8000000","Place-555d73024a6f7317a8010000","Place-555d73024a6f7317a8020000","Place-555d73024a6f7317a8030000","Place-555d73024a6f7317a8040000","Place-555d73024a6f7317a8050000","Place-555d73024a6f7317a8060000","Place-555d73024a6f7317a8070000","Place-555d73024a6f7317a8080000","Place-555d73024a6f7317a8090000","Place-555d73024a6f7317a80a0000","Place-555d73024a6f7317a80b0000","Place-555d73024a6f7317a80c0000","Place-555d73024a6f7317a80d0000","Place-555d73034a6f7317a80e0000","Place-555d73034a6f7317a80f0000","Place-555d73034a6f7317a8100000","Place-555d73034a6f7317a8110000","Place-555d73034a6f7317a8120000","Place-555d73034a6f7317a8130000","Place-555d73194a6f7317a8140000","Place-555d73194a6f7317a8150000","Place-555d73194a6f7317a8160000","Place-555d73194a6f7317a8170000","Place-555d731a4a6f7317a8180000","Place-555d731a4a6f7317a8190000","Place-555d731a4a6f7317a81a0000","Place-555d731a4a6f7317a81b0000","Place-555d731a4a6f7317a81c0000","Place-555d731a4a6f7317a81d0000","Place-555d731a4a6f7317a81e0000","Place-555d731a4a6f7317a81f0000","Place-555d73304a6f7317a8200000","Place-555d73304a6f7317a8210000","Place-555d73304a6f7317a8220000","Place-555d73304a6f7317a8230000","Place-555d73304a6f7317a8240000","Place-555d73304a6f7317a8250000","Place-555d73304a6f7317a8260000","Place-555d73304a6f7317a8270000","Place-555d73304a6f7317a8280000","Place-555d73314a6f7317a8290000","Place-555d73314a6f7317a82a0000","Place-555d73314a6f7317a82b0000","Place-555d73314a6f7317a82c0000","Place-555d73314a6f7317a82d0000","Place-555d73424a6f7317a82e0000","Place-555d73424a6f7317a82f0000","Place-555d73424a6f7317a8300000","Place-555d73424a6f7317a8310000","Place-555d73424a6f7317a8320000","Place-555d73424a6f7317a8330000","Place-555d73424a6f7317a8340000","Place-555d73424a6f7317a8350000","Place-555d73424a6f7317a8360000","Place-555d73424a6f7317a8370000","Place-555d73424a6f7317a8380000","Place-555d73434a6f7317a8390000","Place-555d73434a6f7317a83a0000","Place-555d73434a6f7317a83b0000","Place-555d73434a6f7317a83c0000","Place-555d73434a6f7317a83d0000","Place-555d73434a6f7317a83e0000","Place-555d73434a6f7317a83f0000","Place-555d73434a6f7317a8400000","Place-555d73434a6f7317a8410000","Place-555d73444a6f7317a8420000","Place-555d73444a6f7317a8430000","Place-555d73444a6f7317a8440000","Place-555d73444a6f7317a8450000","Place-555d73444a6f7317a8460000","Place-555d73444a6f7317a8470000","Place-555d73444a6f7317a8480000","Place-555d73444a6f7317a8490000","Place-555d73444a6f7317a84a0000","Place-555d73444a6f7317a84b0000","Place-555d73444a6f7317a84c0000","Place-555d735a4a6f7317a84d0000","Place-555d735a4a6f7317a84e0000","Place-555d735a4a6f7317a84f0000","Place-555d735a4a6f7317a8500000","Place-555d735a4a6f7317a8510000","Place-555d735a4a6f7317a8520000","Place-555d735a4a6f7317a8530000","Place-555d735a4a6f7317a8540000","Place-555d735a4a6f7317a8550000","Place-555d735a4a6f7317a8560000","Place-555d735a4a6f7317a8570000","Place-555d735a4a6f7317a8580000","Place-555d735b4a6f7317a8590000","Place-555d735b4a6f7317a85a0000","Place-555d735b4a6f7317a85b0000","Place-555d735b4a6f7317a85c0000","Place-555d735b4a6f7317a85d0000","Place-555d735b4a6f7317a85e0000","Place-555d735b4a6f7317a85f0000","Place-555d735b4a6f7317a8600000","Place-555d735c4a6f7317a8610000","Place-555d735c4a6f7317a8620000","Place-555d735c4a6f7317a8630000","Place-555d735c4a6f7317a8640000","Place-555d735c4a6f7317a8650000","Place-555d735c4a6f7317a8660000","Place-555d735c4a6f7317a8670000","Place-555d735c4a6f7317a8680000","Place-555d735c4a6f7317a8690000","Place-555d735d4a6f7317a86a0000","Place-555d735d4a6f7317a86b0000","Place-555d735d4a6f7317a86c0000","Place-555d735d4a6f7317a86d0000","Place-555d735d4a6f7317a86e0000","Place-555d735d4a6f7317a86f0000","Place-555d735d4a6f7317a8700000","Place-555d735d4a6f7317a8710000","Place-555d735d4a6f7317a8720000","Place-555d735d4a6f7317a8730000","Place-555d735e4a6f7317a8740000","Place-555d735e4a6f7317a8750000","Place-555d735e4a6f7317a8760000","Place-555d735f4a6f7317a8770000","Place-555d735f4a6f7317a8780000","Place-555d735f4a6f7317a8790000","Place-555d735f4a6f7317a87a0000","Place-555d735f4a6f7317a87b0000","Place-555d735f4a6f7317a87c0000","Place-555d735f4a6f7317a87d0000","Place-555d735f4a6f7317a87e0000","Place-555d735f4a6f7317a87f0000","Place-555d735f4a6f7317a8800000","Place-555d735f4a6f7317a8810000","Place-555d735f4a6f7317a8820000","Place-555d735f4a6f7317a8830000","Place-555d73604a6f7317a8840000","Place-555d73604a6f7317a8850000","Place-555d73604a6f7317a8860000","Place-555d73604a6f7317a8870000","Plan-555d72b44a6f73175d0b0000","Post-555d72b64a6f73175d140000","User-555d72b04a6f73175d050000","User-555d72b14a6f73175d060000"]}
// ...
// the user can Want certain docs, for example public "Place" docs.
// they create a Want record, which when seen by the SG should grant them access
// to the wanted doc.
if (doc.type == 'Want') {
var parts = doc._id.split("-");
var type = parts.shift();
if (type != 'Want') {
throw({forbidden: "bad want"});
}
var owner_id = parts.shift(); // Want doc ids must be in the form of Want-{userid}-{otherid}
requireUser(owner_id);
channel('Account-'+owner_id);
if (doc.want_type == 'Place') {
access(owner_id, doc.want_type+'-'+doc.want_id);
}
} else if (doc.type == 'Place') {
channel(doc.type+'-'+doc._id);
}
// ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment