This is an automated email from the ASF dual-hosted git repository.

shamrick pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git


The following commit(s) were added to refs/heads/master by this push:
     new 7d7d21b  for the api, renames root to unstable (#6312)
7d7d21b is described below

commit 7d7d21bbcae94ce46176de19cd9b877ed103c490
Author: Jeremy Mitchell <[email protected]>
AuthorDate: Tue Oct 26 07:42:52 2021 -0600

    for the api, renames root to unstable (#6312)
---
 traffic_portal/app/src/common/api/ASNService.js    | 10 ++---
 traffic_portal/app/src/common/api/AuthService.js   |  8 ++--
 traffic_portal/app/src/common/api/CDNService.js    | 44 +++++++++++-----------
 .../app/src/common/api/CacheGroupService.js        | 16 ++++----
 .../app/src/common/api/CacheStatsService.js        |  4 +-
 .../app/src/common/api/CapabilityService.js        |  2 +-
 .../app/src/common/api/ChangeLogService.js         |  4 +-
 .../app/src/common/api/CoordinateService.js        |  8 ++--
 .../src/common/api/DeliveryServiceRegexService.js  | 10 ++---
 .../common/api/DeliveryServiceRequestService.js    | 20 +++++-----
 .../app/src/common/api/DeliveryServiceService.js   | 36 +++++++++---------
 .../common/api/DeliveryServiceSslKeysService.js    | 10 ++---
 .../src/common/api/DeliveryServiceStatsService.js  |  6 +--
 .../api/DeliveryServiceUriSigningKeysService.js    |  4 +-
 .../common/api/DeliveryServiceUrlSigKeysService.js |  6 +--
 .../app/src/common/api/DivisionService.js          | 10 ++---
 .../app/src/common/api/EndpointService.js          |  2 +-
 .../src/common/api/FederationResolverService.js    |  6 +--
 .../app/src/common/api/FederationService.js        | 24 ++++++------
 traffic_portal/app/src/common/api/JobService.js    |  6 +--
 traffic_portal/app/src/common/api/OriginService.js |  8 ++--
 .../app/src/common/api/ParameterService.js         | 12 +++---
 .../app/src/common/api/PhysLocationService.js      | 10 ++---
 .../app/src/common/api/ProfileParameterService.js  |  6 +--
 .../app/src/common/api/ProfileService.js           | 22 +++++------
 traffic_portal/app/src/common/api/RegionService.js | 10 ++---
 traffic_portal/app/src/common/api/RoleService.js   |  8 ++--
 .../app/src/common/api/ServerCapabilityService.js  | 14 +++----
 traffic_portal/app/src/common/api/ServerService.js | 28 +++++++-------
 .../app/src/common/api/ServiceCategoryService.js   | 10 ++---
 .../app/src/common/api/StaticDnsEntryService.js    | 10 ++---
 traffic_portal/app/src/common/api/StatusService.js | 10 ++---
 traffic_portal/app/src/common/api/TenantService.js | 10 ++---
 traffic_portal/app/src/common/api/ToolsService.js  |  4 +-
 .../app/src/common/api/TopologyService.js          | 12 +++---
 .../app/src/common/api/TrafficPortalService.js     |  2 +-
 traffic_portal/app/src/common/api/TypeService.js   | 14 +++----
 traffic_portal/app/src/common/api/UserService.js   | 14 +++----
 traffic_portal/app/src/scripts/config.js           |  2 +-
 39 files changed, 221 insertions(+), 221 deletions(-)

diff --git a/traffic_portal/app/src/common/api/ASNService.js 
b/traffic_portal/app/src/common/api/ASNService.js
index aaadee8..e25552d 100644
--- a/traffic_portal/app/src/common/api/ASNService.js
+++ b/traffic_portal/app/src/common/api/ASNService.js
@@ -20,7 +20,7 @@
 var ASNService = function($http, $q, locationUtils, messageModel, ENV) {
 
     this.getASNs = function(queryParams) {
-        return $http.get(ENV.api['root'] + 'asns', {params: queryParams}).then(
+        return $http.get(ENV.api.unstable + 'asns', {params: 
queryParams}).then(
             function(result) {
                 return result.data.response;
             },
@@ -32,7 +32,7 @@ var ASNService = function($http, $q, locationUtils, 
messageModel, ENV) {
     };
 
     this.getASN = function(id) {
-        return $http.get(ENV.api['root'] + 'asns', {params: {id: id}}).then(
+        return $http.get(ENV.api.unstable + 'asns', {params: {id: id}}).then(
             function(result) {
                 return result.data.response[0];
             },
@@ -44,7 +44,7 @@ var ASNService = function($http, $q, locationUtils, 
messageModel, ENV) {
     };
 
     this.createASN = function(asn) {
-        return $http.post(ENV.api['root'] + 'asns', asn).then(
+        return $http.post(ENV.api.unstable + 'asns', asn).then(
             function(result) {
                 messageModel.setMessages([{level: 'success', text: 'ASN 
created' }], true);
                 console.info("created new ASN: ", result.data.response);
@@ -59,7 +59,7 @@ var ASNService = function($http, $q, locationUtils, 
messageModel, ENV) {
     };
 
     this.updateASN = function(asn) {
-        return $http.put(ENV.api['root'] + 'asns', asn, {params: {id: 
asn.id}}).then(
+        return $http.put(ENV.api.unstable + 'asns', asn, {params: {id: 
asn.id}}).then(
             function(result) {
                 messageModel.setMessages([{level: 'success', text: 'ASN 
updated'}], false);
                 console.info('updated ASN: ', result.data.response);
@@ -73,7 +73,7 @@ var ASNService = function($http, $q, locationUtils, 
messageModel, ENV) {
     };
 
     this.deleteASN = function(id) {
-        return $http.delete(ENV.api['root'] + 'asns', {params: {id: id}}).then(
+        return $http.delete(ENV.api.unstable + 'asns', {params: {id: 
id}}).then(
             function(result) {
                 messageModel.setMessages(result.data.alerts, true);
                 return result;
diff --git a/traffic_portal/app/src/common/api/AuthService.js 
b/traffic_portal/app/src/common/api/AuthService.js
index 8fee5b8..ef5a97e 100644
--- a/traffic_portal/app/src/common/api/AuthService.js
+++ b/traffic_portal/app/src/common/api/AuthService.js
@@ -21,7 +21,7 @@ var AuthService = function($rootScope, $http, $state, 
$location, userModel, mess
 
     this.login = function(username, password) {
         userModel.resetUser();
-        return $http.post(ENV.api['root'] + 'user/login', { u: username, p: 
password }).then(
+        return $http.post(ENV.api.unstable + 'user/login', { u: username, p: 
password }).then(
             function(result) {
                 $rootScope.$broadcast('authService::login');
                 const redirect = 
decodeURIComponent($location.search().redirect);
@@ -41,7 +41,7 @@ var AuthService = function($rootScope, $http, $state, 
$location, userModel, mess
 
     this.tokenLogin = function(token) {
         userModel.resetUser();
-        return $http.post(ENV.api['root'] + "user/login/token", { t: token 
}).then(
+        return $http.post(ENV.api.unstable + "user/login/token", { t: token 
}).then(
             function(result) {
                 $rootScope.$broadcast('authService::login');
                 return result;
@@ -53,7 +53,7 @@ var AuthService = function($rootScope, $http, $state, 
$location, userModel, mess
     };
 
     this.oauthLogin = function(authCodeTokenUrl, code, clientId, redirectUri) {
-        return $http.post(ENV.api['root'] + 'user/login/oauth', { 
authCodeTokenUrl: authCodeTokenUrl, code: code, clientId: clientId, 
redirectUri: redirectUri})
+        return $http.post(ENV.api.unstable + 'user/login/oauth', { 
authCodeTokenUrl: authCodeTokenUrl, code: code, clientId: clientId, 
redirectUri: redirectUri})
             .then(
                 function(result) {
                     $rootScope.$broadcast('authService::login');
@@ -78,7 +78,7 @@ var AuthService = function($rootScope, $http, $state, 
$location, userModel, mess
 
     this.logout = function() {
         userModel.resetUser();
-        return $http.post(ENV.api['root'] + 'user/logout').then(
+        return $http.post(ENV.api.unstable + 'user/logout').then(
             function(result) {
                 $rootScope.$broadcast('trafficPortal::exit');
                 if ($state.current.name == 'trafficPortal.public.login') {
diff --git a/traffic_portal/app/src/common/api/CDNService.js 
b/traffic_portal/app/src/common/api/CDNService.js
index 0b81350..3908809 100644
--- a/traffic_portal/app/src/common/api/CDNService.js
+++ b/traffic_portal/app/src/common/api/CDNService.js
@@ -20,7 +20,7 @@
 var CDNService = function($http, locationUtils, messageModel, ENV) {
 
     this.getCDNs = function(all) {
-        return $http.get(ENV.api['root'] + 'cdns').then(
+        return $http.get(ENV.api.unstable + 'cdns').then(
             function(result) {
                 let response;
                 if (all) { // there is a CDN called "ALL" that is not really a 
CDN but you might want it...
@@ -40,7 +40,7 @@ var CDNService = function($http, locationUtils, messageModel, 
ENV) {
 
 
     this.getCDN = function(id) {
-        return $http.get(ENV.api['root'] + 'cdns', {params: {id: id}}).then(
+        return $http.get(ENV.api.unstable + 'cdns', {params: {id: id}}).then(
             function(result) {
                 return result.data.response[0];
             },
@@ -51,7 +51,7 @@ var CDNService = function($http, locationUtils, messageModel, 
ENV) {
     };
 
     this.createCDN = function(cdn) {
-        return $http.post(ENV.api['root'] + 'cdns', cdn).then(
+        return $http.post(ENV.api.unstable + 'cdns', cdn).then(
             function(result) {
                 messageModel.setMessages(result.data.alerts, true);
                 locationUtils.navigateToPath('/cdns');
@@ -66,7 +66,7 @@ var CDNService = function($http, locationUtils, messageModel, 
ENV) {
 
     // todo: change to use query param when it is supported
     this.updateCDN = function(cdn) {
-        return $http.put(ENV.api['root'] + 'cdns/' + cdn.id, cdn).then(
+        return $http.put(ENV.api.unstable + 'cdns/' + cdn.id, cdn).then(
             function(result) {
                 messageModel.setMessages(result.data.alerts, false);
                 return result;
@@ -80,7 +80,7 @@ var CDNService = function($http, locationUtils, messageModel, 
ENV) {
 
     // todo: change to use query param when it is supported
     this.deleteCDN = function(id) {
-        return $http.delete(ENV.api['root'] + 'cdns/' + id).then(
+        return $http.delete(ENV.api.unstable + 'cdns/' + id).then(
             function(result) {
                 return result.data;
             },
@@ -92,7 +92,7 @@ var CDNService = function($http, locationUtils, messageModel, 
ENV) {
     };
 
     this.queueServerUpdates = function(id) {
-        return $http.post(ENV.api['root'] + 'cdns/' + id + '/queue_update', 
{action: "queue"}).then(
+        return $http.post(ENV.api.unstable + 'cdns/' + id + '/queue_update', 
{action: "queue"}).then(
             function(result) {
                 messageModel.setMessages([{level: 'success', text: 'Queued CDN 
server updates'}], false);
                 return result;
@@ -105,7 +105,7 @@ var CDNService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.clearServerUpdates = function(id) {
-        return $http.post(ENV.api['root'] + 'cdns/' + id + '/queue_update', 
{action: "dequeue"}).then(
+        return $http.post(ENV.api.unstable + 'cdns/' + id + '/queue_update', 
{action: "dequeue"}).then(
             function(result) {
                 messageModel.setMessages([{ level: 'success', text: 'Cleared 
CDN server updates'}], false);
                 return result;
@@ -118,7 +118,7 @@ var CDNService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.getCapacity = function() {
-        return $http.get(ENV.api['root'] + 'cdns/capacity').then(
+        return $http.get(ENV.api.unstable + 'cdns/capacity').then(
             function(result) {
                 return result.data.response;
             },
@@ -129,7 +129,7 @@ var CDNService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.getRoutingMethods = function() {
-        return $http.get(ENV.api['root'] + 'cdns/routing').then(
+        return $http.get(ENV.api.unstable + 'cdns/routing').then(
             function(result) {
                 return result.data.response;
             },
@@ -140,7 +140,7 @@ var CDNService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.getCurrentStats = function() {
-        return $http.get(ENV.api['root'] + 'current_stats').then(
+        return $http.get(ENV.api.unstable + 'current_stats').then(
             function(result) {
                 if (result) {
                     return result.data.response;
@@ -154,7 +154,7 @@ var CDNService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.getCurrentSnapshot = function(cdnName) {
-       return $http.get(ENV.api['root'] + 'cdns/' + cdnName + 
'/snapshot').then(
+       return $http.get(ENV.api.unstable + 'cdns/' + cdnName + 
'/snapshot').then(
             function(result) {
                 return result.data.response;
             },
@@ -165,7 +165,7 @@ var CDNService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.getNewSnapshot = function(cdnName) {
-        return $http.get(ENV.api['root'] + 'cdns/' + cdnName + 
'/snapshot/new').then(
+        return $http.get(ENV.api.unstable + 'cdns/' + cdnName + 
'/snapshot/new').then(
             function(result) {
                 return result.data.response;
             },
@@ -176,7 +176,7 @@ var CDNService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.snapshot = function(cdn) {
-        return $http.put(ENV.api['root'] + 'snapshot', undefined, {params: 
{cdnID: cdn.id}}).then(
+        return $http.put(ENV.api.unstable + 'snapshot', undefined, {params: 
{cdnID: cdn.id}}).then(
             function(result) {
                 messageModel.setMessages([{level: 'success', text: 'Snapshot 
performed'}], true);
                 locationUtils.navigateToPath('/cdns/' + cdn.id);
@@ -190,7 +190,7 @@ var CDNService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.getDNSSECKeys = function(cdnName) {
-        return $http.get(ENV.api['root'] + 'cdns/name/' + cdnName + 
'/dnsseckeys').then(
+        return $http.get(ENV.api.unstable + 'cdns/name/' + cdnName + 
'/dnsseckeys').then(
             function(result) {
                 return result.data.response;
             },
@@ -201,7 +201,7 @@ var CDNService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.generateDNSSECKeys = function(dnssecKeysRequest) {
-        return $http.post(ENV.api['root'] + 'cdns/dnsseckeys/generate', 
dnssecKeysRequest).then(
+        return $http.post(ENV.api.unstable + 'cdns/dnsseckeys/generate', 
dnssecKeysRequest).then(
             function(result) {
                 return result;
             },
@@ -213,7 +213,7 @@ var CDNService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
        this.regenerateKSK = function(kskRequest, cdnKey) {
-               return $http.post(ENV.api['root'] + 'cdns/' + cdnKey + 
'/dnsseckeys/ksk/generate', kskRequest).then(
+               return $http.post(ENV.api.unstable + 'cdns/' + cdnKey + 
'/dnsseckeys/ksk/generate', kskRequest).then(
                        function(result) {
                                return result;
                        },
@@ -225,7 +225,7 @@ var CDNService = function($http, locationUtils, 
messageModel, ENV) {
        }
 
     this.getNotifications = function(queryParams) {
-        return $http.get(ENV.api['root'] + 'cdn_notifications', { params: 
queryParams }).then(
+        return $http.get(ENV.api.unstable + 'cdn_notifications', { params: 
queryParams }).then(
             function(result) {
                 return result.data.response;
             },
@@ -236,7 +236,7 @@ var CDNService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.createNotification = function(cdn, notification) {
-        return $http.post(ENV.api['root'] + 'cdn_notifications', { cdn: 
cdn.name, notification: notification}).then(
+        return $http.post(ENV.api.unstable + 'cdn_notifications', { cdn: 
cdn.name, notification: notification}).then(
             function(result) {
                 return result;
             },
@@ -248,7 +248,7 @@ var CDNService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.deleteNotification = function(queryParams) {
-        return $http.delete(ENV.api['root'] + 'cdn_notifications', { params: 
queryParams }).then(
+        return $http.delete(ENV.api.unstable + 'cdn_notifications', { params: 
queryParams }).then(
             function(result) {
                 return result;
             },
@@ -260,7 +260,7 @@ var CDNService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.getLocks = function(queryParams) {
-        return $http.get(ENV.api['root'] + 'cdn_locks', { params: queryParams 
}).then(
+        return $http.get(ENV.api.unstable + 'cdn_locks', { params: queryParams 
}).then(
             function(result) {
                 return result.data.response;
             },
@@ -271,7 +271,7 @@ var CDNService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.createLock = function(lock) {
-        return $http.post(ENV.api['root'] + 'cdn_locks', lock).then(
+        return $http.post(ENV.api.unstable + 'cdn_locks', lock).then(
             function(result) {
                 return result;
             },
@@ -283,7 +283,7 @@ var CDNService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.deleteLock = function(queryParams) {
-        return $http.delete(ENV.api['root'] + 'cdn_locks', { params: 
queryParams }).then(
+        return $http.delete(ENV.api.unstable + 'cdn_locks', { params: 
queryParams }).then(
             function(result) {
                 return result;
             },
diff --git a/traffic_portal/app/src/common/api/CacheGroupService.js 
b/traffic_portal/app/src/common/api/CacheGroupService.js
index 2459726..79f6a73 100644
--- a/traffic_portal/app/src/common/api/CacheGroupService.js
+++ b/traffic_portal/app/src/common/api/CacheGroupService.js
@@ -20,7 +20,7 @@
 var CacheGroupService = function($http, locationUtils, messageModel, ENV) {
 
     this.getCacheGroups = function(queryParams) {
-        return $http.get(ENV.api['root'] + 'cachegroups', {params: 
queryParams}).then(
+        return $http.get(ENV.api.unstable + 'cachegroups', {params: 
queryParams}).then(
             function(result) {
                 return result.data.response;
             },
@@ -31,7 +31,7 @@ var CacheGroupService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.getCacheGroup = function(id) {
-        return $http.get(ENV.api['root'] + 'cachegroups', {params: {'id': 
id}}).then(
+        return $http.get(ENV.api.unstable + 'cachegroups', {params: {'id': 
id}}).then(
             function (result) {
                 return result.data.response[0];
             },
@@ -42,7 +42,7 @@ var CacheGroupService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.createCacheGroup = function(cacheGroup) {
-        return $http.post(ENV.api['root'] + 'cachegroups', cacheGroup).then(
+        return $http.post(ENV.api.unstable + 'cachegroups', cacheGroup).then(
             function (result) {
                 messageModel.setMessages(result.data.alerts, true);
                 locationUtils.navigateToPath('/cache-groups');
@@ -57,7 +57,7 @@ var CacheGroupService = function($http, locationUtils, 
messageModel, ENV) {
 
     // todo: change to use query param when it is supported
     this.updateCacheGroup = function(cacheGroup) {
-        return $http.put(ENV.api['root'] + 'cachegroups/' + cacheGroup.id, 
cacheGroup).then(
+        return $http.put(ENV.api.unstable + 'cachegroups/' + cacheGroup.id, 
cacheGroup).then(
             function(result) {
                 messageModel.setMessages(result.data.alerts, false);
                 return result;
@@ -71,7 +71,7 @@ var CacheGroupService = function($http, locationUtils, 
messageModel, ENV) {
 
     // todo: change to use query param when it is supported
     this.deleteCacheGroup = function(id) {
-        return $http.delete(ENV.api['root'] + "cachegroups/" + id).then(
+        return $http.delete(ENV.api.unstable + "cachegroups/" + id).then(
             function(result) {
                 return result.data;
             },
@@ -83,7 +83,7 @@ var CacheGroupService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.queueServerUpdates = function(cgId, cdnId) {
-        return $http.post(ENV.api['root'] + 'cachegroups/' + cgId + 
'/queue_update', {action: "queue", cdnId: cdnId}).then(
+        return $http.post(ENV.api.unstable + 'cachegroups/' + cgId + 
'/queue_update', {action: "queue", cdnId: cdnId}).then(
             function(result) {
                 messageModel.setMessages([{level: 'success', text: 'Queued 
Cache Group server updates'}], false);
                 return result;
@@ -96,7 +96,7 @@ var CacheGroupService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.clearServerUpdates = function(cgId, cdnId) {
-        return $http.post(ENV.api['root'] + 'cachegroups/' + cgId + 
'/queue_update', {action: "dequeue", cdnId: cdnId}).then(
+        return $http.post(ENV.api.unstable + 'cachegroups/' + cgId + 
'/queue_update', {action: "dequeue", cdnId: cdnId}).then(
             function(result) {
                 messageModel.setMessages([{level: 'success', text: 'Cleared 
Cache Group server updates'}], false);
                 return result;
@@ -109,7 +109,7 @@ var CacheGroupService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.getCacheGroupHealth = function() {
-        return $http.get(ENV.api['root'] + "cdns/health").then(
+        return $http.get(ENV.api.unstable + "cdns/health").then(
             function(result) {
                 return result.data.response;
             },
diff --git a/traffic_portal/app/src/common/api/CacheStatsService.js 
b/traffic_portal/app/src/common/api/CacheStatsService.js
index 1e5da46..abb6481 100644
--- a/traffic_portal/app/src/common/api/CacheStatsService.js
+++ b/traffic_portal/app/src/common/api/CacheStatsService.js
@@ -20,7 +20,7 @@
 var CacheStatsService = function($http, ENV, messageModel) {
 
        this.getBandwidth = function(cdnName, start, end) {
-               const url = ENV.api['root'] + "cache_stats";
+               const url = ENV.api.unstable + "cache_stats";
                const params = {
                        cdnName: cdnName,
                        metricType: 'bandwidth',
@@ -40,7 +40,7 @@ var CacheStatsService = function($http, ENV, messageModel) {
        };
 
        this.getConnections = function(cdnName, start, end) {
-               const url = ENV.api['root'] + "cache_stats";
+               const url = ENV.api.unstable + "cache_stats";
                const params = {
                        cdnName: cdnName,
                        metricType: 'connections',
diff --git a/traffic_portal/app/src/common/api/CapabilityService.js 
b/traffic_portal/app/src/common/api/CapabilityService.js
index 6992641..28baa79 100644
--- a/traffic_portal/app/src/common/api/CapabilityService.js
+++ b/traffic_portal/app/src/common/api/CapabilityService.js
@@ -20,7 +20,7 @@
 var CapabilityService = function($http, messageModel, ENV) {
 
        this.getCapabilities = function(queryParams) {
-               return $http.get(ENV.api['root'] + 'capabilities', {params: 
queryParams}).then(
+               return $http.get(ENV.api.unstable + 'capabilities', {params: 
queryParams}).then(
                        function(result) {
                                return result.data.response;
                        },
diff --git a/traffic_portal/app/src/common/api/ChangeLogService.js 
b/traffic_portal/app/src/common/api/ChangeLogService.js
index b51a513..979f3d4 100644
--- a/traffic_portal/app/src/common/api/ChangeLogService.js
+++ b/traffic_portal/app/src/common/api/ChangeLogService.js
@@ -20,7 +20,7 @@
 var ChangeLogService = function($http, $rootScope, ENV) {
 
        this.getNewLogCount = function() {
-               return $http.get(ENV.api['root'] + 'logs/newcount', { 
ignoreLoadingBar: true }).then(
+               return $http.get(ENV.api.unstable + 'logs/newcount', { 
ignoreLoadingBar: true }).then(
                        function(result) {
                                return result.data.response;
                        },
@@ -32,7 +32,7 @@ var ChangeLogService = function($http, $rootScope, ENV) {
 
        this.getChangeLogs = function(queryParams) {
                $rootScope.$broadcast('changeLogService::getChangeLogs');
-               return $http.get(ENV.api['root'] + 'logs', {params: 
queryParams}).then(
+               return $http.get(ENV.api.unstable + 'logs', {params: 
queryParams}).then(
                        function(result) {
                                return result.data.response;
                        },
diff --git a/traffic_portal/app/src/common/api/CoordinateService.js 
b/traffic_portal/app/src/common/api/CoordinateService.js
index fff1678..40613e6 100644
--- a/traffic_portal/app/src/common/api/CoordinateService.js
+++ b/traffic_portal/app/src/common/api/CoordinateService.js
@@ -20,7 +20,7 @@
 var CoordinateService = function($http, locationUtils, messageModel, ENV) {
 
     this.getCoordinates = function(queryParams) {
-        return $http.get(ENV.api['root'] + 'coordinates', {params: 
queryParams}).then(
+        return $http.get(ENV.api.unstable + 'coordinates', {params: 
queryParams}).then(
             function(result) {
                 return result.data.response;
             },
@@ -31,7 +31,7 @@ var CoordinateService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.createCoordinate = function(coordinate) {
-        return $http.post(ENV.api['root'] + "coordinates", coordinate).then(
+        return $http.post(ENV.api.unstable + "coordinates", coordinate).then(
             function(response) {
                 messageModel.setMessages(response.data.alerts, true);
                 locationUtils.navigateToPath('/coordinates');
@@ -45,7 +45,7 @@ var CoordinateService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.updateCoordinate = function(id, coordinate) {
-        return $http.put(ENV.api['root'] + "coordinates", coordinate, {params: 
{id: id}}).then(
+        return $http.put(ENV.api.unstable + "coordinates", coordinate, 
{params: {id: id}}).then(
             function(response) {
                 messageModel.setMessages(response.data.alerts, false);
                 return response;
@@ -58,7 +58,7 @@ var CoordinateService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.deleteCoordinate = function(id) {
-        return $http.delete(ENV.api['root'] + "coordinates", {params: {id: 
id}}).then(
+        return $http.delete(ENV.api.unstable + "coordinates", {params: {id: 
id}}).then(
             function(response) {
                 messageModel.setMessages(response.data.alerts, true);
                 return response;
diff --git a/traffic_portal/app/src/common/api/DeliveryServiceRegexService.js 
b/traffic_portal/app/src/common/api/DeliveryServiceRegexService.js
index 18eb287..a4a2572 100644
--- a/traffic_portal/app/src/common/api/DeliveryServiceRegexService.js
+++ b/traffic_portal/app/src/common/api/DeliveryServiceRegexService.js
@@ -20,7 +20,7 @@
 var DeliveryServiceRegexService = function($http, locationUtils, messageModel, 
ENV) {
 
        this.getDeliveryServiceRegexes = function(dsId) {
-               return $http.get(ENV.api['root'] + 'deliveryservices/' + dsId + 
'/regexes').then(
+               return $http.get(ENV.api.unstable + 'deliveryservices/' + dsId 
+ '/regexes').then(
                        function(result) {
                                return result.data.response;
                        },
@@ -31,7 +31,7 @@ var DeliveryServiceRegexService = function($http, 
locationUtils, messageModel, E
        };
 
        this.getDeliveryServiceRegex = function(dsId, regexId) {
-               return $http.get(ENV.api['root'] + 'deliveryservices/' + dsId + 
'/regexes', {params: {id: regexId}}).then(
+               return $http.get(ENV.api.unstable + 'deliveryservices/' + dsId 
+ '/regexes', {params: {id: regexId}}).then(
                        function(result) {
                                return result.data.response[0];
                        },
@@ -42,7 +42,7 @@ var DeliveryServiceRegexService = function($http, 
locationUtils, messageModel, E
        };
 
        this.createDeliveryServiceRegex = function(dsId, regex) {
-               return $http.post(ENV.api['root'] + 'deliveryservices/' + dsId 
+ '/regexes', regex).then(
+               return $http.post(ENV.api.unstable + 'deliveryservices/' + dsId 
+ '/regexes', regex).then(
                        function(result) {
                                messageModel.setMessages(result.data.alerts, 
true);
                                
locationUtils.navigateToPath('/delivery-services/' + dsId + '/regexes');
@@ -56,7 +56,7 @@ var DeliveryServiceRegexService = function($http, 
locationUtils, messageModel, E
        };
 
        this.updateDeliveryServiceRegex = function(dsId, regex) {
-               return $http.put(ENV.api['root'] + 'deliveryservices/' + dsId + 
'/regexes/' + regex.id, regex).then(
+               return $http.put(ENV.api.unstable + 'deliveryservices/' + dsId 
+ '/regexes/' + regex.id, regex).then(
                        function(result) {
                                messageModel.setMessages([{level: 'success', 
text:'Regex updated'}], false);
                                return result;
@@ -69,7 +69,7 @@ var DeliveryServiceRegexService = function($http, 
locationUtils, messageModel, E
        };
 
        this.deleteDeliveryServiceRegex = function(dsId, regexId) {
-               return $http.delete(ENV.api['root'] + 'deliveryservices/' + 
dsId + '/regexes/' + regexId).then(
+               return $http.delete(ENV.api.unstable + 'deliveryservices/' + 
dsId + '/regexes/' + regexId).then(
                        function(result) {
                                messageModel.setMessages(result.data.alerts, 
true);
                                return result;
diff --git a/traffic_portal/app/src/common/api/DeliveryServiceRequestService.js 
b/traffic_portal/app/src/common/api/DeliveryServiceRequestService.js
index b1eda6a..1a681be 100644
--- a/traffic_portal/app/src/common/api/DeliveryServiceRequestService.js
+++ b/traffic_portal/app/src/common/api/DeliveryServiceRequestService.js
@@ -20,7 +20,7 @@
 var DeliveryServiceRequestService = function($http, locationUtils, 
messageModel, ENV) {
 
        this.getDeliveryServiceRequests = function(queryParams) {
-               return $http.get(ENV.api.root + 'deliveryservice_requests', 
{params: queryParams}).then(
+               return $http.get(ENV.api.unstable + 'deliveryservice_requests', 
{params: queryParams}).then(
                        function(result) {
                                return result.data.response;
                        },
@@ -37,7 +37,7 @@ var DeliveryServiceRequestService = function($http, 
locationUtils, messageModel,
                        dsRequest.requested.consistentHashQueryParams = 
Array.from(new 
Set(dsRequest.requested.consistentHashQueryParams)).filter(function(i){return 
i;});
                }
 
-               return $http.post(ENV.api.root + "deliveryservice_requests", 
dsRequest).then(
+               return $http.post(ENV.api.unstable + 
"deliveryservice_requests", dsRequest).then(
                        function(result) {
                                return result.data.response;
                        },
@@ -55,7 +55,7 @@ var DeliveryServiceRequestService = function($http, 
locationUtils, messageModel,
                        dsRequest.requested.consistentHashQueryParams = 
Array.from(new 
Set(dsRequest.requested.consistentHashQueryParams)).filter(function(i){return 
i;});
                }
 
-               return $http.put(ENV.api.root + "deliveryservice_requests", 
dsRequest, {params: {id: id}}).then(
+               return $http.put(ENV.api.unstable + "deliveryservice_requests", 
dsRequest, {params: {id: id}}).then(
                        function(result) {
                                return result;
                        },
@@ -67,7 +67,7 @@ var DeliveryServiceRequestService = function($http, 
locationUtils, messageModel,
        };
 
        this.deleteDeliveryServiceRequest = function(id, delay) {
-               return $http.delete(ENV.api.root + "deliveryservice_requests", 
{params: {id: id}}).then(
+               return $http.delete(ENV.api.unstable + 
"deliveryservice_requests", {params: {id: id}}).then(
                        function(response) {
                                return response;
                        },
@@ -79,7 +79,7 @@ var DeliveryServiceRequestService = function($http, 
locationUtils, messageModel,
        };
 
        this.assignDeliveryServiceRequest = function(id, username) {
-               return $http.put(ENV.api.root + "deliveryservice_requests/" + 
id + "/assign", { assignee: username }).then(
+               return $http.put(ENV.api.unstable + "deliveryservice_requests/" 
+ id + "/assign", { assignee: username }).then(
                        function(result) {
                                return result;
                        },
@@ -91,7 +91,7 @@ var DeliveryServiceRequestService = function($http, 
locationUtils, messageModel,
        };
 
        this.updateDeliveryServiceRequestStatus = function(id, status) {
-               return $http.put(ENV.api.root + "deliveryservice_requests/" + 
id + "/status", { status: status }).then(
+               return $http.put(ENV.api.unstable + "deliveryservice_requests/" 
+ id + "/status", { status: status }).then(
                        function(result) {
                                return result;
                        },
@@ -103,7 +103,7 @@ var DeliveryServiceRequestService = function($http, 
locationUtils, messageModel,
        };
 
        this.getDeliveryServiceRequestComments = function(queryParams) {
-               return $http.get(ENV.api.root + 
'deliveryservice_request_comments', {params: queryParams}).then(
+               return $http.get(ENV.api.unstable + 
'deliveryservice_request_comments', {params: queryParams}).then(
                        function(result) {
                                return result.data.response;
                        },
@@ -114,7 +114,7 @@ var DeliveryServiceRequestService = function($http, 
locationUtils, messageModel,
        };
 
        this.createDeliveryServiceRequestComment = function(comment) {
-               return $http.post(ENV.api.root + 
"deliveryservice_request_comments", comment).then(
+               return $http.post(ENV.api.unstable + 
"deliveryservice_request_comments", comment).then(
                        function(response) {
                                return response;
                        },
@@ -125,7 +125,7 @@ var DeliveryServiceRequestService = function($http, 
locationUtils, messageModel,
        };
 
        this.updateDeliveryServiceRequestComment = function(comment) {
-               return $http.put(ENV.api.root + 
"deliveryservice_request_comments", comment, {params: {id: comment.id}}).then(
+               return $http.put(ENV.api.unstable + 
"deliveryservice_request_comments", comment, {params: {id: comment.id}}).then(
                                function(result) {
                                        return result;
                                },
@@ -137,7 +137,7 @@ var DeliveryServiceRequestService = function($http, 
locationUtils, messageModel,
        };
 
        this.deleteDeliveryServiceRequestComment = function(comment) {
-               return $http.delete(ENV.api.root + 
"deliveryservice_request_comments", {params: {id: comment.id}}).then(
+               return $http.delete(ENV.api.unstable + 
"deliveryservice_request_comments", {params: {id: comment.id}}).then(
                        function(response) {
                                return response;
                        },
diff --git a/traffic_portal/app/src/common/api/DeliveryServiceService.js 
b/traffic_portal/app/src/common/api/DeliveryServiceService.js
index b162941..12de10e 100644
--- a/traffic_portal/app/src/common/api/DeliveryServiceService.js
+++ b/traffic_portal/app/src/common/api/DeliveryServiceService.js
@@ -20,7 +20,7 @@
 var DeliveryServiceService = function($http, locationUtils, messageModel, ENV) 
{
 
     this.getDeliveryServices = function(queryParams) {
-        return $http.get(ENV.api['root'] + 'deliveryservices', {params: 
queryParams}).then(
+        return $http.get(ENV.api.unstable + 'deliveryservices', {params: 
queryParams}).then(
             function(result) {
                 return result.data.response;
             },
@@ -31,7 +31,7 @@ var DeliveryServiceService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.getDeliveryService = function(id) {
-        return $http.get(ENV.api['root'] + 'deliveryservices', {params: {id: 
id}}).then(
+        return $http.get(ENV.api.unstable + 'deliveryservices', {params: {id: 
id}}).then(
             function(result) {
                 return result.data.response[0];
             },
@@ -45,7 +45,7 @@ var DeliveryServiceService = function($http, locationUtils, 
messageModel, ENV) {
         // strip out any falsy values or duplicates from 
consistentHashQueryParams
         ds.consistentHashQueryParams = Array.from(new 
Set(ds.consistentHashQueryParams)).filter(function(i){return i;});
 
-        return $http.post(ENV.api['root'] + "deliveryservices", ds).then(
+        return $http.post(ENV.api.unstable + "deliveryservices", ds).then(
             function(response) {
                 return response;
             },
@@ -59,7 +59,7 @@ var DeliveryServiceService = function($http, locationUtils, 
messageModel, ENV) {
         // strip out any falsy values or duplicates from 
consistentHashQueryParams
         ds.consistentHashQueryParams = Array.from(new 
Set(ds.consistentHashQueryParams)).filter(function(i){return i;});
 
-        return $http.put(ENV.api['root'] + "deliveryservices/" + ds.id, 
ds).then(
+        return $http.put(ENV.api.unstable + "deliveryservices/" + ds.id, 
ds).then(
             function(response) {
                 return response;
             },
@@ -71,7 +71,7 @@ var DeliveryServiceService = function($http, locationUtils, 
messageModel, ENV) {
 
     // todo: change to use query param when it is supported
     this.deleteDeliveryService = function(ds) {
-        return $http.delete(ENV.api['root'] + "deliveryservices/" + 
ds.id).then(
+        return $http.delete(ENV.api.unstable + "deliveryservices/" + 
ds.id).then(
             function(response) {
                 return response;
             },
@@ -82,7 +82,7 @@ var DeliveryServiceService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.getServerCapabilities = function(id) {
-        return $http.get(ENV.api['root'] + 
'deliveryservices_required_capabilities', { params: { deliveryServiceID: id } 
}).then(
+        return $http.get(ENV.api.unstable + 
'deliveryservices_required_capabilities', { params: { deliveryServiceID: id } 
}).then(
             function (result) {
                 return result.data.response;
             },
@@ -93,7 +93,7 @@ var DeliveryServiceService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.addServerCapability = function(deliveryServiceId, capabilityName) {
-        return $http.post(ENV.api['root'] + 
'deliveryservices_required_capabilities', { deliveryServiceID: 
deliveryServiceId, requiredCapability: capabilityName}).then(
+        return $http.post(ENV.api.unstable + 
'deliveryservices_required_capabilities', { deliveryServiceID: 
deliveryServiceId, requiredCapability: capabilityName}).then(
             function(result) {
                 return result.data;
             },
@@ -107,7 +107,7 @@ var DeliveryServiceService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.removeServerCapability = function(deliveryServiceId, capabilityName) {
-        return $http.delete(ENV.api['root'] + 
'deliveryservices_required_capabilities', { params: { deliveryServiceID: 
deliveryServiceId, requiredCapability: capabilityName} }).then(
+        return $http.delete(ENV.api.unstable + 
'deliveryservices_required_capabilities', { params: { deliveryServiceID: 
deliveryServiceId, requiredCapability: capabilityName} }).then(
             function(result) {
                 return result.data;
             },
@@ -121,7 +121,7 @@ var DeliveryServiceService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.getServerDeliveryServices = function(serverId) {
-        return $http.get(ENV.api['root'] + 'servers/' + serverId + 
'/deliveryservices').then(
+        return $http.get(ENV.api.unstable + 'servers/' + serverId + 
'/deliveryservices').then(
             function(result) {
                 return result.data.response;
             },
@@ -132,7 +132,7 @@ var DeliveryServiceService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.getDeliveryServiceTargets = function(dsId) {
-        return $http.get(ENV.api['root'] + 'steering/' + dsId + 
'/targets').then(
+        return $http.get(ENV.api.unstable + 'steering/' + dsId + 
'/targets').then(
             function(result) {
                 return result.data.response;
             },
@@ -143,7 +143,7 @@ var DeliveryServiceService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.getDeliveryServiceTarget = function(dsId, targetId) {
-        return $http.get(ENV.api['root'] + 'steering/' + dsId + '/targets', 
{params: {target: targetId}}).then(
+        return $http.get(ENV.api.unstable + 'steering/' + dsId + '/targets', 
{params: {target: targetId}}).then(
             function(result) {
                 return result.data.response[0];
             },
@@ -154,7 +154,7 @@ var DeliveryServiceService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.updateDeliveryServiceTarget = function(dsId, targetId, target) {
-        return $http.put(ENV.api['root'] + "steering/" + dsId + "/targets/" + 
targetId, target).then(
+        return $http.put(ENV.api.unstable + "steering/" + dsId + "/targets/" + 
targetId, target).then(
             function(result) {
                 messageModel.setMessages(result.data.alerts, true);
                 locationUtils.navigateToPath('/delivery-services/' + dsId + 
'/targets');
@@ -168,7 +168,7 @@ var DeliveryServiceService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.createDeliveryServiceTarget = function(dsId, target) {
-        return $http.post(ENV.api['root'] + 'steering/' + dsId + '/targets', 
target).then(
+        return $http.post(ENV.api.unstable + 'steering/' + dsId + '/targets', 
target).then(
             function(result) {
                 messageModel.setMessages(result.data.alerts, true);
                 locationUtils.navigateToPath('/delivery-services/' + dsId + 
'/targets');
@@ -182,7 +182,7 @@ var DeliveryServiceService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.deleteDeliveryServiceTarget = function(dsId, targetId) {
-        return $http.delete(ENV.api['root'] + 'steering/' + dsId + '/targets/' 
+ targetId).then(
+        return $http.delete(ENV.api.unstable + 'steering/' + dsId + 
'/targets/' + targetId).then(
             function(result) {
                 messageModel.setMessages(result.data.alerts, true);
                 locationUtils.navigateToPath('/delivery-services/' + dsId + 
'/targets');
@@ -196,7 +196,7 @@ var DeliveryServiceService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.getUserDeliveryServices = function(userId) {
-        return $http.get(ENV.api['root'] + 'users/' + userId + 
'/deliveryservices').then(
+        return $http.get(ENV.api.unstable + 'users/' + userId + 
'/deliveryservices').then(
             function(result) {
                 return result.data.response;
             },
@@ -207,7 +207,7 @@ var DeliveryServiceService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.deleteDeliveryServiceServer = function(dsId, serverId) {
-        return $http.delete(ENV.api['root'] + 'deliveryserviceserver/' + dsId 
+ '/' + serverId).then(
+        return $http.delete(ENV.api.unstable + 'deliveryserviceserver/' + dsId 
+ '/' + serverId).then(
             function(result) {
                 messageModel.setMessages(result.data.alerts, false);
                 return result;
@@ -220,7 +220,7 @@ var DeliveryServiceService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.assignDeliveryServiceServers = function(dsId, servers) {
-        return $http.post(ENV.api['root'] + 'deliveryserviceserver',{ dsId: 
dsId, servers: servers, replace: true } ).then(
+        return $http.post(ENV.api.unstable + 'deliveryserviceserver',{ dsId: 
dsId, servers: servers, replace: true } ).then(
             function(result) {
                 messageModel.setMessages(result.data.alerts, false);
                 return result;
@@ -233,7 +233,7 @@ var DeliveryServiceService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.getConsistentHashResult = function (regex, requestPath, cdnId) {
-        const url = ENV.api['root'] + "consistenthash";
+        const url = ENV.api.unstable + "consistenthash";
         const params = {regex: regex, requestPath: requestPath, cdnId: cdnId};
 
         return $http.post(url, params).then(
diff --git a/traffic_portal/app/src/common/api/DeliveryServiceSslKeysService.js 
b/traffic_portal/app/src/common/api/DeliveryServiceSslKeysService.js
index 2870f5d..891c937 100644
--- a/traffic_portal/app/src/common/api/DeliveryServiceSslKeysService.js
+++ b/traffic_portal/app/src/common/api/DeliveryServiceSslKeysService.js
@@ -41,7 +41,7 @@ var DeliveryServiceSslKeysService = function($http, 
locationUtils, messageModel,
         generateSslKeyForm.key = deliveryService.xmlId;
         generateSslKeyForm.authType = sslKeys.authType;
 
-        return $http.post(ENV.api['root'] + endpoint, generateSslKeyForm).then(
+        return $http.post(ENV.api.unstable + endpoint, 
generateSslKeyForm).then(
             function(result) {
                 if (message === null) {
                     messageModel.setMessages(result.data.alerts, true);
@@ -60,7 +60,7 @@ var DeliveryServiceSslKeysService = function($http, 
locationUtils, messageModel,
     };
 
     this.renewCert = function(deliveryService) {
-        return $http.post(ENV.api['root'] + "deliveryservices/xmlId/" + 
deliveryService.xmlId + "/sslkeys/renew").then(
+        return $http.post(ENV.api.unstable + "deliveryservices/xmlId/" + 
deliveryService.xmlId + "/sslkeys/renew").then(
             function(result) {
                 messageModel.setMessages(result.data.alerts, false);
                 return result.data.response;
@@ -86,7 +86,7 @@ var DeliveryServiceSslKeysService = function($http, 
locationUtils, messageModel,
         sslKeys.cdn = deliveryService.cdnName;
         sslKeys.deliveryservice = deliveryService.xmlId;
 
-        return $http.post(ENV.api['root'] + "deliveryservices/sslkeys/add", 
sslKeys).then(
+        return $http.post(ENV.api.unstable + "deliveryservices/sslkeys/add", 
sslKeys).then(
             function(result) {
                 messageModel.setMessages(result.data.alerts, false);
                 return result.data.response;
@@ -101,7 +101,7 @@ var DeliveryServiceSslKeysService = function($http, 
locationUtils, messageModel,
     };
 
     this.getSslKeys = function(deliveryService) {
-        return $http.get(ENV.api['root'] + "deliveryservices/xmlId/" + 
deliveryService.xmlId + "/sslkeys", {params: {decode: "true"}}).then(
+        return $http.get(ENV.api.unstable + "deliveryservices/xmlId/" + 
deliveryService.xmlId + "/sslkeys", {params: {decode: "true"}}).then(
             function(result) {
                 return result.data.response;
             },
@@ -115,7 +115,7 @@ var DeliveryServiceSslKeysService = function($http, 
locationUtils, messageModel,
     };
 
     this.getAcmeProviders = function() {
-        return $http.get(ENV.api['root'] + 'acme_accounts/providers').then(
+        return $http.get(ENV.api.unstable + 'acme_accounts/providers').then(
             function (result) {
                 return result.data.response;
             },
diff --git a/traffic_portal/app/src/common/api/DeliveryServiceStatsService.js 
b/traffic_portal/app/src/common/api/DeliveryServiceStatsService.js
index 0ffb53c..6736cee 100644
--- a/traffic_portal/app/src/common/api/DeliveryServiceStatsService.js
+++ b/traffic_portal/app/src/common/api/DeliveryServiceStatsService.js
@@ -20,7 +20,7 @@
 var DeliveryServiceStatsService = function($http, ENV, messageModel) {
 
        this.getBPS = function(xmlId, start, end) {
-               const url = ENV.api['root'] + "deliveryservice_stats";
+               const url = ENV.api.unstable + "deliveryservice_stats";
                const params = {
                        deliveryServiceName: xmlId,
                        metricType: 'kbps',
@@ -42,7 +42,7 @@ var DeliveryServiceStatsService = function($http, ENV, 
messageModel) {
        };
 
        this.getTPS = function(xmlId, start, end) {
-               const url = ENV.api['root'] + "deliveryservice_stats";
+               const url = ENV.api.unstable + "deliveryservice_stats";
                const params = {
                        deliveryServiceName: xmlId,
                        metricType: 'tps_total',
@@ -64,7 +64,7 @@ var DeliveryServiceStatsService = function($http, ENV, 
messageModel) {
        };
 
        this.getHttpStatusByGroup = function(xmlId, httpStatus, start, end) {
-               const url = ENV.api['root'] + "deliveryservice_stats";
+               const url = ENV.api.unstable + "deliveryservice_stats";
                const params = {
                        deliveryServiceName: xmlId,
                        metricType: 'tps_' + httpStatus,
diff --git 
a/traffic_portal/app/src/common/api/DeliveryServiceUriSigningKeysService.js 
b/traffic_portal/app/src/common/api/DeliveryServiceUriSigningKeysService.js
index 5f0ff2a..6ec8be5 100644
--- a/traffic_portal/app/src/common/api/DeliveryServiceUriSigningKeysService.js
+++ b/traffic_portal/app/src/common/api/DeliveryServiceUriSigningKeysService.js
@@ -20,7 +20,7 @@
 var DeliveryServiceUriSigningKeysService = function($http, ENV) {
 
        this.getKeys = function(xmlID) {
-               return $http.get(ENV.api['root'] + 'deliveryservices/' + xmlID 
+ '/urisignkeys').then(
+               return $http.get(ENV.api.unstable + 'deliveryservices/' + xmlID 
+ '/urisignkeys').then(
                        function(result) {
                                return result.data;
                        },
@@ -31,7 +31,7 @@ var DeliveryServiceUriSigningKeysService = function($http, 
ENV) {
        };
 
        this.setKeys = function(xmlID, newKeys) {
-               return $http.post(ENV.api['root'] + 'deliveryservices/' + xmlID 
+ '/urisignkeys', newKeys).then(
+               return $http.post(ENV.api.unstable + 'deliveryservices/' + 
xmlID + '/urisignkeys', newKeys).then(
                        function(result) {
                                return result.data;
                        },
diff --git 
a/traffic_portal/app/src/common/api/DeliveryServiceUrlSigKeysService.js 
b/traffic_portal/app/src/common/api/DeliveryServiceUrlSigKeysService.js
index d700ec0..bb1cc7f 100644
--- a/traffic_portal/app/src/common/api/DeliveryServiceUrlSigKeysService.js
+++ b/traffic_portal/app/src/common/api/DeliveryServiceUrlSigKeysService.js
@@ -20,7 +20,7 @@
 var DeliveryServiceUrlSigKeysService = function(locationUtils, messageModel, 
$http, ENV) {
 
        this.generateUrlSigKeys = function(dsXmlId) {
-               return $http.post(ENV.api['root'] + 'deliveryservices/xmlId/' + 
dsXmlId + '/urlkeys/generate').then(
+               return $http.post(ENV.api.unstable + 'deliveryservices/xmlId/' 
+ dsXmlId + '/urlkeys/generate').then(
                        function(result) {
                                messageModel.setMessages(result.data.alerts, 
false);
                                return result;
@@ -33,7 +33,7 @@ var DeliveryServiceUrlSigKeysService = 
function(locationUtils, messageModel, $ht
        };
 
        this.copyUrlSigKeys = function(dsXmlId, copyFromXmlId) {
-               return $http.post(ENV.api['root'] + 'deliveryservices/xmlId/' + 
dsXmlId + '/urlkeys/copyFromXmlId/' + copyFromXmlId).then(
+               return $http.post(ENV.api.unstable + 'deliveryservices/xmlId/' 
+ dsXmlId + '/urlkeys/copyFromXmlId/' + copyFromXmlId).then(
                        function(result) {
                                messageModel.setMessages(result.data.alerts, 
false);
                                return result;
@@ -46,7 +46,7 @@ var DeliveryServiceUrlSigKeysService = 
function(locationUtils, messageModel, $ht
        };
 
        this.getDeliveryServiceUrlSigKeys = function(dsId) {
-        return $http.get(ENV.api['root'] + "deliveryservices/" + dsId + 
"/urlkeys").then(
+        return $http.get(ENV.api.unstable + "deliveryservices/" + dsId + 
"/urlkeys").then(
             function(result) {
                 return result.data.response;
             },
diff --git a/traffic_portal/app/src/common/api/DivisionService.js 
b/traffic_portal/app/src/common/api/DivisionService.js
index 884ce0d..36fa3c2 100644
--- a/traffic_portal/app/src/common/api/DivisionService.js
+++ b/traffic_portal/app/src/common/api/DivisionService.js
@@ -20,7 +20,7 @@
 var DivisionService = function($http, ENV, locationUtils, messageModel) {
 
     this.getDivisions = function(queryParams) {
-        return $http.get(ENV.api['root'] + 'divisions', {params: 
queryParams}).then(
+        return $http.get(ENV.api.unstable + 'divisions', {params: 
queryParams}).then(
             function(result) {
                 return result.data.response;
             },
@@ -31,7 +31,7 @@ var DivisionService = function($http, ENV, locationUtils, 
messageModel) {
     };
 
     this.getDivision = function(id) {
-        return $http.get(ENV.api['root'] + 'divisions', {params: {id: 
id}}).then(
+        return $http.get(ENV.api.unstable + 'divisions', {params: {id: 
id}}).then(
             function(result) {
                 return result.data.response[0];
             },
@@ -42,7 +42,7 @@ var DivisionService = function($http, ENV, locationUtils, 
messageModel) {
     };
 
     this.createDivision = function(division) {
-        return $http.post(ENV.api['root'] + 'divisions', division).then(
+        return $http.post(ENV.api.unstable + 'divisions', division).then(
             function(result) {
                 messageModel.setMessages(result.data.alerts, true);
                 locationUtils.navigateToPath('/divisions');
@@ -57,7 +57,7 @@ var DivisionService = function($http, ENV, locationUtils, 
messageModel) {
 
     // todo: change to use query param when it is supported
     this.updateDivision = function(division) {
-        return $http.put(ENV.api['root'] + 'divisions/' + division.id, 
division).then(
+        return $http.put(ENV.api.unstable + 'divisions/' + division.id, 
division).then(
             function(result) {
                 messageModel.setMessages(result.data.alerts, false);
                 return result;            },
@@ -70,7 +70,7 @@ var DivisionService = function($http, ENV, locationUtils, 
messageModel) {
 
     // todo: change to use query param when it is supported
     this.deleteDivision = function(id) {
-        return $http.delete(ENV.api['root'] + 'divisions/' + id).then(
+        return $http.delete(ENV.api.unstable + 'divisions/' + id).then(
                 function(result) {
                     messageModel.setMessages(result.data.alerts, true);
                     return result;
diff --git a/traffic_portal/app/src/common/api/EndpointService.js 
b/traffic_portal/app/src/common/api/EndpointService.js
index 27e3827..a47242c 100644
--- a/traffic_portal/app/src/common/api/EndpointService.js
+++ b/traffic_portal/app/src/common/api/EndpointService.js
@@ -20,7 +20,7 @@
 var EndpointService = function($http, ENV) {
 
        this.getEndpoints = function(queryParams) {
-               return $http.get(ENV.api['root'] + 'api_capabilities', {params: 
queryParams}).then(
+               return $http.get(ENV.api.unstable + 'api_capabilities', 
{params: queryParams}).then(
                        function (result) {
                                return result.data.response;
                        },
diff --git a/traffic_portal/app/src/common/api/FederationResolverService.js 
b/traffic_portal/app/src/common/api/FederationResolverService.js
index 2246d9f..7ac45ed 100644
--- a/traffic_portal/app/src/common/api/FederationResolverService.js
+++ b/traffic_portal/app/src/common/api/FederationResolverService.js
@@ -20,7 +20,7 @@
 var FederationResolverService = function($http, ENV, locationUtils, 
messageModel) {
 
        this.getFederationResolvers = function(queryParams) {
-               return $http.get(ENV.api['root'] + 'federation_resolvers', 
{params: queryParams}).then(
+               return $http.get(ENV.api.unstable + 'federation_resolvers', 
{params: queryParams}).then(
                        function (result) {
                                return result.data.response;
                        },
@@ -31,7 +31,7 @@ var FederationResolverService = function($http, ENV, 
locationUtils, messageModel
        };
 
        this.createFederationResolver = function(fedResolver) {
-               return $http.post(ENV.api['root'] + 'federation_resolvers', 
fedResolver).then(
+               return $http.post(ENV.api.unstable + 'federation_resolvers', 
fedResolver).then(
                        function(result) {
                                return result;
                        },
@@ -42,7 +42,7 @@ var FederationResolverService = function($http, ENV, 
locationUtils, messageModel
        };
 
        this.assignFederationResolvers = function(fedId, fedResIds, replace) {
-               return $http.post(ENV.api['root'] + 'federations/' + fedId + 
'/federation_resolvers', { fedResolverIds: fedResIds, replace: replace }).then(
+               return $http.post(ENV.api.unstable + 'federations/' + fedId + 
'/federation_resolvers', { fedResolverIds: fedResIds, replace: replace }).then(
                        function(result) {
                                messageModel.setMessages([ { level: 'success', 
text: fedResIds.length + ' resolver(s) assigned to federation' } ], false);
                                return result;
diff --git a/traffic_portal/app/src/common/api/FederationService.js 
b/traffic_portal/app/src/common/api/FederationService.js
index 10a8684..b16895d 100644
--- a/traffic_portal/app/src/common/api/FederationService.js
+++ b/traffic_portal/app/src/common/api/FederationService.js
@@ -22,7 +22,7 @@ var FederationService = function($http, $q, ENV, 
locationUtils, messageModel) {
        const service = this;
 
        this.getCDNFederations = function(cdnName) {
-               return $http.get(ENV.api['root'] + 'cdns/' + cdnName + 
'/federations').then(
+               return $http.get(ENV.api.unstable + 'cdns/' + cdnName + 
'/federations').then(
                        function (result) {
                                return result.data.response;
                        },
@@ -33,7 +33,7 @@ var FederationService = function($http, $q, ENV, 
locationUtils, messageModel) {
        };
 
        this.getCDNFederation = function(cdnName, fedId) {
-               return $http.get(ENV.api['root'] + 'cdns/' + cdnName + 
'/federations', {params: {id: fedId}}).then(
+               return $http.get(ENV.api.unstable + 'cdns/' + cdnName + 
'/federations', {params: {id: fedId}}).then(
                        function (result) {
                                return result.data.response[0];
                        },
@@ -44,7 +44,7 @@ var FederationService = function($http, $q, ENV, 
locationUtils, messageModel) {
        };
 
        this.createFederation = function(cdn, fed) {
-               return $http.post(ENV.api['root'] + 'cdns/' + cdn.name + 
'/federations', fed).then(
+               return $http.post(ENV.api.unstable + 'cdns/' + cdn.name + 
'/federations', fed).then(
                        function(result) {
                                const newFedId = result.data.response.id;
                                const alerts = result.data.alerts;
@@ -72,7 +72,7 @@ var FederationService = function($http, $q, ENV, 
locationUtils, messageModel) {
        };
 
        this.updateFederation = function(cdnName, fed) {
-               return $http.put(ENV.api['root'] + 'cdns/' + cdnName + 
'/federations/' + fed.id, fed).then(
+               return $http.put(ENV.api.unstable + 'cdns/' + cdnName + 
'/federations/' + fed.id, fed).then(
                        function() {
                                
service.assignFederationDeliveryServices(fed.id, [ fed.dsId ], true).then(
                                        function() {
@@ -91,7 +91,7 @@ var FederationService = function($http, $q, ENV, 
locationUtils, messageModel) {
        };
 
        this.deleteFederation = function(cdnName, fedId) {
-               return $http.delete(ENV.api['root'] + 'cdns/' + cdnName + 
'/federations/' + fedId).then(
+               return $http.delete(ENV.api.unstable + 'cdns/' + cdnName + 
'/federations/' + fedId).then(
                        function(result) {
                                messageModel.setMessages([{level: 'success', 
text: 'Federation deleted'}], true);
                                return result;
@@ -104,7 +104,7 @@ var FederationService = function($http, $q, ENV, 
locationUtils, messageModel) {
        };
 
        this.getFederationUsers = function(fedId) {
-               return $http.get(ENV.api['root'] + 'federations/' + fedId + 
'/users').then(
+               return $http.get(ENV.api.unstable + 'federations/' + fedId + 
'/users').then(
                        function (result) {
                                return result.data.response;
                        },
@@ -115,7 +115,7 @@ var FederationService = function($http, $q, ENV, 
locationUtils, messageModel) {
        };
 
        this.assignFederationUsers = function(fedId, userIds, replace) {
-               return $http.post(ENV.api['root'] + 'federations/' + fedId + 
'/users', { userIds: userIds, replace: replace }).then(
+               return $http.post(ENV.api.unstable + 'federations/' + fedId + 
'/users', { userIds: userIds, replace: replace }).then(
                        function(result) {
                                messageModel.setMessages([{level: 'success', 
text: 'Users linked to federation'}], false);
                                return result;
@@ -128,7 +128,7 @@ var FederationService = function($http, $q, ENV, 
locationUtils, messageModel) {
        };
 
        this.deleteFederationUser = function(fedId, userId) {
-               return $http.delete(ENV.api['root'] + 'federations/' + fedId + 
'/users/' + userId).then(
+               return $http.delete(ENV.api.unstable + 'federations/' + fedId + 
'/users/' + userId).then(
                                function(result) {
                                        messageModel.setMessages([ { level: 
'success', text: 'Federation and user were unlinked.' } ], false);
                                        return result;
@@ -141,7 +141,7 @@ var FederationService = function($http, $q, ENV, 
locationUtils, messageModel) {
        };
 
        this.getFederationDeliveryServices = function(fedId) {
-               return $http.get(ENV.api['root'] + 'federations/' + fedId + 
'/deliveryservices').then(
+               return $http.get(ENV.api.unstable + 'federations/' + fedId + 
'/deliveryservices').then(
                        function (result) {
                                return result.data.response;
                        },
@@ -152,7 +152,7 @@ var FederationService = function($http, $q, ENV, 
locationUtils, messageModel) {
        };
 
        this.assignFederationDeliveryServices = function(fedId, dsIds, replace) 
{
-               return $http.post(ENV.api['root'] + 'federations/' + fedId + 
'/deliveryservices', { dsIds: dsIds, replace: replace }).then(
+               return $http.post(ENV.api.unstable + 'federations/' + fedId + 
'/deliveryservices', { dsIds: dsIds, replace: replace }).then(
                        function(result) {
                                messageModel.setMessages([{level: 'success', 
text: 'Delivery services linked to federation'}], false);
                                return result;
@@ -165,7 +165,7 @@ var FederationService = function($http, $q, ENV, 
locationUtils, messageModel) {
        };
 
        this.deleteFederationDeliveryService = function(fedId, dsId) {
-               return $http.delete(ENV.api['root'] + 'federations/' + fedId + 
'/deliveryservices/' + dsId).then(
+               return $http.delete(ENV.api.unstable + 'federations/' + fedId + 
'/deliveryservices/' + dsId).then(
                        function(result) {
                                messageModel.setMessages([{level: 'success', 
text: 'Federation and delivery service were unlinked.'}], false);
                                return result;
@@ -178,7 +178,7 @@ var FederationService = function($http, $q, ENV, 
locationUtils, messageModel) {
        };
 
        this.getFederationFederationResolvers = function(fedId) {
-               return $http.get(ENV.api['root'] + 'federations/' + fedId + 
'/federation_resolvers').then(
+               return $http.get(ENV.api.unstable + 'federations/' + fedId + 
'/federation_resolvers').then(
                        function (result) {
                                return result.data.response;
                        },
diff --git a/traffic_portal/app/src/common/api/JobService.js 
b/traffic_portal/app/src/common/api/JobService.js
index 42d9ece..39155f9 100644
--- a/traffic_portal/app/src/common/api/JobService.js
+++ b/traffic_portal/app/src/common/api/JobService.js
@@ -20,7 +20,7 @@
 var JobService = function($http, ENV) {
 
        this.getJobs = function(queryParams) {
-               return $http.get(ENV.api['root'] + 'jobs', {params: 
queryParams}).then(
+               return $http.get(ENV.api.unstable + 'jobs', {params: 
queryParams}).then(
                        function(result) {
                                return result.data.response;
                        },
@@ -31,7 +31,7 @@ var JobService = function($http, ENV) {
        };
 
        this.createJob = function(job) {
-               return $http.post(ENV.api['root'] + 'jobs', job).then(
+               return $http.post(ENV.api.unstable + 'jobs', job).then(
                        function (result) {
                                return result;
                        },
@@ -42,7 +42,7 @@ var JobService = function($http, ENV) {
        };
 
        this.deleteJob = function(id) {
-               return $http.delete(ENV.api['root'] + 'jobs', {params: {id: 
id}}).then(
+               return $http.delete(ENV.api.unstable + 'jobs', {params: {id: 
id}}).then(
                        function(result) {
                                return result;
                        },
diff --git a/traffic_portal/app/src/common/api/OriginService.js 
b/traffic_portal/app/src/common/api/OriginService.js
index b309cb2..cf14992 100644
--- a/traffic_portal/app/src/common/api/OriginService.js
+++ b/traffic_portal/app/src/common/api/OriginService.js
@@ -20,7 +20,7 @@
 var OriginService = function($http, locationUtils, messageModel, ENV) {
 
     this.getOrigins = function(queryParams) {
-        return $http.get(ENV.api['root'] + 'origins', {params: 
queryParams}).then(
+        return $http.get(ENV.api.unstable + 'origins', {params: 
queryParams}).then(
             function (result) {
                 return result.data.response;
             },
@@ -31,7 +31,7 @@ var OriginService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.createOrigin = function(origin) {
-        return $http.post(ENV.api['root'] + 'origins', origin).then(
+        return $http.post(ENV.api.unstable + 'origins', origin).then(
             function(response) {
                 messageModel.setMessages(response.data.alerts, true);
                 locationUtils.navigateToPath('/origins');
@@ -45,7 +45,7 @@ var OriginService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.updateOrigin = function(id, origin) {
-        return $http.put(ENV.api['root'] + "origins", origin, {params: {id: 
id}}).then(
+        return $http.put(ENV.api.unstable + "origins", origin, {params: {id: 
id}}).then(
             function(response) {
                 messageModel.setMessages(response.data.alerts, false);
                 return response;
@@ -58,7 +58,7 @@ var OriginService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.deleteOrigin = function(id) {
-        return $http.delete(ENV.api['root'] + "origins", {params: {id: 
id}}).then(
+        return $http.delete(ENV.api.unstable + "origins", {params: {id: 
id}}).then(
             function(response) {
                 messageModel.setMessages(response.data.alerts, true);
                 return response;
diff --git a/traffic_portal/app/src/common/api/ParameterService.js 
b/traffic_portal/app/src/common/api/ParameterService.js
index 978dfcc..f87a64d 100644
--- a/traffic_portal/app/src/common/api/ParameterService.js
+++ b/traffic_portal/app/src/common/api/ParameterService.js
@@ -20,7 +20,7 @@
 var ParameterService = function($http, locationUtils, messageModel, ENV) {
 
     this.getParameters = function(queryParams) {
-        return $http.get(ENV.api['root'] + 'parameters', {params: 
queryParams}).then(
+        return $http.get(ENV.api.unstable + 'parameters', {params: 
queryParams}).then(
             function (result) {
                 return result.data.response
             },
@@ -31,7 +31,7 @@ var ParameterService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.getParameter = function(id) {
-        return $http.get(ENV.api['root'] + 'parameters', {params: {id: 
id}}).then(
+        return $http.get(ENV.api.unstable + 'parameters', {params: {id: 
id}}).then(
             function (result) {
                 return result.data.response[0];
             },
@@ -42,7 +42,7 @@ var ParameterService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.createParameter = function(parameter) {
-        return $http.post(ENV.api['root'] + 'parameters', parameter).then(
+        return $http.post(ENV.api.unstable + 'parameters', parameter).then(
             function(result) {
                 messageModel.setMessages([ { level: 'success', text: 
'Parameter created' } ], true);
                 locationUtils.navigateToPath('/parameters/' + 
result.data.response.id + '/profiles');
@@ -57,7 +57,7 @@ var ParameterService = function($http, locationUtils, 
messageModel, ENV) {
 
     // todo: change to use query param when it is supported
     this.updateParameter = function(parameter) {
-        return $http.put(ENV.api['root'] + 'parameters/' + parameter.id, 
parameter).then(
+        return $http.put(ENV.api.unstable + 'parameters/' + parameter.id, 
parameter).then(
             function(result) {
                 messageModel.setMessages([ { level: 'success', text: 
'Parameter updated' } ], false);
                 return result;
@@ -71,7 +71,7 @@ var ParameterService = function($http, locationUtils, 
messageModel, ENV) {
 
     // todo: change to use query param when it is supported
     this.deleteParameter = function(id) {
-        return $http.delete(ENV.api['root'] + "parameters/" + id).then(
+        return $http.delete(ENV.api.unstable + "parameters/" + id).then(
             function(result) {
                 return result.data;
             },
@@ -84,7 +84,7 @@ var ParameterService = function($http, locationUtils, 
messageModel, ENV) {
 
 
     this.getProfileParameters = function(profileId) {
-        return $http.get(ENV.api['root'] + 'profiles/' + profileId + 
'/parameters').then(
+        return $http.get(ENV.api.unstable + 'profiles/' + profileId + 
'/parameters').then(
             function (result) {
                 return result.data.response;
             },
diff --git a/traffic_portal/app/src/common/api/PhysLocationService.js 
b/traffic_portal/app/src/common/api/PhysLocationService.js
index b4ec97b..b8f4076 100644
--- a/traffic_portal/app/src/common/api/PhysLocationService.js
+++ b/traffic_portal/app/src/common/api/PhysLocationService.js
@@ -20,7 +20,7 @@
 var PhysLocationService = function($http, ENV, locationUtils, messageModel) {
 
     this.getPhysLocations = function(queryParams) {
-        return $http.get(ENV.api['root'] + 'phys_locations', {params: 
queryParams}).then(
+        return $http.get(ENV.api.unstable + 'phys_locations', {params: 
queryParams}).then(
             function (result) {
                 return result.data.response;
             },
@@ -31,7 +31,7 @@ var PhysLocationService = function($http, ENV, locationUtils, 
messageModel) {
     };
 
     this.getPhysLocation = function(id) {
-        return $http.get(ENV.api['root'] + 'phys_locations', {params: {id: 
id}}).then(
+        return $http.get(ENV.api.unstable + 'phys_locations', {params: {id: 
id}}).then(
             function(result) {
                 return result.data.response[0];
             },
@@ -42,7 +42,7 @@ var PhysLocationService = function($http, ENV, locationUtils, 
messageModel) {
     };
 
     this.createPhysLocation = function(physLocation) {
-        return $http.post(ENV.api['root'] + 'phys_locations', 
physLocation).then(
+        return $http.post(ENV.api.unstable + 'phys_locations', 
physLocation).then(
             function(result) {
                 messageModel.setMessages([ { level: 'success', text: 'Physical 
location created' } ], true);
                 locationUtils.navigateToPath('/phys-locations');
@@ -57,7 +57,7 @@ var PhysLocationService = function($http, ENV, locationUtils, 
messageModel) {
 
     // todo: change to use query param when it is supported
     this.updatePhysLocation = function(physLocation) {
-        return $http.put(ENV.api['root'] + 'phys_locations/' + 
physLocation.id, physLocation).then(
+        return $http.put(ENV.api.unstable + 'phys_locations/' + 
physLocation.id, physLocation).then(
             function(result) {
                 messageModel.setMessages([ { level: 'success', text: 'Physical 
location updated' } ], false);
                 return result;
@@ -71,7 +71,7 @@ var PhysLocationService = function($http, ENV, locationUtils, 
messageModel) {
 
     // todo: change to use query param when it is supported
     this.deletePhysLocation = function(id) {
-        return $http.delete(ENV.api['root'] + 'phys_locations/' + id).then(
+        return $http.delete(ENV.api.unstable + 'phys_locations/' + id).then(
             function(result) {
                 messageModel.setMessages([ { level: 'success', text: 'Physical 
location deleted' } ], true);
                 return result;
diff --git a/traffic_portal/app/src/common/api/ProfileParameterService.js 
b/traffic_portal/app/src/common/api/ProfileParameterService.js
index 9de8be7..af3f800 100644
--- a/traffic_portal/app/src/common/api/ProfileParameterService.js
+++ b/traffic_portal/app/src/common/api/ProfileParameterService.js
@@ -20,7 +20,7 @@
 var ProfileParameterService = function($http, messageModel, ENV) {
 
        this.unlinkProfileParameter = function(profileId, paramId) {
-               return $http.delete(ENV.api['root'] + 'profileparameters/' + 
profileId + '/' + paramId).then(
+               return $http.delete(ENV.api.unstable + 'profileparameters/' + 
profileId + '/' + paramId).then(
                                function(result) {
                                        messageModel.setMessages([ { level: 
'success', text: 'Profile and parameter were unlinked.' } ], false);
                                        return result;
@@ -33,7 +33,7 @@ var ProfileParameterService = function($http, messageModel, 
ENV) {
        };
 
        this.linkProfileParameters = function(profile, params) {
-               return $http.post(ENV.api['root'] + 'profileparameter', { 
profileId: profile.id, paramIds: params, replace: true }).then(
+               return $http.post(ENV.api.unstable + 'profileparameter', { 
profileId: profile.id, paramIds: params, replace: true }).then(
                        function(result) {
                                return result;
                        },
@@ -45,7 +45,7 @@ var ProfileParameterService = function($http, messageModel, 
ENV) {
        };
 
        this.linkParamProfiles = function(paramId, profiles) {
-               return $http.post(ENV.api['root'] + 'parameterprofile', { 
paramId: paramId, profileIds: profiles, replace: true }).then(
+               return $http.post(ENV.api.unstable + 'parameterprofile', { 
paramId: paramId, profileIds: profiles, replace: true }).then(
                        function(result) {
                                messageModel.setMessages([ { level: 'success', 
text: 'Profiles linked to parameter' } ], false);
                                return result;
diff --git a/traffic_portal/app/src/common/api/ProfileService.js 
b/traffic_portal/app/src/common/api/ProfileService.js
index d8e28f8..a482757 100644
--- a/traffic_portal/app/src/common/api/ProfileService.js
+++ b/traffic_portal/app/src/common/api/ProfileService.js
@@ -20,7 +20,7 @@
 var ProfileService = function($http, locationUtils, messageModel, ENV) {
 
     this.getProfiles = function(queryParams) {
-        return $http.get(ENV.api['root'] + 'profiles', {params: 
queryParams}).then(
+        return $http.get(ENV.api.unstable + 'profiles', {params: 
queryParams}).then(
             function(result) {
                 return result.data.response;
             },
@@ -31,7 +31,7 @@ var ProfileService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.getProfile = function(id) {
-        return $http.get(ENV.api['root'] + 'profiles', {params: {id: 
id}}).then(
+        return $http.get(ENV.api.unstable + 'profiles', {params: {id: 
id}}).then(
             function (result) {
                 return result.data.response[0];
             },
@@ -42,7 +42,7 @@ var ProfileService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.createProfile = function(profile) {
-        return $http.post(ENV.api['root'] + 'profiles', profile).then(
+        return $http.post(ENV.api.unstable + 'profiles', profile).then(
             function(result) {
                 messageModel.setMessages([ { level: 'success', text: 'Profile 
created' } ], true);
                 locationUtils.navigateToPath('/profiles/' + 
result.data.response.id + '/parameters');
@@ -57,7 +57,7 @@ var ProfileService = function($http, locationUtils, 
messageModel, ENV) {
 
     // todo: change to use query param when it is supported
     this.updateProfile = function(profile) {
-        return $http.put(ENV.api['root'] + 'profiles/' + profile.id, 
profile).then(
+        return $http.put(ENV.api.unstable + 'profiles/' + profile.id, 
profile).then(
             function(result) {
                 messageModel.setMessages([ { level: 'success', text: 'Profile 
updated' } ], false);
                 return result;
@@ -71,7 +71,7 @@ var ProfileService = function($http, locationUtils, 
messageModel, ENV) {
 
     // todo: change to use query param when it is supported
     this.deleteProfile = function(id) {
-        return $http.delete(ENV.api['root'] + "profiles/" + id).then(
+        return $http.delete(ENV.api.unstable + "profiles/" + id).then(
             function(result) {
                 return result.data;
             },
@@ -83,7 +83,7 @@ var ProfileService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.getParameterProfiles = function(paramId) {
-        return $http.get(ENV.api['root'] + 'profiles', {params: {param: 
paramId}}).then(
+        return $http.get(ENV.api.unstable + 'profiles', {params: {param: 
paramId}}).then(
             function (result) {
                 return result.data.response;
             },
@@ -94,7 +94,7 @@ var ProfileService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.cloneProfile = function(sourceName, cloneName) {
-        return $http.post(ENV.api['root'] + "profiles/name/" + cloneName + 
"/copy/" + sourceName).then(
+        return $http.post(ENV.api.unstable + "profiles/name/" + cloneName + 
"/copy/" + sourceName).then(
             function(result) {
                 messageModel.setMessages(result.data.alerts, true);
                 locationUtils.navigateToPath('/profiles/' + 
result.data.response.id);
@@ -108,7 +108,7 @@ var ProfileService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.exportProfile = function(id) {
-        return $http.get(ENV.api['root'] + "profiles/" + id + "/export").then(
+        return $http.get(ENV.api.unstable + "profiles/" + id + "/export").then(
             function(result) {
                 return result.data;
             },
@@ -119,7 +119,7 @@ var ProfileService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.importProfile = function(importJSON) {
-        return $http.post(ENV.api['root'] + "profiles/import", 
importJSON).then(
+        return $http.post(ENV.api.unstable + "profiles/import", 
importJSON).then(
             function(result) {
                 messageModel.setMessages(result.data.alerts, true);
                 locationUtils.navigateToPath('/profiles/' + 
result.data.response.id);
@@ -133,7 +133,7 @@ var ProfileService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.queueServerUpdatesByProfile = function(cdnID, profileName) {
-        return $http.post(ENV.api['root'] + 'cdns/' + cdnID + 
'/queue_update?profile=' + profileName, {action: "queue"}).then(
+        return $http.post(ENV.api.unstable + 'cdns/' + cdnID + 
'/queue_update?profile=' + profileName, {action: "queue"}).then(
             function(result) {
                 messageModel.setMessages([{level: 'success', text: 'Queued 
server updates by profile'}], false);
                 return result;
@@ -146,7 +146,7 @@ var ProfileService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.clearServerUpdatesByProfile = function(cdnID, profileName) {
-        return $http.post(ENV.api['root'] + 'cdns/' + cdnID + 
'/queue_update?profile=' + profileName, {action: "dequeue"}).then(
+        return $http.post(ENV.api.unstable + 'cdns/' + cdnID + 
'/queue_update?profile=' + profileName, {action: "dequeue"}).then(
             function(result) {
                 messageModel.setMessages([{level: 'success', text: 'Cleared 
server updates by profile'}], false);
                 return result;
diff --git a/traffic_portal/app/src/common/api/RegionService.js 
b/traffic_portal/app/src/common/api/RegionService.js
index 5b4e1b0..7b05809 100644
--- a/traffic_portal/app/src/common/api/RegionService.js
+++ b/traffic_portal/app/src/common/api/RegionService.js
@@ -20,7 +20,7 @@
 var RegionService = function($http, ENV, messageModel) {
 
     this.getRegions = function(queryParams) {
-        return $http.get(ENV.api['root'] + 'regions', {params: 
queryParams}).then(
+        return $http.get(ENV.api.unstable + 'regions', {params: 
queryParams}).then(
             function (result) {
                 return result.data.response;
             },
@@ -31,7 +31,7 @@ var RegionService = function($http, ENV, messageModel) {
     };
 
     this.getRegion = function(id) {
-        return $http.get(ENV.api['root'] + 'regions', {params: {id: id}}).then(
+        return $http.get(ENV.api.unstable + 'regions', {params: {id: 
id}}).then(
             function (result) {
                 return result.data.response[0];
             },
@@ -42,7 +42,7 @@ var RegionService = function($http, ENV, messageModel) {
     };
 
     this.createRegion = function(region) {
-        return $http.post(ENV.api['root'] + 'regions', region).then(
+        return $http.post(ENV.api.unstable + 'regions', region).then(
             function(result) {
                 messageModel.setMessages([ { level: 'success', text: 'Region 
created' } ], true);
                 return result;
@@ -56,7 +56,7 @@ var RegionService = function($http, ENV, messageModel) {
 
     // todo: change to use query param when it is supported
     this.updateRegion = function(region) {
-        return $http.put(ENV.api['root'] + 'regions/' + region.id, 
region).then(
+        return $http.put(ENV.api.unstable + 'regions/' + region.id, 
region).then(
             function(result) {
                 messageModel.setMessages([ { level: 'success', text: 'Region 
updated' } ], false);
                 return result;
@@ -70,7 +70,7 @@ var RegionService = function($http, ENV, messageModel) {
 
     // todo: change to use query param when it is supported
     this.deleteRegion = function(id) {
-        return $http.delete(ENV.api['root'] + "regions", {params: {id: 
id}}).then(
+        return $http.delete(ENV.api.unstable + "regions", {params: {id: 
id}}).then(
             function(result) {
                 messageModel.setMessages([ { level: 'success', text: 'Region 
deleted' } ], true);
                 return result;
diff --git a/traffic_portal/app/src/common/api/RoleService.js 
b/traffic_portal/app/src/common/api/RoleService.js
index 7fb864e..7d916fd 100644
--- a/traffic_portal/app/src/common/api/RoleService.js
+++ b/traffic_portal/app/src/common/api/RoleService.js
@@ -20,7 +20,7 @@
 var RoleService = function($http, messageModel, ENV) {
 
     this.getRoles = function(queryParams) {
-        return $http.get(ENV.api['root'] + 'roles', {params: 
queryParams}).then(
+        return $http.get(ENV.api.unstable + 'roles', {params: 
queryParams}).then(
             function (result) {
                 return result.data.response;
             },
@@ -31,7 +31,7 @@ var RoleService = function($http, messageModel, ENV) {
     };
 
     this.createRole = function(role) {
-        return $http.post(ENV.api['root'] + "roles", role).then(
+        return $http.post(ENV.api.unstable + "roles", role).then(
             function(result) {
                 return result.data;
             },
@@ -43,7 +43,7 @@ var RoleService = function($http, messageModel, ENV) {
     };
 
     this.updateRole = function(role) {
-        return $http.put(ENV.api['root'] + "roles", role, {params: {name: 
role.name}}).then(
+        return $http.put(ENV.api.unstable + "roles", role, {params: {name: 
role.name}}).then(
             function(result) {
                 return result.data;
             },
@@ -55,7 +55,7 @@ var RoleService = function($http, messageModel, ENV) {
     };
 
     this.deleteRole = function(name) {
-        return $http.delete(ENV.api['root'] + "roles", {params: {name: 
name}}).then(
+        return $http.delete(ENV.api.unstable + "roles", {params: {name: 
name}}).then(
             function(result) {
                 return result.data;
             },
diff --git a/traffic_portal/app/src/common/api/ServerCapabilityService.js 
b/traffic_portal/app/src/common/api/ServerCapabilityService.js
index 2f1793f..25913dc 100644
--- a/traffic_portal/app/src/common/api/ServerCapabilityService.js
+++ b/traffic_portal/app/src/common/api/ServerCapabilityService.js
@@ -20,7 +20,7 @@
 var ServerCapabilityService = function($http, ENV, locationUtils, 
messageModel) {
 
        this.getServerCapabilities = function(queryParams) {
-               return $http.get(ENV.api['root'] + 'server_capabilities', 
{params: queryParams}).then(
+               return $http.get(ENV.api.unstable + 'server_capabilities', 
{params: queryParams}).then(
                        function(result) {
                                return result.data.response;
                        },
@@ -31,7 +31,7 @@ var ServerCapabilityService = function($http, ENV, 
locationUtils, messageModel)
        };
 
        this.getServerCapability = function(name) {
-               return $http.get(ENV.api['root'] + 'server_capabilities', 
{params: {"name": name}}).then(
+               return $http.get(ENV.api.unstable + 'server_capabilities', 
{params: {"name": name}}).then(
                        function(result) {
                                return result.data.response[0];
                        },
@@ -42,7 +42,7 @@ var ServerCapabilityService = function($http, ENV, 
locationUtils, messageModel)
        };
 
        this.createServerCapability = function(serverCap) {
-               return $http.post(ENV.api['root'] + 'server_capabilities', 
serverCap).then(
+               return $http.post(ENV.api.unstable + 'server_capabilities', 
serverCap).then(
                        function(result) {
                                messageModel.setMessages(result.data.alerts, 
true);
                                
locationUtils.navigateToPath('/server-capabilities');
@@ -56,7 +56,7 @@ var ServerCapabilityService = function($http, ENV, 
locationUtils, messageModel)
        };
 
        this.deleteServerCapability = function(name) {
-               return $http.delete(ENV.api['root'] + 'server_capabilities', 
{params: {"name": name}}).then(
+               return $http.delete(ENV.api.unstable + 'server_capabilities', 
{params: {"name": name}}).then(
                        function(result) {
                                messageModel.setMessages(result.data.alerts, 
true);
                                return result;
@@ -69,7 +69,7 @@ var ServerCapabilityService = function($http, ENV, 
locationUtils, messageModel)
        };
 
        this.updateServerCapability = function(currentName, serverCapability) {
-               return $http.put(ENV.api['root'] + 'server_capabilities', 
serverCapability, {params: {"name": currentName}}).then(
+               return $http.put(ENV.api.unstable + 'server_capabilities', 
serverCapability, {params: {"name": currentName}}).then(
                        function(result) {
                                return result;
                        },
@@ -81,7 +81,7 @@ var ServerCapabilityService = function($http, ENV, 
locationUtils, messageModel)
        };
 
        this.getServerCapabilityServers = function(capabilityName) {
-               return $http.get(ENV.api['root'] + 
'server_server_capabilities', { params: { serverCapability: capabilityName } 
}).then(
+               return $http.get(ENV.api.unstable + 
'server_server_capabilities', { params: { serverCapability: capabilityName } 
}).then(
                        function (result) {
                                return result.data.response;
                        },
@@ -92,7 +92,7 @@ var ServerCapabilityService = function($http, ENV, 
locationUtils, messageModel)
        };
 
        this.getServerCapabilityDeliveryServices = function(capabilityName) {
-               return $http.get(ENV.api['root'] + 
'deliveryservices_required_capabilities', { params: { requiredCapability: 
capabilityName } }).then(
+               return $http.get(ENV.api.unstable + 
'deliveryservices_required_capabilities', { params: { requiredCapability: 
capabilityName } }).then(
                        function (result) {
                                return result.data.response;
                        },
diff --git a/traffic_portal/app/src/common/api/ServerService.js 
b/traffic_portal/app/src/common/api/ServerService.js
index 8dca692..40a9f92 100644
--- a/traffic_portal/app/src/common/api/ServerService.js
+++ b/traffic_portal/app/src/common/api/ServerService.js
@@ -20,7 +20,7 @@
 var ServerService = function($http, locationUtils, messageModel, ENV) {
 
     this.getServers = function(queryParams) {
-        return $http.get(ENV.api['root'] + 'servers', {params: 
queryParams}).then(
+        return $http.get(ENV.api.unstable + 'servers', {params: 
queryParams}).then(
             function (result){
                 return result.data.response;
             },
@@ -31,7 +31,7 @@ var ServerService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.createServer = function(server) {
-        return $http.post(ENV.api['root'] + 'servers', server).then(
+        return $http.post(ENV.api.unstable + 'servers', server).then(
             function(result) {
                 return result;
             },
@@ -43,7 +43,7 @@ var ServerService = function($http, locationUtils, 
messageModel, ENV) {
 
     // todo: change to use query param when it is supported
     this.updateServer = function(server) {
-        return $http.put(ENV.api['root'] + 'servers/' + server.id, 
server).then(
+        return $http.put(ENV.api.unstable + 'servers/' + server.id, 
server).then(
             function(result) {
                 return result;
             },
@@ -55,7 +55,7 @@ var ServerService = function($http, locationUtils, 
messageModel, ENV) {
 
     // todo: change to use query param when it is supported
     this.deleteServer = function(id) {
-        return $http.delete(ENV.api['root'] + "servers/" + id).then(
+        return $http.delete(ENV.api.unstable + "servers/" + id).then(
             function(result) {
                 return result.data;
             },
@@ -67,7 +67,7 @@ var ServerService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.getServerCapabilities = function(id) {
-        return $http.get(ENV.api['root'] + 'server_server_capabilities', { 
params: { serverId: id } }).then(
+        return $http.get(ENV.api.unstable + 'server_server_capabilities', { 
params: { serverId: id } }).then(
             function (result) {
                 return result.data.response;
             },
@@ -78,7 +78,7 @@ var ServerService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.addServerCapability = function(serverId, capabilityName) {
-        return $http.post(ENV.api['root'] + 'server_server_capabilities', { 
serverId: serverId, serverCapability: capabilityName}).then(
+        return $http.post(ENV.api.unstable + 'server_server_capabilities', { 
serverId: serverId, serverCapability: capabilityName}).then(
             function(result) {
                 return result.data;
             },
@@ -90,7 +90,7 @@ var ServerService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.removeServerCapability = function(serverId, capabilityName) {
-        return $http.delete(ENV.api['root'] + 'server_server_capabilities', { 
params: { serverId: serverId, serverCapability: capabilityName} }).then(
+        return $http.delete(ENV.api.unstable + 'server_server_capabilities', { 
params: { serverId: serverId, serverCapability: capabilityName} }).then(
             function(result) {
                 return result.data;
             },
@@ -102,7 +102,7 @@ var ServerService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.getEligibleDeliveryServiceServers = function(dsId) {
-        return $http.get(ENV.api['root'] + 'deliveryservices/' + dsId + 
'/servers/eligible').then(
+        return $http.get(ENV.api.unstable + 'deliveryservices/' + dsId + 
'/servers/eligible').then(
             function (result) {
                 return result.data.response;
             },
@@ -113,7 +113,7 @@ var ServerService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.assignDeliveryServices = function(server, dsIds, replace, delay) {
-        return $http.post(ENV.api['root'] + 'servers/' + server.id + 
'/deliveryservices', dsIds, {params: {replace: replace}}).then(
+        return $http.post(ENV.api.unstable + 'servers/' + server.id + 
'/deliveryservices', dsIds, {params: {replace: replace}}).then(
             function(result) {
                 messageModel.setMessages([ { level: 'success', text: 
dsIds.length + ' delivery services assigned to ' + server.hostName + '.' + 
server.domainName } ], delay);
                 return result;
@@ -126,7 +126,7 @@ var ServerService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.queueServerUpdates = function(id) {
-        return $http.post(ENV.api['root'] + "servers/" + id + '/queue_update', 
{ action: "queue"}).then(
+        return $http.post(ENV.api.unstable + "servers/" + id + 
'/queue_update', { action: "queue"}).then(
             function(result) {
                 messageModel.setMessages([ { level: 'success', text: 'Queued 
server updates' } ], false);
                 return result;
@@ -139,7 +139,7 @@ var ServerService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.clearServerUpdates = function(id) {
-        return $http.post(ENV.api['root'] + "servers/" + id + '/queue_update', 
{ action: "dequeue"}).then(
+        return $http.post(ENV.api.unstable + "servers/" + id + 
'/queue_update', { action: "dequeue"}).then(
             function(result) {
                 messageModel.setMessages([ { level: 'success', text: 'Cleared 
server updates' } ], false);
                 return result;
@@ -152,7 +152,7 @@ var ServerService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.getCacheStats = function() {
-        return $http.get(ENV.api['root'] + "caches/stats").then(
+        return $http.get(ENV.api.unstable + "caches/stats").then(
             function(result) {
                 return result.data.response;
             },
@@ -163,7 +163,7 @@ var ServerService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.getCacheChecks = function() {
-        return $http.get(ENV.api['root'] + "servercheck").then(
+        return $http.get(ENV.api.unstable + "servercheck").then(
             function(result) {
                 return result.data.response;
             },
@@ -174,7 +174,7 @@ var ServerService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.updateStatus = function(id, payload) {
-        return $http.put(ENV.api['root'] + "servers/" + id + "/status", 
payload).then(
+        return $http.put(ENV.api.unstable + "servers/" + id + "/status", 
payload).then(
             function(result) {
                 return result;
             },
diff --git a/traffic_portal/app/src/common/api/ServiceCategoryService.js 
b/traffic_portal/app/src/common/api/ServiceCategoryService.js
index 9c1fd3a..8f747e2 100644
--- a/traffic_portal/app/src/common/api/ServiceCategoryService.js
+++ b/traffic_portal/app/src/common/api/ServiceCategoryService.js
@@ -20,7 +20,7 @@
 var ServiceCategoryService = function($http, ENV, locationUtils, messageModel) 
{
 
     this.getServiceCategories = function(queryParams) {
-        return $http.get(ENV.api['root'] + 'service_categories', {params: 
queryParams}).then(
+        return $http.get(ENV.api.unstable + 'service_categories', {params: 
queryParams}).then(
             function(result) {
                 return result.data.response;
             },
@@ -31,7 +31,7 @@ var ServiceCategoryService = function($http, ENV, 
locationUtils, messageModel) {
     };
 
     this.getServiceCategory = function(name) {
-        return $http.get(ENV.api['root'] + 'service_categories', {params: 
{name: name}}).then(
+        return $http.get(ENV.api.unstable + 'service_categories', {params: 
{name: name}}).then(
             function(result) {
                 return result.data.response[0];
             },
@@ -42,7 +42,7 @@ var ServiceCategoryService = function($http, ENV, 
locationUtils, messageModel) {
     };
 
     this.createServiceCategory = function(serviceCategory) {
-        return $http.post(ENV.api['root'] + 'service_categories', 
serviceCategory).then(
+        return $http.post(ENV.api.unstable + 'service_categories', 
serviceCategory).then(
             function(result) {
                 messageModel.setMessages(result.data.alerts, true);
                 locationUtils.navigateToPath('/service-categories');
@@ -56,7 +56,7 @@ var ServiceCategoryService = function($http, ENV, 
locationUtils, messageModel) {
     };
 
     this.updateServiceCategory = function(serviceCategory, oldName) {
-        return $http.put(ENV.api['root'] + 'service_categories/' + 
encodeURIComponent(oldName), serviceCategory).then(
+        return $http.put(ENV.api.unstable + 'service_categories/' + 
encodeURIComponent(oldName), serviceCategory).then(
             function(result) {
                 messageModel.setMessages(result.data.alerts, true);
                                
locationUtils.navigateToPath('/service-categories/edit?name=' + 
encodeURIComponent(serviceCategory.name));
@@ -69,7 +69,7 @@ var ServiceCategoryService = function($http, ENV, 
locationUtils, messageModel) {
     };
 
     this.deleteServiceCategory = function(name) {
-        return $http.delete(ENV.api['root'] + 'service_categories/' + 
encodeURIComponent(name)).then(
+        return $http.delete(ENV.api.unstable + 'service_categories/' + 
encodeURIComponent(name)).then(
             function(result) {
                 messageModel.setMessages(result.data.alerts, true);
                 return result;
diff --git a/traffic_portal/app/src/common/api/StaticDnsEntryService.js 
b/traffic_portal/app/src/common/api/StaticDnsEntryService.js
index 64a42e5..f4c57ea 100644
--- a/traffic_portal/app/src/common/api/StaticDnsEntryService.js
+++ b/traffic_portal/app/src/common/api/StaticDnsEntryService.js
@@ -20,7 +20,7 @@
 var StaticDnsEntryService = function($http, locationUtils, messageModel, ENV) {
 
        this.getStaticDnsEntries = function(queryParams) {
-        return $http.get(ENV.api['root'] + 'staticdnsentries', {params: 
queryParams}).then(
+        return $http.get(ENV.api.unstable + 'staticdnsentries', {params: 
queryParams}).then(
             function (result) {
                 return result.data.response;
             },
@@ -31,7 +31,7 @@ var StaticDnsEntryService = function($http, locationUtils, 
messageModel, ENV) {
        };
 
        this.getStaticDnsEntry = function(id) {
-        return $http.get(ENV.api['root'] + 'staticdnsentries', {params: {id: 
id}}).then(
+        return $http.get(ENV.api.unstable + 'staticdnsentries', {params: {id: 
id}}).then(
             function (result) {
                 return result.data.response[0];
             },
@@ -42,7 +42,7 @@ var StaticDnsEntryService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.createDeliveryServiceStaticDnsEntry = function(staticDnsEntry) {
-        return $http.post(ENV.api['root'] + "staticdnsentries", 
staticDnsEntry).then(
+        return $http.post(ENV.api.unstable + "staticdnsentries", 
staticDnsEntry).then(
             function(response) {
                 messageModel.setMessages(response.data.alerts, true);
                 locationUtils.navigateToPath('/delivery-services/' + 
staticDnsEntry.deliveryServiceId + '/static-dns-entries');
@@ -56,7 +56,7 @@ var StaticDnsEntryService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.deleteDeliveryServiceStaticDnsEntry = function(id) {
-        return $http.delete(ENV.api['root'] + "staticdnsentries", {params: 
{id: id}}).then(
+        return $http.delete(ENV.api.unstable + "staticdnsentries", {params: 
{id: id}}).then(
             function(response) {
                 messageModel.setMessages(response.data.alerts, true);
                 return response;
@@ -69,7 +69,7 @@ var StaticDnsEntryService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.updateDeliveryServiceStaticDnsEntry = function(id, staticDnsEntry) {
-        return $http.put(ENV.api['root'] + "staticdnsentries", staticDnsEntry, 
{params: {id: id}}).then(
+        return $http.put(ENV.api.unstable + "staticdnsentries", 
staticDnsEntry, {params: {id: id}}).then(
             function(response) {
                 messageModel.setMessages(response.data.alerts, false);
                 return response;
diff --git a/traffic_portal/app/src/common/api/StatusService.js 
b/traffic_portal/app/src/common/api/StatusService.js
index 4cc10ec..d6cb25d 100644
--- a/traffic_portal/app/src/common/api/StatusService.js
+++ b/traffic_portal/app/src/common/api/StatusService.js
@@ -20,7 +20,7 @@
 var StatusService = function($http, ENV, locationUtils, messageModel) {
 
     this.getStatuses = function(queryParams) {
-        return $http.get(ENV.api['root'] + 'statuses', {params: 
queryParams}).then(
+        return $http.get(ENV.api.unstable + 'statuses', {params: 
queryParams}).then(
             function (result) {
                 return result.data.response;
             },
@@ -31,7 +31,7 @@ var StatusService = function($http, ENV, locationUtils, 
messageModel) {
     };
 
     this.getStatus = function(id) {
-        return $http.get(ENV.api['root'] + 'statuses', {params: {id: 
id}}).then(
+        return $http.get(ENV.api.unstable + 'statuses', {params: {id: 
id}}).then(
             function (result) {
                 return result.data.response[0];
             },
@@ -42,7 +42,7 @@ var StatusService = function($http, ENV, locationUtils, 
messageModel) {
     };
 
     this.createStatus = function(status) {
-        return $http.post(ENV.api['root'] + 'statuses', status).then(
+        return $http.post(ENV.api.unstable + 'statuses', status).then(
             function(result) {
                 messageModel.setMessages([ { level: 'success', text: 'Status 
created' } ], true);
                 locationUtils.navigateToPath('/statuses');
@@ -57,7 +57,7 @@ var StatusService = function($http, ENV, locationUtils, 
messageModel) {
 
     // todo: change to use query param when it is supported
     this.updateStatus = function(status) {
-        return $http.put(ENV.api['root'] + 'statuses/' + status.id, 
status).then(
+        return $http.put(ENV.api.unstable + 'statuses/' + status.id, 
status).then(
             function(result) {
                 messageModel.setMessages([ { level: 'success', text: 'Status 
updated' } ], false);
                 return result;
@@ -71,7 +71,7 @@ var StatusService = function($http, ENV, locationUtils, 
messageModel) {
 
     // todo: change to use query param when it is supported
     this.deleteStatus = function(id) {
-        return $http.delete(ENV.api['root'] + "statuses/" + id).then(
+        return $http.delete(ENV.api.unstable + "statuses/" + id).then(
             function(result) {
                 messageModel.setMessages([ { level: 'success', text: 'Status 
deleted' } ], true);
                 return result;
diff --git a/traffic_portal/app/src/common/api/TenantService.js 
b/traffic_portal/app/src/common/api/TenantService.js
index 15f194b..55dd248 100644
--- a/traffic_portal/app/src/common/api/TenantService.js
+++ b/traffic_portal/app/src/common/api/TenantService.js
@@ -20,7 +20,7 @@
 var TenantService = function($http, ENV, messageModel) {
 
     this.getTenants = function(queryParams) {
-        return $http.get(ENV.api['root'] + 'tenants', {params: 
queryParams}).then(
+        return $http.get(ENV.api.unstable + 'tenants', {params: 
queryParams}).then(
             function (result) {
                 return result.data.response;
             },
@@ -31,7 +31,7 @@ var TenantService = function($http, ENV, messageModel) {
     };
 
     this.getTenant = function(id) {
-        return $http.get(ENV.api['root'] + 'tenants', {params: {id: id}}).then(
+        return $http.get(ENV.api.unstable + 'tenants', {params: {id: 
id}}).then(
             function (result) {
                 return result.data.response[0];
             },
@@ -42,7 +42,7 @@ var TenantService = function($http, ENV, messageModel) {
     };
 
     this.createTenant = function(tenant) {
-        return $http.post(ENV.api['root'] + 'tenants', tenant).then(
+        return $http.post(ENV.api.unstable + 'tenants', tenant).then(
             function(result) {
                 messageModel.setMessages([ { level: 'success', text: 'Tenant 
created' } ], true);
                 return result;
@@ -56,7 +56,7 @@ var TenantService = function($http, ENV, messageModel) {
 
     // todo: change to use query param when it is supported
     this.updateTenant = function(tenant) {
-        return $http.put(ENV.api['root'] + 'tenants/' + tenant.id, 
tenant).then(
+        return $http.put(ENV.api.unstable + 'tenants/' + tenant.id, 
tenant).then(
             function(result) {
                 messageModel.setMessages([ { level: 'success', text: 'Tenant 
updated' } ], false);
                 return result;
@@ -70,7 +70,7 @@ var TenantService = function($http, ENV, messageModel) {
 
     // todo: change to use query param when it is supported
     this.deleteTenant = function(id) {
-        return $http.delete(ENV.api['root'] + "tenants/" + id).then(
+        return $http.delete(ENV.api.unstable + "tenants/" + id).then(
             function(result) {
                 return result;
             },
diff --git a/traffic_portal/app/src/common/api/ToolsService.js 
b/traffic_portal/app/src/common/api/ToolsService.js
index dedc462..5007072 100644
--- a/traffic_portal/app/src/common/api/ToolsService.js
+++ b/traffic_portal/app/src/common/api/ToolsService.js
@@ -20,7 +20,7 @@
 var ToolsService = function($http, messageModel, ENV) {
 
        this.getOSVersions = function() {
-               return $http.get(ENV.api['root'] + "osversions").then(
+               return $http.get(ENV.api.unstable + "osversions").then(
                                function(result) {
                                        return result.data.response;
                                },
@@ -33,7 +33,7 @@ var ToolsService = function($http, messageModel, ENV) {
        this.generateISO = function(iso) {
                respType = 'arraybuffer';
 
-               return $http.post(ENV.api['root'] + "isos", iso, { 
responseType:respType }).then(
+               return $http.post(ENV.api.unstable + "isos", iso, { 
responseType:respType }).then(
                        function(result) {
                                const isoName = iso.hostName + "." + 
iso.domainName + "-" + iso.osversionDir + ".iso";
                                download(result.data, isoName);
diff --git a/traffic_portal/app/src/common/api/TopologyService.js 
b/traffic_portal/app/src/common/api/TopologyService.js
index 7deddba..b2d7954 100644
--- a/traffic_portal/app/src/common/api/TopologyService.js
+++ b/traffic_portal/app/src/common/api/TopologyService.js
@@ -20,7 +20,7 @@
 var TopologyService = function($http, ENV, locationUtils, messageModel) {
 
        this.getTopologies = function(queryParams) {
-               return $http.get(ENV.api['root'] + 'topologies', { params: 
queryParams }).then(
+               return $http.get(ENV.api.unstable + 'topologies', { params: 
queryParams }).then(
                        function(result) {
                                return result.data.response;
                        },
@@ -31,7 +31,7 @@ var TopologyService = function($http, ENV, locationUtils, 
messageModel) {
        };
 
        this.createTopology = function(topology) {
-               return $http.post(ENV.api['root'] + 'topologies', 
topology).then(
+               return $http.post(ENV.api.unstable + 'topologies', 
topology).then(
                        function(result) {
                                return result;
                        },
@@ -43,7 +43,7 @@ var TopologyService = function($http, ENV, locationUtils, 
messageModel) {
        };
 
        this.updateTopology = function(topology, currentName) {
-               return $http.put(ENV.api['root'] + 'topologies', topology, { 
params: { name: currentName } }).then(
+               return $http.put(ENV.api.unstable + 'topologies', topology, { 
params: { name: currentName } }).then(
                        function(result) {
                                return result;
                        },
@@ -55,7 +55,7 @@ var TopologyService = function($http, ENV, locationUtils, 
messageModel) {
        };
 
        this.deleteTopology = function(topology) {
-               return $http.delete(ENV.api['root'] + "topologies", { params: { 
name: topology.name } }).then(
+               return $http.delete(ENV.api.unstable + "topologies", { params: 
{ name: topology.name } }).then(
                        function(result) {
                                return result;
                        },
@@ -67,7 +67,7 @@ var TopologyService = function($http, ENV, locationUtils, 
messageModel) {
        };
 
        this.queueServerUpdates = function(topology, cdnId) {
-               return $http.post(ENV.api['root'] + 'topologies/' + topology + 
'/queue_update', {action: "queue", cdnId: cdnId}).then(
+               return $http.post(ENV.api.unstable + 'topologies/' + topology + 
'/queue_update', {action: "queue", cdnId: cdnId}).then(
                        function(result) {
                                messageModel.setMessages([{level: 'success', 
text: 'Queued topology server updates'}], false);
                                return result;
@@ -80,7 +80,7 @@ var TopologyService = function($http, ENV, locationUtils, 
messageModel) {
        };
 
        this.clearServerUpdates = function(topology, cdnId) {
-               return $http.post(ENV.api['root'] + 'topologies/' + topology + 
'/queue_update', {action: "dequeue", cdnId: cdnId}).then(
+               return $http.post(ENV.api.unstable + 'topologies/' + topology + 
'/queue_update', {action: "dequeue", cdnId: cdnId}).then(
                        function(result) {
                                messageModel.setMessages([{level: 'success', 
text: 'Cleared topology server updates'}], false);
                                return result;
diff --git a/traffic_portal/app/src/common/api/TrafficPortalService.js 
b/traffic_portal/app/src/common/api/TrafficPortalService.js
index cec27e6..dec2923 100644
--- a/traffic_portal/app/src/common/api/TrafficPortalService.js
+++ b/traffic_portal/app/src/common/api/TrafficPortalService.js
@@ -46,7 +46,7 @@ var TrafficPortalService = function($http, messageModel, ENV) 
{
         responseType=arraybuffer is important if you want to create a blob of 
your data
         See: 
https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Sending_and_Receiving_Binary_Data
         */
-        return $http.get(ENV.api['root'] + 'dbdump', { 
responseType:'arraybuffer' } ).then(
+        return $http.get(ENV.api.unstable + 'dbdump', { 
responseType:'arraybuffer' } ).then(
             function(result) {
                 download(result.data, moment().format() + '.pg_dump');
                 return result;
diff --git a/traffic_portal/app/src/common/api/TypeService.js 
b/traffic_portal/app/src/common/api/TypeService.js
index c5a3991..d37a0fd 100644
--- a/traffic_portal/app/src/common/api/TypeService.js
+++ b/traffic_portal/app/src/common/api/TypeService.js
@@ -20,7 +20,7 @@
 var TypeService = function($http, ENV, locationUtils, messageModel) {
 
     this.getTypes = function(queryParams) {
-        return $http.get(ENV.api['root'] + 'types', {params: 
queryParams}).then(
+        return $http.get(ENV.api.unstable + 'types', {params: 
queryParams}).then(
             function (result) {
                 return result.data.response;
             },
@@ -31,7 +31,7 @@ var TypeService = function($http, ENV, locationUtils, 
messageModel) {
     };
 
     this.getType = function(id) {
-        return $http.get(ENV.api['root'] + 'types', {params: {id: id}}).then(
+        return $http.get(ENV.api.unstable + 'types', {params: {id: id}}).then(
             function (result) {
                 return result.data.response[0];
             },
@@ -42,7 +42,7 @@ var TypeService = function($http, ENV, locationUtils, 
messageModel) {
     };
 
     this.createType = function(type) {
-        return $http.post(ENV.api['root'] + 'types', type).then(
+        return $http.post(ENV.api.unstable + 'types', type).then(
             function(result) {
                 messageModel.setMessages([ { level: 'success', text: 'Type 
created' } ], true);
                 locationUtils.navigateToPath('/types');
@@ -57,7 +57,7 @@ var TypeService = function($http, ENV, locationUtils, 
messageModel) {
 
     // todo: change to use query param when it is supported
     this.updateType = function(type) {
-        return $http.put(ENV.api['root'] + 'types/' + type.id, type).then(
+        return $http.put(ENV.api.unstable + 'types/' + type.id, type).then(
             function(result) {
                 messageModel.setMessages([ { level: 'success', text: 'Type 
updated' } ], false);
                 return result;
@@ -71,7 +71,7 @@ var TypeService = function($http, ENV, locationUtils, 
messageModel) {
 
     // todo: change to use query param when it is supported
     this.deleteType = function(id) {
-        return $http.delete(ENV.api['root'] + "types/" + id).then(
+        return $http.delete(ENV.api.unstable + "types/" + id).then(
             function(result) {
                 messageModel.setMessages([ { level: 'success', text: 'Type 
deleted' } ], true);
                 return result;
@@ -84,7 +84,7 @@ var TypeService = function($http, ENV, locationUtils, 
messageModel) {
     };
 
     this.queueServerUpdates = function(cdnID, typeName) {
-        return $http.post(ENV.api['root'] + 'cdns/' + cdnID 
+'/queue_update?type=' + typeName, {action: "queue"}).then(
+        return $http.post(ENV.api.unstable + 'cdns/' + cdnID 
+'/queue_update?type=' + typeName, {action: "queue"}).then(
             function(result) {
                 messageModel.setMessages([{level: 'success', text: 'Queued 
server updates by type'}], false);
                 return result;
@@ -97,7 +97,7 @@ var TypeService = function($http, ENV, locationUtils, 
messageModel) {
     };
 
     this.clearServerUpdates = function(cdnID, typeName) {
-        return $http.post(ENV.api['root'] + 'cdns/' + cdnID + 
'/queue_update?type=' + typeName, {action: "dequeue"}).then(
+        return $http.post(ENV.api.unstable + 'cdns/' + cdnID + 
'/queue_update?type=' + typeName, {action: "dequeue"}).then(
             function(result) {
                 messageModel.setMessages([{level: 'success', text: 'Cleared 
server updates by type'}], false);
                 return result;
diff --git a/traffic_portal/app/src/common/api/UserService.js 
b/traffic_portal/app/src/common/api/UserService.js
index 1d072b0..11195af 100644
--- a/traffic_portal/app/src/common/api/UserService.js
+++ b/traffic_portal/app/src/common/api/UserService.js
@@ -20,7 +20,7 @@
 var UserService = function($http, locationUtils, userModel, messageModel, ENV) 
{
 
     this.getCurrentUser = function() {
-        return $http.get(ENV.api['root'] + "user/current").then(
+        return $http.get(ENV.api.unstable + "user/current").then(
             function(result) {
                 userModel.setUser(result.data.response);
                 return result.data.response;
@@ -32,7 +32,7 @@ var UserService = function($http, locationUtils, userModel, 
messageModel, ENV) {
     };
 
     this.resetPassword = function(email) {
-        return $http.post(ENV.api['root'] + "user/reset_password", { email: 
email }).then(
+        return $http.post(ENV.api.unstable + "user/reset_password", { email: 
email }).then(
             function(result) {
                 messageModel.setMessages(result.data.alerts, false);
                 return result;
@@ -45,7 +45,7 @@ var UserService = function($http, locationUtils, userModel, 
messageModel, ENV) {
     };
 
     this.getUsers = function(queryParams) {
-        return $http.get(ENV.api['root'] + 'users', {params: 
queryParams}).then(
+        return $http.get(ENV.api.unstable + 'users', {params: 
queryParams}).then(
             function (result) {
                 return result.data.response;
             },
@@ -57,7 +57,7 @@ var UserService = function($http, locationUtils, userModel, 
messageModel, ENV) {
     };
 
     this.getUser = function(id) {
-        return $http.get(ENV.api['root'] + 'users', {params: {id: id}}).then(
+        return $http.get(ENV.api.unstable + 'users', {params: {id: id}}).then(
             function (result) {
                 return result.data.response[0];
             },
@@ -69,7 +69,7 @@ var UserService = function($http, locationUtils, userModel, 
messageModel, ENV) {
     };
 
     this.createUser = function(user) {
-        return $http.post(ENV.api['root'] + 'users', user).then(
+        return $http.post(ENV.api.unstable + 'users', user).then(
             function(result) {
                 messageModel.setMessages([ { level: 'success', text: 'User 
created' } ], true);
                 locationUtils.navigateToPath('/users');
@@ -84,7 +84,7 @@ var UserService = function($http, locationUtils, userModel, 
messageModel, ENV) {
 
     // todo: change to use query param when it is supported
     this.updateUser = function(user) {
-        return $http.put(ENV.api['root'] + "users/" + user.id, user).then(
+        return $http.put(ENV.api.unstable + "users/" + user.id, user).then(
             function(result) {
                 if (userModel.user.id === user.id) {
                     // if you are updating the currently logged in user...
@@ -101,7 +101,7 @@ var UserService = function($http, locationUtils, userModel, 
messageModel, ENV) {
     };
 
     this.registerUser = function(registration) {
-        return $http.post(ENV.api['root'] + "users/register", 
registration).then(
+        return $http.post(ENV.api.unstable + "users/register", 
registration).then(
             function(result) {
                 messageModel.setMessages(result.data.alerts, false);
                 return result;
diff --git a/traffic_portal/app/src/scripts/config.js 
b/traffic_portal/app/src/scripts/config.js
index 52e5f0c..fd9b322 100644
--- a/traffic_portal/app/src/scripts/config.js
+++ b/traffic_portal/app/src/scripts/config.js
@@ -23,4 +23,4 @@
 
 angular.module('config', [])
 
-.constant('ENV', { api: { root:'/api/4.0/', stable: "/api/3.1/" } });
+.constant('ENV', { api: { unstable:'/api/4.0/', stable: "/api/3.1/" } });

Reply via email to