Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GPII-1224: Implement the "Hybrid Flow Manager" #389

Merged
merged 50 commits into from
Oct 28, 2015
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
574a256
GPII-1224: Make a start on the untrusted local Flow Manager
simonbates Jul 10, 2015
b25ac4b
GPII-1224: At login, configure with a fake settings response
simonbates Jul 14, 2015
3225dc6
GPII-1224: Serve fake settings from Cloud-Based Flow Manager
simonbates Jul 14, 2015
87e394d
GPII-1224: Send the userToken and device data
simonbates Jul 15, 2015
e8abc1e
GPII-1224: Serve settings for untrusted Flow Manager
simonbates Jul 22, 2015
03d6897
GPII-1224: Use fluid.filterKeys
simonbates Jul 28, 2015
d2fd025
GPII-1224: Add some TODO notes to outline path forward
simonbates Jul 31, 2015
89864db
Merge remote-tracking branch 'upstream/master' into GPII-1224
simonbates Jul 31, 2015
00d7df2
GPII-1249: Apply privacy filtering to matchMakerOutput
simonbates Jul 31, 2015
d569a11
GPII-1249: Filter matchMakerOutput with a map of selectedPreferences
simonbates Aug 4, 2015
3828a9f
GPII-1249: Small note on unit testing
simonbates Aug 4, 2015
cb34e1b
Merge branch 'GPII-17' into GPII-1224
simonbates Aug 5, 2015
daae353
Merge remote-tracking branch 'upstream/master' into GPII-1224
simonbates Aug 5, 2015
fbab2e4
GPII-1249: Move privacy filtering to its own component
simonbates Aug 7, 2015
3e28e5b
GPII-1249: Test that filtering leaves other properties as is
simonbates Aug 7, 2015
fc4e551
GPII-1249: Remove applications without privacy settings
simonbates Aug 17, 2015
25e4d1f
GPII-1249: Use the privacyFilter component for untrusted settings
simonbates Aug 17, 2015
f54e975
GPII-1249: Add 2 application test case for Privacy Filter
simonbates Aug 17, 2015
737a0cc
GPII-1249: Preserve matchMakerOutput conditions
simonbates Aug 18, 2015
43b211b
GPII-1224: Retrieve authorized clients by gpii token
simonbates Aug 20, 2015
1fe9680
Merge remote-tracking branch 'upstream/master' into GPII-1224
simonbates Aug 20, 2015
018ba27
GPII-1224: Refactor gpii.request.flowManager.matchMakingRequest
simonbates Aug 24, 2015
66e84b6
GPII-1224: Minor code reorganising
simonbates Aug 25, 2015
46acc4a
GPII-1224: Rename privacyFilter transform rules
simonbates Aug 26, 2015
af808a1
GPII-1224: Start on acceptance tests for untrusted Flow Manager
simonbates Aug 28, 2015
425f1d2
GPII-1224: More acceptance tests for untrusted Flow Manager
simonbates Aug 28, 2015
a189bce
Merge remote-tracking branch 'upstream/master' into GPII-1224
simonbates Oct 9, 2015
48fc45f
GPII-1224: Update Untrusted Flow Manager for GPII-529
simonbates Oct 9, 2015
97d8f8c
GPII-1224: Start on UntrustedDevelopmentTests.js
simonbates Oct 9, 2015
c19b077
GPII-1224: Continue UntrustedDevelopmentTests.js
simonbates Oct 13, 2015
d481042
GPII-1224: Use distributeOptions to set the port for requests
simonbates Oct 14, 2015
9e36746
GPII-1224: Extract the testDefs from DevelopmentTests.js
simonbates Oct 14, 2015
216e599
GPII-1224: Use DevelopmentTestDefs.js in UntrustedDevelopmentTests.js
simonbates Oct 14, 2015
e0cc172
GPII-1224: Use cloudBased.development.all.local config
simonbates Oct 14, 2015
4647655
GPII-1224: Update UntrustedDevelopmentTests.js
simonbates Oct 15, 2015
39167ed
GPII-1224: Extract testDefs from UserLogonStateChangeTests.js
simonbates Oct 15, 2015
acf337e
GPII-1224: Extract utilities from UntrustedDevelopmentTests.js
simonbates Oct 15, 2015
a700e38
GPII-1224: Implement logonChange in Untrusted Flow Manager
simonbates Oct 16, 2015
be73eff
GPII-1224: New matchMakingStateChangeHandler grade
simonbates Oct 19, 2015
0e6a98c
Merge remote-tracking branch 'upstream/master' into GPII-1224
simonbates Oct 19, 2015
1417fec
GPII-1224: Add support for "anonymous" tokens
simonbates Oct 21, 2015
286edeb
GPII-1224: Browser friendly UserService.js, InMemoryDataStore.js
simonbates Oct 21, 2015
259cdd8
GPII-1224: Change the untrusted config to port 8081
simonbates Oct 23, 2015
9df3a15
GPII-1224: Make a start on dynamic kettle config generation
simonbates Oct 23, 2015
0e1c190
GPII-1224: Refactor gpii.multiServerKettleConfig
simonbates Oct 26, 2015
f304626
GPII-1224: Include test dataStore in untrusted.development.all.local
simonbates Oct 26, 2015
dabcdd1
GPII-1224: Run BrowserChannelTests on untrusted config
simonbates Oct 26, 2015
633619c
GPII-1224: Add solutionsRegistry URL to untrusted config
simonbates Oct 27, 2015
020069d
GPII-1224: Add untrusted.development.all.local.txt
simonbates Oct 27, 2015
77aa06c
GPII-1224: Rename untrusted config to untrusted.development
simonbates Oct 27, 2015
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 19 additions & 2 deletions examples/easit-oauth-integration/EasitTestOauthDatastore.js
Original file line number Diff line number Diff line change
Expand Up @@ -69,9 +69,17 @@ fluid.defaults("gpii.oauth2.easitSampleDataStore", {
oauth2ClientSecret: false,
redirectUri: false,
allowDirectGpiiTokenAccess: true
},
{
id: 5,
name: "GNOME Magnifier",
oauth2ClientId: "org.gnome.desktop.a11y.magnifier",
oauth2ClientSecret: false,
redirectUri: false,
allowDirectGpiiTokenAccess: false
}
],
authDecisionsIdSeq: 5,
authDecisionsIdSeq: 6,
authDecisions: [
{
id: 1,
Expand Down Expand Up @@ -108,6 +116,15 @@ fluid.defaults("gpii.oauth2.easitSampleDataStore", {
accessToken: "ma_li_access_token",
selectedPreferences: { "": true },
revoked: false
},
{
id: 5,
userId: 10,
clientId: 5,
redirectUri: false,
accessToken: "li_magnifier_access_token",
selectedPreferences: { "": true },
revoked: false
}
]
}
Expand All @@ -116,4 +133,4 @@ fluid.defaults("gpii.oauth2.easitSampleDataStore", {
gpii.oauth2.logEasitStartup = function (that) {
var instantiator = fluid.getInstantiator(that);
console.log("Easit datastore starting up at path " + instantiator.idToPath(that.id));
};
};
20 changes: 20 additions & 0 deletions gpii/configs/kettleModuleLoader.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
/*
* Kettle Module Loader.
*
* Copyright 2012-2013 OCAD University
*
* Licensed under the New BSD license. You may not use this file except in
* compliance with this License.
*
* The research leading to these results has received funding from the European Union's
* Seventh Framework Programme (FP7/2007-2013)
* under grant agreement no. 289016.
*
* You may obtain a copy of the License at
* https://github.com/GPII/universal/blob/master/LICENSE.txt
*/

// The purpose of this file is to be copied to a location for which the
// require function is needed. It allows to find node modules relative
// to that location that are otherwise non-resolvable.
module.exports = require;
43 changes: 43 additions & 0 deletions gpii/configs/untrusted.development.all.local.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
{
"type": "fluid.eventedComponent",
"options": {
"gradeNames": ["{that}.buildMultiServerKettleConfig", "autoInit"],
"servers": {
"localConfig": {
"configName": "untrusted.development",
"configPath": "%universal/gpii/configs"
},
"cloudBasedConfig": {
"configName": "cloudBased.development.all.local",
"configPath": "%universal/gpii/configs"
}
},
"invokers": {
"buildMultiServerKettleConfig": {
"funcName": "gpii.multiServerKettleConfig.build",
"args": ["{that}.options.servers"]
}
},
"distributeOptions": [
{
"record": 8088,
"target": "{that cloudBasedConfig}.options.components.server.options.port"
},
{
"record": "http://localhost:8088/preferences/%userToken",
"target": "{that cloudBasedConfig}.options.cloudBasedUrls.preferences"
},
{
"record": "http://localhost:8088",
"target": "{that cloudBasedConfig}.options.matchMakers.flat.url"
},
{
"record": "gpii.oauth2.testDataStore",
"target": "{that cloudBasedConfig gpii.oauth2.dataStore}.options.gradeNames"
}
]
},
"modules": [
"../../testData/security/TestOAuth2DataStore.js"
]
}
19 changes: 19 additions & 0 deletions gpii/configs/untrusted.development.all.local.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
untrusted.development.all.local.json
====================================

This configuration runs the entire system locally under the hybrid Flow Manager architecture and in development mode.

It uses a multi-server Kettle configuration to run the Untrusted Flow Manager and a local version of the Cloud Based Flow Manager within the same Kettle process, but on different ports.

* The Untrusted Flow Manager runs on port 8081
* The Cloud Based Flow Manager runs on port 8088
* The following components are running on the local machine:
** Untrusted Flow Manager
*** flowManager (untrusted, browser channel)
*** deviceReporter
** Cloud Based Flow Manager
*** flowManager (cloud based oauth2)
*** flatMatchMaker
*** solutionsRegistry
*** rawPreferencesServer
*** preferencesServer
19 changes: 19 additions & 0 deletions gpii/configs/untrusted.development.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"typeName": "untrusted",
"options": {
"gradeNames": ["autoInit", "fluid.littleComponent"],
"components": {
"server": {
"type": "kettle.server",
"options": {
"logging": true,
"port": 8081
}
}
}
},
"includes": [
"../node_modules/deviceReporter/configs/development.json",
"../node_modules/flowManager/configs/untrusted.development.json"
]
}
9 changes: 9 additions & 0 deletions gpii/configs/untrusted.development.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
untrusted.development.json
==========================

This configuration runs the local Untrusted Flow Manager in development mode.

The following components are running on the local machine:

* flowManager (untrusted, browser channel)
* deviceReporter
23 changes: 23 additions & 0 deletions gpii/node_modules/flowManager/configs/untrusted.development.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

136 changes: 77 additions & 59 deletions gpii/node_modules/flowManager/src/CloudBasedFlowManager.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions gpii/node_modules/flowManager/src/FlowManager.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading