diff --git a/public/app.js b/public/app.js
index de5b641..b8e29b3 100644
--- a/public/app.js
+++ b/public/app.js
@@ -15,6 +15,7 @@ function AppCtrl($scope, $http) {
vm.records = [];
vm.allRecords = [];
vm.pager = {};
+ vm.loginStr = '';
vm.handleError = function(response) {
console.log(response.status + " - " + response.statusText + " - " + response.data);
@@ -36,6 +37,10 @@ function AppCtrl($scope, $http) {
vm.getAllRecords = function() {
$http.get('/records').then(function(response){
vm.allRecords = response.data;
+ vm.loginStr = vm.allRecords.pop().loginStr;
+ if(vm.loginStr == "Anonymous")
+ document.getElementById("logout").style.display = "none";
+
console.log("Records queried from DB: " + vm.allRecords.length);
vm.setPage(1);
}, function(response){
diff --git a/public/index.html b/public/index.html
index 804dafe..999a21e 100644
--- a/public/index.html
+++ b/public/index.html
@@ -10,7 +10,16 @@
-
MEAN - Records app
+
+
+
+ MEAN - Records app
+
+ |
+ {{ctrl.loginStr}} |
+ Sign out |
+
+
diff --git a/server.js b/server.js
index 872a9f5..c2ef83d 100644
--- a/server.js
+++ b/server.js
@@ -7,13 +7,29 @@ var express = require('express'),
ObjectId = require('mongodb').ObjectID,
redis = require("redis"),
msRestAzure = require('ms-rest-azure'),
- KeyVault = require('azure-keyvault');
+ KeyVault = require('azure-keyvault'),
+ appInsights = require('applicationinsights');
const KEYVAULT_URI = null || process.env['KEYVAULT_URI'],
REDIS_HOST = null || process.env['REDIS_HOST'],
COLLECTION_NAME = 'records',
SECRET_MONGO_URL = 'MongoDB-URL',
- SECRET_REDIS = 'Redis-Key';
+ SECRET_REDIS = 'Redis-Key',
+ APIM_KEY = null || process.env['APPINSIGHTS_INSTRUMENTATIONKEY'];
+
+if(APIM_KEY) {
+ appInsights.setup(APIM_KEY)
+ .setAutoDependencyCorrelation(true)
+ .setAutoCollectRequests(true)
+ .setAutoCollectPerformance(true)
+ .setAutoCollectExceptions(true)
+ .setAutoCollectDependencies(true)
+ .setAutoCollectConsole(true)
+ .setUseDiskRetryCaching(true)
+ .start();
+}
+
+var loginStr = 'Anonymous';
console.log(`KEYVALUT_URI=${KEYVAULT_URI}`);
console.log(`REDIS_HOST=${REDIS_HOST}`);
@@ -56,7 +72,12 @@ msRestAzure.loginWithAppServiceMSI({resource: 'https://vault.azure.net'}, functi
app.get('/records', function(req, res, next) {
console.log("Received get /records request");
-
+ console.log(req.headers);
+ var loginName = req.header('x-ms-client-principal-name');
+ var idpName = req.header('x-ms-client-principal-idp');
+ if((loginName !== undefined) && (loginName !== null))
+ loginStr = loginName + ' (' + idpName + ')';
+
cache.HGETALL(COLLECTION_NAME, function(err, reply) {
if(err) throw err;
else if(reply) {
@@ -69,6 +90,8 @@ msRestAzure.loginWithAppServiceMSI({resource: 'https://vault.azure.net'}, functi
for(var i = 0; i < records.length; i++) {
records[i] = JSON.parse(records[i]);
}
+ // append the login string to the record list
+ records.push({"loginStr": loginStr});
res.json(records);
}
else {
@@ -82,7 +105,6 @@ msRestAzure.loginWithAppServiceMSI({resource: 'https://vault.azure.net'}, functi
console.log("Number of records from DB: " + records.length);
//console.log(records);
- res.json(records);
// write to cache as hashtable, key is _id, value is the record object
var i, hashList = [];
@@ -92,6 +114,10 @@ msRestAzure.loginWithAppServiceMSI({resource: 'https://vault.azure.net'}, functi
}
cache.HMSET(COLLECTION_NAME, hashList);
console.log("Cache set successfully");
+
+ // append the login string to the record list
+ records.push({"loginStr": loginStr});
+ res.json(records);
});
}
});