Using globally resolveable SyncBase

Change-Id: I0ebcb83338c32c1513ef5eabafbb1b581cc66495
diff --git a/src/travel.js b/src/travel.js
index 4b94a91..00485ca 100644
--- a/src/travel.js
+++ b/src/travel.js
@@ -3,6 +3,7 @@
 // license that can be found in the LICENSE file.
 
 var Deferred = require('vanadium/src/lib/deferred');
+var queryString = require('query-string');
 var raf = require('raf');
 
 var $ = require('./util/jquery');
@@ -426,10 +427,16 @@
         };
       });
 
+    var sbName = opts.syncbase ||
+      queryString.parse(location.search).syncbase || 'travel/sgadmin';
+    if ($.isNumeric(sbName)) {
+      sbName = '/localhost:' + sbName;
+    }
+
     var sync = this.sync = new TravelSync(vanadiumStartup, {
       maps: maps,
       placesService: map.createPlacesService()
-    });
+    }, sbName);
     sync.bindDestinations(destinations);
 
     this.info(strings['Connecting...'], sync.startup
diff --git a/src/travelsync.js b/src/travelsync.js
index 9f7a20c..37c9a87 100644
--- a/src/travelsync.js
+++ b/src/travelsync.js
@@ -5,7 +5,6 @@
 require('es6-shim');
 
 var _ = require('lodash');
-var queryString = require('query-string');
 var uuid = require('uuid');
 var vanadium = require('vanadium');
 
@@ -637,14 +636,9 @@
       var self = this;
       var vanadiumWrapper = args.vanadiumWrapper;
 
-      var sbName = queryString.parse(location.search).syncbase || 4000;
-      if ($.isNumeric(sbName)) {
-        sbName = '/localhost:' + sbName;
-      }
-
       this.status.syncbase = 'starting';
       return vanadiumWrapper
-        .syncbase(sbName)
+        .syncbase(this.syncbaseName)
         .then(function(syncbase) {
           syncbase.onError.add(self.onError);
           syncbase.onUpdate.add(self.processUpdates);
@@ -713,11 +707,13 @@
    * @mapsDependencies an object with the following keys:
    *  maps
    *  placesService
+   * @syncbaseName name of the local SyncBase endpoint.
    */
-  init: function(prereqs, mapsDependencies) {
+  init: function(prereqs, mapsDependencies, syncbaseName) {
     var self = this;
 
     this.mapsDeps = mapsDependencies;
+    this.syncbaseName = syncbaseName;
 
     this.tripStatus = {};
     this.messages = {};
diff --git a/tools/start_services.sh b/tools/start_services.sh
index b8e74a5..e6509e2 100644
--- a/tools/start_services.sh
+++ b/tools/start_services.sh
@@ -29,19 +29,19 @@
   local -r TMP=tmp
   local -r CREDS=./tmp/creds/${creds-}
   local -r PORT=${port-4000}
-  local -r MOUNTTABLED_ADDR=":$((PORT+1))"
   local -r SYNCBASED_ADDR=":$((PORT))"
   local -r BLESSINGS=`principal dump --v23.credentials=${CREDS} -s=true`
+  local -r RE="dev\.v\.io/u/(.*)" 
+  if [[ ${BLESSINGS} =~ ${RE} ]]
+    then local -r V_USER=${BASH_REMATCH[1]}
+  fi
   mkdir -p $TMP
-  mounttabled \
-    --v23.tcp.address=${MOUNTTABLED_ADDR} \
-    --v23.credentials=${CREDS} &
   ./bin/syncbased \
     --v=5 \
     --alsologtostderr=false \
     --root-dir=${TMP}/syncbase_${PORT} \
-    --name=syncbase \
-    --v23.namespace.root=/${MOUNTTABLED_ADDR} \
+    --name=users/${V_USER}/travel/sgadmin \
+    --v23.namespace.root=/ns.dev.v.io:8101 \
     --v23.tcp.address=${SYNCBASED_ADDR} \
     --v23.credentials=${CREDS} \
     --v23.permissions.literal="{\"Admin\":{\"In\":[\"${BLESSINGS}\"]},\"Write\":{\"In\":[\"${BLESSINGS}\"]},\"Read\":{\"In\":[\"${BLESSINGS}\"]},\"Resolve\":{\"In\":[\"${BLESSINGS}\"]},\"Debug\":{\"In\":[\"...\"]}}"