I included the YDN DB file (ydn-db-isw-core-crypt-qry-dev.js) to encrypt the index database in an angular application. It is added to the body.io-1.4 section of the index.html.5.js section, the loader spinner.head section includes the plivo.min.js- library
<script type="text/javascript" src="./assets/ydnCoreCryptQryDev.js"></script>
I used to use a simple IndexDB and everything went well. But the details of the collection were visible in the developer’s tools.
Now, after enabling YDN DB, it just loads the home page after setting the user credentials in the Windows session store and completes the initialization of Db.
DB initialization code is
function open() {
var deferred = $q.defer();
var options = {
Encryption: {
encryptKey: false,
secrets: [{
name: 'dddd',
key: 'xxxxxxxxxx'
}]
}
};
var schema = {
stores:[{
name:'profile',
encrypted: true
},{
name:'contacts',
encrypted: true
},{
name:'archive',
encrypted: true
},{
name:'avatars',
encrypted: true
},{
name:'groups',
encrypted: true
},{
name:'notifications',
encrypted: true
}]
};
var db = new ydn.db.Storage('nowconferdb', schema, options);
db.onReady(function() {
console.log('DB is initialized');
avatarstorage.setDB(db);
contactstorage.setDB(db);
profilestorage.setDB(db);
groupstorage.setDB(db);
archivestorage.setDB(db);
notificationstorage.setDB(db);
deferred.resolve(true);
});
db.addEventListener('fail', function (event) {
var err = event.getError();
if (err.name == 'versionchange') {
console.log('The application is updated, please refresh to upgrade.');
avatarstorage.setup(db);
contactstorage.setup(db);
profilestorage.setup(db);
groupstorage.setup(db);
archivestorage.setup(db);
notificationstorage.setup(db);
} else {
console.log('connection failed with ' + err.name + ' by ' + err.message);
db = null;
}
deferred.reject(false);
});
return deferred.promise;
}
After performing the following execution, which fails, I pass the database to several services for use. -
storageservice.open().then(function() {
console.log('post initializing storageservice');
if (me.getAuth()) {
console.log('user is authenticated');
me.loadMe(sessionUser._id).then(function(profile) {
me.setMe(angular.extend(profile, sessionUser)).then(function() {
console.log('setting user');
deferred.resolve();
},
function() {
deferred.reject(1);
});
}, function() {
me.setMe(sessionUser).then(function() {
console.log('setting user info');
deferred.resolve();
}, function() {
deferred.reject(1);
});
});
}
else {
console.log('user is not authenticated');
me.loadMe(sessionUser._id).then(function(profile) {
console.log('loaded profile:'+JSON.stringify(profile));
deferred.resolve(profile);
}, function() {
me.setMe(sessionUser).then(function() {
console.log('setting user details');
deferred.resolve();
}, function() {
console.log('failed to set user');
deferred.reject(1);
});
});
}
});
Can someone help.
Many thanks.
Update -
. ( "post initializing storageservice", " " ).
. , !!